主机a向主机b连续发送,计算机网络:主机A向主机B连续发送了两个TCP报文段,其序号分别为70和100。

阅读(84)发布于 2023-06-29

主机A向B发送的是每个报文段的第一个序号是70,表明从70开始,第二个序号是100,表明第一个的结束序号为99,从70到99共30字节。由于没有收到第一个报文段,则确认号为70。参考资料来源:百度百科—TCP报文格式 计算机网络:主机A向主机B连续发送了两个TCP报文段,其序号分别为70和100。

配图

主机A向主机B连续发送了两个TCP报文段,其序号分别为70和100.试问:

(1).第一个报文段携带了多少字节的数据?数据为从70-99,100-70=30。

(2).主机B收到第一个报文段后发回的确认号应当是多少?发回受到的确认号为100

(3).如果B收到第二个报文段后发回的确认号是180,试问A发送的第二个报文段的数据有多少字节?确认号为180,则数据为180-100=80.

(4).如果A发送的第一个报文段丢失了,但第二个到达B,B在第二个报文段到达后向A发送了确认。试问这个确认号应为多少?由于没有收到第一个报文段,则确认号为70.

30字节。

主机A向B发送的是每个报文段的第一个序号是70,表明从70开始,第二个序号是100,表明第一个的结束序号为99,从70到99(包括70和99)共30字节。

在使用TCP传输数据时,如果有一个确认报文段丢失了,是不是一定会引起与该确认报文段对应的数据的重传答案是不一定。

例如某个确认丢失了,但是在该报文的重传计时器到时之前,却收到了更高序号的确认,因为如果接收方没有收到低号的报文是不可能会发出高序号的确认的,所以说发送方此时不会在重传那个丢失确认的报文了。

扩展资料

相关原理:

当应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,TCP则把数据流分割成适当长度的报文段,最大传输段大小(MSS)通常受该计算机连接的网络的数据链路层的最大传送单元(MTU)限制。之后TCP把数据包传给IP层,由它来通过网络将包传送给接收端实体的TCP层。

TCP为了保证报文传输的可靠,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的字节发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据(假设丢失了)将会被重传。

(1)第一个报文段携带了多少字节的数据?数据为从70-99,100-70=30。

(2)主机B收到第一个报文段后发回的确认号应当是多少?发回受到的确认号为100。

(3)如果B收到第二个报文段后发回的确认号是180,试问A发送的第二个报文段的数据有多少字节?确认号为180,则数据为180-100=80。

(4)如果A发送的第一个报文段丢失了,但第二个到达B,B在第二个报文段到达后向A发送了确认。试问这个确认号应为多少?由于没有收到第一个报文段,则确认号为70。

扩展资料:

函数mytcp_sync_mss为一个tcpsocket中的mss相关的成员进行数据同步,其基本的一个算法是:

1、当前的MSS正常情况下应该为mtu-IP首部-TCP首部(不包括选项)。

2、structtcp_sock->rx_opt->mss_clamp中含有对端通告的能够接受的MSS值,如果该值小于第一步计算所得到的MSS,则以该值为准。

3、IP首部如果带有IP选项,则MSS中要减去选项长度。

4、如果MSS已经小于48了,则令其等于48。

5、减去TCP首部中选项的长度。

6、如果MSS当前已经大于滑动窗口大小的1/2,则取滑动窗口大小的1/2作为MSS值(但不能小于48)。

7、成员mss_cache用于缓存下刚刚计算所得的MSS。

所以,说本地以太网中MSS为1460的说法并不正确,它还会动态变化,如果IP首部和TCP首部中出现选项,则MSS要相应的减小,一般TCP首部中会有12字节的时间戳选项(外加两字节的填充选项),这时的MSS就等于1448。

参考资料来源:百度百科—TCP报文格式

确认号指的是接收方想要接收的报文段的序号,比如我想要1-5的报文,在接收过程中我收到了2-5,而1丢了,这时候我肯定跟你说,再发一遍1,就是这个意思。

在这里序号70的丢了,所以确认号就是70,和后面的没关系。

以上就是关于主机a向主机b连续发送的解答,如果对你有帮助,不妨关注本站,本站将为你整理更多内容。