网络层的功能
1.定义了基于IP协议的逻辑地址
2.连接不同的媒介类型
3.选择数据通过网络的最佳路径
一、IP数据包格式
![](https://i-blog.csdnimg.cn/blog_migrate/64a89715587968cd9bba5b13b0133e85.png)
IP字段:
版本(Version):该字段包含的是 IP 的版本号,4bit。目前 IP 的版本为 4(即 IPv4)。
首部长度(Header Length):该字段用于表示IP数据包头长度,4bit。IP数据包头最短为20字节,但是其长度是可变的,具体长度取决于选项字段的长度。
优先级与服务类型(Priority & Type of Service):该字段用于表示数据包的优先级和服务类型,8bit。通过在数据包中划分一定的优先级,用于实现 QoS(服务质量)的要求。
总长度(Total Length):该字段用以指示整个 IP数据包的长度,16bit。最长为65535字节,包括包头和数据。
标识符(Identification):该字段用于表示IP数据包的标识符,16bit。当IP对上层数据进行分片时,它将给所有的分片分配一组编号,然后将这些编号放入标识符字段中,保证分片不会被错误地重组。
标志(Flags):标志字段,3bit。对当前的包不能进行分片(当该包从一个以太网发送到另一个以太网时),或当一个包被分片后用以指示在一系列的分片中,最后一个分片是否已发出。
段偏移量(Fragment Offset):该字段用于表示段偏移量,13bit。段偏移量中包含的信息是指在一个分片序列中如何将各分片重新连接起来。
TTL(Time to Live):该字段用于表示 IP数据包的生命周期,8bit。一个数据包每经过一个路由器,TTL将减去 1。当 TTL 的值为 0 时,该数据包将被丢弃。可以防止一个数据包在网络中无限循环地转发下去。
协议号(Protocol):协议字段,8bit。该字段用以指示在 IP数据包中封装的是哪一个协议,是 TCP还是 UDP,TCP 的协议号为 6,UDP的协议号为 17。
首部校验和(Header Checksum):该字段用于表示校验和,16bit。接收方和网关用来校验数据有没有被改动过。
源 IP 地址(Source IP Address):该字段用于表示数据包的源地址,32bit。
目标 IP地址(Destination IPAddress):该字段用于表示数据包的目的地址,32bit。
可选项(Options):选项字段根据实际情况可变长,可以和IP一起使用的选项有多个。例如,可以输入创建该数据包的时间等。在可选项之后,就是上层数据。
二、ICMP协议(Internet控制报文协议)
ICMP是一个“错误侦测与回馈机制”
通过IP数据包封装
用来发送错误和控制消息
![](https://i-blog.csdnimg.cn/blog_migrate/4e81ab1380b40f0f7faf37239c0277ec.png)
1)ICMP协议的封装
①icmp协议属于网络层协议
②ICMP数据的封装过程
![](https://i-blog.csdnimg.cn/blog_migrate/cd230474ac0546f875b04bbce91bbffa.png)
2)ping命令
1.ping命令的基本格式
![](https://i-blog.csdnimg.cn/blog_migrate/73981dcdc720c4aa4105fdb4ccb1cd77.png)
ping命令的返回信息
![](https://i-blog.csdnimg.cn/blog_migrate/4fafd618c07eea109aa0ef9f2b814739.png)
![](https://i-blog.csdnimg.cn/blog_migrate/c23e4f749ee862d8e3a20d18ce154c15.png)
![](https://i-blog.csdnimg.cn/blog_migrate/c5856dfe3341d0983016699bb44b6eac.png)
-t 参数会一直不停的执行ping
①调试故障或需进行持续连通性测试时应用
②CTRL+C可以中断命令
![](https://i-blog.csdnimg.cn/blog_migrate/b9b8c97959985a49bae73fc8460710a9.png)
3.windows系统中ping命令常用参数
-t 参数会一直不停的执行ping
-a 参数可以显示主机名称
-l 参数可以设定ping包的大小 ###在Linux系统下为:-s
–n 指定发送包的个数 -c
–S 指定源IP去ping -I
跟踪路由路径命令:
WIN: tracert IP/域名
Linux: traceroute IP/域名
注:ICMP 互联网控制报文协议 工作在网络层 是一个错误侦测与回馈机制 用来发送错误和控制消息来探测网络连通性
三、ARP协议
ARP 地址解析协议
工作在 网路层
用来通过IP地址解析出MAC地址
1)广播与广播域
广播:将广播地址做为目的地址的数据帧
广播域:网络中能接受到同一个广播的所有节点的集合
广播地址为FF-FF-FF-FF-FF-FF
![](https://i-blog.csdnimg.cn/blog_migrate/5d1693a446b988f8938dcba1fe078139.png)
2)ARP协议概述
局域网中主机的通信
IP地址与MAC地址
什么时ARP协议
Address Resolution Protocol,地址解析协议
将一个已知的IP地址解析成MAC地址
①IP地址解析为MAC地址
PC1发送数据给PC2,查看缓存没有PC2的MAC地址
![](https://i-blog.csdnimg.cn/blog_migrate/0c6aa0b3f18f41bb438efd63efcbee6a.png)
PC1发送ARP请求消息(广播)
![](https://i-blog.csdnimg.cn/blog_migrate/b7bc8c6d562762e10189f9f03360a9f9.png)
所有主机收到ARP请求消息
PC2回复ARP应答(单播)
其他主机丢弃
![](https://i-blog.csdnimg.cn/blog_migrate/08824560092d9eba7b6d7fc30ed00978.png)
PC1将PC2的MAC地址保存到缓存中,发送数据
![](https://i-blog.csdnimg.cn/blog_migrate/2e37ae37bc5c0986e7913bea5eb85c69.png)
②ARP工作原理
1.PC1发送数据给PC2前,会先查询自己ARP缓存表有没有对方主机的IP地址与MAC地址的记录,如果有直接单播通信。
2.如果发现要查找的MAC地址不在表中,就会发送一个ARP请求广播,用于发现目的地的 MAC地址。
ARP请求消息中包括PC1的IP地址和MAC地址以及PC2的IP地址和目的MAC地址(为广播MAC地址FF-FF-FF-FF-FF-FF)。
3.交换机收到广播后做泛洪处理,除主机1外所有主机收到ARP请求消息,PC2以单播方式发送ARP应答,并在自己的ARP表中缓存PC1的 IP 地址和 MAC 地址的对应关系,而其他主机则丢弃这个ARP请求消息。
4.PC1在自己的ARP表中添加 PC2的 IP 地址和 MAC地址的对应关系,以单播方式与PC2通信。
③ARP相关命令
Windows系统中的ARP命令
arp -a ###查看ARP缓存表
arp -d [IP] ###清除ARP缓存
arp -s IP MAC ###ARP静态绑定
如提示ARP项添加失败,解决方案:
a、用管理员模式:电脑左下角“开始”按钮右键,点击“Windows PowerShell(管理员)(A)” 或者 进入C盘windows\system32文件夹找到cmd.exe,右键“以管理员身份运行” 再执行arp -s命令
b、(1)netsh interface ipv4 show neighbors 或者netsh i i show in '查看网卡接口序号/Idx'
(2)netsh interface ipv4 set neighbors '接口序号' 'IP' 'MAC'
解除静态绑定
netsh -c i i delete neighbors 'Idx'
动态学习到的ARP的老化时间是120s,并且静态绑定的ARP条目在计算机关机或重启后会消失。
华为系统中的ARP命令
[Huawei]dis mac-address ###查看mac 地址信息
[Huawei]arp static 'IP' 'MAC' ###绑定ARP
[Huawei]undo arp static 'IP' 'MAC' ###解绑定
reset arp all ###清除mac地址表
④ARP攻击与ARP欺骗的原理
1.ARP攻击
ARP攻击主要是通过伪造IP地址和MAC地址进行欺骗。使以太网数据包的源地址、目标地址和ARP通信数量剧增导致网络中断或中间人攻击。ARP攻击主要存在于局域网中。若其中一台计算机感染ARP病毒。就会试图通过ARP欺骗截获局域网内其他计算机的信息,造成局域网内的计算机通信故障。
![](https://i-blog.csdnimg.cn/blog_migrate/9b7910bb05f727a0f4b4149961f25399.png)
2.ARP欺骗
ARP欺骗的运作原理是由攻击者发送假的ARP数据包到网上,尤其是送到网关上。其目的是要让送至特定的IP地址的流量被错误送到攻击者所取代的地方。因此攻击者可将这些流量另行转送到真正的网关(被动式数据包嗅探,passive sniffing)或是篡改后再转送(中间人攻击,man-in-the-middle attack)。攻击者亦可将ARP数据包导到不存在的MAC地址以达到阻断服务攻击的效果,例如netcut软件。
可以理解为向网关或者被攻击主机发送虚假的ARP应答,从而导致被攻击主机通信故障,发送信息一直不成功,为信息不可达状态
一般情况下,ARP欺骗并不会使网络无法正常通信,而是通过冒充网关或其他主机,使到达网关或主机的流量通过攻击主机进行转发。通过转发流量可以对流量进行控制和查看,从而可以控制流量或者得到机密信息
![](https://i-blog.csdnimg.cn/blog_migrate/ae8b47c27369084f36163a05df039969.png)
![](https://i-blog.csdnimg.cn/blog_migrate/c9777b6a66999b21780c1a97b8a6e0a7.png)
3.利用ARP欺骗管理网络
通过长角牛网络监控机软件管理网络
设置监控范围
进行网络管理
验证效果