计算机网络——TCP知识点

一、整理自(Skill-Tree

  整理的人家git里的,这个里面知识点很全,学了两边了,推荐----- 地址

  1、ISO七层模型中表示层和会话层功能是什么?

    表示层:图像、视频编码解,数据加密。

    会话层:建立会话,如session认证、断点续传。

  2、tcp三次握手、四次挥手

    

      

  握手:

    第一次:客户端发含SYN位,SEQ_NUM = S的包到服务器。(客 -> SYN_SEND)

    第二次:服务器发含ACK,SYN位且ACK_NUM = S + 1,SEQ_NUM = P的包到客户机。(服 -> SYN_RECV)

    第三次:客户机发送含ACK位,ACK_NUM = P + 1的包到服务器。(客 -> ESTABLISH,服 -> ESTABLISH)

挥手:

    第一次:客户机发含FIN位,SEQ = Q的包到服务器。(客 -> FIN_WAIT_1)

    第二次:服务器发送含ACK且ACK_NUM = Q + 1的包到服务器。(服 -> CLOSE_WAIT,客 -> FIN_WAIT_2)

            此处有等待

    第三次:服务器发送含FIN且SEQ_NUM = R的包到客户机。(服 -> LAST_ACK,客 -> TIME_WAIT)

            此处有等待

    第四次:客户机发送最后一个含有ACK位且ACK_NUM = R + 1的包到客户机。(服 -> CLOSED)

  3、三次握手原因

    (1)握手只需要确认双方通信时的初始化序号,保证通信不会乱序。

    (2)第三次的必要性:  三次握手可以防止已经失效的连接请求报文突然又传输到服务器端导致的服务器资源浪费。

        例如,客户端先发送了一个SYN,但是由于网络阻塞,该SYN数据包在某个节点长期滞留。然后客户端又重传SYN数据包并正确建立TCP连接,然后传输完数据后关闭该连接。该连接释放后失效的SYN数据包才到达服务器端。在二次握手的前提下,服务器端会认为这是客户端发起的又一次请求,然后发送SYN ,并且在服务器端创建socket套接字,一直等待客户端发送数据。但是由于客户端并没有发起新的请求,所以会丢弃服务端的SYN 。此时服务器会一直等待客户端发送数据从而造成资源浪费。

  4、四次挥手原因

    TCP是双工的,所以发送方和接收方都需要FIN和ACK。只不过有一方是被动的,所以看上去就成了4次挥手。

  5、TCP连接状态

    FIN_WAIT_2:此时是半连接状态,即有一方要求关闭连接,等待另一方关闭。客户端接收到服务器的ACK包,但并没有立即接收到服务端的FIN包,进入FIN_WAIT_2状态。

    CLOSE_WAIT:服务器接收到客户机FIN包之后等待关闭的阶段。在接收到对方的FIN包之后,自然是需要立即回复ACK包的,表示已经知道断开请求。但是本方是否立即断开连接(发送FIN包)取决于是否还有数据需要发送给客户端,若有,则在发送FIN包之前均为此状态。

    TIME_WAIT:客户端收到服务端的FIN包,并立即发出ACK包做最后的确认,在此之后的2MSL时间称为TIME_WAIT状态。

  6、解释RTO,RTT和超时重传?

      

  • 超时重传:发送端发送报文后若长时间未收到确认的报文则需要重发该报文。可能有以下几种情况:

    • 发送的数据没能到达接收端,所以对方没有响应。

    • 接收端接收到数据,但是ACK报文在返回过程中丢失。

    • 接收端拒绝或丢弃数据。

  • RTO:从上一次发送数据,因为长期没有收到ACK响应,到下一次重发之间的时间。就是重传间隔。

    • 通常每次重传RTO是前一次重传间隔的两倍,计量单位通常是RTT。例:1RTT,2RTT,4RTT,8RTT......

    • 重传次数到达上限之后停止重传。

  • RTT:数据从发送到接收到对方响应之间的时间间隔,即数据报在网络中一个往返用时。大小不稳定。

    7、流量控制原理

   (1)接收方通过TCP头窗口字段告知发送方本方可接收的最大数据量,用以解决发送速率过快导致接收方不能接收的问题。所以流量控制是点对点控制。

    (2)TCP是双工协议,双方可以同时通信,所以发送方接收方各自维护一个发送窗和接收窗。

  • 发送窗:用来限制发送方可以发送的数据大小,其中发送窗口的大小由接收端返回的TCP报文段中窗口字段来控制,接收方通过此字段告知发送方自己的缓冲(受系统、硬件等限制)大小。

  • 接收窗:用来标记可以接收的数据大小。

    (3)发送窗内数据只有当接收到接收端某段发送数据的ACK响应时才移动发送窗,左边缘紧贴刚被确认的数据。接收窗也只有接收到数据且最左侧连续时才移动接收窗口。

  8、拥塞控制原理

    (1)防止数据被过多注网络中导致网络资源(路由器、交换机等)过载。因为拥塞控制涉及网络链路全局,所以属于全局控制。控制拥塞使用拥塞窗口。

    (2)慢开始 & 拥塞避免:

        先试探网络拥塞程度再逐渐增大拥塞窗口。每次收到确认后拥塞窗口翻倍,直到达到阀值ssthresh,这部分是慢开始过程。达到阀值后每次以一个MSS为单位增长拥塞窗口大小,当发生拥塞(超时未收到确认),将阀值减为原先一半,继续执行线性增加,这个过程为拥塞避免。

  9、如何区分流量控制和拥塞控制

    (1)流量控制属于通信双方协商;拥塞控制涉及通信链路全局。

    (2)流量控制需要通信双方各维护一个发送窗、一个接收窗,对任意一方,接收窗大小由自身决定,发送窗大小由接收方响应的TCP报文段中窗口值确定;拥塞控制的拥塞窗口大小变化由试探性发送一定数据量数据探查网络状况后而自适应调整。

    (3)实际最终发送窗口 = min{流控发送窗口,拥塞窗口}。

  10、TCP如何提供可靠数据传输的?

  •   建立连接(标志位):通信前确认通信实体存在。

  •   序号机制(序号、确认号):确保了数据是按序、完整到达。

  •   数据校验(校验和):CRC校验全部数据。

  •   超时重传(定时器):保证因链路故障未能到达数据能够被多次重发。

  •   窗口机制(窗口):提供流量控制,避免过量发送。

  •   拥塞控制:同上。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值