IP基本原理
一、IP的定义 当前唯一的网络层协议标准 定义数据网络层的封装方式、编址方法
二、IP头部封装格式 ?版本(Version):标明了 IP 协议的版本号,目前的协议版本号为 4。下一代 IP 协议 的版本号为 6。 ? 头长度(Internet Header Length,IHL):指 IP 包头部长度,占 4 位。 ? 服务类型(Type of Service,ToS):用于标志 IP 包期望获得的服务等级,常用于 QoS (Quality of Service,服务质量)中。 ? 总长度(Total Length):整个 IP 包的长度,包括数据部分。 ? 标识(Identification):唯一地标识主机发送的每一个 IP 包。通常每发送一个包其值 就会加 1。 ? 生存时间(Time to Live,TTL):设置了数据包可以经过的路由器数目。一旦经过一 个路由器,TTL 值就会减 1,当该字段值为 0 时,数据包将被丢弃。 ? 协议(Protocol):标识数据包内传送的数据所属的上层协议,IP 用协议号区分上层协 议。TCP 协议的协议号为 6,UDP 协议的协议号为 17。 ? 头校验和(Head Checksum):IP 头部的校验和,用于检查包头的完整性。 ? 源地址(Source Address)和目的地址(Destination Address):分别标识数据包的源 节点和目的节点的 IP 地址。
三、IP地址 1、定义:标识一个节点的网络地址
2、格式 (1)IP 地址长度为二进制 32 位,通常采用点分十进制方式表示,即每个 IP 地址被表示为以小数点隔开的 4 个十进制整数,每个整数对应一个字节,如 192.168.5.123。
(2) 由网络位+主机位组成 ? 网络号(network-number):用于区分不同的 IP 网络,即该 IP 地址所属的 IP 网段。 一个网络中所有设备的 IP 地址具有相同的网络号。 ? 主机号(host-number):用于标识该网络内的一个 IP 节点。在一个网段内部,主机 号是唯一的。 (3)网络位长度和数字完全一致的地址属于同一网段
(4)子网掩码区分网络位和主机位 由连续的1或0组成的32位掩码,用来衡量IP地址网络位的长度 1对应的部分为网络位 0对应的部分为主机位
(5)分类:
类型 地址范围 网络位置划分 A类 1.0.0.0.0-126.255.255.255 前8位为网络位,后24位为主机位 B类 128.0.0.0-191.255.255.255 前16位为网络位,后16位为主机位 C类 192.0.0.0-223.255.255.255 前24位为网络位,后8位为主机位 D类 224.X.X.X-239.X.X.X 作用:组播地址 E类 240.X.X.X-255.X.X.X 作用:科研用地址 特殊地址 127.X.X.X 本地环回地址,用于标识本机 私有保留地址 169.255.0.0-169.255.255.255 开启dhcp的设备无法获取到IP
- 网络地址,用来标识某个网段
- 主机位全1的地址,本网段广播地址
- 255.255.255.255全网广播地址
(6)私网地址
- A类10.0.0.0-10.255.255.255
- B类172.16.0.0-172.31.255.255
- C类192.168.0.0-192.168.255.255
公网地址:可以在互联网上寻址的地址,全球唯一,需要运营商分配 私网地址:本地随意使用,无法在互联网上寻址
ARP协议
ARP(Address Resolution Protocol,地址解析协议)就是用于动态地将 IP 地址解析为 MAC 地址的协议。主机通过 ARP 解析到目的 MAC 地址后,将在自己的 ARP 缓存表中增加相 应的 IP 地址到 MAC 地址的映射表项,用于后续到同一目的地报文的转发。
-
IP 地址将物理地址对上层隐藏起来,使 Internet 表现出统一的地址格式。但在实际通讯时, IP 地址不能被物理网络所识别,物理网络所使用的依然是物理地址。因此,必须实现 IP 地址 对物理地址的映射。 -
对于以太网而言,当 IP 数据包通过以太网发送时,以太网链路并不识别 32 位的 IP 地址, 它们是以 48 位的 MAC 地址标识以太网节点的。因此,必须在 IP 地址与 MAC 地址之间建立映 射(map)关系,建立这种映射的过程称为地址解析(Resolution)。
3. 分析过程 假设 HostA 和 HostB 在同一个网段,HostA 要向 HostB 发送 IP 包,其地址解析过程如下:
(1)HostA 首先查看自己的 ARP 表,确定其中是否包含有 HostB 的 IP 地址对应的 ARP 表项。如果找到了对应的表项,则 HostA 直接利用 ARP 表项中的 MAC 地址对 IP 数 据包封装成帧,并将帧发送给 HostB
(2)如果 HostA 在 ARP 表中找不到对应的表项,则暂时缓存该数据包,然后以广播方式 发送一个 ARP 请求。ARP 请求报文中的发送端 IP 地址和发送端 MAC 地址为 HostA 的 IP 地址和 MAC 地址,目标 IP 地址为 HostB 的 IP 地址,目标 MAC 地址为全 0 的 MAC 地址。
(3)由于 ARP 请求报文以广播方式发送,该网段上的所有主机都可以接收到该请求。 HostB 比较自己的 IP 地址和 ARP 请求报文中的目标 IP 地址,由于两者相同,HostB 将 ARP 请求报文中的发送端(即 HostA)IP 地址和 MAC 地址存入自己的 ARP 表中, 并以单播方式向 HostA 发送 ARP 响应,其中包含了自己的 MAC 地址。其他主机发现 请求的 IP 地址并非自己,于是都不做应答。
(4)HostA 收到 ARP 响应报文后,将 HostB 的 MAC 地址加入到自己的 ARP 表中,同时 将 IP 数据包用此 MAC 地址为目的地址封装成帧并发送给 HostB。
4. ARP 表项分为动态 ARP 表项和静态 ARP 表项
? 动态 ARP 表项由 ARP 协议动态解析获得,如果超过一个老化时间(aging time)未 被使用,则会被自动删除。
? 静态 ARP 表项通过管理员手工配置,不会被老化。静态 ARP 表项的优先级高于动态 ARP 表项,可以将相应的动态 ARP 表项覆盖。
此外,还有一种特殊的 ARP 应用——免费 ARP(Gratuitous ARP)。 免费 ARP 协议包中携带的发送者 IP 地址和目标 IP 地址都是本机 IP 地址,发送者 MAC 地址是本机 MAC 地址,目标 MAC 地址是广播地址。对外发送免费 ARP 协议包可以实现以下功能: ? 确定其它设备的 IP 地址是否与本机 IP 地址冲突。 ? 设备改变了硬件地址,通过发送免费 ARP 报文通知其他设备更新 ARP 表项。
相关命令: arp -a 查询ARP缓存 arp -d 清空ARP缓存 arp -s 目的地址 MAC地址 静态arp添加
RARP
主机只知道自己的硬件地址时,可以通过 RARP(Reverse Address Resolution Protocol, 反向地址解析协议)解析自己的 IP 地址。RARP 常用于无盘工作站启动前获取自身 IP 地址。
在刚刚启动时,无盘工作站只知道自己网卡的 MAC 地址,需要获得自己的 IP 地址,于是 向网络中广播 RARP 请求。RARP 服务器接收广播请求后发送应答报文,无盘工作站随即获得 IP 地址。
RARP 服务器要响应请求,必须知道物理地址与 IP 地址的对应关系。为此,在 RARP 服务器中维持着一个本网段的“物理地址-IP 地址”映射表。当某无盘工作站发出 RARP 请求 后,网上所有主机均收到该请求,但只有 RARP 服务器处理请求并根据请求者物理地址响应请 求。无盘工作站发出的 RARP 请求中携带其物理地址,服务器根据此硬件地址查找其 IP 地址。 由于服务器此时已经知道无盘工作站的物理地址,因此不再采用广播方式,而是直接向无盘工 作站发送单播应答。
对应于 ARP、RARP 请求以广播方式发送,ARP、RARP 应答一般以单播方式发送,以节 省网络资源。
代理ARP
当主机不了解网关的信息,或主机无法判断目的是否处于本网段时,某些主机会对处于其 他网段的目的主机 IP 地址直接进行 ARP 解析。此时,路由器可以运行代理 ARP(Proxy ARP) 协助主机实现通信。
如图所示,HostA 希望与 HostC 通信,但由于某种原因,HostA 直接发送了 ARP 请求, 解析 HostC 的 MAC 地址。运行了代理 ARP 的路由器收到 ARP 请求后,代理 HostA 在 1.1.2.0 网段发出 ARP 请求,解析 HostC 的 MAC 地址。
HostC 认为路由器向其发出了 ARP 请求,遂回应以 ARP 响应,通告自己的 MAC 地址 00E0.FC03.3333。路由器收到 ARP 响应后,也向 HostA 发送 ARP 响应,但通告的 MAC 地 址是其连接到 1.1.1.0 网络的以太口 E0/0 的 MAC 地址 00E0.FC02.2222。这样在 HostA 的 ARP 表中会形成 IP 地址 1.1.1.1 与 MAC 地址 00E0.FC02.2222 的映射项,因此 HostA 实际上会将 所有要发给 HostC 的数据包发送到路由器上,再由路由器转发给 HostC。
ICMP协议
Ping
测试网络连通性
IMCP请求:Echo Request 编号8
ICMP回应:Echo Reply 编号0
IMCP消息反馈:
建立成功——reply from 正常消息
目标主机不可达——Destination host unreachable 到不了,无网关
请求时间超时——request timed out 有网关但无法到达
未知主机名——UNknown host abc DNS解析有问题
六、IP数据转发原理 如果目的IP和本机IP属于同一网段,会直接查询目的IP的Mac地址,并进行封装 如果目的IP和本机IP不属于同一网段,会查询网关IP地址的Mac地址,并进行封装
七、网关 本网段出口的IP地址
|