1、以太网帧主要分为两种:Ethernet II 和IEEE802.3(80年2月提出,主要在STP等高端协议用到),目前主要用Ethernet II。
FCS校验以太网帧头部(32位,采用CRC算法),数据部分最小为46B,如果不足,则用0填充。TYPE指上层协议类型。
2、IP报头,IP为32位,最大字节为2^16 65535B ,
Version:4bit header_length:4bit DS field:8bit total length:16bit
ds field:主要用来表示QOS
version :ip类型(v4 v6),header length:ip头部所占字节,范围20-60字节,一般为20B,加ip options时才超过20B
total length:表示整个ip数据报长度。
identification:ip编号,fragment offset:ip片偏移
ip为什么需要分片,当ip总字节数超过1500时,会分片,因为在链路层有MTU(46-1500)控制最大传输字节数。
为什么会有MTU:因为链路原因,如果太大会造成传输时延等,具体看https://yq.aliyun.com/articles/222535
TTL:time to live:主要是为了防环,根据服务器主机的不同TTL也不同。
报文在网段间转发时,如果网络设备上的路由规划不合理,就可能会出现环路,导致报文在网络中无限循环,无法到达目的端。环路发生后,所有发往这个目的地的报文都会被循环转发,随着这种报文逐渐增多,网络将发生拥塞。
为避免环路导致的网络拥塞,IP报文头中包含一个生存时间TTL字段。报文每经过一台三层设备,TTL值减1.初始值由访问端设备设置(不同的操作系统设置的TTL是不同的)。当TTL降为1时,报文会被丢弃。同时报文的设备会根据据报文头中的源IP地址向源端发送ICMP错误请求。
Protocol:协议号:与以太网中的TYPE作用类似。标识标识网络层协议或者上层协议。用协议号进行标识(ICMP:1,TCP:6,UDP:17)
3 、网关:用来转发来自不同网段之间的数据包
4 、IP包分片
网络中转发的IP报文的长度可以不同,但如果报文长度超过了数据链路所支持的最大长度,则报文需要分割成若干个较小的分段才能够在链路上传输。将报文分割成多个分段的过程叫做分片。