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

socket抓包_64、抓包分析tcp与udp相关推荐

  1. 计算机网络实验二抓包协议分析,计算机网络实验-使用Wireshark分析TCP和UDP协议...

    <计算机网络实验-使用Wireshark分析TCP和UDP协议>由会员分享,可在线阅读,更多相关<计算机网络实验-使用Wireshark分析TCP和UDP协议(6页珍藏版)>请 ...

  2. 计算机网络实验 ——wireshark抓包简要分析TCP、UDP协议

    [计算机网络实验 --wireshark抓包简要分析TCP.UDP协议] (1)分析 TCPheader: Source Port:16bit源端口,数据发起者的端口号: Destination Po ...

  3. C#Socket编程详解(一)TCP与UDP简介

    一.TCP与UDP(转载) 1.TCP 1.1 定义 TCP(TransmissionControl Protocol)传输控制协议. 是一种可靠的.面向连接的协议(eg:打电话).传输效率低全双工通 ...

  4. 【转】C#Socket编程详解(一)TCP与UDP简介

    一.TCP与UDP 1.TCP 1.1 定义 TCP(TransmissionControl Protocol)传输控制协议. 是一种可靠的.面向连接的协议(eg:打电话).传输效率低全双工通信(发送 ...

  5. 【转】TCP、UDP数据包大小的限制

    [转]TCP.UDP数据包大小的限制 来自:https://blog.csdn.net/caoshangpa/article/details/51530685 1.概述 首先要看TCP/IP协议,涉及 ...

  6. IP、TCP、UDP数据包长度问题

      IP数据包长度问题总结 首先要看TCP/IP协议,涉及到四层:链路层,网络层,传输层,应用层. 其中以太网(Ethernet)的数据帧在链路层 IP包在网络层 TCP或UDP包在传输层 TCP或U ...

  7. Socket、Tcp、Udp 概念区分

    一.概述 TCP(传输控制协议)和UDP(用户数据报协议是网络体系结构TCP/IP模型中传输层一层中的两个不同的通信协议. TCP:传输控制协议,一种面向连接的协议,给用户进程提供可靠的全双工的字节流 ...

  8. 关于网络编程中MTU、TCP、UDP优化配置的一些总结

    首先要看TCP/IP协议,涉及到四层:链路层,网络层,传输层,应用层.  其中以太网(Ethernet)的数据帧在链路层 IP包在网络层 TCP或UDP包在传输层 TCP或UDP中的数据(Data)在 ...

  9. 什么是TCP和UDP?—Vecloud微云

    是否快速完整地传输数据取决于您使用的是UDP还是TCP网络协议.他们俩都做相同的工作,但是方式不同,一种更可靠,另一种更快. TCP和UDP的定义 TCP(传输控制协议)和UDP(用户数据报协议)都是 ...

最新文章

  1. 求求你别再用 System.out.println 了!!
  2. 正则表达式在线自动生成器
  3. COCOS学习笔记--Cocos引擎渲染流程
  4. 嵌入式数据库 SQLite 浅析
  5. 关于node.js和npm 和nvm_byKL
  6. java两个数组中不同的数字_java将两个数组中不同的数字去掉一个剩下的保存到一个新的数组中...
  7. spring FileCopyUtils类 上传图片
  8. hdu 4323 Magic Number dp 多校联合赛(三)第四题
  9. ReentrantLock与Condition构造有界缓存队列与数据栈
  10. 方法:如何解决NetShareEnum返回ERROR_NO_UNICODE_TRANSLATION(1113)的问题
  11. 大学计算机信息技术实验与测试教程第2版,大学信息技术实验指导
  12. ERP采购管理 金蝶
  13. 【 华为云计算专家 HCIE-Cloud Computing V3.0 预发布】
  14. 微信小程序保存图片到手机相册(封装全局使用)
  15. 校园外卖系统 - 「农职邦」微信原生云开发小程序
  16. 一个在线测试正则表达式的网站推荐
  17. 7-1 房屋分拆 (25 分)(C语言版)
  18. 汉明码(海明码)计算,模板套用易懂!
  19. HDU - 3556 - Continued Fraction
  20. HDU 1234 开门人和关门人

热门文章

  1. 附录:更多集合操作命令
  2. 超简单的分布式ID生成方案!美团开源框架介绍
  3. Win7搭建NodeJs开发环境以及HelloWorld展示—图解
  4. 不创建 sequence 自增字段
  5. 近百家公司高级运维的面试题汇总
  6. c++实现双向链表操作
  7. LeetCode——1721.交换链表中的节点
  8. 彩票模拟选号程序java_java课程设计-彩票购买抽奖程序
  9. uniapp 可视化开发_uniapp的简单安装流程使用教程
  10. html文件打开多出很多数字,【求助】页面上显示几个数字,打开html的时候希望能滚动起来...