TCP连接的建立步骤

TCP连接的建立步骤,第1张

TCP连接的建立步骤:

客户端服务器端发送连接请求后,就被动地等待服务器的响应。典型的TCP客户端要经过下面三步操作:

1. 创建一个Socket实例:构造函数向指定的远程主机和端口建立一个TCP连接;

2. 通过套接字的I/O流与服务端通信;

3. 使用Socket类的close方法关闭连接。

服务端的工作是建立一个通信终端,并被动地等待客户端的连接。典型的TCP服务端执行如下操作:

1. 创建ServerSocket对象,绑定并监听端口

2. 通过accept监听客户端的请求

3. 建立连接后,通过输出输入流进行读写操作

4. 关闭相关资源

三次握手,四次挥手。

第一次握手:客户端向服务器端发送连接请求包SYN,等待服务器回应;

第二次握手:服务器端收到客户端连接请求包SYN后,将客户端的请求包SYN放入到自己的未连接队列,此时服务器需要发送两个包给客户端;

(1)向客户端发送确认自己收到其连接请求的确认包ACK,向客户端表明已知道了其连接请求

(2)向客户端发送连接询问请求包SYN,询问客户端是否已经准备好建立连接,进行数据通信;即在第二次握手时服务器向客户端发送ACK和SYN包,此时服务器进入SYN-RCVD状态。

第三次握手:客户端收到服务器的ACK和SYN包后,知道了服务器同意建立连接,此时需要发送连接已建立的消息给服务器;向服务器发送连接建立的确认包ACK,回应服务器的SYN告诉服务器,我们之间已经建立了连接,可以进行数据通信。ACK包发送完毕,服务器收到后,此时服务器与客户端进入ESTABLISHED状态,开始进行数据传送。

TCP四次挥手过程

断开一个tcp连接需要“四次挥手”

第一次:主动关闭方发送一个FIN,用来关闭主动方到被动关闭方的数据传送,也就是主动关闭方告诉被动关闭方:我已经不会再给你发送数据了,但是,此时,主动关闭方依然可以接收数据。

第二次:被动关闭方收到FIN包后,发送一个ACK给对方,确认序号为收到序号+1.

第三次:被动关闭方发送一个FIN,用来关闭被动关闭方到主动关闭方的数据传送,也就是告诉主动关闭方,我已经发完了,不会再给你发数据了。

第四次:主动关闭方收到FIN后,发送一个ACK给对方,确认序号为收到序号+1,至此,四次挥手完成。

模拟一种TCP短连接的情况:

在步骤5中,一般都是 client 先发起 close 操作。当然也不排除有特殊的情况。

从上面的描述看,短连接一般只会在 client/server 间传递一次读写操作!

再模拟一种长连接的情况:

以下步骤概述了通常情况下客户端计算机联系服务器计算机的过程:


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/280977.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-21
下一篇2023-04-21

发表评论

登录后才能评论

评论列表(0条)

    保存