学习嵌入式的第三十一天-数据结构-(2025.7.23)网络协议封装

今天的内容主要是网络协议以及常用工具的介绍。

协议头与数据封包/拆包

数据封包示例:

复制代码
MAC|IP|TCP|hello|
------------------------------------
IP数据报

IP头信息

  • 默认20字节

常用网络测试工具

  • telnet
  • netstat
  • ping
  • arp
  • wireshark
  • tcpdump
  • ssh2
  • secure crt

工具安装命令

bash 复制代码
sudo ufw disable
sudo apt-get install openssh-server openssh-client
sudo apt-get install wireshark

telnet使用

格式:telnet IP地址 端口

示例:telnet 192.168.1.1 8888

注意:未指定端口时默认使用23号端口。

netstat命令

bash 复制代码
netstat -anp
netstat -n      # 列出所有网络端口使用情况
netstat -n -t   # 列出所有TCP通信端口信息
netstat -n -u   # 列出所有UDP通信端口信息

数据封包与拆包流程

  • 发送端(Client):从应用层到接口层,逐层封装头部信息,最终形成一帧数据。
  • 接收端(Server):从接口层到应用层,逐层解析并校验,校验失败则丢弃数据包。
  • MTU:最大传输单元1500字节,由以太网硬件决定。

TCP连接流程

  1. 建立TCP连接
  2. 发送HTTP请求报文
  3. 接收HTTP响应报文
  4. 释放TCP连接

HTTP请求报文示例

http 复制代码
GET /?pcm=202.412_0_0.0.0&scm=thor.412_14-201000.0.0.0&spm=smpc.home.top-nav.1.1753253408321kU1roGy_1467 HTTP/1.1
Host: news.sohu.com
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/113.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip,deflate
Connection: keep-alive

协议头关键字段

  • 接口层:以太网V2 MAC帧格式
  • IP头 :20字节,包含双方IP地址
    • IP Flag
      • D标志位:是否允许分片
      • M标志位:是否为最后一片
    • TTL:生存周期,默认64,经网络节点递减至0时停止传递
  • TCP头 :20字节
    • TCP Flag
      • U:紧急数据(带外数据)
      • A:应答
      • P:当前帧包含应用层数据
      • R:连接复位
      • S:建立连接
      • F:断开连接
  • UDP头:8字节

网络工具用途

  • ssh:远程登录工具,需服务器IP、用户名和密码
  • ping:检测网络连通性
  • ifconfig:查看网卡IP地址
  • netstat -anp:查看Linux所有网络连接信息
相关推荐
Amazing_Cacao18 小时前
CFCA精品可可产区认证课程风土解析(美洲):打破风味堆叠的假象,建立时间轴上的层次展开阅读系统
学习
永远不会的CC18 小时前
浙江华昱欣实习(4月23日~ 4月19日)
后端·学习
爱上好庆祝18 小时前
学习js的第五天
前端·css·学习·html·css3·js
qiaozhangchi18 小时前
求解器学习笔记
笔记·python·学习
bendandawugui19 小时前
PCIe协议学习-PCIe的No Snoop Attr使用
学习
xian_wwq19 小时前
【学习笔记】网络与数据安全领域强制性标准
笔记·学习
24白菜头19 小时前
【无标题】
c++·笔记·学习·harmonyos
qq_5895681019 小时前
java基础学习,案例练习,即时通讯
java·开发语言·学习
吟安安安安19 小时前
适合短期冲刺的学习工作流(针对算法)
学习·算法
小何code19 小时前
人工智能【第8篇】监督学习实战:线性回归与逻辑回归算法详解(万字长文+完整代码实现)
人工智能·python·学习·机器学习·逻辑回归·线性回归