tcp如何实现安全可靠的传输
1、校验和:判断数据是否被修改
伪首部其内容为:32位源IP地址,32位目的IP地址,8位保留字节(置零),8位传输层协议号(TCP是6,UDP是17),16位TCP报文长度(TCP首部+数据)。伪首部的作用主要是增加TCP的校验和的检错能力:通过伪首部的目的IP地址来检查TCP报文是否收错了、通过伪首部的传输层协议号来检查传输层协议是否选对了。
发送端:在发送前计算出校验和,会添加一个12字节的伪头部,默认校验和为全0,计算出数据和校验和的反码,所有反码进行相加,得出校验和,装入tcp
接收端:接受到数据和校验和,将校验和与数据相加,若都为1 则正确
注意:如果接收方比对校验和与发送方不一致,那么数据一定传输有误。但是如果接收方比对校验和与发送方一致,数据不一定传输成功。
2、确认应答和序列号
序列号:tcp传输时将每字节数据进行编号。
确认应答:tcp每次收到数据后,都会对传输放进行确认应答,发送ACK报文,告诉发送方接受到哪里,下次从哪里发
3、超时重传(ACK发送端没有收到时)
在进行TCP传输时,由于确认应答和序列号机制,发送端在发送一部分数据后,会等待接收端发送的ACK报文。但由于网络原因:
1,数据在发送过程中发生了丢包,接收端没有接收到。
2,接收端接收到数据后,发