如果A发送的第一个报文段丢失了,但第二个报文到达了B。B在第二个报文段到达后向A发送确认。试问这个确认号应为多少?

假设此前发送的数据报已正确接收,主机A向主机B连续发送了两个TCP报文段,其序号分别是70和100。试问:


如果A发送的第一个报文段丢失了,但第二个报文到达了B。B在第二个报文段到达后向A发送确认。试问这个确认号应为多少?


【正确答案】:

因为此时收到的报文段的最后一个序号为69,当在第二个报文段到达后,B向A发送确认,所以这个确认号应为70。


【题目解析】:

TCP的序号是对每个应用层数据的每个字节进行编号,因此每个TCP报文段的序号是该段所封装的应用层数据的第一个字节的序号。确认序号是期望从对方接收数据的字节序号,即该序号对应的字节尚未收到,该序号之前的字节已全部正确接收,也就是说,TCP采用累积确认机制。将已连续接收到的应用层数据的最后一个字节的序号加1,作为确认序号,向发送方发送确认段。第一个报文段的第一个字节的序号是70,即已连续接收的应用层数据的最后一个字节的序号是69,所以当报文段到达后发送的确认序号是69+1=70。


Top