查缺补漏----三次握手与四次挥手

注意事项:

① 如果是和FTP服务器建立连接,那么要建立两个TCP连接。一个是控制连接一个是数据连接。

② SYN报文段不能携带数据。三次握手的最后一个报文段可以捎带数据,但是如果不携带数据,那么就不消耗序号

③ 在断开连接过程中,如果FIN=1,那么这个报文段就算不携带数据,也需要消耗序号。

④ 每收到一个对新报文段的确认后,将拥塞窗口加1。所以我们所说的慢开始阶段,拥塞窗口从1-->2-->4变化的过程不是从“2”直接到“4”,中间还要经历 接收一个确认报文段:2-->3-->4

2023最后一道题:

(1)控制连接持久连接,数据连接非持久连接,H登录服务器时,建立的TCP连接是控制连接。

对于2,3:

① TCP建立数据连接,发送SYN请求报文段时,需要消耗一个序号。

② 第三次握手时,起始的序号为101,并且捎带了1000B的数据,接收方收到了1000B的数据,并且发送ack=1101,表示101~1100都收到了,下次期待接收1101序号的报文段。

由于题目中提到了“拥塞控制的初始阈值”,所以我们要考虑“慢开始”:

① 收到1个报文段确认后,发送方可以发送两个报文段,一个起始序号为”1101“,一个起始序号为“2101”。

② 当收到ack=2101的确认报文时,表示起始序号为“1101”的报文正确接收。所以拥塞窗口+1=3MSS。

当拥塞窗口=4时,发送方可以发送4个报文段,当收到对发送报文段的确认后,即ack=7101。进入拥塞避免阶段,也就是说“即使收到了4个确认报文段”,拥塞窗口只+1。

此时,cwnd=5MSS。

发送完18000B数据,即发送方的最后一个报文段起始序号“17101”序号的报文段,就可以开始断开连接(也就是断开数据连接)

断开连接时,seq=18101是因为发送方最后一个发送的报文起始序号是"17101",并且携带了1000B的数据,所以就是17101~18100,FIN报文段没有携带数据,但要消耗一个序号,即seq=18101。

ack=v,这个v,是主机H收到的最后一个报文段的最后一个字节的序号+1。

那么服务器段发送的seq=18102,就是对这个报文段的确认。

(6)总共经历6个RTT,平均发送速率18000B/60ms=2.4Mb/s

本题不写详细过程当然也能做,只是要清楚整个发送的流程:

(2) 第二次挥手ACK的确认报文段:由于主机发送18000B数据,并且数据传送是从序号101开始的,所以发送的最后一个报文段最后一个字节肯定是18100。第一次挥手18101,第二次挥手18102。

(3) 从序号101开始发送,每个报文段携带1000B数据,那么收到的确认报文段应该是1101,2101,3101....,刚开始拥塞窗口是1MSS,收到1101,2101,窗口值+2=3MSS。

收到7101,说明发送方发送了7000B的数据,拥塞窗口1-->2-->4,1+2+4=7MSS=7000B,收到7101,由于阈值为4MSS,虽然收到4个报文段的确认,但是拥塞窗口+1。

(4) 发送18000B,拥塞窗口的变化1-->2-->4-->5-->6,1+2+4+5+6=18MSS=18000B

所以收到确认后,拥塞窗口大小变为7,也就是1-->2-->4-->5-->6-->7,这里5个RTT,别忘了建立数据连接还有个RTT,总共6个RTT。

2016年41题:

看完前一个这个就比较简单了:

(1)ACK=1,确认序号:101

补充:在ACK的三次握手,4次挥手中,只有第1次握手请求ACK为0

(2)

H3发送第8个报文前,接收窗口大小为13,当收到第8个报文,接收窗口大小-1,所以接收窗口大小为12,由于收到第8个报文段确认,所以拥塞窗口大小+1,即8+1=9,发送窗口=min{拥塞窗口,接收窗口}=9

(3)

下一个待发送:

总共5个RTT,20KB的数据,所以平均传输速率:

(4)总共1.5个RTT。

注:对于S是1.5个RTT,对于H3而言,在发送完最后的确认时,还需要等待2MSL,所以对于客户端而言,从发出TCP断开连接,到整个TCP连接断开需要1RTT+2MSL:

补充,完整TCP断开连接如下图:

还有些题目没有明显提示你要考虑"慢开始""拥塞避免",但是有MSS,就要小心:

2022第40题:

由于题目没有阈值等信息,所以一直使用慢开始算法就可以,注意这里是服务器发送文件,服务器使用慢开始算法:

2017年最后一道题:

注意区分这两个:

① 由于数据帧序号为3bit,所以数据帧序号是0~7。

② 由于使用GBN协议,所以发送窗口最大值为2^3-1=7,也就是一个窗口最多只放得下0~6这几个序号。

(1) 正确接收的数据帧为S0,0 S1,0 S2,0

(2) 由于0,1,2收到确认,所以滑动窗口向后移动,但是3,4未收到,所以还可以发送5个数据帧。主机甲对主机乙发送数据帧并捎带数据时,只能对按序到达的最后一个数据帧进行确认。

所以第一个数据帧为S5,2,表示期待接收对方下一帧序号为2。最后一个数据帧S1,2

(3) 由于S2,0超时,所以主机甲将2号数据帧,及序号位于其后的所发送的所有数据帧全部重传。

 由于主机乙最后发送的数据帧发送序号为2,所以主机甲发送的数据帧确认序号为3,表示已收到2,期待收到3。所以重发的数据帧为S2,3,S3,3,S4,3

(4)从一个数据帧发送,到收到该数据帧的确认中间,发送方可以发送多个数据帧,考虑最大信道利用率,就是刚好传了7个数据帧:

直接用公式:

不太会算可以看看:查缺补漏----信道利用率与数据传输速率(计算题)-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值