计算机网络知识太难?了解这一篇就够了( 五 )


16、为什么第二次跟第三次不能合并, 第二次和第三次之间的等待是什么?当服务器执行第二次挥手之后, 此时证明客户端不会再向服务端请求任何数据, 但是服务端可能还正在给客户端发送数据(可能是客户端上一次请求的资源还没有发送完毕),所以此时服务端会等待把之前未传输完的数据传输完毕之后再发送关闭请求 。
17、保活计时器的作用?除时间等待计时器外,TCP 还有一个保活计时器(keepalive timer) 。设想这样的场景:客户已主动与服务器建立了 TCP 连接 。但后来客户端的主机突然发生故障 。显然,服务器以后就不能再收到客户端发来的数据 。因此,应当有措施使服务器不要再白白等待下去 。这就需要使用保活计时器了 。
服务器每收到一次客户的数据,就重新设置保活计时器,时间的设置通常是两个小时 。若两个小时都没有收到客户端的数据,服务端就发送一个探测报文段,以后则每隔 75 秒钟发送一次 。若连续发送 10个 探测报文段后仍然无客户端的响应,服务端就认为客户端出了故障,接着就关闭这个连接 。
18、TCP 协议是如何保证可靠传输的?1. 数据包校验:目的是检测数据在传输过程中的任何变化,若校验出包有错,则丢弃报文段并且不给出响应,这时 TCP 发送数据端超时后会重发数据;
2. 对失序数据包重排序:既然 TCP 报文段作为 IP 数据报来传输,而 IP 数据报的到达可能会失序,因此 TCP 报文段的到达也可能会失序 。TCP 将对失序数据进行重新排序,然后才交给应用层;
3. 丢弃重复数据:对于重复数据,能够丢弃重复数据;
4. 应答机制:当 TCP 收到发自 TCP 连接另一端的数据,它将发送一个确认 。这个确认不是立即发送,通常将推迟几分之一秒;
5. 超时重发:当 TCP 发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段 。如果不能及时收到一个确认,将重发这个报文段;
6. 流量控制:TCP 连接的每一方都有固定大小的缓冲空间 。TCP 的接收端只允许另一端发送接收端缓冲区所能接纳的数据,这可以防止较快主机致使较慢主机的缓冲区溢出,这就是流量控制 。TCP 使用的流量控制协议是可变大小的滑动窗口协议 。
19、谈谈你对停止等待协议的理解?停止等待协议是为了实现可靠传输的,它的基本原理就是每发完一个分组就停止发送,等待对方确认 。在收到确认后再发下一个分组;在停止等待协议中,若接收方收到重复分组,就丢弃该分组,但同时还要发送确认 。主要包括以下几种情况:无差错情况、出现差错情况(超时重传)、确认丢失和确认迟到、确认丢失和确认迟到 。
20、谈谈你对 ARQ 协议的理解?

  • 自动重传请求 ARQ 协议
停止等待协议中超时重传是指只要超过一段时间仍然没有收到确认,就重传前面发送过的分组(认为刚才发送过的分组丢失了) 。因此每发送完一个分组需要设置一个超时计时器,其重传时间应比数据在分组传输的平均往返时间更长一些 。这种自动重传方式常称为自动重传请求 ARQ 。
  • 连续 ARQ 协议
连续 ARQ 协议可提高信道利用率 。发送方维持一个发送窗口,凡位于发送窗口内的分组可以连续发送出去,而不需要等待对方确认 。接收方一般采用累计确认,对按序到达的最后一个分组发送确认,表明到这个分组为止的所有分组都已经正确收到了 。
21、谈谈你对滑动窗口的了解?TCP 利用滑动窗口实现流量控制的机制 。滑动窗口(Sliding window)是一种流量控制技术 。早期的网络通信中,通信双方不会考虑网络的拥挤情况直接发送数据 。由于大家不知道网络拥塞状况,同时发送数据,导致中间节点阻塞掉包,谁也发不了数据,所以就有了滑动窗口机制来解决此问题 。
TCP 中采用滑动窗口来进行传输控制,滑动窗口的大小意味着接收方还有多大的缓冲区可以用于接收数据 。发送方可以通过滑动窗口的大小来确定应该发送多少字节的数据 。当滑动窗口为 0 时,发送方一般不能再发送数据报,但有两种情况除外,一种情况是可以发送紧急数据,例如,允许用户终止在远端机上的运行进程 。另一种情况是发送方可以发送一个 1 字节的数据报来通知接收方重新声明它希望接收的下一字节及发送方的滑动窗口大小 。
22、谈下你对流量控制的理解?TCP 利用滑动窗口实现流量控制 。流量控制是为了控制发送方发送速率,保证接收方来得及接收 。接收方发送的确认报文中的窗口字段可以用来控制发送方窗口大小,从而影响发送方的发送速率 。将窗口字段设置为 0,则发送方不能发送数据 。


推荐阅读