如果服务器收到的TCP序列号小于TCP SYN从客户端发送的序列号。在这种情况下TCP服务器做了什么?
可能这是不可能的,但由于某些错误,如果发生这种情况,服务器将如何表现?
这里假设TCP序列号没有溢出。
答案 0 :(得分:2)
具有这样序列号的段将远离接收窗口(下表中的案例4):
来自RFC 793:
传入的可接受性测试有四种情况 段:
Segment Receive Test Length Window ------- ------- ------------------------------------------- 0 0 SEG.SEQ = RCV.NXT 0 >0 RCV.NXT =< SEG.SEQ < RCV.NXT+RCV.WND >0 0 not acceptable >0 >0 RCV.NXT =< SEG.SEQ < RCV.NXT+RCV.WND or RCV.NXT =< SEG.SEQ+SEG.LEN-1 < RCV.NXT+RCV.WND
TCP应该对这样的细分做什么?
如果传入的段不可接受,则确认 应该回复发送(除非设置了RST位,否则会丢失) 细分和返回):
<SEQ=SND.NXT><ACK=RCV.NXT><CTL=ACK>
发送确认后,删除不可接受的段 并返回。
因此TCP将发送Ack,并删除它收到的无效段。