网络层的功能
数据封装时,在网络层封装IP地址头,形成IP数据包。IP数据包格式(分为20字节固定部分,表示每个IP数据包必须包含的部分,以及40字节可变长度部分)
尖端:
根据TTL的返回值判断系统类型
ICMP 协议
ICMP(中间控制消息协议)是IP协议的一个辅助协议。
ICMP协议用于在网络设备之间传输各种错误和控制信息,在收集各种网络信息、诊断和排除各种网络故障等方面起着至关重要的作用。
ICMP功能:检测网络的双向连通性
ping 的格式
ping 空间 IP 地址 [选项]
-l指定数据包的大小
描述
回音回复
网络不可达
主机无法访问
协议无法访问
端口不可达
11
暂停
回声
Ping 失败:icmp 禁用了 icmp 协议
type 表示类型
代码代表具体情况
排错思路,当你的服务出现问题时,网络
平
功能:Ping
Ping是网络设备上的一个命令,Unix和Linux平台,其实是一个基于ICMP协议的实用小应用。
Ping 通常用于检测网络到目标节点的可达性。
Ping 选项:
显示您的 IP 地址
ping --help 显示帮助命令
-t 长平
-l size发送缓冲区大小。
-w 超时等待时间
-n 指定 ping 的次数
ping -t ip 地址长 ping ctrl+c 停止
ping -l 指定数据包大小(1600 2000)ip地址
ping -w 指定等待时间(默认为秒:2)ip地址
ping -n 指定次数 (5) ip地址
提示:
Ping 肯定成功
Ping 失败并不一定意味着网络故障
还有 icmp 协议
192.168.1.144 192.168.1.152
IP地址
192.168.1.152
通过多个路由设备
追踪
广播域 = 一个网络段
IP地址获胜
Linux 的 IP 地址
冲突域
冲突域是一个以太网术语,指的是这样一种网络情况:当某个网段上的一台设备发送数据包时,该物理网段上的所有其他设备都必须听到该数据包。这种情况很糟糕,因为如果同一物理网段上的两台设备同时传输数据,就会发生冲突(即两台设备的数字信号会在线路上互相干扰),导致设备不得不稍后重新传输数据。冲突会对网络性能产生严重的负面影响,因此必须不惜一切代价避免冲突。上述情况通常发生在集线器环境中,其中所有主机都连接到集线器,形成冲突域和广播域。这引出了我们在第 1 章中讨论的问题:什么是广播域?
总结:
冲突域:当两台设备同时发送消息,互相干扰,那么它们就处在同一个冲突域中
广播域
广播域的书面定义如下:广播域是网络段中的一组设备,它们侦听该网络段上发送的所有广播。广播域的边界通常是物理介质,例如交换机和路由器,但广播域也可能是一个逻辑网络段,其中每个主机都可以通过数据链路层(硬件地址)广播访问所有其他主机。介绍完广播域的基本概念后,我们来看看半双工以太网使用的冲突检测机制。
总结:
广播域:当一台机器发出广播时,所有能收到该消息的机器都在同一个广播域内。
默认情况下,交换机的所有端口都属于同一个广播域。
路由器的每个端口都是一个独立的广播域
1. 检测地址冲突
2.将IP地址转换为MAC地址
arp 协议
arp协议是什么
ARP协议就是通过解析IP地址得到MAC地址的地址解析协议( ),是网络协议包中一个极其重要的网络传输协议,它和网卡的关系非常密切。在TCP/IP分层结构中,ARP被划分到了网络层。为什么呢?因为在网络层,源主机和目的主机都是通过IP地址来标识的,而所有的数据传输都依赖于网卡底层的硬件,也就是链路层。那么就需要将这些IP地址转换成链路层能够识别的东西。所有的链路都有自己的一套寻址机制,比如以太网中就是用MAC地址来寻址,来标识不同的主机。那么就需要有一个协议把IP地址转换成MAC地址。于是,ARP协议就出现了。所有的ARP协议都是应用在网络层,它是连接网络层和链路层的重要枢纽,每当有数据要发送的时候,都需要通过ARP协议把IP地址转换成MAC地址。在IP层以上,它们只识别IP地址,从不和硬件打交道。
ARP 协议如何工作?
为了实现IP地址与MAC地址的查询与转换,ARP协议引入了ARP缓存表的概念。每个主机或者路由器都会维护一个ARP缓存表(ARP表),里面包含了IP地址与MAC地址的映射关系,表中记录了其他主机的IP地址到MAC地址的映射关系。如上图所示,它们是主机在近期运行过程中获取到的IP地址到其他主机的MAC地址的映射关系。当需要发送数据时,主机会根据数据报中的目标IP地址信息,在ARP缓存表中查找对应的MAC地址,最终通过网卡将数据发送出去。ARP缓存表中包含一个生存期值(TTL,又称生存时间),这个生存期值会记录每个ARP表项的生存时间,当生存时间到时,就会从缓存表中删除。从一条条目被放入ARP缓存表开始算起,通常一条条目的生存时间一般为10分钟,当然这些生存时间是可以任意设置的,我们一般采用默认即可。
检测地址冲突:
免费 ARP:
当设备获取到IP地址的时候,会自动发送免费ARP,检查是否有设备正在使用这个地址。
工作原理(结合开关原理)
1. 以局域网内两台主机通信为例讲解原理
ARP解析过程:当PC1要向PC2发送数据时,它首先检查自己本地的ARP缓存表中是否存在主机PC2的MAC地址,如果在PC1的缓存中没有找到对应表项,就会询问主机PC2的MAC地址,从而向本地网络中的所有主机广播ARP请求帧,该帧中包含源主机PC1的IP地址和MAC地址。本地网络中的所有主机收到该ARP请求后,检查是否与自己的IP地址匹配,如果发现请求中的IP地址与自己的IP不匹配,则丢弃该ARP请求。主机PC2判断ARP请求中的IP地址与自己的IP地址匹配,将主机PC1的地址和MAC地址添加到本地的缓存表中,主机PC2将包含自己MAC地址的ARP应答报文直接发回给主机PC1(该数据帧为单播)。主机PC1收到PC2发送的ARP应答报文后,将PC2的IP地址和MAC地址添加到自己的ARP缓存表中。 本地缓存是有生存期的,默认ARP缓存表有效期为120s,当超过有效期后会重复上述过程。一旦确定了主机PC2的MAC地址,主机PC1就可以向主机PC2发送IP信息了。
精简版
ARP工作原理:
PC1 要发送数据给 PC2,会先检查自己的 ARP 缓存表,如果终端设备发现要查找的 MAC 地址不在表中,就会发送 ARP 请求广播来查找目的 MAC 地址。ARP 请求报文中包括 PC1 的 IP 地址和 MAC 地址,以及 PC2 的 IP 地址和目的 MAC 地址(本例中为广播 MAC 地址 FF-FF-FF-FF-FF-FF)
交换机收到该广播后进行泛洪处理,除PC1外的所有主机都收到该ARP请求报文,PC2以单播方式发送ARP应答,并将PC1的IP地址与MAC地址的对应关系缓存在自己的ARP表中,其他主机则丢弃该ARP请求报文。
PC1将PC2的IP地址和MAC地址的对应关系添加到自己的ARP表中,并以单播方式与PC2进行通信。
ARP 数据包
如何查看arp缓存表(静态arp和动态arp)
arp -a ###查看arp缓存表 arp -d ###不加ip清除所有 arp -d [IP] ###加ip 只删除改Ip arp -s IP MAC ###删除arp静态绑定
如果提示ARP项添加失败,解决办法是:a.使用管理员模式:右键电脑左下角“开始”按钮,点击“(管理员)(A)”或者进入C盘\文件夹找到cmd.exe,右键“以管理员身份运行”然后执行arp -s命令:
绑定arp(win10) cmd中输入 netsh -c i i show in #查看网络连接准确名称,如:本地连接、无线网络连接 netsh -c “i i” add neighbors 19 “IP” “Mac”,这里19是idx号。//绑定 netsh -c “i i” delete neighbors 19,这里19是idx号。 //解绑 netsh interface ipv4 set neighbors <接口序号>
动态ARP表项老化:如果表项中的ARP映射关系在一段时间内没有被使用,则会被删除。通过及时删除不活跃的表项,可以提高ARP响应效率。
华为系统中的ARP命令 []dis mac- ## #查看mac地址信息 []arp ## #绑定ARP []undo arp ###解除绑定 reset arp all ###清空mac地址表
ARP 攻击和欺骗
ARP 攻击
2.中间有一个交换机,完整的通讯过程是怎样的?
ARP报文(抓包分析)
重点是源ip、目标ip、源mac、目标mac
目标 MAC 地址:54:89:98:0F:2B:BE
源 MAC 地址:54:89:98:5B:5B:8A
帧类型:--长度为2个字节,代表ARP数据包
硬件类型:——长度为2字节,表示网络类型;以太网值为1
协议类型:--长度为2字节,表示要映射的协议地址类型,值为,表示基于IP地址映射
硬件地址长度:0x06——长度为1个字节,表示硬件地址的长度;该值为0x06,即以太网中的MAC地址长度为6个字节
协议地址长度:0x04——长度为1个字节,表示协议地址的长度;该值为0x04,即以太网中IP地址长度为4个字节
op: --长度为2字节,表示ARP报文类型;值为1,表示请求报文;值为
2、表示ARP应答报文
发送方MAC地址:54:89:98:5B:5B:8A(消息体发起者)
发件人 IP 地址:0A:00:00:02(转换为 10.0.0.2)
目标 MAC 地址:54:89:98:0F:2B:BE
目标 IP 地址:0A:00:00:01(转换为 10.0.0.1)