1.“可靠”等价于“采用确认机制”,“可靠”和面向连接没有直接关系
2.在同一台计算机中,TCP和UDP分别拥有自己的端口号,二者互不干扰(具体什么意思?UDP12345和TCP12345能同时出现的意思?还是说某一个范围专属TCP使用,某一个范围专属UDP使用呢?我更倾向于前一种解释)
3.关于本章涉及到的几个名字的深入理解:信道吞吐率(或吞吐率、信道吞吐量),信道利用率(或线路利用率、线路效率、信道效率),信道带宽(或带宽、发送速率),RTT
(1)信道吞吐率:
文字定义:一个发送周期内的平均比特发送速率
意义:以较长时间尺度来看的实际的发送速率,是一个平均值
注:吞吐率是一个平均量,在瞬时下没有意义
定义式:信道吞吐率=一个发送周期内发送的比特数/发送周期,其中发送周期=RTT+这么多比特的发送时延。因此可以推导出如下公式:设一个发送周期内发送的比特数为x,发送周期为T,信道带宽为v,这么多比特的发送时延为t,则信道吞吐率=x/T=x/(t+RTT)=x/(x/v+RTT)
另外一种计算公式:信道吞吐率=信道利用率×信道带宽,其实信道利用率是根据信道吞吐率和信道带宽算出来的
(2)信道利用率:
文字定义:一个发送周期内,真正在发送数据的时间占整个发送周期的比例
意义:如其字面意思,衡量该信道的利用程度
定义式:一个发送周期内真正在发送数据的时间/发送周期
另外一种计算公式:信道利用率=信道吞吐率/信道带宽,因为往往在计算信道利用率之前会先让计算信道吞吐率,所以该公式可能更加常用,但它依然只是一个推导式
(3)信道带宽:
暂时没发现需要较难理解的地方,注意它和发送速率是同义词即可
(4)RTT:
RTT包括接收方对信息的处理时间,有时该时间被忽略,但这只表示该时间为0,而不表示RTT不包括这个处理时间了。这样辨析一下对计算其实没影响,但是更方便理解RTT
4.关于“报文段”和“报文段载荷”:
报文段指整个TCP报文段,报文段载荷仅指TCP报文段的数据部分,即不包括报文段首部
5.关于“报文段在网络中的寿命”“最大分组存活时间”:
这两个概念一般放在和求“线路的最高数据率(或最快速度)”一起出现,需要注意的是:这里的最高数据率并非是“如果数据率高于这个就可能会发生序号重叠”,而是“因为不允许发生序号重叠所以数据率被动地控制在了这个极限值以下”。可靠传输是由TCP的滑动窗口机制保证的,极限数据率是果而不是因。
MSL译为“最长报文段寿命”,是任何报文在网络上存在的最长时间,超过这个时间,报文将被丢弃。
关于王道书p242第6,11题中对于MSL这个概念的应用,有如下注意事项:
假设0号字节的数据被发送了,那么在等待一个MSL之后再发下一轮的0号就一定能保证不会在接收端发生错误覆盖吗?当然不能保证!但是在上一个0号的MSL内就发送下一个0号则更不合理,因为网络中如果同时有两个相同序号的字节存在的话,错误覆盖的发生就是肉眼可见的可能发生。换句话说,仅凭控制发送速率是无法从根本上解决这种可能发生的覆盖问题的,TCP的滑动窗口机制才能百分之百避免这种错覆盖问题的发生。“最高数据率”只是必要条件而不是充分条件,并且严格来讲它并不是可以主动控制的条件,而是由TCP机制推论出的必然结果,为什么不是可以主动控制的条件?因为“调整速率”给人的第一印象就好像是“调整带宽”的同义词,是可以直接调整的,但其实不是这样!就算把带宽调到无限大也没用,因为归根到底这个极限速率是由TCP滑动窗口机制决定的,和带宽没有直接关系。
关于MSL再联想一下它的另一个应用,就是在四报文挥手中客户端在接收完服务器的FIN报文之后需要等待2MSL的时间,与上面例子不同的点在于,这个等待是可以百分百保证服务器正常关闭的
6.两个端口之间同一时间只能建立一条TCP连接,如果在前一条还存在的前提下有新的连接申请,新的连接会建立失败,但原连接不受影响
7.拥塞窗口的初始值和MSS保持一致,并不是总为1
8.“不发生网络拥塞”指既不发生超时重传,也不发生收到3个重复确认后的快重传;拥塞窗口达到门限值并不算“发生网络拥塞”
9.关于“还可以发送的最大字节数”“还可以继续发送的数据序号范围”的理解:究竟包不包括“已传未确认”的字节?
王道书p240题28似乎包括了,但是p241题41似乎又没包括。关于这里还需要再咬文嚼字一下
10.王道书p241题38的解释:主要看最后一句即可
图来源:计算机网络面经——计算机网络详细知识点 | 程序员灯塔
11.