数据链路和帧
链路就是从一个结点到相邻结点的一段物理线路,而中间没有任何其他的交换结点。
数据链路:就是链路加上必要的通信协议。
帧:数据链路层的协议数据单元
帧 = 网络层协议数据单元(IP数据报)+首部+尾部
数据链路层:有三个基本问题:封装成帧,透明传输,差错检测
封装成帧:一段ip数据包的前后分别添加首部和尾部
所有在互联网上传送的数据都以分组(ip数据包)为传送单位。网络层的ip数据报传送到数据链路层就成为帧的数据部分。
控制字符SOH放在一帧的最前面,表示帧的首部开始。另外一个控制字符EOT表示帧的结束。他们的十六进制分别是01,04 SOH和EOT并S,O,H三个字符。
透明传输:为了解决透明传输问题,就必须设法使数据中可能出现的控制字符‘SOH’和‘EOT’在接受端不被解释为控制字符。在"SOH"和“EOT”的前面插入一个转义字符“ESC”
3.差错检测:验证码检测
最大传送单位:MTU是数据链路层的帧可以负载的数据部分的最大长度(1500),而不是帧的总长度。
MAC帧数据格式:
注(2个字节类型代表的值):
IP4:0x0800
IP6 :0x86DD
ARP:0x0806
如果支持虚拟局域网 可能有多4个字节(并不一定是14个字节 还可能是18个字节)
如何判断呢
检测MAC帧的源地址字段后面的两个字节的值是0x8100,就知道现在插入了4个字节的VLAN标记。
wireshark分析:
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)