TCP三次握手及TCP四次挥手
- 1.tcp三次握手
- (1)tcp的特点
- (2)tcp三次握手发生在什么阶段
- (3)tcp协议报头
- (4)tcp三次握手的流程
- 2.tcp四次挥手
- (1)tcp四次挥手发生在什么阶段
- (2)tcp四次挥手的流程
- (3)能不能将服务器发端发送的ACK和FIN放在一起发送呢
1.tcp三次握手
(1)tcp的特点
TCP 协议提供的是:面向连接、可靠的、字节流服务。使用 TCP 协议通信的双发必须先建立连接,然后才能开始数据的读写。双方都必须为该连接分配必要的内核资源,以管理连接的状态和连接上数据的传输。 TCP 连接是全双工的,双方的数据可以通过一个连接进行读写。完成数据交换之后,通信双方都必须断开连接以释放系统资源。
(2)tcp三次握手发生在什么阶段
三次握手发生在发起链接 connect 的时候;
(3)tcp协议报头
(4)tcp三次握手的流程
第一次握手客户端给服务器端发送一个SYN(建立连接的请求)并且它的序号值seq=i;
第二次握手服务器端收到请求以后也会给客户端发送一个自己的SYN并且序号值seq=j,同时会发送一个ACK(是否确认号是否有效)且ACK的值会在客户端发送过去的seq的之上加一;
第三次握手客户端会给服务器端发送一个确认信息(ACK)且值为j+1
2.tcp四次挥手
(1)tcp四次挥手发生在什么阶段
服务器或者客户端执行close的时候
(2)tcp四次挥手的流程
第一次挥手客户端给服务器端发送一个FIN(通知对方本端要关闭连接了)并且序号值seq=i;
第二次挥手服务器端给客户端发送一个确认报文段ACK且值为i+1;
第三次挥手服务器端给客户端发送一个FIN通知客户端服务器端要关闭了其序号值为j;
第四次挥手客户端给服务器端发送一个确认报文段ACK且值为j+1;
(3)能不能将服务器发端发送的ACK和FIN放在一起发送呢
首先我们要明白服务器端为什么将ACK和FIN分开发送,原因就是只有服务器端close以后才会给客户端发送FIN,所以只要服务器端发送ACK的同时服务器端close就可以将ACK和FIN一起发送.