请添加图片描述
今天继续网络编程,基本的TCP和UDP实现方式我们已经可以实现了,接下来就是学习一些更加底层的原理了,我尽量快点写0.0。希望有人愿意跟我一起学习呀。

🧑🏻作者简介:一个学嵌入式的年轻人
✨联系方式:2201891280(QQ)
📔源码地址:https://gitee.com/xingleigao/study_qianrushi
全文大约阅读时间: 60min



wireshark抓包工具

wireshark官网
在这里插入图片描述
按照上图的方式进行基本的配置,选择对应的网卡,选择过滤端口就行了
注意的点:本地回环测试抓不到,因为压根没有走对应的网卡,所以我用了两台机器做测试。
在这里插入图片描述
然后我们就可以进行抓取数据了,我们可以看到包含我发的ascii码的字符。

数据包解析

以太网头

请添加图片描述
其中主要的字段如上图所示,看抓包工具相关的信息,也是对应的。
在这里插入图片描述


IP头

请添加图片描述
抓包工具抓到的也可以进行对应分析。
在这里插入图片描述


TCP头

TCP是一种面向连接、可靠传输过程
TCP头的形式:
请添加图片描述

一、TCP的可靠传输:确认和重发机制

  1. TCP将所有需要发送的数据进行了编号,并且通过滑动窗口维护一个发送的列表,等到前面的所有数据被收到之后滑动窗口才能前移。
  2. 发送时从当前数据位置,发送windows大小的数据,如果到时间未收到ACK就会重发。
  3. 确认方式位如果收到ack = 800意味着0-799都已经接收,期待着第800号元素。

请添加图片描述

二、TCP的面向连接
请添加图片描述
注意:

  1. 四次挥手偶尔抓包只有三次,因为同方向的ACK和FIN可以一起发送。
  2. 一定要标识客户端和服务器,三次握手是client发起,四次挥手不一定谁发起。

在这里插入图片描述

写在最后

最近有点懒,一定尽快更,长按催更见,前面的应用较多大家跟我一起改变世界。啊哈哈哈,求求大家给个三连再走吧,求求你们了0.0


请添加图片描述

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