TCP连接 三次握手 四次挥手

前言:

TCP协议是面向连接、安全可靠、基于字节流的传输层协议,在进行http协议访问时就用到了tcp连接。在建立TCP连接时需要经历三次握手,断开连接时需要经历四次挥手。在此进行记录。

内容:

  • TCP三次握手

   第一次握手:由客户端发起,客户端生成一个SYN,以及一个随机数标记数X,然后将随机标记数X和SYN发送为服务端,此时客户端进入SYN_SENT状态,等待服务端响应。

   第二次握手:服务端接收到SYN后得知客户端请求连接,然后服务端将SYN和ACK都置为1,并将ack=X+1,再生成一个随机数Y,将数据包发送给客户端,进入SYN_RCVD状态。

   第三次握手:客户端接收到数据包之后,先检测服务端发送回来的ack值是否等于X+1;如果正确就将ACK置1,并将ack=Y+1,发送给服务端。服务端再次检测ack的值是否等于Y+1,如果正确则建立连接,完成。

  • TCP四次分手

   第一次分手:客户端设置seq=x,向服务端发送一个FIN报文段;此时,主机1进入FIN_WAIT_1状态;这表示客户端没有数据要发送给服务端了; 
   第二次分手:服务端收到了客户端发送的FIN=1,向客户端回复ACK=1,ack=收到的seq+1=x+1,然后客户端进入FIN_WAIT_2状态;服务端告诉客户端,在等待自己去关闭连接 
   第三次分手:服务端向客户端发送FIN=1,设置seq=y,请求关闭连接,同时服务端进入LAST_ACK状态; 
   第四次分手:客户端收到服务端发送的FIN,向服务端发送ACK=1,ack=收到的seq+1=y+1,然后主机1进入TIME_WAIT状态;服务端收到客户端的ACK报文段以后,就关闭连接;此时,客户端等待2MSL后依然没有收到回复,则证明Server端已正常关闭,客户端也关闭连接。

后期整理补充:为什么要进行三次握手及四次握手

参考博文:https://blog.csdn.net/u011109589/article/details/80306479

结语:新的一年,坚持下去,有所改变。

原文地址:https://www.cnblogs.com/lsrd/p/10211686.html

时间: 2024-10-17 09:13:04

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

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/IP三次握手四次挥手

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

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 协议 ---- "三次握手,四次挥手"

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

TCP/IP三次握手 四次挥手

三次握手: 四次挥手:

tcp的三次握手四次挥手

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

重学TCP/IP协议和三次握手四次挥手

计算机网络体系结构 在计算机网络的基本概念中,分层次的体系结构是最基本的.计算机网络体系结构的抽象概念较多,在学习时要多思考.这些概念对后面的学习很有帮助. 网络协议是什么? 在计算机网络要做到有条不紊地交换数据,就必须遵守一些事先约定好的规则,比如交换数据的格式.是否需要发送一个应答信息.这些规则被称为网络协议. 为什么要对网络协议分层? 简化问题难度和复杂度.由于各层之间独立,我们可以分割大问题为小问题. 灵活性好.当其中一层的技术变化时,只要层间接口关系保持不变,其他层不受影响. 易于实现

关于tcp/ip的一场美好的邂逅(三次握手四次挥手)

基于对tcp/ip的的三次握手,四次挥手不是很了解,所以花了一点时间查询了相关知识,并对其知识点进行了汇总,并且给自己理了下记忆思路. 三次握手 ① 第一次握手 客户端发送请求(syn:synchronization),并选择一个初始化序号(seq:sequence) syn=1;seq=x 客户端状态变为(syn-sent:synchronization_sent) ② 第二次握手 服务器做出响应:listen---->syncrcvd(synchronizationrecieved); 从监

tcp 三次握手 四次挥手

TCP协议中的三次握手和四次挥手 建立TCP需要三次握手才能建立,而断开连接则需要四次挥手. 三次握手,建立连接 首先Client发送连接请求报文,Server端接收连接后回复ACK报文,并为这次连接分配资源.Client接收到ACK报文后也向Server端发送ACK报文,并分配资源,这样TCP连接就建立. 四次挥手断开连接 可以是Client端也可以是Server端 假设Client端发起中断连接请求,也就是发送FIN报文.Server端接收到FIN报文后,意思是说"我Client端没有数据要