TCP三次握手四次挥手

TCP是什么?

TCP是面向连接的协议,它基于运输连接来传送TCP报文段,TCP运输连接的建立和释放,是每一次面向连接的通信中必不可少的过程。

TCP运输连接有以下三个阶段:

  • 建立TCP连接,也就是通过三报文握手来建立TCP连接。
  • 数据传送,也就是基于已建立的TCP连接进行可靠的数据传输。
  • 释放连接,也就是在数据传输结束后,还要通过四报文挥手来释放TCP连接。

TCP的运输连接管理就是使运输连接的建立和释放都能正常的进行。

TCP的一些控制位

SYN:同步位,为1时,表示希望建立连接,并且初始化序列号

ACK:确认位,为1时,确认有效,除了建立连接开始的syn包时,其他包该位必须为1

seq:序号,第一个seq是随机产生的,后面的序号为前面的序号+1

ack:确认号,为序号+1

RST:复位位,为1时,表示出现异常,强制连接断开

FIN: 终止位,为1时,希望正常断开连接,通信双方互相交换FIN,表示可以断开

TCP连接建立

三次握手是 TCP 连接的建立过程。在握手之前,主动打开连接的客户端结束 CLOSE 阶段,被动打开的服务器也结束 CLOSE 阶段,并进入 LISTEN 阶段。随后进入三次握手阶段:

① 首先客户端向服务器发送一个 SYN 包,并等待服务器确认,其中:

标志位为 SYN=1,表示请求建立连接;

序号为 Seq = x(随机产生);

随后客户端进入 SYN-SENT 阶段。

② 服务器接收到客户端发来的 SYN 包后,对该包进行确认后结束 LISTEN 阶段,并返回一段 TCP 报文,其中:

标志位为 SYN=1 和 ACK=1,表示确认客户端的报文 Seq 序号有效,服务器能正常接收客户端发送的数据,并同意创建新连接

序号为 Seq = y(随机产生);

确认号为 ack = x + 1,表示收到客户端的序号 Seq 并+ 1 作为自己确认号 ack 的值,随后服务器端进入 SYN-RVCD 阶段。

③ 客户端接收到发送的 SYN + ACK 包后,明确了从服务器到客户端的数据传输是正常的,从而结束 SYN-SENT 阶段。并返回最后一段报文。其中:

标志位为 ACK=1,表示确认收到服务器端同意连接的信号;

序号为 Seq = x + 1,表示收到服务器端的确认号 ack,并将其值作为自己的序号值;

确认号为 ack= y + 1,表示收到服务器端序号 seq,并将其值加 1 作为自己的确认号 Ack 的值。

随后客户端进入 ESTABLISHED。

当服务器端收到来自客户端确认收到服务器数据的报文后,得知从客户端到服务器的数据传输是正常的,从而结束 SYN-RECV 阶段,进入 ESTABLISHED 阶段,从而完成三次握手。

注意:这里的第三次握手是可以携带数据的,因为发送端已经确认了服务端有接受和发送的能力。而其他两次并没有确认对方的接受能力

是否可以使用"两报文握手"建立连接?

为什么TCP客户进程最后还要发送一个普通的TCP确认报文段?

考虑这样一种情况,TCP客户进程发出一个TCP连接请求报文段,但该报文段在某些网络节点长时间滞留了,这必然会造成该报文段的超时重传。

假设重传的报文段被TCP服务器进程正常接收,TCP服务器进程给TCP客户进程发送一个TCP连接请求确认报文段,并进入连接已建立状态。

避免旧的重复连接初始化造成混乱

参考

深入浅出TCP三次握手 (多图详解)_tcp三次握手具体报文-CSDN博客

TCP三次握手(含常见面试题)详解-CSDN博客

相关推荐
梁辰兴26 分钟前
计算机网络基础:虚拟专用网
服务器·网络·计算机网络·vpn·虚拟专用网·计算机网络基础·梁辰兴
白狐_7982 小时前
【计网全栈通关】第 5 篇:网络层核心计算——IP 地址规划、子网划分与 CIDR
网络协议·tcp/ip·php
Java程序之猿2 小时前
Linux使用U盘安装centos及报错You might want to saue “/run/initramfs/rdsosreport.txt“ 处理
linux·运维·服务器
极安代理2 小时前
HTTP代理是什么?作用与场景全面解析
网络·网络协议·http
就爱吃香菜12 小时前
跨越网络的连接艺术:实战基于 SSE 传输层的远程 MCP 服务部署,实现云端 AI 与本地资产联动
网络·人工智能
L1624763 小时前
通用 Linux 系统存储选型总手册(MBR ,GPT,ext4,xfs)
linux·服务器
明洞日记3 小时前
【软考每日一练008】Web 服务器性能测试指标
运维·服务器·操作系统·软考
以太浮标3 小时前
华为eNSP模拟器综合实验之- AC+AP无线网络调优与高密场景
java·服务器·华为
好多渔鱼好多3 小时前
【IPC】 RTSP Server 如何实现推流
服务器·ipc·rtsp server·rtsp 推流实现
北京耐用通信3 小时前
耐达讯自动化Profibus总线光纤中继器在轨道交通信号系统中的应用
网络·科技·物联网·自动化·信息与通信