【从零开始的嵌入式生活】网络编程6——TCP、IP协议原理

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

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


文章目录

  • wireshark抓包工具
  • 数据包解析
    • 以太网头
      • IP头
    • TCP头
  • 写在最后


wireshark抓包工具

wireshark官网
【从零开始的嵌入式生活】网络编程6——TCP、IP协议原理_第1张图片
按照上图的方式进行基本的配置,选择对应的网卡,选择过滤端口就行了
注意的点:本地回环测试抓不到,因为压根没有走对应的网卡,所以我用了两台机器做测试。
【从零开始的嵌入式生活】网络编程6——TCP、IP协议原理_第2张图片
然后我们就可以进行抓取数据了,我们可以看到包含我发的ascii码的字符。

数据包解析

以太网头

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


IP头

【从零开始的嵌入式生活】网络编程6——TCP、IP协议原理_第3张图片
抓包工具抓到的也可以进行对应分析。
【从零开始的嵌入式生活】网络编程6——TCP、IP协议原理_第4张图片


TCP头

TCP是一种面向连接、可靠传输过程
TCP头的形式:
【从零开始的嵌入式生活】网络编程6——TCP、IP协议原理_第5张图片

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

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

【从零开始的嵌入式生活】网络编程6——TCP、IP协议原理_第6张图片

二、TCP的面向连接
【从零开始的嵌入式生活】网络编程6——TCP、IP协议原理_第7张图片
注意:

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

【从零开始的嵌入式生活】网络编程6——TCP、IP协议原理_第8张图片

写在最后

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


请添加图片描述

你可能感兴趣的:(嵌入式笔记,数据结构,嵌入式,linux)