🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6
🍨 阿珊和她的猫_CSDN个人主页
🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》
🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入门到实战全面掌握 uni-app》
TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层协议,其主要特点包括:
这些特点使得 TCP 协议成为一种非常可靠的传输层协议,适用于需要高可靠性和稳定性的应用场景,如文件传输、网页浏览、电子邮件等。
滑动窗口机制是TCP协议中的一种流量控制方法。
它通过限制发送方在一定时间内可以发送的数据量,来避免网络拥塞和数据丢失。
具体来说,发送方会维护一个发送窗口,该窗口表示在未收到确认的情况下,可以发送的最大数据量。当发送方发送数据时,它会根据发送窗口的大小来发送数据包。同时,接收方也会维护一个接收窗口,该窗口表示在未收到数据的情况下,可以接收的最大数据量。当接收方收到数据包时,它会根据接收窗口的大小来确认收到的数据包,并将确认信息返回给发送方。
通过这种方式,发送方可以根据接收方的确认信息来调整发送窗口的大小,从而实现流量控制。同时,滑动窗口机制还可以提高网络传输的效率,因为它允许发送方在等待确认信息的同时继续发送数据包,而不是等待所有数据包都被确认后再发送下一批数据包。
除了滑动窗口机制,TCP 协议还使用了其他一些流量控制方法,包括:
慢启动是 TCP 协议在建立连接时使用的一种流量控制方法
。在慢启动阶段,发送方会逐渐增加发送窗口的大小,以避免一开始就发送大量数据导致网络拥塞。延迟确认是 TCP 协议在接收方使用的一种流量控制方法
。接收方在收到数据包后,并不会立即发送确认信息,而是等待一段时间后再发送确认信息。这样可以减少网络中的确认信息数量,从而提高网络传输的效率。这些流量控制方法相互配合,共同实现了 TCP 协议的可靠传输和流量控制功能。
TCP 协议使用确认和重传机制来确保数据传输的可靠性。
当发送方发送数据时,它会在数据包中设置一个序列号,以便接收方能够识别数据包的顺序。接收方收到数据包后,会检查数据包的序列号是否与之前收到的数据包的序列号连续,如果是,则说明数据包是正确的,接收方会向发送方发送确认信息。如果不是,则说明数据包有丢失或损坏,接收方会向发送方发送一个否认信息,要求发送方重传数据包。
发送方收到确认信息后,会将确认信息中的序列号添加到发送窗口中,以便发送下一个数据包。发送方收到否认信息后,会立即重传数据包,直到收到正确的确认信息为止。
在重传数据包时,发送方会根据数据包的序列号和接收方的确认信息来确定重传的时间和次数。如果发送方在一定时间内没有收到确认信息,它会认为数据包丢失,并立即重传数据包。如果发送方连续收到多个否认信息,它会逐渐增加重传的时间和次数,以避免网络拥塞。
通过确认和重传机制,TCP 协议可以确保数据传输的可靠性和稳定性,避免数据丢失和网络拥塞。