一、网络层的功能
1.定义了基于IP协议的逻辑地址
2.路由(连接不同的网段,传输数据)
3.选路(选择数据通过网络的最佳路径)
二、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):该字段用于表示段偏移量,3bit。段偏移量中包含的信息是指在一个分片序列中如何将各分片重新连接起来;
- 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 IPAdress):该字段用于表示数据包的目的地址,32bit;
- 可选项(Options):可选项字段根据实际情况可变长,可以和IP一起使用的选项有多个。
三、ICMP协议(Internet控制报文协议)
ICMP是一种来检测或通知网络设备之间可能发生各种情况的机制,主要用于在IP网络中发送控制消息,提供在通信环境中可能发生的各种问题的反馈。通过这些反馈信息管理员就可以对所发生的问题作出判断,然后才去适当的措施去解决问题。
ICMP功能
ICMP采取的“错误侦测与回馈机制”,通过IP数据包封装,用来发生错误和控制在消息。其目的是使管理员能够掌握网络的连通状况。
ICMP的封装
ICMP属于网络层协议,因为传输ICMP信息时,要先封装网络层的IP报头,再交给数据链路层,即ICMP报文对应IP层的数据。
ICMP的的基本使用
在网络中,ICMP协议的使用是靠各种命令来实现的,下面我将以ping命令为例,介绍ping命令的使用以及返回信息。
在Windows上使用的方法:window徽标键+R 调出运行窗口后输入cmd即可。
ping命令
- -t 参数会一直不停的执行ping
- -a 参数可以显示主机名称
- -l (小写的L) 参数可以设定ping包的大小 ###在Linux系统下为:-s
- -n 指定发送包的个数 -c
- -S (大写的S) 指定源IP去ping -I(大写的i)
- 不加 -t 的话,在windoes系统中默认ping 4个包
四、ARP协议
ARP概述
在局域网中,交换机通过MAC地址进行通信,要获得目的主机的MAC地址就需要使用ARP协议将目的IP地址解析成目的MAC地址。所以,ARP(Address Resolution Protocol,地址解析协议)的基本功能是负责将一个已知的IP地址解析成MAC地址,以便在交换机上通过MAC地址进行通信。
APR的功能
-
1、PC1想发送数据给PC2,会先检查自己的ARP缓存表。
-
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通信。
APR的命令
在windows系统中的ARP命令
1、arp-a:查看ARP缓存表
2、arp-d [IP]:清除ARP缓存
3、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 <接口序号>
ARP攻击与ARP欺骗的原理和应用
ARP攻击原理
- 攻击PC1向网关发送虚假的ARP应答,当网关收到虚假的ARP应答后会更新ARP条目,然后发送数据给PC1,就会发送到虚假的MAC地址,从而导致通信故障。
- PC2向局域网中的所有主机发送ARP应答,其中包括了网关的IP地址和和虚假的MAC地址,局域网中的主机收到ARP应答后更新ARP缓存表,然后就会向虚假的MAC地址发送数据,然后就无法与网关正常通信。
ARP欺骗原理
PC2发送ARP应答到局域网的所有其他主机,其中包括了网的IP地址和欺骗主机的MAC地址,同时发给了网关ARP应答,其中包括了局域网中所有主机的IP地址和欺骗主机的MAC地址,当局域网中的其他主机和网关收到ARP应答后会更新ARP缓存表中的IP地址和MAC网关,然后局域网中的主机和网关之间的通信就只能通过欺骗主机进行转发了。