计算机网络面试总结(传输层)

时间:2020-04-15 20:09:53   收藏:0   阅读:65

计算机网络面试总结(传输层)

UDP协议

问题 1:UDP 和 TCP 的简单介绍。

问题 2:UDP 报头字段和含义?

技术分享图片

问题 3: UDP 的校验和是怎么计算的?

UDP 的校验和要计算首部和数据部分。首部还包括伪首部。

技术分享图片

多了 12 个字节的伪首部。

注意点:UDP 长度计算两次。

如果检验和有错,则 UDP 数据报被悄悄丢弃,不产生任何差错报文。

问题 4:为什么要加有伪首部?

目的是让 UDP 两次检查数据是否已经正确到达目的地。

IP 接受正确的目的地址,传送到正确的上层程序。

所有伪首部包括:源 IP 地址,目的 IP 地址,0,协议号,UDP 长度

TCP协议

问题 1:TCP 通过哪些方式来保证可靠性?

问题 2:TCP 与 UDP 的概念相互的区别及优劣

问题 3:TCP、UDP 为什么存在伪包头?

UDP(TCP)检验和:是根据 UDP(TCP)数据报和伪报头计算得到的差错检测值。 伪报头包含源和目的 IP 地址,以及来自 IP 数据报报头的协议值。IP 数据报在网络中传送时 包含 UDP 数据报。

伪报头并不会在网络中传送,校验和中所包含的伪报头内容可以避免目的端错误地接收错误 路由的数据报。校验和值的计算方法和 IP 报头检验和的计算方法类似

问题 4:为什么要 3 次握手,4 次挥手

问题 5:TCP 的流量控制机制

主要是下面的四种机制:

慢启动(慢开始):

  1. 慢开始不是指 cwnd 的增长速度慢(指数增长),而是指 TCP 开始发送设置 cwnd=1。
  2. 思路:不要一开始就发送大量的数据,先探测一下网络的拥塞程度,也就是说由小到大 逐渐增加拥塞窗口的大小。这里用报文段的个数的拥塞窗口大小举例说明慢开始算法,实时 拥塞窗口大小是以字节为单位的。
  3. 为了防止 cwnd 增长过大引起网络拥塞,设置一个慢开始门限(ssthresh 状态变量)
    1. 当 cnwd<ssthresh,使用慢开始算法
    2. 当 cnwd=ssthresh,既可使用慢开始算法,也可以使用拥塞避免算法
    3. 当 cnwd>ssthresh,使用拥塞避免算法

拥塞避免

  1. 拥塞避免并非完全能够避免拥塞,是说在拥塞避免阶段将拥塞窗口控制为按线性规律增 长,使网络比较不容易出现拥塞。

  2. 思路:让拥塞窗口 cwnd 缓慢地增大,即每经过一个往返时间 RTT 就把发送方的拥塞控 制窗口加一。

    无论是在慢开始阶段还是在拥塞避免阶段,只要发送方判断网络出现拥塞(其根据就是没有 收到确认,虽然没有收到确认可能是其他原因的分组丢失,但是因为无法判定,所以都当做 拥塞来处理),就把慢开始门限设置为出现拥塞时的发送窗口大小的一半。然后把拥塞窗口 设置为 1,执行慢开始算法。 如图所示:

技术分享图片

快速重传

  1. 快重传要求接收方在收到一个失序的报文段后就立即发出重复确认(为的是使发送方及 早知道有报文段没有到达对方)而不要等到自己发送数据时捎带确认。快重传算法规定,发 送方只要一连收到三个重复确认就应当立即重传对方尚未收到的报文段,而不必继续等待设 置的重传计时器时间到期。
  2. 由于不需要等待设置的重传计时器到期,能尽早重传未被确认的报文段,能提高整个网 络的吞吐量。

快速恢复

  1. 当发送方连续收到三个重复确认时,就执行“乘法减小”算法,把 ssthresh 门限减半。 但是接下去并不执行慢开始算法。
  2. 考虑到如果网络出现拥塞的话就不会收到好几个重复的确认,所以发送方现在认为网络 可能没有出现拥塞。所以此时不执行慢开始算法,而是将 cwnd 设置为 ssthresh 的大小, 然后执行拥塞避免算法。

技术分享图片

原文:https://www.cnblogs.com/Weber-security/p/12707359.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!