美文网首页
TCP协议——三次握手与四次挥手

TCP协议——三次握手与四次挥手

作者: 依然还是或者其他 | 来源:发表于2020-04-02 22:45 被阅读0次

前言

用自己的大白话做了下梳理

一、三次握手

三次握手——示意图

基本流程:
客户端发送SYN报文,发起握手请求,
服务端接受到请求,发送SYN,ACK 报文,告诉客户端自己收到了请求
客户端接受到服务端返回的信息,再发送报文,告诉服务端自己收到了

关于SYN、ACK

SYN:Synchronize Sequence Numbers 同步序列编号
ACK:Acknowledge character 确认字符

seq:sequence number 表示当前发送方的编号
ack:acknowledge number 表示当前发送方希望接收方下一次发送的seq是多少
具体可看参考的第二篇文章:TCP协议中的seq/ack序号是如何变化的?——geekartt

为何是三次,而不是两次、四次

为什么不是2次

在创建连接时,前两步时是确定有的,无法省略。
关于第三步,如果没有第三步的请求,那么当第一步的请求在第二步发送时就已经过期了,那么服务端就会一直在等待客户端的请求,从而造成浪费资源。

为什么不是4次

多了没必要,三次已经足够完成客户端和服务端各自的确认步骤

二、四次挥手

四次挥手——示意图

基本流程:
客户端向服务端发起挥手请求,进入wait1(不再主动发送请求,等待确认服务端信息)
服务端接受请求,响应,发送ACK报文,告知客户端知道了

中间有段等待时间(因为服务端接受到挥手请求时,存在其他数据需要处理发送,没法立即停止,需要都处理完了,才进行停止,再告诉客户端可以停止了)

服务端进入LAST-ACK状态,发送报文告知客户端 要关闭了
客户端接受服务端报文,响应ACK报文,告知服务端自己接受到了
服务端关闭连接

客户端等待 2个MSL
(ps:MSL——Maximum Segment Lifetime,报文最大生产时间,即超过这个时间后,客户端没有接收到服务端的消息,那么服务端就收到了之前客户端发送的ACK报文)

客户端关闭连接

为什么需要4次

可能有人疑问为什么不是像握手一样是3次,而是变成了2次2次?
其中关键可以理解成为什么需要中间的那段等待时间,如果没有那个等待时间,那第2次和第3次似乎可以合并成一次

上面也说了,等待时间是为了给服务端有缓冲时间处理之前已经在发的消息的,但服务端又不能让客户端等太久,所以接收到客户端的挥手请求,先发个ACK报文告诉客户端我知道了,等会就处理。

为什么需要等待,为什么是2个MSL

1.如果不等待的话,客户端直接关闭,然后又重启了,但服务端之前并没有关闭成功,又发送了一些消息过来,客户端这时接收到数据,有点懵(明明没有发送过请求),可能会造成数据混乱
2.需要2个MSL是因为第一个MSL时间用于判断服务端接收到了之前发送的ACK报文;第二个MSL是用于判断客户端不会再接收到服务端的报文(即服务端是不是收到ACK后真的关闭了)

参考:
1.(建议收藏)TCP协议灵魂之问,巩固你的网路底层基础——神三元
2.TCP协议中的seq/ack序号是如何变化的?——geekartt
3.TCP协议中Seq、Ack的变化规律

相关文章

  • TCP、IP、DNS协议

    目录 •IP 协议• TCP 协议 及 TCP协议的连接与释放(三次握手,四次挥手)•DNS协议• 各种协议与Ht...

  • 网络编程10_图解TCP连接中的3次握手和4次挥手

    TCP三次握手,四次挥手 什么是“三次握手,四次挥手”? TCP 是一种面向连接的单播协议,在发送数据前,通信双方...

  • 图解TCP:三次握手,四次挥手

    TCP三次握手,四次挥手 什么是“三次握手,四次挥手”? TCP 是一种面向连接的单播协议,在发送数据前,通信双方...

  • TCP/IP基础

    1.网络分层及对应的协议 3.TCP协议的三次握手及四次挥手三次握手及四次挥手的简图如下: 三次握手的过程: 第三...

  • 三次握手与四次挥手图文详解

    本文介绍TCP的三次握手与四次挥手,以及TCP 为什么是三次握手,而不是两次或四次?TCP名为传输控制协议,是一种...

  • 计算机网络知识目录

    · TCP/IP协议模型 TCP 三次握手四次挥手 四元组 · Http · Https

  • TCP协议详解

    TCP 前言网络模型简图 一、TCP协议结构 二、TCP三次握手与状态流转 三、TCP四次挥手与状态流转 前言 网...

  • day 27 操作系统基础网络章节

    TCP/UDP协议说明 TCP协议三次握手过程原理 TCP协议四次挥手过程原理 问题: TCP十一种状态集转换 三...

  • TCP/IP协议

    TCP/IP协议三次握手与四次握手流程解析 HTTP协议—— 简单认识TCP/IP协议 TCP/IP协议入门(一)...

  • 2017.4.6 tcp ip协议的区别

    说说TCP传输的三次握手四次挥手策略 为了准确无误地把数据送达目标处,TCP协议采用了三次握手策略。用TCP协议把...

网友评论

      本文标题:TCP协议——三次握手与四次挥手

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