我想实现一个简化的 TCP/IP 堆栈。现在我正在编写我的tcp_connect
函数。在握手步骤中,我可以发送没有 TCP 选项和数据的 TCP 段(仅在客户端发送 TCP 标头)吗?
问问题
168 次
2 回答
1
我认为不需要任何选项。但是,如果您不发送最大分段大小选项,则假定的默认 MSS 仅为 576。
TCP 握手段通常不包含任何数据。但是,包含它是合法的,因此如果您的堆栈收到它,它应该接受它。
于 2013-03-18T06:31:40.643 回答
0
RFC793中只描述了三个(实现简单)选项:
Kind Length Meaning ---- ------ ------- 0 - End of option list. 1 - No-Operation. 2 4 Maximum Segment Size.
您可以尝试仅将“选项列表结束”附加到 TCP 标头,或使用预定义的模板。
作为客户端,您可能不会在传出的握手段中添加数据,但您应该能够在接受连接时处理传入的握手段。
我按你说的试过了,但没有得到回应。
您是否尝试在另一端使用 TCPdump 之类的东西?任何传入的段?
于 2013-03-18T15:21:11.560 回答