TCP三次握手,四次挥手

TCP 是面向连接的协议。运输连接使用传送TCP报文的。TCP运输连接建立和释放是每一次面向连接的通信中必不可少的过程。因此,运输连接就有三个过程,即,连接建立,数据传输和连接释放。运输连接的管理就是使运输连接的建立和释放都能正常的进行。

TCP的连接建立(三次握手):

假定主机A运行的是TCP 客户程序,而主机B运行的是TCP服务器程序。最初两端的进程都处于CLOSED(关闭)状态。注意A是主动打开连接,B是被动打开连接

B的TCP服务器进程先创建传输控制块TCB,准备接受客户进程的连接请求,然后服务器进程处于LISTEN状态,等待客户的连接请求。如有,即作出反应。

A的TCP客户进程也是首先创建传输控制块TCB,然后向B发出连接请求报文段,这时的首部中的同步位SYN=1,同时选择一个初始序号seq=x,TCP规定,SYN报文段不能携带数据,但要消耗一个序号。这时,TCP客户进程进入SYN-SENT(同步已发送)状态。

B收到连接请求报文段后,如果同意连接请求,则向A发送确认。在确认报文段中应把SYN位和ACK位 都置1,确认号是ack=x+1,同时也为自己选择一个序号seq=y,注意这个报文段因为不能携带数据但同样要消耗一个序号。这时的TCP服务器进程进入SYN-RCVD(同步收到)状态。

TCP客户进程收到B的确认后,还要想B进行确认。确认报文段的ACK置 1,确认号是ack=y+1,而自己的序号seq=x+1。TCP的标准规定,ACK报文段可以携带数据,但如果不携带数据就不消耗序号,在这种情况下,下一个数据段的序号仍是seq=x+1。这时TCP连接已经建立,A进入ESTABLISHED(已建立连接)状态。

当B收到A的确认后也进入ESTABLISHED(已建立连接)状态。

以上的连接建立过程也可以叫做三次握手

TCP的连接释放(四次挥手):

数据传输结束后,通信的双方都可释放连接。现在A和B都处于ESTABLISHED状态,A的应用进程先向其TCP发出连接释放报文段,并停止再发送数据,主动关闭TCP连接。A把连接释放报文段首部的终止控制位FIN置1,其序号sqe=u,它等于前面已经传送过的数据的最后一个字节的序号加1,。这时的A进入FIN-WAIT-1(终止等待1)状态,等待B的确认。注意,TCP规定,FIN报文段即使不携带数据也要消耗一个序号。

B收到连接释放报文段后即发出确认,确认号ack=u+1,而 这个报文段自己的序号是v,等于B前面已传送过来的数据的最后一个字节的序号加1,。然后B就进入CLOSED-WAIT(关闭等待)状态。TCP服务器进程这时应通知高层应用程序,因而从A到B这个方向的连接已经释放了,这时的TCP连接就处于半关闭状态。即A已经没有数据要发送了,但B若发送数据,A还要接受。就是说,从B到A这个方向的连接并未关闭,这个状态可能会维持一段时间。

A收到来自B的确认后,就进入FIN-WAIT-2(终止等待2)状态,等待B发出的连接释放报文段。

若B已经没有要向A发送的数据,其应用进程就通知TCP释放连接。这时B发出的连接释放报文段必须使FIN=1,现在假定B的序号为w(在半关闭状态下B可能有发送了一些数据)。B还必须重复上次已发送过的确认序号ack=u+1。这时B进入LAST-ACK(最后确认)状态,等待A的确认。

A在收到B的连接释放报文段后,必须对此发出确认。在确认报文段中把ACK置1,确认号为ack=w+1,而自己的序号是seq=u+1,然后进入TIME-WAIT(时间等待)状态。注意现在连接还没有释放掉。必须经过时间等待计时器设置的时间2MSL后,A才进入到CLOSED状态。时间MSL叫做最长报文段寿命。因此A进入到TIME-WAIT状态后,要经过2MSL进入到CLOSED状态,才能进行下一次的连接。当A撤销相应的传输控制块TCB后,就结束了这次的TCP连接。

上述的连接释放过程就是四次挥手,也有人叫做四次握手,是一个意思。。。

时间: 2024-10-19 10:40:45

TCP三次握手,四次挥手的相关文章

wireshark抓包图解-tcp三次握手四次挥手详解/

http://www.seanyxie.com/wireshark%E6%8A%93%E5%8C%85%E5%9B%BE%E8%A7%A3-tcp%E4%B8%89%E6%AC%A1%E6%8F%A1%E6%89%8B%E5%9B%9B%E6%AC%A1%E6%8C%A5%E6%89%8B%E8%AF%A6%E8%A7%A3/ wireshark抓包图解-tcp三次握手四次挥手详解/ tcpdump抓包命令使用方法及内容解析/

