TCP协议的可靠传输机制 您所在的位置:网站首页 可靠数据传输机制有哪些 TCP协议的可靠传输机制

TCP协议的可靠传输机制

2024-03-17 12:27| 来源: 网络整理| 查看: 265

1. 【确认应答机制】

出现的问题:

        1)消息发出后,不知道接收方有没有收到消息~【使用应答报文】

        2)网络上,数据传输顺序存在差异,可能出现后发的消息,先到达,导致回复消息时发生错误~【使用确认序号】

解决方法:

        1)在网络正常的时候,接收方收到数据之后,给发送方返回一个应答报文(ACK),表示其已经收到了~

        2)当发送的消息条数比较多时,返回的应答报文可能不及时,出现乱序现象,所以需要添加确认序号,能保证消息的一一对应~

        3)确认序号:表示当前这个应答报文是针对哪个消息进行的确认应答~ 

2 . 【超时重传机制】

 出现的问题:

        1)发送出去的消息丢失,导致接收方未收到消息~

        2)发送的消息已收到,但是接收方返回的应答报文丢失,导致发送方未收到确认信息,如果再次超时重传,可能会导致接收方收到多个重复信息~

解决问题:

        1)等待一定的时间,若还未收到应答报文,就重新发送消息~【超时重传】

        2)接收方收到的数据会先放入操作系统内核的接收缓冲区中,如果再次收到新的数据,TCP就会根据序号,来检查看这个数据是不是在接收缓冲区中存在,如果不存在就直接放入,如果存在就直接丢弃,保证数据不重复。

 3. 【连接管理】(重点面试题)

        1)如何建立连接

        客户端和服务器通过三次握手,完成了建立连接的过程~

         SYN【同步报文段】:表示客户端和服务器要建立连接~

        ACK【应答报文段】:表示服务器收到客户端(客户端收到服务器)发来的请求~

【描述TCP三次握手的过程】【经典面试题】【发起方必须是客户端】

                11)客户端向服务器发送连接请求~

                 22)服务器向客户端发送应答报文,表示服务器已收到客户端的信息,并向客户端发送连接请求~

                33)客户端向服务器发送应答报文,表示客户端已收到服务器的信息~

【三次握手的作用】

                11)检测通信双方,发送能力和接收能力是否都正常~

                22)让通信双方能够协调一些必要的信息~

  【为啥握手是三次,两次行不行,四次行不行】 【经典面试题】    

                11)检测通信双方,发送能力和接收能力是否都正常~

                22)让通信双方能够协调一些必要的信息~

                33)四次可以,但是会降低传输效率,不如合在一起好~

                44)两次不可以,如果是两次,意味着缺少最好后一次,此时客户端这边的发送能力和接收能力都是正常的,但是服务器这边是残缺的,它不知道自己的发送能力是否正常,也不知道客户端的接收能力是否正常。

        2)如何断开连接

        客户端和服务器通过四次挥手,完成断开连接的过程~

         FIN【结束报文段】:表示客户端和服务器结束连接~

【描述TCP四次挥手的过程】【发起方可以是客户端也可以是服务器】

        1)客户端向服务器发送结束连接请求~

        2)服务器向客户端发送应答报文,表示已收到客户端的信息~

        3)服务器向客户端发送结束连接请求~

        4)客户端向服务器发送应答报文,表示已收到服务器的信息~

【状态转换】

        1)CLOSE_WAIT : 四次挥手了两次之后的状态,这个状态就是在等待代码中调用socket.close 方法,来进行后续挥手过程~

        2)TIME_WAIT : 谁主动发起FIN,谁就进入此状态,起到的效果是,防止最后一次ACK丢包,导致重传,而发起方由于过早销毁,使得最后的无人处理FIN,也无人针对此FIN进行应答~

 4. 【滑动窗口机制】

         由于确认应答机制的存在,导致了当前每次执行一次发送操作,就要等一次ACK的到达,大量的时间都花在了等ACK上,而滑动窗口的本质是在批量的发送数据,一次发送一波数据,然后一起等一波ACK~

 滑动:一次批量发送数据为N,并不是等N组数据的ACK全部到齐,再继续往下发送,而是哪个数据先到,就先发哪个数据的ACK~

窗口大小:一次批量发送的数据量~N

 

 5. 【流量控制机制】【滑动窗口机制的延伸】

     【出现的问题】:由于接收方的处理速度有限,限制滑动窗口发送的速率~

        1) 在滑动窗口中,窗口越大,传输速度越快,但是不能一味扩大窗口,要考虑接收方的处理速度~

        2) 流量控制的关键就是能够衡量接收方的处理速度~

        3) 这个速度的衡量标准是:接收方接收缓冲区剩余空间的大小~

 6. 【拥塞控制机制】【滑动窗口机制的延伸】

     【出现的问题】:由于中间链路的处理能力有限,限制滑动窗口发送的速率~

        1)拥塞控制衡量的是,发送方到接收方,整个链路之间的拥堵状况(处理能力)~

        2)通过实验的方式,逐渐调整发送速度,中找到一个比较合适的值(范围)~

 7. 【延时应答机制】【流量控制机制的延伸】

在流量控制的基础上,尽可能延长大窗口的时间,以便传输速率更快~

 8. 【捎带应答机制】【延时应答机制的延伸】

 9. 【面向字节流机制】【粘包问题】

 TCP粘包指的是:在TCP接收缓冲区中,若干个应用层数据报混在一起,分不出来了~

 10. 【TCP异常处理机制】

        1)进程终止

        2)机器关机

        3)机器掉电/网线断开



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有