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是一个属于应用层的超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。 TCP(Transmission Control P...

TCP三次握手-四次挥手详解.doc

  • 2013年03月28日 20:10
  • 92KB
  • 下载

TCP三次握手,四次挥手的过程

  • 2015年09月29日 22:12
  • 69KB
  • 下载

简述TCP协议的六个标志位和三次握手与四次挥手的过程及原理

简述TCP协议的三次握手与四次挥手的过程及原理        今天,我们来分享一下TCP协议的六个标志位和三次握手与四次挥手的过程及原理。        先介绍一下TCP中的六个控制位,    ...

TCP三次握手四次挥手详解

  • 2011年12月30日 17:03
  • 119KB
  • 下载

tcp协议三次握手四次挥手

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

对TCP三次握手、四次挥手以及TCP事务协议的理解

看了《TCP详解卷3》第4章后,对TCP三次握手、四次挥手以及TCP事务协议有了更深层次的理解,下面就简单谈一谈。 首先是TCP连接的建立为什么要经过三次握手。RFC 793对此做了一个简单的说明:...

TCP/UDP通信协议基础全集(区别,三次握手四次挥手)

在本篇博客你将了解到: 什么是TCP/IP和UDP协议 TCP协议中的三次握手和四次挥手过程 为什么连接的时候是三次握手,关闭的时候却是四次握手 为什么TIME_WAIT状态需要经过2MSL(最大报...
  • Tomasyb
  • Tomasyb
  • 2017年06月19日 11:26
  • 428

TCP协议中的三次握手四次挥手问题

一、三次握手建立连接详解: (1)当客户端向服务器发起连接请求时,客户端会发送同步序列标号SYN J到服务器,等待服务器确认,这时客户端的状态为SYN_SENT; (2)当服务器收到客户端发送的SYN...

TCP协议三次握手四次挥手

tcp协议的三次握手四次挥手虽然在我的实际工作中并不常用,但是面试的时候似乎经常被问到,最近好好学习了一把,总结一下。 TCP协议是传输控制协议,位于tcp/ip协议模型的传输层,提供可靠的连接服务...
  • zjnuwsf
  • zjnuwsf
  • 2016年12月08日 14:54
  • 181
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:HTTP三次握手协议以及四次挥手
举报原因:
原因补充:

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