TCP三次握手和四次挥手,TCP是怎么保证传输可靠性 ?
三次握手:建立连接的过程
调⽤socket, 创建文件描述符; 调用connect, 向服务器发起连接请求;
第一次:connect会发出SYN段并阻塞等待服务器应答;
第二次:服务器收到客户端的SYN, 会应答一个SYN-ACK段表示"同意建立连接";
第三次:客户端收到SYN-ACK后会从connect()返回, 同时应答⼀一个ACK段;
四次挥手:断开连接的过程
第一次:如果客户端没有更多的请求了, 就调用close()关闭连接, 客户端会向服务器发送FIN段
此时服务器收到FIN后, 会回应一个ACK, 同时read会返回0
read返回之后, 服务器就知道客户端关闭了连接, 也调用close关闭连接, 这个时候服务器会向客户端 发送一个FIN;
客户端收到FIN, 再返回一个ACK给服务器
保证传输可靠性:
1.校验和
2.序列号
3.确认应答
4.超时重传
5.连接管理
6.流量控制
7.拥塞控制
字段 | 含义 |
---|---|
SYN | 请求建立连接,并在其序列号的字段进行序列号的初始值设定 |
FIN | 希望断开连接 |
ACK | 确认号是否有效 |