网络方向 网络层协议

Ethernet_Ⅱ协议

一般应用场景-网络设备(交换机、路由器)与终端(手机)之间的通信,整个格式大小64——1518字节

帧格式
        | D.MAC | S.MAC | Type | Data | FCS |
1.帧头
D.MAC:目的地址
S.MAC:源地址
Type:标识上层协议(网络层),比如0x0800代表IP协议(所以就是IP报文),0X0806代表ARP协议,值一定>=1536
2.传输报文

Data:要传输的数据

3.帧尾:

FCS:校验和,检测发送过程是否有丢失

接收过程

当接收到报文的目的MAC地址匹配,且FCS校验和正确,并给源MAC地址回应,同时删除帧头和帧尾,其中根据Type中协议标识往上层转发报文

丢弃报文情况

1.目的MAC地址不匹配
2.Type不合法
3.FCS校验和不正确

IEEE802.3协议

普遍用于网络设备与网络设备之间通信,格式大小64——1518字节

帧格式

(就帧头有区别)

    | D.MAC | S.MAC | Length | LLS | SNAP | Data | FCS |
1.帧头

D.MAC:目的地址
S.MAC:源地址
Length:表示LLC+SNAP+Data的长度,一定<=1500(Ethernet_Ⅱ里的Type一定>=1536,所以这块值在1500~1536的帧都是不合法的)
LLC:分为D.SAP、S.SAP和Control,用来表示协议,相当于Ethernet_Ⅱ帧里的Type
SNAP:代表一个私有的协议(SNP表示一个公有的协议)

2.传输报文

Data:要传输的数据

3.帧尾

FCS:校验和,检测发送过程是否有丢失

IP协议报文

(报头20——60字节,其中20是固定,40是可选项)

前20位固定字节

1.Version:4、6,代表ipv4还是ipv6
2.Header Length:头部长度
3.DS Field: 优先级,标识IP报文重要程度,值范围在0——7,默认为0,主要是为了提升QoS
4.Total Length:总长度,<=1500
5.Identification:其和下面两个一同表示分片信息,这个表示名称
6.Flags:功能位,有三位,第一位是保留位,第二位表示是否分片(1表示不分片,0分片),第三位是否后面还有分片(1表示有,0表示没有)
7.Fragment Offset: id序号,比如一个数据包3500长,分3片,就分别表示1500,3000,3500,从而给他们排序
8.Time to Live: 生存时间,初始255,每经过一个设备处理-1,当值为0就丢弃,防止报文无限循环转发浪费资源,破除环路的功能
9.Protocol:标识上层协议,比如17是UDP,6是TCP,1是ICMP,2是IGMP,4是IP,89是OSPF...
10.Header Checksum: 头部校验和
11.Source IP Address: 源IP
12.Destination IP Address: 目的IP

后40位可选字节

13.IP Options

ICMP协议报文

ping命令
tracert

ARP报文

(不能穿越路由器,不能被转发到其他广播域)
IP地址转换为MAC地址,当在ARP缓存表中查找不到才会发送ARP报文

ARP缓存表

可通过arp -a 查看,动态的老化时间180s,过了以后就消失

免费ARP

检测IP地址是否冲突,配置好地址时,会从该IP发送一次,然后当有冲突时,冲突的那个IP地址变为无效IP,并且源IP再发一次,而且两次都是以广播形式发送,防止其他IP的arp缓存器有误(比如MAC1和MAC3都是IP1,假如MAC1发送了一个免费ARP,而MAC3发了一个报文,此时MAC2可能就会先记录MAC1对应IP1,然后MAC3又到达了MAC2把原来MAC1覆盖了变成MAC3对应IP1,那么此时MAC3已经变成无效IP了,那么MAC2发送给IP1时就会有误,所以需要MAC1再发送一次免费ARP,然MAC2出的MAC3再更新回MAC1)
注:
不同网段之间,ARP会去请求网关MAC地址

中间人攻击

假如MAC1要上网,请求网关MAC地址时,MAC2处的黑客会截获MAC1的ARP请求,然后回复MAC1,此时MAC1就认为MAC2是网关MAC,然后MAC2再仿造MAC1发送ARP请求给网关,让网关认为其就是MAC1,这时MAC2就能够窃听到MAC1的请求并进行修改之类的操作了,所以为防止这种情况发生,发送ARP请求时应该加上-s参数绑定MAC地址

你可能感兴趣的:(网络方向 网络层协议)