首页 > 试题广场 >

主机甲和主机乙间已建立一个TCP连接,主机甲向主机乙发送了两

[单选题]
主机甲和主机乙间已建立一个TCP连接,主机甲向主机乙发送了两个连续的TCP段,分别包含300字节和500字节的有效载荷,第一个段的序列号为200,主机乙正确接收到两个段后,发送给主机甲的确认序列号是?
  • 500
  • 700
  • 800
  • 1000
推荐
确认序列号=原始序列号+TCP段的长度,所以第一次的确认序列号为200+300=500,第二次确认序列号为500+500=1000,选D。
编辑于 2016-11-21 12:03:08 回复(8)

【解答】选D。主机乙正确接收到两个段,共300字节加500字节共800个字节,第一个段的序列号为200,则表明确认号为800+200=1000。

【考查知识点】TCP报文的首部格式中确认号的计算;确认号是期望收到对方下一个报文段的第一个数据字节的序号。
序列号等于前一个报文段的序列号与前一个报文段中数据字节的数量之和。例如,假设源主机发送3个报文段,每个报文段有100字节数据,且第一个报文段的序列号是1000,那么接收到第一个报文段后,目的主机返回含确认号1100的报头。接收到第二个报文段(其序号为1100)后,目的主机返回确认号1200,接收到第三个报文段后,目的主机返回确认号1300。
发表于 2015-08-10 18:23:06 回复(0)
其实是1001,但是其他差距太远了,勉强选D吧
TCP的报文到达确认(ACK),是对接收到的数据的最高序列号的确认,并向发送端返回一个下次接收时期望的TCP数据包的序列号(Ack Number)。例如,主机A发送的当前数据序号是400,数据长度是100,则接收端收到后会返回一个确认号是501的确认号给主机A。
发表于 2015-08-15 20:53:41 回复(12)
看到一个题,说如果序号是20报文也是20,为什么最后确认号不是20+20而是不确定呢?
发表于 2018-09-09 20:54:51 回复(0)
TCP报文的首部格式中确认号的计算;确认号是期望收到对方下一个报文段的第一个数据字节的序号。
序列号等于前一个报文段的序列号与前一个报文段中数据字节的数量之和。例如,假设源主机发送3个报文段,每个报文段有100字节数据,且第一个报文段的序列号是1000,那么接收到第一个报文段后,目的主机返回含确认号1100的报头。接收到第二个报文段(其序号为1100)后,目的主机返回确认号1200,接收到第三个报文段后,目的主机返回确认号1300。
发表于 2015-08-22 16:50:32 回复(0)
确认序列号=原始序列号+TCP段的长度,所以第一次的确认序列号为200+300=500,第二次确认序列号为500+500=1000
发表于 2015-08-09 23:15:26 回复(0)
确认序列号是接收端 期望接收到的下一个段的序号
发表于 2022-03-01 09:58:05 回复(0)
发送200-499共300字节之后确认号为500,发送500-999共500字节之后确认号为1000,不要想当然,要算一下
发表于 2018-06-25 11:13:37 回复(0)
200-999就有800个字节,回复的是1000,而不是1001
发表于 2017-07-13 18:57:14 回复(0)
200+299(不含首字节)+500+1=1000
发表于 2017-04-10 21:16:30 回复(0)
前面的800byte接收成功,准备接受第1000个byte
发表于 2017-02-27 09:50:50 回复(0)
200+300+500=1000
发表于 2016-12-21 15:05:59 回复(0)

乙方发回去的确认号就是200+300+500=1000。因为甲的起始号码为200,发送过去乙方接受就是200+字节数目=1000。但TCP的确认机制并不是针对每个字节进行确认的,例如:乙方确认号为X表示接受了甲方X-1个字节,也就是999,返回的ACK+1就为1000了。

发表于 2016-11-25 19:06:07 回复(0)
确认序列号等于原始序列号加上TCP段数据长度。
发表于 2016-06-23 09:54:09 回复(0)
    
比如序列号是1,然后该段报文有2个字节,也即发送了1,2,那么下一个期待的报文当然是3,用直觉感觉就是3,用计算的方式来算,那就是1+2=3。
同理,    本题也是如此,应该是直接加:200+300+500=1000,上一个序列号其实是999(自己想想为什么),期待的序列号当然是1000啦。
所以有计算公式: 序列号等于前一个报文段的序列号与前一个报文段中数据字节的数量之和。
发表于 2016-04-03 14:28:37 回复(0)
如果发送序列号为100,发送了100个字节,那么发送序列应该是100—199(不是200!),接收端返回序列号,应该是199+1 = 200!  那这个原题最后的结果是1000,完全没问题。
发表于 2015-08-20 16:36:39 回复(0)
D
发表于 2014-10-14 16:18:18 回复(0)