美文网首页
http三次握手四次挥手

http三次握手四次挥手

作者: 三国韩信 | 来源:发表于2020-07-16 18:30 被阅读0次
三次握手

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


三次握手
四次挥手

TCP的连接的拆除需要发送四个包,因此称为四次挥手(four-way handshake)。客户端或服务器均可主动发起挥手动作,在socket编程中,任何一方执行close()操作即可产生挥手操作。
由于TCP连接是全双工的,因此每个方向都必须单独进行关闭(客户端和服务端都要发送Fin报文)。这个原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。收到一个 FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。
(1)客户端A发送一个FIN,用来关闭客户A到服务器B的数据传送。
(2)服务器B收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。(确认客户端的Fin信号)
(3)服务器B关闭与客户端A的连接,发送一个FIN给客户端A(自己发送信号)。
(4)客户端A发回ACK报文确认,并将确认序号设置为收到序号加1(确认服务端的Fin信号)。

四次挥手
那么是不是四次挥手后就马上结束了链接呢?
答案是否定的,协议里还有个TIME_WAIT状态,因为虽然双方都同意关闭连接了,而且握手的4个报文也都协调和发送完毕,按理可以直接回到CLOSED状态(就好比从SYN_SEND状态到ESTABLISH状态那样);但是因为我们必须要假想网络是不可靠的,你无法保证你最后发送的ACK报文会一定被对方收到,因此对方处于LAST_ACK状态下的SOCKET可能会因为超时未收到ACK报文,而重发FIN报文,所以这个TIME_WAIT状态的作用就是用来重发可能丢失的ACK报文。
简单的总结就是我再等一会结束,防止网络差导致对方没有接到我报文。当TCP连接完成四个报文段的交换时,主动关闭的一方将继续等待一定时间(2-4分钟),即使两端的应用程序结束。
TCP的拥塞控制

1.数据是单方向传送,而另一个方向只传送确认;
2.接收方总是有足够大的缓存空间,因而发送发发送窗口的大小由网络的拥塞程度来决定;
3.以TCP报文段的个数为讨论问题的单位,而不是以字节为单位;
发送方给接收方发送数据报文段后,接收方给发送方发回相应的确认报文段,一个传输轮次所经历的时间就是往返时间RTT(RTT并非是恒定的数值),使用传输轮次是为了强调,把拥塞窗口cwnd所允许发送的报文段都连续发送出去,并收到了对已发送的最后一个报文段的确认,拥塞窗口cwnd会随着网络拥塞程度以及所使用的拥塞控制算法动态变化。


拥塞控制

简单的说就有有一个拥塞窗口,tcp会根据网络的拥塞情况,根据不同的拥塞控制算法来控制窗口的大小。

相关文章

  • 2、tcpdump抓包分析三次握手和四次挥手

    TCP为什么需要三次握手、四次挥手 三次握手 三次握手 四次挥手 SYN flood攻击

  • 三次握手和四次挥手

    提起 三次握手 和 四次挥手,那么就不得不说一下 HTTP传输协议 我们都知道 三次握手 和 四次挥手 是 HTT...

  • 2018-04-10

    TCP 三次握手,四次挥手 1. http协议的简介 HTTP,HyperText Transfer Protoc...

  • 不积跬步--TCP三次握手和四次挥手过程

    本文来至转载TCP三次握手和四次挥手过程 TCP三次握手和四次挥手过程 1、三次握手 (1)三次握手的详述 首先C...

  • TCP连接的建立和终止

    目录(1)三次握手(2)四次挥手(3)TCP状态转换图(4)TCP连接三次握手+四次挥手+状态转换 一:三次握手 ...

  • 基础-TCP连接

    理解三次握手以及四次挥手具体过程,三次握手的原因、四次挥手原因、TIME_WAIT 的作用。 一、三次握手 假设 ...

  • tcp

    报文结构、三次握手、四次挥手 Tcp--三次握手,四次挥手[https://www.jianshu.com/p/a...

  • iOS 网络

    Http的报文结构 Https的4次握手过程 Cookie/Session TCP、三次握手、四次挥手、代码实现 ...

  • 三次握手与四次挥手

    三次握手 四次挥手

  • 2019-05-31

    三次握手 四次挥手

网友评论

      本文标题:http三次握手四次挥手

      本文链接:https://www.haomeiwen.com/subject/bfrmhktx.html