数据链路和帧

链路就是从一个结点到相邻结点的一段物理线路,而中间没有任何其他的交换结点。

数据链路:就是链路加上必要的通信协议。

帧:数据链路层的协议数据单元

帧 = 网络层协议数据单元(IP数据报)+首部+尾部

数据链路层:有三个基本问题:封装成帧,透明传输,差错检测

封装成帧:一段ip数据包的前后分别添加首部和尾部

所有在互联网上传送的数据都以分组(ip数据包)为传送单位。网络层的ip数据报传送到数据链路层就成为帧的数据部分。

控制字符SOH放在一帧的最前面,表示帧的首部开始。另外一个控制字符EOT表示帧的结束。他们的十六进制分别是01,04 SOH和EOT并S,O,H三个字符。

透明传输:为了解决透明传输问题,就必须设法使数据中可能出现的控制字符‘SOH’和‘EOT’在接受端不被解释为控制字符。在"SOH"和“EOT”的前面插入一个转义字符“ESC”

3.差错检测:验证码检测

最大传送单位:MTU是数据链路层的帧可以负载的数据部分的最大长度(1500),而不是帧的总长度。

MAC帧数据格式:

wireshark 帧解析流程 wireshark数据帧_wireshark 帧解析流程

注(2个字节类型代表的值):

IP4:0x0800

IP6 :0x86DD

ARP:0x0806

如果支持虚拟局域网 可能有多4个字节(并不一定是14个字节 还可能是18个字节)

如何判断呢

检测MAC帧的源地址字段后面的两个字节的值是0x8100,就知道现在插入了4个字节的VLAN标记。

wireshark分析:

wireshark 帧解析流程 wireshark数据帧_wireshark 帧解析流程_02

Frame 5: 268 bytes on wire (2144 bits), 268 bytes captured (2144 bits) on interface 0                         #5号帧,线路268字节,实际捕获268字节

    Interface id: 0                                                                                           #接口id

    Encapsulation type: Ethernet (1)                                                                          #封装类型

    Arrival Time: Jun 11, 2015 05:12:18.469086000                                           中国标准时间      #捕获日期和时间

    [Time shift for this packet: 0.000000000 seconds]

    Epoch Time: 1402449138.469086000 seconds

    [Time delta from previous captured frame: 0.025257000 seconds]   #此包与前一包的时间间隔

    [Time since reference or first frame: 0.537138000 seconds]              #此包与第一帧的时间间隔

    Frame Number: 5                                                                                          #帧序号

    Frame Length: 268 bytes (2144 bits)                                                         #帧长度

    Capture Length: 268 bytes (2144 bits)                                                      #捕获长度

    [Frame is marked: False]                                                                              #此帧是否做了标记:否

    [Frame is ignored: False]                                                                              #此帧是否被忽略:否

    [Protocols in frame: eth:ip:tcp:http]                                                             #帧内封装的协议层次结构

    [Number of per-protocol-data: 2]                                                                          #

    [Hypertext Transfer Protocol, key 0]

    [Transmission Control Protocol, key 0]

    [Coloring Rule Name: HTTP]                                                                       #着色标记的协议名称

[Coloring Rule String: http || tcp.port == 80]                                                        #着色规则显示的字符串

(2)数据链路层以太网帧头部信息

Ethernet II, Src: Giga-Byt_c8:4c:89 (1c:6f:65:c8:4c:89), Dst: Tp-LinkT_f9:3c:c0 (6c:e8:73:f9:3c:c0)

Destination: Tp-LinkT_f9:3c:c0 (6c:e8:73:f9:3c:c0)                                         #目标MAC地址

    Source: Giga-Byt_c8:4c:89 (1c:6f:65:c8:4c:89)                                        #源MAC地址

    Type: IP (0x0800)