TCP连接建立与终止,及状态转换
2024-10-20 03:33:32
TCP连接建立
三路握手
三路握手发生在客户端发起connect请求到服务端accept返回中,在三路握手发生前,服务端
必须准备好接受外来连接,这通常通过服务端调用 (socket、bind、listen) 这三步来完成,
我们称之为被动打开(a),客户端通过调用 (connect) 发起主动打开。
三路握手发生的具体过程:
1.在客户端发起主动打开之后,客户端TCP发送一个SYN(同步)分节,告诉服务器,客户将在待
建立的连接中发送的数据的初始序列号。
2.服务器ACK确认客户的SYN,同时发送一个自己的SYN分节,其中包含服务器将在同一连接中
发送的数据的初始序列号。
3.客户ACK服务器的SYN。
SYN:同步分节,通常不携带数据,其所在的IP数据报只含有一个IP首部,一个TCP首部以及可
能的TCP选项
能的TCP选项
TCP连接终止
具体过程:
1.某个进程首先调用close,执行主动关闭,并且发送一个FIN分节
2.对端接收到这个FIN之后执行被动关闭。这个FIN由TCP确认ACK,并作为一个文件结束符传递
给进程。
3.接收到这个文件结束符的进程将调用close关闭它的套接字,并发送一个FIN
4.接收到这个FIN的原发送端TCP确认ACK这个FIN。
TCP状态转换图
最新文章
- angularjs指令系统系列课程(5):控制器controller
- three.js 源码注释(三十九)Light/HemisphereLight.js 半球光、 自然光(天光效果)
- sublime快捷键-for mac
- 佛山Uber优步司机奖励政策(2月1日~2月7日)
- ReSharper C++计划上市
- NUint使用详解及Visual Studio配置
- Hadoop的初步理解
- 在线制作css动画——cssanimate
- jar包的MANIFEST.MF文件
- CMDB-(paramiko模块 -- 实现ssh连接)
- Creating A Moddable Unity Game
- Android使用VideoView播放本地视频及网络视频Demo
- 项目中jsp的存放
- [题解] CodeM美团点评编程竞赛资格赛题
- windows2008r2共享文件夹设置方法
- 配置Linux防火墙
- Azure .NET Libraries 入门
- 每天一个Linux命令 - 【chkconfig】
- oracle学习篇六:子查询
- 注册中心eureka