专业的编程技术博客社区

网站首页 > 博客文章 正文

64、抓包分析tcp与udp

baijin 2024-10-19 02:45:09 博客文章 7 ℃ 0 评论

从前面的两个案例,我们了解到了如何通过原生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在传输过程中,不需要维护连接.直接发送

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表