# 以太网网络协议 Ethernet II和IEEE 802.3的帧格式 一. Experimetal Ethernet 1973至1980年,是实验性以太网(Experimental Ethernet)研发阶段。这时的通信线路材质用的是同轴电缆,速度可达367k bytes/s 二. Ethernet Version 1 1980至1981年,第一代以太网技术被Digital,Intel,Xerox三家公司联合研发出来了,第一代以太网技术以这三家公司的首字母组合来命名,即DIX,版本1.0 。更为熟知的名字是 以太网可以工作在更粗的同轴电缆上,速度可达1.25M bytes/s 。 三. Ethernet Version 2 在1982年,DIX1.0被DIX2.0取代了,其标准一直沿用至今,也称第二代以太网. 目前主要有两种格式的以太网帧:Ethernet II(DIX 2.0)和IEEE 802.3。 IP、ARP、EAP和QICQ协议使用Ethernet II帧结构,而STP协议则使用IEEE 802.3帧结构。 Ethernet II是由Xerox与DEC、Intel(DIX)在1982年制定的以太网标准帧格式,后来被定义在RFC894中。 IEEE 802.3是IEEE 802委员会在1985年公布的以太网标准封装结构(可以看出二者时间相差不多,竞争激烈),RFC1042规定了该标准(但终究二者都写进了IAB管理的RFC文档中)。 下图分别给出了Ethernet II和IEEE 802.3的帧格式: Ethernet II: 8(Preamble) + 6(DST mac) + 6(SRC mac) + 2(type) + DATA + 4 (FCS) IEEE 802.3: 7 + 1 (Preamble 0xAB) + 6(DST mac) + 6(SRC mac) + 2(length) + DATA + 4 (FCS) DST Addr:与Ethernet II 相同 SRC Addr:与Ethernet II 相同 Length:该位置的长度为2个字节的字段含义与Ethernet II 有所不同。 在Ethernet II 中,代表以太网协议类型(EtherType)。而在802.3中,有多种含义。当其值小于等于0x05DC,即十进制的1500时,代表这是个802.3 帧,且此帧的data长度为Length。 这也规定了802.3帧中数据最大不能超过1500 Bytes;如果大于0x05DC,代表这是Ethernet II 格式的帧,而Ethernet II 格式的帧中此位置对应的字段为EtherType,代表以太网类型。 Data:数据字段,封装的上层数据,最多1500字节,最少46个字节,如果上层数据不够46个字节,会自动填充到46个字节。46个字节的数据 + 12字节的Mac地址 + 2字节Type Field + 4字节校验和 = 64 字节。 为什么Ethernet II 要规定一个帧数据包最小要为64字节呢?这个涉及到冲突检测的问题,具体原因可以自行搜索关键字“以太网最小帧长度” Ethernet -> IP (ADDR) -> ICMP( ping ) | TCP | UDP (PORT) Ethernet -> ARP IP: 1:版本号 4 bit 2:头长度 4 bit 3:服务类型 8 bit 4:总长度 16 bit 5:标识 16 bit 6:标志 4 bit 7:片移量 12 bit 8:生存时间 8 bit 9:上层协议标识 8 bit 10:头部校验和 16 bit 11:源地址 bit 12:目标地址 32 bit 共计:20字节(最少)