物理层

物理层的功能不需要地址

image-20200716225644709

Frame 13: 74 bytes on wire (592 bits),74 bytes captured (592 bits)

13号帧,线路74字节,实际捕获74字节

Encapsulation type: Ethernet(1)  # 封装类型
Arrival Time: # 捕获日期和时间
Epoch Time:# 时间戳,另一种时间表示方式
[Time delta from previous captured frame: ]   #此包与前一包的时间间隔
[Time since reference or first frame: ]       #此包与第一帧的时间间隔
Frame Number: # 帧序号
Frame Length: # 帧长度
Capture Length: # 捕获长度 (通常情况下帧长度和捕获长度是相同的)
Protocols in frame:帧内封装的协议层次结构

EtherType 是以太帧里的一个字段,用来指明应用于帧数据字段的协议

链路层

主要目的:

1. 为IP模块发送和接收IP数据报
2. 为ARP模块发送ARP请求和接收ARP应答
3. 为RARP发送RARP请求和接收RARP应答

以太网和IEEE 802 封装

以太网是当今TCP/IP采用的主要的局域网技术,它采用一种称作CSMA/CD的媒体接入方法,其意思是带冲突检测的载波侦听多路接入。它的速率是10Mb/s,地址为48bit。

img

前导码(8B):在帧的前面插入8B,使接收端和发送端进行时钟同步,其中7B为前同步码,1B为帧开始定界符。

前同步码均为:10101010
帧开始定界符为:10101011,最后一个字节为告诉接收端“重要的帧开始了”

目的MAC(6B):包含目的主机网卡MAC地址或广播地址

源MAC(6B):发送端的网卡MAC地址

类型(2B):之处接收端收到该帧时,将该帧的载荷数据交付给谁处理

0x0800:IPv4

802.1Q标签:

CRC(4B):为了让接收端对接收到的帧进行差错检验(也做帧校验序列,FCS)

FCS: 该字段有 4 个字节,表示帧校验序列,用于校验帧是否出错。该字段内容已被网络设备滤去,抓包软件已无法获取。

帧间距:表示两个Frame之间间隔大小,设备发送完一个Frame后,并不会立刻发送下一个,而是等待IFG的间隔才会继续发送。

最小的帧间隙为12bytes,主要为了避免冲突(参考以太网的CSMA/CD特定)

抓包

image-20200718222220022

为什么wireshark抓不到帧尾的FCS 4字节和以太网V2的前序8字节

因为wireshark把这2个都给过滤了。

在物理层上网卡要先去掉前导同步码和帧开始定界符,然后对帧进行CRC检验,如果帧校验和错,就丢弃此帧。如果校验和正确,就判断帧的目的硬件地址是否符合自己的接收条件(目的地址是自己的物理硬件地址、广播地址、可接收的多播硬件地址等),如果符合,就将帧交“设备驱动程序”做进一步处理。这时我们的抓包软件才能抓到数据,因此,抓包软件抓到的是去掉前导同步码、帧开始分界符、FCS之外的数据

通过OmniPeek抓包查看FCS内容:
image-20200718224849805

环回

概念:使用Internet协议与同一计算机上的服务器通信。为实现这个目标,大多数实现支持一种工作在网络层的环回能力,通常使用一个虚拟的环回网络接口来实现。

MTU

概念

MTU:最大传输单元,MTU是数据链路层的概念,MTU限制的是数据链路层的payload,即上层协议的大小,如IP,ICMP等。

(涉及到的内容分片和重组)

OSI中的层 功能 TCP/IP协议族
应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet
表示层 数据格式化,代码转换,数据加密 没有协议
会话层 解除或建立与别的接点的联系 没有协议
传输层 提供端对端的接口 TCP,UDP
网络层 为数据包选择路由 IP,ICMP,RIP,OSPF,BGP,IGMP
数据链路层 传输有地址的帧以及错误检测功能 SLIP,CSLIP,PPP,ARP,RARP,MTU
物理层 以二进制数据形式在物理媒体上传输数据 ISO2110,IEEE802,IEEE802.2

作用:

为什么是1500?

标准的以太网数据帧大小是:1518,头信息有14字节,尾部校验和FCS占了4字节,所以真正留给上层协议传输数据的大小就是:1518 - 14 - 4 = 1500

抓包

  1. ping 2.2.2.2

    image-20200718232244004

  2. ping 2.2.2.2 -l 1

    数据大小设置为1,此时抓包可见Padding内容,使得payload达到最小要求(MTU–> 46,若加上头部信息,为64)

    image-20200718232325692

  3. ping 2.2.2.2 -l 2000

    出现了分片,分为1514及562两个报文

    image-20200718232934289

1514 = 6+6+2+20(IPv4头部)+1480(payload)