TCP如何保证传输可靠性

TCP协议保证传输可靠的方法主要有:校验和,序列号,确认应答,超时重传,连接管理,流量控制,拥塞控制

(一)校验和:判断传输数据是否出现了修改

   TCP在计算校验和时,会添加一个12个字节的伪首部。其内容为:32位源IP地址32位目的IP地址8位保留字节(置零)8位传输层协议号(TCP是6,UDP是17),16位TCP报文长度(TCP首部+数据)。伪首部的作用主要是增加TCP的校验和的检错能力:通过伪首部的目的IP地址来检查TCP报文是否收错了、通过伪首部的传输层协议号来检查传输层协议是否选对了

检验和的计算:

   发送端将伪首部,TCP报头,TCP数据分为16位的整数,如果总长度为奇数,则在最后添加一个0。把TCP报头中的校验和字段置为0。使用反码相加法(对每16位进行二进制反码求和,结果其实相当于先求和再进行二进制)累加所有的16位整数(进位累加到低位)。最后将校验和存到TCP首部的校验和字段中。

接收端 :将所有原码相加,高位叠加到低位, 如计算结果的16位中每一位都为1,则正确,否则说明发生错误。

校验和实际上是所有16位整数相加后再进行反码,所以所有16位整数相加的结果加上校验和,所有位都是1。

 

注意:如果接收方比对校验和与发送方不一致,那么数据一定传输有误。但是如果接收方比对校验和与发送方一致,数据不一定传输成功。

(二)确认应答与序列号

序列号:TCP传输时将每个字节的数据都进行了编号,这就是序列号。 

确认应答:TCP传输的过程中,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值