一、确认应答(ACK)机制
TCP面向字节流,TCP会将每个字节的数据都进行编号,即序列号,每一个ACK都带有对应的确认序列号。
二、超时重传机制
确认应答是比较理想的情况,数据在传输过程中,可能会丢包
丢包:1.发送请求丢失
2.回复的ack丢失
不管哪种情况都会触发重新传输报文。
原理:当发送了一条数据之后,TCP内部就会自动启动一个定时器,达到一定时间也没有收到ack,定时器就会触发重传消息机制。
三、连接管理机制
1.建立连接 三次握手过程
ACK:确认应答 SYN:同步报文段(尝试与对方建立连接)
“三次握手”:如上图1、2、3步,主机A发出SYN请求与主机B建立连接,主机B收到确认应答发送ACK,并且也向主机A发送SYN建立连接,主机A收到主机B的ACK应答已经连接请求,再给主机B发送确认ACK。
为什么第二步SYN和ACK可以合并为一步呢?
因为java SocketAPI中,客户端new Socket(ip,port),内核就会发送SYN请求,SYN与ACK都是内核决定的,所以可以合并。
在建立连接的过程中 不能"两次握手",但是可以"四次握手",但是没必要,如果把第