TCP建立连接的三次握手

简介: 看了点网络的书,回顾下TCP的连接细节,记一下

首先了解下TCP协议所在网络分层体系的位置
image.png
以TCP/IP参考模型为例,可以看到TCP是作用在传输层的

TCP的特点

(1)TCP提供的是面向连接、可靠的数据流服务,数据传输完毕会释放连接
(2)TCP提供的是端到端的通信,不支持多播和广播
(3)通过超时重传、滑动窗口等机制保证字节流数据传输的稳定性和正确性

TCP的“三次握手”

image.png

“三次握手”详细过程

(1)服务端的TCP进程开启,保持监听状态,等待TCP请求
(2)客户端发送TCP连接请求报文,报文的内容有SYN和序列号seq
(3)服务端接收到客户端的请求,返回一个请求确认报文,报文内容有SYN、ACK、seq、ack
(4)客户端接收到服务端的请求确认,知道服务端愿意接受连接,再发送一个确认报文,报文内容有ACK、seq、ack
(5)服务端收到客户端确认报文,成功建立连接通道。

“三次握手”为什么不能两次握手

考虑一种场景:
如果某次客户端的tcp请求在某个节点延迟了,触发了超时重传机制,当重传的请求与服务端成功建立了连接,那么当这个延迟的请求到达服务端时,服务端就会建立连接状态,但客户端却没有数据要发送了。所以第三次握手是必要的。
image.png

使用wireshark抓包分析三次握手

  • 打开Wireshark,选择过滤器,并开始捕获

image.png

  • 点开浏览器输入www.baidu.com,然后关闭捕获

image.png

  • 输入条件过滤下不要的数据包
tcp and ip.addr==180.101.49.13
可以通过cmd查看百度域名

可以看到最上面这三个数据包分别是三次握手
image.png
点进第一个数据包可以看到报文的详细内容
image.png

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
缓存 网络协议 安全
TCP通信机制:三次握手、四次挥手、滑动窗口
TCP通信机制:三次握手、四次挥手、滑动窗口
618 1
TCP通信机制:三次握手、四次挥手、滑动窗口
|
网络协议
TCP/UDP相关-三次握手四次挥手以及为什么三次握手-如何实现可靠UDP传输
TCP/UDP相关-三次握手四次挥手以及为什么三次握手-如何实现可靠UDP传输
111 0
|
缓存 网络协议 网络架构
四十、TCP协议的特点、TCP报文段格式和TCP的连接管理
四十、TCP协议的特点、TCP报文段格式和TCP的连接管理
四十、TCP协议的特点、TCP报文段格式和TCP的连接管理
|
缓存 网络协议 安全
TCP三次握手四次挥手及常见问题解决方案
TCP三次握手四次挥手及常见问题解决方案
TCP三次握手四次挥手及常见问题解决方案
|
网络协议
计算机网络学习27:TCP连接与连接释放
客户端和服务端都是先建立传输控制模块
计算机网络学习27:TCP连接与连接释放
|
网络协议 测试技术
软件测试|TCP三次握手四次挥手
软件测试|TCP三次握手四次挥手
110 0
软件测试|TCP三次握手四次挥手
|
网络协议
TCP三次握手与四次挥手
TCP三次握手与四次挥手
129 0
|
网络协议 网络性能优化
计算机网络【UDP与TCP协议(三次握手、四次挥手)】(下)
计算机网络【UDP与TCP协议(三次握手、四次挥手)】(下)
计算机网络【UDP与TCP协议(三次握手、四次挥手)】(下)
|
缓存 网络协议 网络性能优化
计算机网络【UDP与TCP协议(三次握手、四次挥手)】(上)
计算机网络【UDP与TCP协议(三次握手、四次挥手)】(上)
计算机网络【UDP与TCP协议(三次握手、四次挥手)】(上)
|
网络协议
Flutter TCP连接
Flutter TCP连接