从数据包看网络协议

从数据包看网络协议

数据包是怎么流转的 – OSI 网络模型

Untitled.png

数据包在每一层的作用

Untitled.png

TCP/IP 模型更好地体现网络工作的逻辑方式

在 TCP/IP 模型中,四层包括:

  • 4. 应用程序层:这大致相当于 OSI 模型中的第 7 层。
  • 3. 传输层:对应于 OSI 模型中的第 4 层。
  • 2. 互联网层: 对应于 OSI 模型中的第 3 层。
  • 1. 网络访问层:结合了 OSI 模型中第 1 层和第 2 层的过程。

网络访问层:结合了 OSI 模型中第 1 层和第 2 层的过程

Untitled.png

帧头部 : 源 MAC 地址 目标 MAC 地址 Type

以太网MAC帧格式

Untitled.png

MTU(最大传输单元): MTU相当于在发寄快递的时候对包裹的限制,这个限制是不同的链路层对应的物理层的限制。

MAC帧中的数据长度规定为46-1500字节,ARP(地址解析协议)数据包的长度不够46字节要在后面补填充位,如果大于1500字节,必须要求网络层进行分片。
最大值1500称为以太网的最大传输单元(MTU)不同的网络类型有不同的MTU
如果一个数据包从以太网路由到拨号链路上,数据包长度大于拨号链路的MTU,则需要对数据包进行分片。

ARP协议: ARP是介于链路层到网络层之间的协议,它的作用是为了解析IP地址到MAC地址的映射

分析

Untitled.png

eth.type == 0x0800

eth.addr == ff:ff:ff:ff:ff:ff

互联网层: 对应于 OSI 模型中的第 3 层。

四元组 源地址:源端口 目标地址:目标端口

Netfilter 框架

iptables

NAT

使私有网络能够和公网互联。

Untitled.png

应用 LVS

传输层:对应于 OSI 模型中的第 4 层。

TCP && UDP

Untitled.png

TCP

Untitled.png

UDP

Untitled.png

TCP 三次握手 四次挥手 粘包 拆包

UDP

问题: 同一个端口能否同时监听 TCP 和 UDP

应用层协议设计 ,如果是你怎么来设计一个协议。

  1. 包分隔符:
  2. 包头
    1. 版本号
    2. 长度
    3. code
    4. 消息ID
    5. option
    6. 预留位
  3. 消息体
  4. 其他

请求包 / 响应包

Untitled.png

应用程序层:这大致相当于 OSI 模型中的第 7 层

HTTP 协议

Untitled.png

tcpdump 和 wireshark

libpocp

tcpdump -i eth0 port 80 -w result.pocp

tcpdump -i en0 udp -w upd.pcap

参考

什么是MTU(Maximum Transmission Unit)?MTU设置为多少合适?

数据链路层详解_HanSion.Z-CSDN博客_数据链路层

什么是网络层_以及网络传播协议中OSI模型与TCP/IP模型的区别 | Cloudflare

作者

张巍

发布于

2023-07-13

更新于

2023-07-13

许可协议

评论