网络层协议与应用
1、网络层的功能
- 定义了基于IP协议的逻辑地址,就是IP地址
- 连接不同的媒介类型
- 选择数据通过网络的最佳路径,完成逻辑地址寻址
2、IP数据包
数据封装的时候在网络层会封装ip地址的头部,形成ip数据包
IP数据包格式(分为20字节的固定部分,表示每个ip数据包必须包含的部分,和40字节的可变长部分)
-
版本号:IP协议的版本(目前为IPV4)
-
TTL生命周期:根据返回的值,确定所用的系统类型;并且可以防止数据包一直转发
-
段偏移量:将数据包重组
-
标识符:将数据进行分片
-
标志:看分片是否完整
-
优先级与服务类型:表示数据包的优先级
-
协议号:封装上层用的那个协议
-
可选项:增强ip数据包功能
3、ICMP协议
Internet控制消息协议ICMP (Internet Control Message Protocol)是IP协议的辅助协议。 ICMP协议用来在网络设备间传递各种差错和控制信息,对于收集各种网络信息、诊断和排除各种网络故障等方面起着至关重要的作用。
3.1 ICMP作用
ICMP作用:检测网络的双向联通性
ping 空格 IP地址
-l 指定数据包的 大小
-t 长ping
-& 后台运行
-w 超时等待
-n 指定ping次数
tracert:
-d:表示不让 tracert 根据节点主机名查找路由的 IP 地址,直接进行路由跟踪。当路由器不支持ICMP/UDP/ICMPv6 数据包时,建议使用该选项。
-h maximum_hops:指定最多经过多少个节点进行路由跟踪,默认值为 30。使用该选项可以更改该值。
-j host-list:枚举一个节点列表,并在路由跟踪过程中只走该列表中的节点。
-w timeout:设置等待每个回复消息的超时时间,默认值为 4000 毫秒。使用该选项可以更改该值。
-R:指示 tracert 跟踪路由时,使用“参考路由”而不是“严格源路由”。如果启用了该选项,则可以跨越某些无法到达的能够到达目标的路由器。
-S srcaddr:指定源地址。如果在单个计算机上安装了多个网络适配器,则使用该选项可以指定从哪个适配器发出路由跟踪请求。
-4:强制使用 IPv4 进行路由跟踪。
-6:强制使用 IPv6 进行路由跟踪。
target_name:表示要查询的目标 IP 地址或主机名。
3.2 常见的ICMP报文格式
| Type | Code | 描述 |
|---|---|---|
| 0 | 0 | Echo Reply |
| 3 | 0 | 网络不可达 |
| 3 | 1 | 主机不可达 |
| 3 | 2 | 协议不可达 |
| 3 | 3 | 端口不可达 |
| 5 | 0 | 重定向 |
| 8 | 0 | Echo Request |
Type 代表类型
Code 代表具体情况
排错思路:
- ping 自己 127.0.0.1 硬件
- 看双方地址是否有问题
- 看网关是否有问题
- 防火墙策略是否有问题( 配合、找网络工程师
4、ARP协议
在局域网中,交换机通过MAC地址进行通信,要获得目的主机的MAC地址就需要使用ARP协议将目的IP地址解析成目的MAC地址。所以,ARP(Address Resolution Protocol,地址解析协议)的基本功能是负责将一个已知的IP地址解析成MAC地址,以便在交换机上通过MAC地址进行通信。
4.1 ARP的工作原理
-
当PC1想发送数据给PC2,首先在自己的本地ARP缓存表中检查主机PC2的MAC地址是否存在。如果找到了对应的MAC地址,则PC1直接利用ARP表中的MAC地址,对IP数据包进行帧封装,并将数据包发送给PC2。
-
如果PC1在ARP表中找不到对应的MAC地址,则将缓存该数据报文,然后以广播方式发送一个ARP请求报文。ARP请求报文中的发送端IP地址和发送端MAC地址为PC1的IP地址和MAC地址,目标IP地址和目标MAC地址为PC2的IP地址和全0的MAC地址。由于ARP请求报文以广播方式发送,该网段上的所有主机都可以接收到该请求,但只有被请求的主机(即PC2)会对该请求进行处理。 如果发现请求中IP地址与自己IP不匹配,则丢弃ARP请求。
-
PC2比较自己的IP地址和ARP请求报文中的目标IP地址,当两者相同时进行如下处理:将ARP请求报文中的发送端(即PC1)的IP地址和MAC地址存入自己的ARP表中。之后以单播方式发送ARP响应报文给PC1,其中包含了自己的MAC地址。
-
PC1收到PC2发的ARP回复消息,将PC2的IP和MAC地址添加至自己ARP缓存表中,本机缓存是有生存期的,默认ARP缓存表有效期120s。当超过该有效期后,则将重复上面过程。PC2的MAC地址一旦确定,PC1就能向PC2发送IP信息以单播方式与PC2通信。
windows当中如何查看arp缓存表(静态arp和动态arp)
arp -a ###查看arp缓存表
arp -d [IP] ###删除arp缓存表
arp -s IP MAC ###删除arp静态绑定