如何解压缩帧以太网的工作原理

时间:2018-01-28 11:09:07

标签: python sockets

我正在使用socket并尝试了解如何找到良好的格式字符来解压以太网帧。

例如,要解压缩以太网帧,我们可以这样做:

struct.unpack("! 6s 6s H", data[0:14])

我们怎么知道它是“6s 6s H”?

1 个答案:

答案 0 :(得分:0)

以太网数据包由

组成
  • 目的地MAC地址
  • 源MAC地址
  • 有效载荷
  • 填充

MAC地址长度为48位或6个字节。 Type是一个1字节的字段。

如果我对这些标题有疑问,我会使用Wireshark并查看其解释。他们还有wiki来解释结构。

在字符串中,para1 para2 c1 c2 c3 c4 c5 c6 mean ast abc 3 4 NR 6 8 6 20.8 ast pqr 4 8 2 5 3 2 4 bc sd -0.3 2 0.4 NR NR 3 3 告诉在解包时使用标准大小和网络字节序(大端),!需要6个字符来构建目标地址的字符串,6s需要源地址和6s采用类型的无符号短整数。

您可以在7.3.2.2 of the Python documentation7.3.2.1

中找到格式字符