TCP协议如何保证可靠传输?
一、TCP的可靠传输如何保证? 在TCP连接中,数据流必须以正确的顺序传送给对方。 TCP的可靠性是通过 顺序编号 和 确认(ACK) 实现的。 TCP在开始传送一个段时,为准备重传而首先将该段插入到发送队列中,同时启动时钟。然后,如果收到了接收端对该段的ACK信息,就将该段从队列中删去。如果在时钟规定的时间内,ACK未返回,那么就从发送队列中再次送出这个段。TCP在协议中就对数据可靠传输做了保障,握手与断开都需要通讯双方确认,数据传输也需要双方确认成功,在协议中还规定了:分包、重组、重传等规则;而UDP主要是面向不可靠连接的,不能保证数据正确到达目的地。 二、TCP还提供了以下方式保证可靠传输: 1.确认和重传: 接收方收到报文就会确认,发送方发送一段时间后没有收到确认就重传。 TCP是怎么保证错误重传的? 1)接收方受到错误的分组,就直接丢弃,而不做任何操作; 2)发送方在规定的时间(比平均往返时延大一些)没有收到分组的确认分组,就会自动重传; 3)为了让对方知道哪个分组出现了问题,就为分组也编了序号。 2.数据校验 3.数据合理分片和排序 UDP:IP数据报大于1500字节,大于MTU。这个时候发送方IP层就需要分片(fragmentation)把数据报分成若干片,使每一片都小于MTU,而接受方IP层则需要进行数据报的重组