网站首页 > 博客文章 正文
从前面的两个案例,我们了解到了如何通过原生socket函数分别创建tcp和udp服务,以及通过相应的客户端进行连接测试。在本文中,我们将继续深入地去了解tcp和udp的差别,和思考它们两者如何应该多个客户端请求
1、抓包分析
这里采用tcpdump抓包工具,来分析通信中,数据包的流向。
2、分析tcp
2.1、执行之前tcp服务的案例代码
- 启动tcp服务
- 通过tcpdump,监控tcp服务的端口1234
- 执行tcp客户端代码脚本
2.2、执行结果
2.3、tcpdump抓包结果
2.4、分析抓包结果
符号>代表数据流向。如 a>b,表示a向b发送数据
- 序号1-4,这四个数据包,是建立socket连接的三次握手
- 序号5-6,这两个数据包,是客户端往tcp服务端发送数据"hello world"
- 序号7-8,这两个数据包,是tcp服务端往客户端发送数据"hello world"
- 序号9-12,这四个数据包,是释放socket连接的四次握手
2.5、tcp如何保证可靠性
前面的文章提到,tcp是提供端到端的,可靠性的传输层协议。这上面的抓包截图中,我们可以看到,通信双方通过多发一个"确认"数据包,来保证数据接收的可靠性.
3、分析udp
3.1、执行之前udp服务的案例代码
- 启动udp服务
- 通过tcpdump,监控udp服务的端口1235
- 执行udp客户端代码脚本
3.2、执行结果
3.3、tcpdump抓包结果
3.4、分析抓包结果
- 序号1是客户端往udp服务端发送数据"Ping !"
- 序号2是udp服务端往客户端发送数据"iamasb"
4、总结
4.1、开启服务
tcp和udp都是需要服务提供者,先绑定本地ip:port
4.2、传输可靠性
tcp要优于udp.这是通信双方在传输真正的数据之前,需要在错综复杂的网络环境中,建立起一条虚拟的"可靠"连接。其次,在发送数据环节,发送者需要收到接收者的"确认"数据包后,才能继续发送,否则会进行重发
4.3、传输效率
udp要优于tcp.这是udp在传输过程中,不需要维护连接.直接发送
- 上一篇: 四大网络抓包神器,总有一款适合你
- 下一篇: 「抓包分析」采集豆瓣排名数据的按键精灵脚本源码
猜你喜欢
- 2024-10-19 IP和TCP抓包分析实验(ipv4抓包实验)
- 2024-10-19 抓包分析之蠕虫网络行为特征(蠕虫抓取软件)
- 2024-10-19 wireshark抓包工具的使用详解(wireshark抓包工具的工作原理)
- 2024-10-19 西门子S7协议抓包分析并用代码实现(二)
- 2024-10-19 玩玩抓包(七)巧用“科来”,让分析更轻松
- 2024-10-19 WireShark抓包报文结构分析(wiresharkicmp抓包分析)
- 2024-10-19 wireshark及抓包分析助力网络工程师甩锅、TCP滑动窗口机制
- 2024-10-19 SSL/TLS握手详解抓包分析(ssl握手失败是什么意思)
- 2024-10-19 记一次抓包的最基本原理(抓包程序原理)
- 2024-10-19 如何使用Wireshark捕获和分析网络数据包?
你 发表评论:
欢迎- 367℃用AI Agent治理微服务的复杂性问题|QCon
- 358℃初次使用IntelliJ IDEA新建Maven项目
- 357℃手把手教程「JavaWeb」优雅的SpringMvc+Mybatis整合之路
- 351℃Maven技术方案最全手册(mavena)
- 348℃安利Touch Bar 专属应用,让闲置的Touch Bar活跃起来!
- 346℃InfoQ 2024 年趋势报告:架构篇(infoq+2024+年趋势报告:架构篇分析)
- 345℃IntelliJ IDEA 2018版本和2022版本创建 Maven 项目对比
- 342℃从头搭建 IntelliJ IDEA 环境(intellij idea建包)
- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)