网络层协议介绍
网络层的功能
定义了基于IP协议的逻辑地址
连接不同的媒介类型
选择数据通过网络的最佳路径
IP数据包格式
版本 | 首部长度 | 优先级与服务类型 | 总长度 | |
标识符 | 标志 | 锻偏移量 | ||
TTL | 协议号 | 首部校验和 | ||
源地址 | ||||
目的地址 | ||||
可选项 | ||||
数据 |
版本(Version) :该字段包含的是IP的版本号,4bit。 目前IP的版本为4 (即IPv4) 。
首部长度(HeaderLength) :该字段用于表示IP数据包头长度,4bit。 IP数据包头最短为20字节,但是其长度是可变的,具体长度取决于可选项字段的长度
优先级与服务类型(Priority & Type oService) :该字段用于表示数据包的优先级和服务类型,8bit。 通过在数据包中划分一定的优先级,用于实现QoS ( 服务质量)的要求。
总长度(Total Length) :该字段用以指示整个IP数据包的长度,16bit。 最长为65535字节,包括包头和数据。
标识符( Identification) :该字段用于表示IP数据包的标识符,16bit。 当IP对上层数据进行分片时,它将给所有的分片分配同一- 组编号,然后将这些编号放入标识符字段中,保证分片不会被错误地重组。
路由器将一个包拆分后,所有拆分开的小包被标记相同的值,以便目的端设备能够区分哪个包属于被拆分开的包的一部分。
标志(Flags) :标志字段,3bit。 对当前的包不能进行分片(当该包从一一个以太网发送到另-一个以太网时),或当-一个包被分片后用以指示在一系列的分片中,最后一一个分片是否已发出。
段偏移量(FragmentOffset):该字段用于表示段偏移量,13bit。段偏移量中包含的信息是指在–一个分片序列中如何将各分片重新连接起来。
TTL (Time to Live) :该字段用于表示IP数据包的生命周期,8bit。 一个数据包每经过一-个路由器,TTL将减去1。当TTL 的值为0时,该数据包将被丢弃。可以防止一-个数据包在网络中无限循环地转发下去。
协议号(Protocol) :协议字段,8bit。 该字段用以指示在IP数据包中封装的是哪一- 个协议,是TCP还是UDP, TCP的协议号为6,UDP的协议号为17。
首部校验和(HeaderChecksum):该字段用于表示校验和,16bit。接收方和网关用来校验数据有没有被改动过。
源IP地址(SourceIPAddress):该字段用于表示数据包的源地址,32bit。
目标IP地址( Destination IPAddress) :该字段用于表示数据包的目的地址,32bit。
可选项(Options):可选项字段根据实际情况可变长,可以和IP一起使用的选项有多个。例如,可以输入创建该数据包的时间等。在可选项之后,就是上层数据。
ICMP协议(interest控制报文协议)
ICMP是一个“错误侦测与回馈机制”
通过IP数据包封装的
用来发送错误和控制消息
ICMP协议的封装
ICMP协议属于网络协议
ICMP协议的封装过程
首先它会在网络层生成一个ICMP数据,加上一个ICMP的头部,然后上层数据就变成ICMP的上层数据,
ping命令
ping命令的基本格式为
c:>ping[-t][-l 字节数][-a][i]IP-Address| terget-name
windows系统中ping命令常用选项:
-t 参数会一直不停的执行ping
-a 参数可以显示主机名称
-l 参数可以设定ping包的大小 ###在Linux系统下为:-S
-n 指定发送包的个数 -C
-S 指定源IP去ping -I
跟踪路由器路径命令:
WIN:tracert IP/域名
Linux:tracerouce IP/域名
广播与广播域
广播:将广播地址做为目的地址的数据帧
广播域:网络中能接收到同一-个广播的所有节点的集合
广播地址为FF-FF-FF-FF-FF-FF
此图中,第一张图A、B、C在一个广播域中,而第二张图,A、B在一个广播域中,而C不在。因为A、B中间加了个路由器,路由器是用来划分广播域和用来跨网段的转发,所以C不在同一个广播域中。
一个广播域就是一个局域网。
ARP协议的概述
局域网中的主机通信:
IP地址与MAC地址
什么是ARP协议?
Address Resolution Protocol,地址解析协议
将一个已知的IP地址解析成MAC地址
ARP协议
IP解析为MAC地址
PC1发送数据给PC2,查看缓存没有PC2的MAC地址
ARPI工作原理:
- PC1想发送数据给PC2,会先检查自己的ARP缓存表。
- 如果发现要查找的MAC地址不在表中,就会发送一个ARP请求广播,用于发现目的地的MAC地址。
ARP请求消息中包括PC1的IP地址和MAC地址以及PC2的I P地址和目的MAC地址( 此时为广播MAC地址FF -FF- -FF-FF-FF-FF)。 - 交换机收到广播后做泛洪处理,除PC1外所有主机收到ARP请求消息,PC2以单播方式发送ARP应答,并在自己的ARP表中缓存PC1的IP地址和MAC地址的对应关系,而其他主机则丢弃这个ARP请求消息。
- 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 <接口序号>
解除静态绑定
netsh -c i i delete neighbors ’ Idx’
动态学习到的ARP的老化时间是120s,并且静态绑定的ARP条目在计算机关机或重启后会消失。
华为系统中的ARP命令
[Huawei]dis mac-address ###查看mac地址信息
[Huawei]arp static ###绑定ARP
[Huawei] undo arp static ###解绑定
reset arp all ###清除mac地址表
ARP攻击原理
欺骗其他所有的计算机
攻击主机制造假的arp应答,并发送给局域网中除被攻击之外的所有主机。arp应答中包含被 攻击主机的IP地址和虚假的MAC地址。
欺骗被攻击的计算机
攻击主机制造假的arp应答,并发送给被攻击的主机,arp应答中包含除被攻击攻击主机之外的所有主机的IP地址和虚假的MAC地址。
ARP欺骗网关
ARP攻击就是通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞,攻击者只要持续不断的发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP-MAC条目,造成网络中断或中间人攻击。