计算机网络 王道考研2021 第五章:传输层 -- TCP连接管理(三次握手四次握手)
Posted CodeJiao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机网络 王道考研2021 第五章:传输层 -- TCP连接管理(三次握手四次握手)相关的知识,希望对你有一定的参考价值。
1. TCP连接管理
TCP是面向连接的协议,因此每个 TCP连接都有三个阶段:连接建立、数据传送和连接释放。TCP连接的管理就是使运输连接的建立和释放都能正常进行。
TCP 把连接作为最基本的抽象,每条TCP 连接有两个端点,TCP 连接的端点不是主机,不是主机的IP地址,不是应用进程,也不是传输层的协议端口。TCP连接的端口称为套接字(socket)或插口。端口拼接到IP地址即构成套接字。
每条TCP连接唯一地被通信两端的两个端点(即两个套接字)确定。
TCP连接的建立采用 客户机/服务器 方式。主动发起连接建立的应用进程称为客户机(Client),而被动等待连接建立的应用进程称为服务器(Server)。
在TCP连接建立的过程中,要解决以下三个问题:
- 要使每一方都能够确知对方的存在。
- 要允许双方协商一些参数(如最大窗口值、是否使用窗口扩大选项、
时间戳选项及服务质量等)。 - 能够对运输实体资源(如缓存大小、连接表中的项目等)进行分配。
1.1 TCP的连接建立
预备知识:
- 确认位(ACK):只有当ACK=1时确认号字段才有效。当ACK=0时,确认号无效。TCP规定,在连接建立后所有传送的报文段都必须把ACK 置1。
- 同步位(SYN):同步位SYN=1表示这是一个连接请求或连接接收报文。当SYN=1,ACK=0时,表明这是一个连接请求报文,对方若同意建立连接,则在响应报文中使用SYN=1,ACK=1。即 SYN=1表示这是一个连接请求或连接接收报文。
- 终止位FIN(Finish):用来释放一个连接。FIN=1表明此报文段的发送方的数据已发送完毕,并要求释放传输连接
三次握手过程:
- 第一步:客户机的TCP首先向服务器的 TCP发送一个连接请求报文段。这个特殊的报文段中不含应用层数据,其首部中的SYN标志位被置为1。另外,客户机会随机选择一个起始序号seq=x(连接请求报文不携带数据,但要消耗一个序号)。
- 第二步:服务器的TCP收到连接请求报文段后,如同意建立连接就向客户机发回确认,并为该TCP连接分配TCP缓存和变量。在确认报文段中,SYN和ACK位都被置为1,确认号字段的值为x+1,并且服务器随机产生起始序号seq=y(确认报文不携带数据,但也要消耗一个序亏)。确认报文段同样不包含应用层数据。
- 第三步:当客户机收到确认报文段后,还要向服务器给出确认,并且也要给该连接分配缓存和变量。这个报文段的ACK标志位被置1,序号字段为x+1,确认号字段ack=y+1。该报文段可以携带数据,若不携带数据则不消耗序号。
成功进行以上三步后,就建立了TCP 连接,接下来就可以传送应用层数据。TCP提供的是全双工通信,因此通信双方的应用进程在任何时候都能发送数据。
另外,值得注意的是,服务器端的资源是在完成第二次握手时分配的,而客户端的资源是在完成第三次握手时分配的,这就使得服务器易于受到SYN洪泛攻击。
1.2 SYN洪泛攻击
1.3 TCP连接的释放
四次握手的过程:
- 第一步:客户机打算关闭连接时,向其TCP发送一个连接释放报文段,并停止发送数据,主动关闭TCP连接,该报文段的FIN标志位被置1,seq=u,它等于前面已传送过的数据的最后一个字节的序号加1(FIN报文段即使不携带数据,也要消耗一个序号)。TCP是全双工的,即可以想象为一条TCP连接上有两条数据通路。发送FIN报文时,发送FIN的端不能再发送数据,即关闭了其中一条数据通路,但对方还可以发送数据。
- 第二步:服务器收到连接释放报文段后即发出确认,确认号是ack = u +l,而这个报文段自己的序号是v,等于它前面已传送过的数据的最后一个字节的序号加1。此时,从客户机到服务器这个方向的连接就释放了,TCP连接处于半关闭状态。但服务器若发送数据,客户机仍要接收,即从服务器到客户机这个方向的连接并未关闭。
- 第三步:若服务器已经没有要向客户机发送的数据,就通知TCP释放连接,此时其发出FIN=1的连接释放报文段。
- 第四步:客户机收到连接释放报文段后,必须发出确认。在确认报文段中,ACK字段被置为1,确认号ack = w +1,序号seq =u+l。此时TCP连接还未释放,必须经过时间等待计时器设置的时间2MSL后,客户机A才进入连接关闭状态。
1.4 小结
以上是关于计算机网络 王道考研2021 第五章:传输层 -- TCP连接管理(三次握手四次握手)的主要内容,如果未能解决你的问题,请参考以下文章
计算机网络 王道考研2021 第五章:传输层 -- 无连接服务与面向连接服务UDP协议
计算机网络 王道考研2021 第五章:传输层 -- TCP协议特点和TCP报文段面向报文和面向字节流的区别
计算机网络 王道考研2021 第五章:传输层 -- 传输层概述点对点和端对端的区别TCP / UDP概述端口号(传输层的SAP(服务访问点))套接字