TCP协议如何实现可靠传输
TCP协议实现可靠传输的主要依仗就是它具有以下能力:
- 连接管理:通过连接管理保证双方都具有数据收发的能力;
- 确认应答机制:发送的每一个数据,都要求对方进行确认回复(通过协议字段中的序号和确认
序号实现) - 超时重传机制:发送数据后一段时间内没有收到确认回复,则认为数据丢失,进行重传。
- 协议中校验和字段:通过协议字段中的校验和校验数据一致性,若不一致则要求对方进行重传;
- 协议中的序号和确认序号字段:进性包序管理,保证交付数据包序。
1. 连接管理
tcp中主要依据三次握手建立连接和四次挥手释放连接来保证连接双方都有数据收发的能力。
2.确认应答机制
发送端连续发送多条数据,收到的每一个都确认回复,都保证其确认序号之前的数据都已经安全到达;这样的话就算某个确认回复丢失了,但是又收到了后边数据的确认序号,则会认为这条数据也安全到达了。避免了因为确认回复丢失而导致重传。
超时重传的等待时间:是动态的,随着网络变化的;一开始等待很短的时间就会重传;但是若多条数据都在短时间内无法得到响应,则会调整等待时间。
3. 滑动窗口机制
滑动窗口机制实现发送方连续发送多条数据,并且进行流量控制(借助协议中的窗口大小字段实现)在三次握手的时候,通信双方会通过选项数据协商MSS(最大数据段大小),MSS:一条报文中的数据最大大小通过协议中的窗口大小告诉发送方,一次发送多少数据;窗口有多大取决于接