TCP三次握手/四次挥手详解

TCP三次握手/四次挥手详解 TCP(Transmission Control Protocol) 传输控制协议 TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接: 位码即tcp标志位,有6种标示: SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急) Sequence number(顺序号码) Acknowledge

TCP三次握手&四次挥手(示意图)

经典的三次握手示意图:(#add,“握手”即图中左边到右边的连线) 经典的四次握手关闭图: TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接: 位码即tcp标志位,有6种标示: SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急) Sequence number(顺序号码) Acknowledge number(确认号码

tcp三次握手四次挥手图解

建立TCP需要三次握手才能建立,而断开连接则需要四次挥手.三次握手,四次挥手流程图如下: 一.首先看下如何通过三次挥手----------建立连接 首先客户端发送连接请求报文,服务端接受连接后回复ACK报文,并为这次连接分配资源(即建立了客户端到服务端的单向连接).服务端接收到ACK报文后也向服务端发送ACK报文,并分配资源(即建立了服务端到客户端的单向连接),这样TCP双向连接就建立成功了. 二.如何通过四次挥手-------------断开连接 [强调]中断连接端可以是Client端,也可以

TCP三次握手四次挥手

一.计算机网络体系结构 1.OSI参考模型             2.TCP/IP体系结构        二.TCP三次握手 TCP(Transmission Control Protocol): 传输控制协议. TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手来建立一个连接. TCP有6种标志位: 1.SYN(建立连接)      表示同步序号,用来建立连接.SYN标志位和ACK标志位搭配使用,当连接请求的时候,SYN=1,ACK=0:连接被响应的时候,SYN=1,ACK

TCP 三次握手四次挥手, ack 报文的大小.tcp和udp的不同之处、tcp如何保证可靠的、tcp滑动窗口解释

一.TCP三次握手和四次挥手,ACK报文的大小 首先连接需要三次握手,释放连接需要四次挥手 然后看一下连接的具体请求: [注意]中断连接端可以是Client端,也可以是Server端. [注意] 在TIME_WAIT状态中,如果TCP client端最后一次发送的ACK丢失了,它将重新发送.TIME_WAIT状态中所需要的时间是依赖于实现方法的.典型的值为30秒.1分钟和2分钟.等待之后连接正式关闭,并且所有的资源(包括端口号)都被释放. [问题1]为什么连接的时候是三次握手,关闭的时候却是四次

wireshark抓包直观图解 TCP三次握手/四次挥手详解

转http://www.seanyxie.com/category/linux/ 作者:seanyxie | 一. TCP/IP协议族 TCP/IP是一个协议族,通常分不同层次进行开发,每个层次负责不同的通信功能.包含以下四个层次: 1. 链路层,也称作数据链路层或者网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡.它们一起处理与电缆(或其他任何传输媒介)的物理接口细节. 2. 网络层,也称作互联网层,处理分组在网络中的活动,例如分组的选路.网络层协议包括IP协议(网际协议

转---tcp三次握手四次挥手syn fin......

http://blog.chinaunix.net/uid-22312037-id-3575121.html转自 一.TCP报文格式        TCP/IP协议的详细信息参看<TCP/IP协议详解>三卷本.下面是TCP报文格式图: 图1 TCP报文格式 上图中有几个字段需要重点介绍下:        (1)序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记.        (2)确认序号:Ack序号,占32位,只有ACK标志位为1时,确认序号

Wireshark下TCP三次握手四次挥手

一. TCP/IP协议族 TCP/IP是一个协议族,通常分不同层次进行开发,每个层次负责不同的通信功能.包含以下四个层次: 1. 链路层,也称作数据链路层或者网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡.它们一起处理与电缆(或其他任何传输媒介)的物理接口细节. 2. 网络层,也称作互联网层,处理分组在网络中的活动,例如分组的选路.网络层协议包括IP协议(网际协议).ICMP协议(Internet互联网控制报文协议),以及IGMP协议(Internet组管理协议). 3.

如何应对考官的TCP三次握手&amp;四次挥手提问?

简述TCP三次握手: 简短回答: 首先A向B发送同步请求SYN, 然后B回复A同步请求应答SYN+ACK, 最后A回复BACK确认. 详细回答:首先A向B发送请求序列号为x的同步请求SYN, 然后B回复A确认序列号为x+1,请求序列号为y的同步请求应答SYN+AC 最后A回复确认序列号为y+1.请求序列号为x+1的确认应答ACK SYN同步序列号,需要连接时候为1 ACK为1时,确认序列号才有效 请求序列号 确认序列号 SYN ACK 第一次 A x 1 第二次 B y x+1 1 1 第三次