TCP协议三次握手、四次挥手

  • 三次握手连接建立阶段

1、客户端发送请求连接报文(SYN=1,seq=client_isn),SYN=1表示请求连接,seq序列号随机生成

2、服务端收到请求后,回复ACK报文,ACK为源seq=client_isc +1,以便回复给客户端后知晓自己的请求得到了回复

3、客户端回复ACK报文确认建立连接,ACK报文为服务端seq=server_isc +1

  • 四次挥手(断开连接过程)

    1、假设断开过程由客户端提出,则客户端发送FIN报文,意思说“我的clinet客户端没有数据要发   送给你了,我要断开了”,状态变为(FIN_WAIT1)此时应用程序不会立即关闭socket,如果还   有数据没传完可以继续传

    2、服务端收到FIN报文后,发送ACK,说“你的请求我知道了,但是我还没准备好,请等我消息”

    此时服务端状态变为(CLOSE_WAIT),客户端收到状态变为(FIN_WAIT1),服务端继续传输数   据

    3、等服务端忙完了,就会发送FIN报文给客户端,表示“我忙完了,可以断开了”状态变为  (LAST_ACK)

    4、客户端收到断开FIN报文后,就知道要关闭网络了,但是他还是不太相信网络,就会再次发送一   个ACK给服务端,服务端收到以后就知道可以断开了,于是关闭连接;而客户端在等待2MSL(生命   周期)大概1~4分钟时间后如果没再收到回复,就会主动关闭SOCKET关闭连接。

时间: 2024-10-09 23:55:26

TCP协议三次握手、四次挥手的相关文章

TCP 协议 ---- "三次握手,四次挥手"

一.TCP 协议 1.概念:TCP协议,即 传输控制协议.它是面向连接.可靠的传输层协议. 2.特点:工作在 传输层:每一条TCP连接只能是点对点的:面向连接.可靠性:提供全双工通信:基于字节流. 3.TCP 数据报格式:   TCP 基于 字节流 源端口号.目的端口号:各占 2字节(16位) 序号:4字节 范围[0,2^32 - 1],使用mod/(2^32)计算 URG:紧急  1 紧急指针字段有效            ACK:确认  1 确认字段有效 PSH:推送  两应用进行交互,一方

网络编程 TCP协议:三次握手,四次回收,反馈机制 socket套接字通信 粘包问题与解决方法

TCP协议:三次握手,四次挥手 TCP协议建立双向通道. 三次握手, 建连接: 1:客户端向服务端发送建立连接的请求 2:服务端返回收到请求的信息给客户端,并且发送往客户端建立连接的请求 3:客户端接收到服务端发来的请求,返回接成功给服务端,完成双向连接 第一客戶向服务端发送请求,请求建立连接 服务端同客户端的请求,并同时向客户端发送建立 连接的请求,最后客户端同意后建立 双向连接. C ----> S C <---- S - 反馈机制: 客户端往服务端发送请求,服务端必须返回响应, 告诉客户

TCP的三次握手四次挥手理解及面试题

一.TCP概述 每一条TCP连接都有两个端点,这种端点我们叫作套接字(socket),它的定义为端口号拼接到IP地址即构成了套接字, 例如,若IP地址为192.0.0.1 而端口号为8000,那么得到的套接字为192.0.0.1:8000 二.TCP报文格式 ACK.SYN和FIN这些大写的单词表示标志位,其值要么是1,要么是0:ack.seq小写的单词表示序号 同步SYN:(Synchronize ),SYN=1表示这是一个连接请求报文,或连接接受报文.SYN这个标志位只有在TCP建产连接时才

TCP连接 三次握手 四次挥手

前言: TCP协议是面向连接.安全可靠.基于字节流的传输层协议,在进行http协议访问时就用到了tcp连接.在建立TCP连接时需要经历三次握手,断开连接时需要经历四次挥手.在此进行记录. 内容: TCP三次握手 第一次握手:由客户端发起,客户端生成一个SYN,以及一个随机数标记数X,然后将随机标记数X和SYN发送为服务端,此时客户端进入SYN_SENT状态,等待服务端响应. 第二次握手:服务端接收到SYN后得知客户端请求连接,然后服务端将SYN和ACK都置为1,并将ack=X+1,再生成一个随机

TCP协议之三次握手四次挥手

一.TCP协议简述 TCP协议位于传输层用来建立传输数据的通道以及传输数据,那么在这一层的tcp协议就涉及到客户端与服务端通信的连接,数据的传输.关闭连接. 通信的连接使用的就是客户端与服务端的三次握手,一旦三次握手成功就建立了双方的通信通道:接着就可以互相通信传输数据了:最后传输数据完成后断开双方通道,通过四次挥手. 上图中简单的画出建连接的三次握手.数据传输.断开连接的四次挥手过程.上图中涉及到一些参数,这里做一些了解. 参数 含义 SYN 请求建立连接,并在其序列号的字段进行序列号的初始值

socket的TCP的三次握手/四次挥手

第一次握手:客户端尝试连接服务器,向服务器发送syn包(同步序列编号Synchronize Sequence Numbers),syn=j,客户端进入SYN_SEND状态等待服务器确认 第二次握手:服务器接收客户端syn包并确认(ack=j+1),同时向客户端发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态 第三次握手:第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLIS

TCP/IP三次握手四次挥手

TCP三次握手所谓握手,也就是建立连接,三次过程.三次握手旨在连接到服务端的指定端口,进行通信.建立一个TCP连接,需要向客户端和服务端发送三个包.其中包含同步序列号和确认号以及TCP窗口大小的信息交换.一般触发握手在socket中都是connect()函数触发的第一次握手:客户端发送TCP请求, (SYN标记位置1个包,SYN=1,ACK=0 也就是带有SYN标记的TCP包,初始序列号为X,保存在包头的序列号中). 表示客户端需要建立一个TCP连接,这是握手中的第一不,发送请求.第二次握手:服

TCP/IP三次握手 四次挥手

三次握手: 四次挥手:

tcp的三次握手四次挥手

在这个例子中,首先客户端主动发起连接.发送请求,然后服务器端响应请求,然后客户端主动 关 闭连接.两条竖线表示通讯的两端,从上到下表示时间的先后顺序,注意,数据从一端传到 网络的 另一端也需要时间,所以图中的箭头都是斜的.双方发送的段按时间顺序编号为1-10, 各段中的主 要信息在箭头上标出,例如段2的箭头上标着SYN, 8000(0), ACK 1001, <mss 1024>, 表示该段中 的SYN位置1,32位序号是8000,该段不携带有效载荷(数据字节数为0),ACK位置 1,32位确

TCP协议三次和四次挥手

1.TCP链接中主动断开链接netstat观察可能出现的状态流转是:CD A.ESTABLISHED->CLOSE_WAIT->TIME_WAIT->CLOSED B.ESTABLISHED->TIME_WAIT->CLOSE_WAIT->CLOSED C.ESTABLISHED->FIN_WAIT_1->FIN_WAIT_2->TIME_WAIT->CLOSED D.ESTABLISHED->FIN_WAIT_1->TIME_WAI