软考
APP下载

tcp建立连接过程

TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的传输层协议,它提供可靠的通信服务。在TCP通信过程中,建立连接是必不可少的一部分。本文将从多个角度分析TCP建立连接的过程。

一、TCP三次握手

TCP建立连接的过程是通过三次握手(three-way handshake)实现的。三次握手的过程如下:

第一次握手:客户端(Client)将SYN(同步请求)包发送到服务器端(Server)并进入SYN_SENT(同步已发送)状态。

第二次握手:服务器收到客户端的SYN包后,发送SYN+ACK(同步请求应答)包,并进入SYN_RCVD(同步已接收)状态。

第三次握手:客户端收到服务端的SYN+ACK包后,发送ACK确认包,并进入ESTABLISHED(已建立连接)状态,此时服务端也进入ESTABLISHED状态。

在TCP建立连接过程中,三次握手的作用是确保双方都能收到对方的确认信息,并且双方的序列号和确认号能正常运转,从而保证通信的可靠性。

二、为什么需要三次握手

TCP需要三次握手的原因主要有以下两个方面:

1、防止已失效的连接请求报文段重复发送

在网络通信中,有可能因为网络延时等原因导致连接请求的ACK包丢失,如果不进行第三次握手,客户端将一直处于DDos状态,这将对网络性能造成很大影响。

2、防止服务器端开启不必要的连接

如果服务器端发出了一个SYN包,表示可以建立连接,但是客户端没有响应,这会导致服务器一直等待,如果这样的请求多了,将使得服务器资源被占满,导致拒绝服务。

三、TCP四元组

TCP的连接是通过四个参数确定的,它们称为TCP四元组:

1、源IP地址

2、源端口号

3、目标IP地址

4、目标端口号

在TCP建立连接过程中,一个SYN包和一个SYN+ACK包都有这些信息,因此可以确定对于一个连接,这些信息都是独特的。

四、TIME_WAIT状态

在TCP连接断开时,客户端和服务器双方都需要经过TIME_WAIT状态,这个状态通常会持续2倍的MSL(Maximum Segment Lifetime,最大分段生存时间),它的作用是保证连接正常关闭,双方都能准确的知道对方是否已经关闭连接。如果不经过TIME_WAIT状态,双方都可能因为错误的快速重试而打开一个已关闭的连接,造成无法预料的后果。

备考资料 免费领取:网络工程师报考指南+考情分析+思维导图等 立即下载
真题演练 精准解析历年真题,助你高效备考! 立即做题
相关阅读
网络工程师题库