TCP协议(三次握手)

mac2025-10-28  2

    TCP(Transmission Control Protocol)协议的全称是传输控制协议,它负责为不同终端系统的应用进程之间提供面向连接的通信服务。即TCP协议能够对自己提供的连接实施控制,,它是一种可靠的传输层协议。

一.TCP协议简介

  传输层协议最本质的任务就是把网络层协议提供的终端系统之间的通信服务,扩展到终端系统中运行的应用程序之间。为此,TCP协议提供了面向连接的服务。即在为应用程序之间建立通信之前,TCP协议需要首先建立传输数据所需的连接。一旦TCP连接建立成功,应用进程之间就可以借助这条TCP连接相互发送上层数据。   TCP能够对它所建立的TCP连接进行控制,主要包括以下几点:    ①对数据执行分割和重组(应用进程只管将自己要发送的数据全部交给TCP协议,而之后TCP协议能够将数据分成适当的大小然后进行传输。发送端:分割数据 接收端:重组数据(就是将数据恢复为应用进程能够使用的数据流))    ②确保数据按顺序传输(发送端TCP协议会将数据标明序列号,依次进行传输,接收端收到数据后,会按照序列号对数据进行重新排序,以确保信息被正确处理)    ③同时为多个应用进程提供传输服务(TCP协议的基本任务就是将终端系统中多个应用协议的数据交给网络层进行发送,因此他必须能够把应用进程与数据的对应关系搞清楚(通过端口号实现))    ④确保接收方收到数据并按需重传(TCP协议要求接收方在接收到数据后,对发送方进行确认。确保了接收方可以收到所有数据,这就是可靠的原因之一。此外,若发送方在一段时间后没有收到来自接收方的确认信息,它会将未被确认过的数据重新发送一遍)    ⑤控制传输速率(TCP使用滑动窗口机制,使接收方能够调节发送方的发送速率)      

二.TCP连接

  TCP作为可靠的协议,在能够为通信双方传输数据之前,首先要在两个终端设备之间建立一条TCP连接。连接成功后,终端设备之间既可以开始传输数据。

  TCP的连接建立过程要经历三次握手,即两台中端设备之间交换三次信息的过程。

TCP建立连接的过程如下图:   ①客户端向服务器发起TCP连接建立请求。(在客户端发出的这个数据段中,控制字段中SYN位被置为1,表示连接建立请求。此时的确认号为0)   ②服务器向客户端返回标识了SYN和ACK的数据段(在这个控制字段中,SYN都被设置为1)   ③客户端向服务器发送ACK数据段进行响应(在客户端发出的这个数据段中,控制字段中的ACK位被设置为1)

SYN:同步位,为1表示请求建立TCP连接 ACK:确认号有效位,为1表示这个数据段中包确认信息

  TCP建立的是双向连接,当客户端与服务器之间数据传输完毕后,TCP协议会解除已建立的连接。连接断开要进行四次握手。

TCP断开连接的过程:

  ①客户端想要中断TCP连接,向服务器发送一个标识了FIN和ACK的数据段。   ②服务器在接收到这个数据段后,以序列号和确认号为某值的数据段进行响应。   ③由于TCP连接是双向的,需要通信双方都拆除连接,因此服务器也会想客户端发送标识了FIN和ACK的数据段。   ④客户端在接收到这个数据段后,以序列号和确认号为某值的数据段进行响应。即连接成功断开。  

  注意:四次握手也不总是需要进行四次握手,如当服务器收到来自客户端的FIN请求后,自己接下来也会发送FIN请求,那么服务器会将FIN请求和用于对客户端进行确认的ACK包含在一个数据段中,通过三个数据段完成四次的握手过程。

最新回复(0)