tcp三次握手四次挥手

author author     2022-12-20     588

关键词:

TCP三次握手四次挥手

三次握手

指的是在发送数据的准备阶段,服务器端和客户端之间需要进行三次交互:

OSI参考模型中的网络层,在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。(TCP在运输层,IP在网络层)

第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;

第二次握手:服务器收到syn包,必须确认客户的syn(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

技术图片

通俗的说:

第一次握手:A(客户端):你好我是A,你听得到我在说话吗(发送建立连接请求,等待服务器确认) A->SYN_SEND

第二次握手:B(服务端):听到了,我是B,你听到我在说话吗(确认客户端的请求,同时自己也发送一个请求) B->SYN_RCVD | A->ESTABLISHED

第三次握手:A(客户端):嗯,听到了(确认服务端的请求,发送完毕,建立连接) B->ESTABLISHED

建立连接,开始聊天!

可能会有这种想法,为什么要进行三次握手才能建立连接,两次貌似也可以,事实三次握手是可靠的的连接过程:

三次握手的目的是 “为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误“

“已失效的连接请求报文段”的产生在这样一种情况下:client发出的第一个连接请求报文段并没有丢失,而是在某个网络结点长时间的滞留了,以致延误到连接释放以后的某个时间才到达server。本来这是一个早已失效的报文段。但server收到此失效的连接请求报文段后,就误认为是client再次发出的一个新的连接请求。于是就向client发出确认报文段,同意建立连接。

假设不采用“三次握手”,那么只要server发出确认,新的连接就建立了。由于是client发送的请求报文段滞留后才到达服务端,而现在client并没有发出新的建立连接的请求,因此不会理睬server的确认,也不会向server发送数据。但server却以为新的运输连接已经建立,并一直等待client发来数据。这样,server的很多资源就白白浪费掉了。

采用“三次握手”的办法可以防止上述现象发生。例如刚才那种情况,client不会向server的确认发出确认。server由于收不到确认,就知道client并没有要求建立连接。

四次挥手

当客户服务端传输完毕,需要终止连接的时候,就会进行四次挥手:

由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。这原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。收到一个 FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。

第一次挥手:TCP客户端发送一个FIN,用来关闭客户到服务器的数据传送。

第二次挥手:服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。

第三次挥手:服务器关闭客户端的连接,发送一个FIN给客户端。

第四次挥手:客户端发回ACK报文确认,并将确认序号设置为收到序号加1。

技术图片

通俗的说:

第一次挥手:A(主机1):喂,我不说了,我听你说最后的话(只能接收)。 A->FIN_WAIT1

第二次挥手:B(主机2):我知道了。等下,我还没说完。Balabala….. B->CLOSE_WAIT | A->FIN_WAIT2

第三次挥手:B(主机2):好了,说完了,我也不说了。 B->LAST_ACK

第四次挥手:A(主机1):表示已收到。 A->TIME_WAIT | B->CLOSED

A等待2MSL,保证B收到了消息,否则A又要表达一次收到了 A->CLOSED

tcp三次握手和四次挥手

...            TCP三次握手和四次挥手在了解TCP三次握手和四次挥手之前我们先来了解一下TCP的标志位,这样有助于我们理解TCP三次握手和四次挥手的过程TCP标志位:URG:表示TCP包的紧急指... 查看详情

图解tcp的三次握手和四次挥手

文章目录TCP的三次握手与四次挥手三次握手四次挥手其中细节三次握手为什么要有最后一次ACK?四次挥手为什么需要四次挥手?TCP的三次握手与四次挥手三次握手三次握手过程(1)客户端发送一个SYN0给服务器ÿ... 查看详情

图解tcp的三次握手和四次挥手

文章目录TCP的三次握手与四次挥手三次握手四次挥手其中细节三次握手为什么要有最后一次ACK?四次挥手为什么需要四次挥手?TCP的三次握手与四次挥手三次握手三次握手过程(1)客户端发送一个SYN0给服务器ÿ... 查看详情

tcp三次握手四次挥手

TCP协议中的三次握手和四次挥手建立TCP需要三次握手才能建立,而断开连接则需要四次挥手。三次握手,建立连接 首先Client发送连接请求报文,Server端接收连接后回复ACK报文,并为这次连接分配资源。Client接收到ACK报文后也... 查看详情

tcp协议tcp的三次握手和四次挥手

文章目录前言TCP连接的三个阶段TCP数据报介绍TCP三次握手(Three-wayHandshake)三次握手的过程握手过程说明为什么需要三次?两次握手会发生什么问题?数据传输TCP四次挥手四次挥手的过程挥手过程说明握手需要三次,为... 查看详情

tcp协议tcp的三次握手和四次挥手

文章目录前言TCP连接的三个阶段TCP数据报介绍TCP三次握手(Three-wayHandshake)三次握手的过程握手过程说明为什么需要三次?两次握手会发生什么问题?数据传输TCP四次挥手四次挥手的过程挥手过程说明握手需要三次,为... 查看详情

tcp的三次握手和四次挥手

这篇文章讲的很详细:三次握手和四次挥手 查看详情

tcp协议三次握手/四次挥手

TCP是传输控制协议,需要建立链接,通过三次握手和四次挥手保证数据传输的可靠性三次握手过程三次握手的目的在于,确认双方的通信能力是否正常第一次握手,客户端发送连接请求的报文给服务端第二次握手,服务端接收请求后回... 查看详情

tcp三次握手和四次挥手

 TCP的三次握手和四次挥手流程大家都很清楚,这里只对其中的某些细节进行学习。图1是三次握手与四次挥手的状态图          图1TCP正常连接建立和终止所对应的状态 问题一:为什么... 查看详情

计算机网络——tcp三次握手和四次挥手详解(代码片段)

文章目录1、三次握手1.1connect()、listen()和accept()三者之间的关系1.1三次握手的过程1.2三次握手的状态转换和安全问题1.3三次握手的问题汇总2、四次挥手2.1四次挥手的过程1.2四次挥手的问题汇总3.1TCP编程中三次握手和四次挥手的全... 查看详情

tcp三次握手,四次挥手(代码片段)

三次握手四次挥手三次握手,四次挥手相关问题问:TCP的三次握手过程?为什么会采用三次握手,若采用二次握手可以吗?答:1.握手过程看上图。2.如果采用二次握手,则可能收到客户端申请的已经失效的连接。问:SYNFlood攻击... 查看详情

三次握手与四次挥手

...而UDP是提供不可靠服务。UDP没有TCP为了保证传输而进行的三次握手和四次挥手,所以UDP在效率上高于TCP,目前还应用在一些语音、视频等对丢失信息不敏感的信息传输中。本文主要介绍一下TCP中的三次握手和四次挥手,详细介绍... 查看详情

图解tcp三次握手与四次挥手——北杨

TCP/IP、UDP协议简单介绍  TCP三次握手TCP四次挥手 【附上学习链接】https://www.bilibili.com/video/av21816559/?p=2 查看详情

tcp三次握手四次挥手

TCP三次握手四次挥手标志位缩写全称中文SYNsynchronous建立联机ACKacknowledgement确认PSHpush传送FINfinish结束RSTreset重置URGurgent紧急SeqSequencenumber顺序号码ACKAcknowledgenumber确认号码状态名称意义LISTEN侦听来自远方TCP端口的连接请求SYN-SENT在... 查看详情

tcp协议的三次握手和四次挥手

TCP协议的三次握手和四次挥手一.过程总览  建立TCP连接需要三次握手,而断开连接则需要四次挥手,整个过程如下图所示:二.报文细节2.1建立连接的三次握手报文细节  首先Client端发送连接请求报文,Server段接受连接后回... 查看详情

tcp三次握手和四次挥手

TCP三次握手和四次挥手的问题在面试中是最为常见的考点之一。很多读者都知道三次和四次,但是如果问深入一点,他们往往都无法作出准确回答。本篇尝试使用动画来对这个知识点进行讲解,期望读者们可以更加简单地地理解... 查看详情

http三次握手和四次挥手

目录前言一、HTTP和HTTPS1.HTTP2.HTTPS二、什么是TCP连接的三次握手1.三次握手2.TCP协议优点3.TCP协议缺点三、为什么TCP连接需要三次握手四次挥手1.为什么是三次握手?2.为什么是四次挥手?总结前言TCP(TransmissionControlProtoc... 查看详情

tcp三次握手四次挥手

TCP三次握手四次挥手三次握手指的是在发送数据的准备阶段,服务器端和客户端之间需要进行三次交互:OSI参考模型中的网络层,在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。(TCP在运输层,IP在网... 查看详情