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 地址的映射表项,用于后续到同一目的地报文的转发。

  1. IP 地址将物理地址对上层隐藏起来,使 Internet 表现出统一的地址格式。但在实际通讯时, IP
    地址不能被物理网络所识别,物理网络所使用的依然是物理地址。因此,必须实现 IP 地址 对物理地址的映射。

  2. 对于以太网而言,当 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 编号8ICMP回应:Echo Reply     编号0IMCP消息反馈:建立成功——reply from 正常消息目标主机不可达——Destination host unreachable 到不了,无网关请求时间超时——request timed out                       有网关但无法到达未知主机名——UNknown host abc                         DNS解析有问题

六、IP数据转发原理
如果目的IP和本机IP属于同一网段,会直接查询目的IP的Mac地址,并进行封装
如果目的IP和本机IP不属于同一网段,会查询网关IP地址的Mac地址,并进行封装

七、网关
本网段出口的IP地址

【IP基本原理-ARP原理】相关推荐

  1. 图解ARP协议(二)ARP***原理与实践

    一.ARP***概述 在上篇文章里,我给大家普及了ARP协议的基本原理,包括ARP请求应答.数据包结构以及协议分层标准,今天我们继续讨论大家最感兴趣的话题:ARP***原理是什么?通过ARP***可以 ...

  2. 图解ARP协议(四)代理ARP原理与实践(“善意的欺骗”)

    一.代理ARP概述 我:当电脑要访问互联网上的服务器,目标MAC是什么? 很多小伙伴在刚学习网络协议的时候,经常这样直接回应:不就是服务器的MAC嘛! 这时我会反问:那电脑怎么拿到这个服务器的MAC地 ...

  3. ARP***原理及解决方法与CMD命令分类(1)

    ARP***原理及解决方法与CMD命令分类 ARP***原理及解决方法与CMD命令 [故障原因] 局域网内有人使用ARP欺骗的***程序(比如:传奇盗号的软件,某些传奇外挂中也被恶意加载了此程序). ...

  4. TCP/IP:ARP与RARP详细解析

    地址解析协议 ARP和逆地址解析协议RARP 1.基本关系: 2.地址解析协议 ARP的实现过程: 不管网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址. ‚每一个主机 ...

  5. 计算机网络——IP协议基础原理

    摘要 IP协议提供的一种统一的地址格式.它为互联网上的每一个网络和主机分配一个逻辑地址所以IP地址也叫逻辑地址,用来屏蔽物理地址的差异,MAC地址每一个机器都有一个编码.IP地址是32位二进制数据分为 ...

  6. 代理ARP原理与实践(“善意的欺骗”)

    一.代理ARP概述 我:当电脑要访问互联网上的服务器,目标MAC是什么? 很多小伙伴在刚学习网络协议的时候,经常这样直接回应:不就是服务器的MAC嘛! 这时我会反问:那电脑怎么拿到这个服务器的MAC地 ...

  7. 计算机网络实验三 ARP原理与ARP欺骗 实验报告

    实验三 ARP原理与ARP欺骗 目录 [实验名称] [实验目的] [实验要求] [实验环境] 5.参考脚本:构建如图所示虚拟实验网络,可参考如下脚本: [实验步骤] 步骤1:创建虚拟实验网络,验证网络 ...

  8. ARP原理概述——基于WinPcap发送ARP请求数据包获取远程MAC地址

    ARP原理概述--基于WinPcap发送ARP请求数据包获取远程MAC地址 ARP协议 ARP概述 ARP工作原理 ARP数据包格式 编写程序发送ARP请求获取本机和远程IP的MAC 注意: ARP协 ...

  9. linux下ip冲突检测 arp

    linux下ip冲突检测 ARP协议具体解释之Gratuitous ARP(免费ARP)

最新文章

  1. android one gm 5,Android One计划诞生,GM 5 Plus发布
  2. “纯金”卫星,撞向我们的“蛋壳时代”
  3. 多线程中的volatile和伪共享
  4. Linux—Centos 7.x安装Tomcat8
  5. ResNet及其变种的结构梳理、有效性分析与代码解读(PyTorch)
  6. 怎么用python算单价和总价_用python计算最高投标限价
  7. lightNLP:框架功能丰富,开箱即用
  8. 数据转换软件公司——HYFsoft
  9. 多说评论系统API调用和本地身份说明(JWT)
  10. Win7部署Web网站之IIs安装篇
  11. Unity3d 周分享(22期 2019.8.30 )
  12. 曼切斯特大学计算机专业世界排名,2021年曼彻斯特大学在世界排名第几?哪些专业在全球TOP50?...
  13. unity实现点线智能连接+1
  14. 微信视频号标题怎么写吸引眼球
  15. java comm jar_串口开发 comm.jar | 学步园
  16. 学习PWN一个月后能做什么?
  17. 瑞星2010暴力公测说明什么问题?
  18. 机器学习 scikit-learn8 - 预测贷款用户是否会逾期 - Stacking模型融合【调包】
  19. 千万级分拣平台API安全治理实战
  20. 49 款开源办公软件

热门文章

  1. python matplotlib自定义colorbar颜色条-以及matplotlib中的内置色条
  2. 工业物联网RTU与DTU的区别
  3. 爱了爱了!Android平台HTTPS抓包解决方案及问题分析,面试必问
  4. 字典生成器crunch问题汇总(移植到Windows/字符集)
  5. 深度学习之图像分类(六)--Inception进化史
  6. 使用椭球表示物体的语义SLAM
  7. python 自动生成文档
  8. Teamcity的安装与使用
  9. 阿里云块存储企业级特性之异步复制
  10. WebStorm 导航功能