news 2026/4/16 15:59:17

学习TCP/IP的第7步:设计TCPIP程序要注意的事项

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
学习TCP/IP的第7步:设计TCPIP程序要注意的事项

TCP/IP建立连接需要进行“三次握手”,断开连接需要进行“四次挥手”。面试术语。
“三次握手”,其过程是:客户端第1步发送“SYN同步数据包”,第2步接收“SYN+ACK
数据包”,第3步发送“ACK数据包”。

“四次挥手”,其过程是:客户端发送“FIN+ACK终止数据包”,客户端接收
“ACK应答数据包”,客户端接收“FIN+ACK终止数据包”,客户端发送“ACK应答数据包”。

设计TCPIP程序时,要注意的事项:
1、TCP交换数据是根据“源端口和目的端口”进行交付。
2、SYN是Synchronize Sequence Numbers的缩写,就是要实现“序列号同步”。

建立连接需要进行“三次握手”,其过程是:第1步发送“SYN同步数据包”,第2步接收“SYN+ACK数据包”,第3步发送“ACK数据包”。
3、ACK是Acknowledgment的缩写,就是“确认”,表示应答。
4、FIN是Finish的缩写,就是“通知对方,本端要关闭了”。
断开连接需要进行“四次挥手”,其过程是:客户端发送“FIN+ACK终止数据包”,客户端接收“ACK应答数据包”,客户端接收“FIN+ACK终止数据包”,客户端发送“ACK应答数据包”。

TCP协议规定,主动关闭连接的一方需要要处于TIME_ WAIT状态,等待两个MSL(maximum segment lifetime)的时间后,才能回到CLOSED状态。
MSL在RFC1122中规定为2分钟。但是由于各个操作系统的实现不同, 在Centos7/Ubuntu上默认配置的值是60秒
在Linux中,可以通过输入“cat /proc/sys/net/ipv4/tcp_fin_timeout”查看msl的值。
关闭服务器后,如果客户端立即使用“相同的端口”建立连接,就会失败。是因为服务器出于TIME_WAIT状态,端口还被占用着呢。其次,客户端连接到服务器后,如果客户端再使用“相同的端口”建立连接,也会失败,也是因为端口还占用
在设计程序时,要注意,我们可以换个端口连接到服务器。这就是服务器不主动连接客户端的原因,因为服务器的端口是固定。或者服务器等待客户端超时断开连接,也是可以的,但不建议这么设计程序。
5、PSH是Push的缩写,推送的意思,提示“接收方应用程序”立刻从“接收方的TCP缓冲区”把数据读走。
“接收方的TCP缓冲区”满的处理办法
1)、当“接收方的TCP缓冲区”由满到腾出空间后,接收方会主动向发送方发出一个报文,并把“它的缓存窗口大小”发送给我。
2)、当“接收方的TCP缓冲区”满了的时候,“发送方”就要定时的向“接收方”发送“不携带数据的报文”询问,直到收到“它的缓存窗口大小”。
在设计程序时要注意这么处理“拥塞”。
6、RST是Reset的缩写,以时是“重置”,就是“发送方”要求“重新建立连接”,然后再发送“SYN同步数据包”,重新进行“三次握手”。

发送“RST数据包”后,发送方会立即关闭连接,而不需要等待对方的确认。接收方收到RST包后,也会立即关闭连接
“三次握手”的过程是:第1步发送“SYN同步数据包”,第2步接收“SYN+ACK数据包”,第3步发送“ACK数据包”。如果接收方没有收到第3步发送“ACK数据包”,就需要发送RST数据包,要求“重新建立连接”
这在设计程序时,要注意。
7、URG是Urgent的缩写,意思是“紧急”。如果紧急指针有效,就是“收到的数据”要被优先处理,相当于插队。
当发送方发现“前面发送的数据”错误了,要取消上传,这时就要发送“紧急数据”进行暂停。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 13:01:05

Galen Framework在响应式布局自动化验证中的全流程实践

响应式布局测试已成为现代Web开发的关键环节,尤其在多设备环境下确保用户体验一致性方面。Galen Framework作为基于Selenium的开源工具,专为解决这一问题而设计,能高效验证元素位置、尺寸及跨设备兼容性。本文从测试从业者视角出发&#xff0…

作者头像 李华
网站建设 2026/4/16 11:54:58

10款AI工具帮你轻松搞定数学建模论文复现难题

数学建模论文的复现与排版往往时间紧迫、任务繁重,但借助AI工具可以显著提升效率。通过对10款热门AI论文写作工具的评测,发现部分工具能自动优化公式排版、生成代码框架,甚至辅助模型复现,尤其适合需要快速完成高质量论文的场景。…

作者头像 李华
网站建设 2026/4/16 11:52:07

Selenium 截图与元素高亮定位技巧

在 Selenium 自动化测试与网页操作中,元素定位失败和测试结果溯源难是两大高频痛点:元素因样式遮挡、动态加载、定位表达式不精准导致定位失败,测试用例执行异常时无法快速还原现场。而元素高亮定位能直观标记目标元素位置,大幅提…

作者头像 李华
网站建设 2026/4/16 2:09:00

Selenium 与 BeautifulSoup 结合解析页面

在网页数据采集的场景中,静态页面解析可直接用 BeautifulSoup 高效完成,但面对大量采用 JavaScript 动态渲染的现代网页(如异步加载数据、动态生成 DOM 节点),单纯的 BeautifulSoup 因无法执行 JS、只能获取原始静态 H…

作者头像 李华
网站建设 2026/4/16 13:34:14

Excel金钱函数实战:用DOLLAR/RMB函数实现智能数字格式化

在处理财务数据或业务报表时,你是否经常需要将数字转换为规范的货币格式?Excel中的DOLLAR和RMB函数不仅能完成货币格式化,还能衍生出许多意想不到的实用技巧。 一、金钱函数基础解析 DOLLAR函数语法 DOLLAR(数字, [小数位数]) 数字&#xff…

作者头像 李华
网站建设 2026/4/16 12:08:28

8款AI工具革新软件工程毕业设计:智能化论文撰写与代码实现

文章总结表格(工具排名对比) 工具名称 核心优势 aibiye 精准降AIGC率检测,适配知网/维普等平台 aicheck 专注文本AI痕迹识别,优化人类表达风格 askpaper 快速降AI痕迹,保留学术规范 秒篇 高效处理混AIGC内容&…

作者头像 李华