HTTP三次握手协议以及四次挥手

原创 2017年09月08日 21:11:52

三次握手

TCP(Transmission Control Protocol)传输控制协议;
tcp是主机对主机的传输控制协议,提供可靠的服务,采用三次握手建立连接。
位码,即tcp标志位,有6种标志:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急)

第一次握手:主机A发送位码为syn=1,随机产生seq number=1234567的数据包到服务器,主机B由SYN=1知道,A要求建立联机;

第二次握手:主机B收到请求后要确认联机信息,向A发送ack number=(主机A的seq+1),syn=1,ack=1,随机产生seq=7654321的包

第三次握手:主机A收到后检查ack number是否正确,即第一次发送的seq number+1,以及位码ack是否为1,若正确,主机A会再发送ack number=(主机B的seq+1),ack=1,主机B收到后确认seq值与ack=1则连接建立成功。

完成三次握手,主机A与主机B开始传送数据。

在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。
第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态; 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。 完成三次握手,客户端与服务器开始传送数据.

四次挥手(关闭连接)

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

TCP的连接的拆除需要发送四个包,因此称为四次挥手(four-way handshake)。客户端或服务器均可主动发起挥手动作,在socket编程中,任何一方执行close()操作即可产生挥手操作。

(1)客户端A发送一个FIN,用来关闭客户A到服务器B的数据传送。
(2)服务器B收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。
(3)服务器B关闭与客户端A的连接,发送一个FIN给客户端A。
(4)客户端A发回ACK报文确认,并将确认序号设置为收到序号加1。

TCP采用四次挥手关闭连接如图2所示。

HTTP协议三次握手,四次挥手过程

转载:http://blog.163.com/wangzhenbo85@126/blog/static/1013632822013423502833/?suggestedreading&wumii ...
  • yanxinrui0027
  • yanxinrui0027
  • 2017年04月19日 18:20
  • 558

tcp协议三次握手四次挥手

TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据。...
  • gvinaxu
  • gvinaxu
  • 2016年06月30日 22:16
  • 4162

TCP/IP协议 三次握手与四次挥手

一、TCP报文格式         TCP/IP协议的详细信息参看《TCP/IP协议详解》三卷本。下面是TCP报文格式图: 图1 TCP报文格式         上图中有几个字段需要重点介绍下: ...
  • renzhenhuai
  • renzhenhuai
  • 2013年09月27日 17:39
  • 25112

网络编程之TCP协议为啥是三次握手和四次挥手?

在学习TCP协议的时候,总是在强调三次握手,那么为什么是三次?而不是两次或者四次?(强迫症表示黑人问号????) 今天我们就来分析一下为什么是三次,下图是一次TCP通讯的时序 在这个例子中...
  • qq_29695087
  • qq_29695087
  • 2016年08月06日 20:54
  • 1099

TCP协议的三次握手和四次挥手以及断开时各阶段的状态分析

我们知道,https协议是在http协议之上封装了SSL协议,为了完成客户端和服务端的双向认证和可靠传输,需要在通信之前双方进行多次的握手协商。TCP协议与https协议类似。 1.TCP的连接(俗称...
  • sszgg2006
  • sszgg2006
  • 2017年02月20日 16:26
  • 995

TCP协议中为什么三次握手,四次挥手(详解)!!!

建立TCP需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示: 先来看看如何建立连接的。 首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为...
  • msdnwolaile
  • msdnwolaile
  • 2016年03月18日 15:18
  • 2045

TCP协议的学习(四)TCP四次挥手及解释

发起断开连接请求可以是客户端也可以是服务器,即主机1,主机2可以是客户端也可以是服务器。 为什么四次挥手 TIME_WAIT 2MSL close shutdown...
  • qq_34501940
  • qq_34501940
  • 2016年04月11日 11:23
  • 4072

tcp三次握手四次挥手(及原因)详解

TCP(Transmission Control Protocol,传输控制协议)是 面向连接的协议,也就是说在收发数据之前,必须先和对方建立连接, 一个TCP连接必须要经过三次“对话”才能建立起来,...
  • xulu_258
  • xulu_258
  • 2016年04月13日 21:02
  • 8425

面试常考题-三次握手,四次挥手

最近面试了许多家公司,除了百度外,其它公司淘宝等都会问你TCP三次握手到底是什么,为什么是三次握手而不是四次握手呢? 大家看完了我这篇文章后,相信一定会找到答案了。 1、建立连接协议(三次握手) ...
  • mycomputerxiaomei
  • mycomputerxiaomei
  • 2012年10月21日 11:01
  • 730

计算机网络——TCP协议中的三次握手四次挥手以及11种状态转换

TCP的传输连接分为3个阶段:连接建立(三次握手)、数据传送和连接释放(四次挥手)。TCP传输连接的管理就是使传输连接的建立和释放都能正常地进行。...
  • a987073381
  • a987073381
  • 2016年08月14日 20:37
  • 11498
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:HTTP三次握手协议以及四次挥手
举报原因:
原因补充:

(最多只允许输入30个字)