前言
互联网上的每台主机都有两个地址一个是物理地址(设备的地址)另一个是逻辑地址。物理地址在主机生产时已经被设置好了,逻辑地址是在主机接入互联网时被分配的一个唯一的IP。而网络层的作用就是保证网络中计算机之间的能正确的查找到主机的逻辑地址。
IP(Internet Protocol)
网络异常,图片无法展示
|
- 网络互连的实现:通过各种不同的设备(转发器-物理层 网桥或桥接器-数据链路层 路由器-网络层 网关-上层)将网络连接起来,使不同的主机间可以进行通信
- IP地址分类:分为A B C(因特网) D(多播使用,一对多) E(保留)五类
- 按照因特网的观点,一个网络是指具有相同网络号net-id的主机的集合,因此,用转发器或网桥连接起来的若干个局域网仍为一个网络,因为这些局域网都具有同样的网络号。具有不同网络号的局域网必须使用路由器进行互连
- A类:A类地址的主机号占3字节,因此每一个A类网络中的最大主机数是224 - 2,即16777 214,IP地址空间共有2的32次方(即4 294 967 296)个地址。整个A类地址空间共有231个地址,占有整个IP地址空间的50%
- B类:B类地址的网络号字段有2字节,但前面两位(10)已经固定了,只剩下14位可以进行分配。
- C类:C类地址有3个字节的网络号字段,最前面的3位是(1 10),还有21位可以进行分配。
网络类别 | 最大可指派数 | 第一个可指派数 | 最后一个可指派 | 最大主机数 |
A | 126 | 1 | 126 | 16777214 |
B | 16383 | 128.1 | 191.255 | 65534 |
C | 2097 151 | 192.0.1 | 223.255.255 | 254 |
- IP地址的特点:
- 每一个IP地址都由网络号和主机号两部分组成。
- 实际上IP地址是标志一个主机(或路由器)和一条链路的接口。
- 按照因特网的观点,一个网络是指具有相同网络号net-id的主机的集合,因此,用转发器或网桥连接起来的若干个局域网仍为一个网络,因为这些局域网都具有同样的网络号。具有不同网络号的局域网必须使用路由器进行互连
- 在IP地址中,所有分配到网络号的网络(不管是范围很小的局域网,还是可能覆盖很大地理范围的广域网)都是平等的。所谓平等,是指因特网同等对待每一个IP地址。
- 物理地址(MAC地址)和IP地址:
- 物理地址是数据链路层和物理层使用的地址,而IP地址是网络层和以上各层使用的地址,是一种逻辑地址(称IP地址是逻辑地址是因为IP地址是用软件实现的)。
- IP 地址放在 IP 数据报的首部,而硬件地址则放在 MAC 帧的首部。在网络层和网络层以上使用的是 IP 地址,而数据链路层及以下使用的是硬件地址。
ARP
- 地址解析协议ARP(ARP是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题)
- 已经知道了一个机器(主机或路由器)的IP地址,需要找出其相应的硬件地址。地址解析协议ARP就是用来解决这样的问题的
- 每一个主机都设有一个ARP高速缓存(ARPcache),里面有本局域网上的各主机和路由器的IP地址到硬件地址的映射表
- 处理流程:ARP进程在本局域网上广播发送一个ARP请求分组=》在本局域网上的所有主机上运行的ARP进程都收到此ARP请求分组。=》主机B的IP地址与ARP请求分组中要查询的IP地址一致,就收下这个ARP请求分组,并向主机A发送ARP响应分组(其格式见[COME06]),并在这个ARP响应分组中写入自己的硬件地址
- ARP四种典型的情况
- 发送方是主机(如H1),要把IP数据报发送到同一个网络上的另一个主机(如H2)。
- 发送方是主机(如H1),要把IP数据报发送到另一个网络上的一个主机(如H3或H4)。
- 是用来将IP地址解析为MAC地址的协议。主机或三层网络设备上会维护一张ARP表,用于存储IP地址和MAC地址的映射关系,一般ARP表项包括动态ARP表项和静态ARP表项。
- 作用:将IP地址解析为MAC地址。
在局域网中,当主机或其它三层网络设备有数据要发送给另一台主机或三层网络设备时,需要知道对方的网络层地址(即IP地址)。但是仅有IP地址是不够的,因为IP报文必须封装成帧才能通过物理网络发送,因此发送方还需要知道接收方的物理地址(即MAC地址),这就需要一个通过IP地址获取物理地址的协议,以完成从IP地址到MAC地址的映射。地址解析协议ARP即可实现将IP地址解析为MAC地址。 - 分类:动态ARP 静态ARP 免费ARP 代理ARP
类型 | 适用环境 | 特点 |
动态ARP | 拓扑结构复杂 通信实时性要求高 | 动态ARP表项由ARP协议通过ARP报文自动生成和维护,可以被老化,可以被新的ARP报文更新,也可以被静态ARP表项覆盖。 |
静态ARP | 网络结构简单,局域网 | 静态ARP表项是由网络管理员手工建立的IP地址和MAC地址之间固定的映射关系。静态ARP表项不会被老化,不会被动态ARP表项覆盖。 |
免费ARP | 自身IP改变 | 主机被分配了IP地址或者IP地址发生变更后,必须立刻检测其所分配的IP地址在网络上是否是唯一的,以避免地址冲突。主机通过发送ARP Request报文来进行地址冲突检测,这种操作被称为免费ARP。 |
Proxy ARP | 通信的主机位于不同的网络 | 当两台通信主机位于不同网络时,但由于主机A未设置网关,所以他将会以广播的形式发送ARP Request报文,请求B的MAC地址,但是广播报文无法被路由器转发,所以主机B无法收到主机A的请求报文。 |
- 在主机A和B的通信中ARP的请求工作流程如下:
- 查询路由表是否有对应的IP有则继续通信,没有则进行下一个
- 查询不到后,主机A在局域网内发送要查找的ip地址的广播内容,局域网内的所有主机接收到广播检查IP是否是自己的IP,如果不是,则丢弃。
- 当B主机确定A请求报文中的IP与自己匹配,则将A的IP和MAC地址添加到本地缓存表中。
- B主机同时会向A主机回复一个含自身MAC地址的请求报文。
- A主机收到报文后会将B主机的IP和MAC地址存入自身的ARP缓存表中
- 继续通信
- 为何需要IP并用ARP来找硬件地址,直接使用硬件地址不更好么?
- 不同网络硬件地址格式啥的都不一致,
- 使用硬件地址则需要更复杂的硬件地址转换。
总结
- 参考文档1: 什么是ARP
- 参考文档2:计算机网络(六)——ARP协议
- 参考文章3: ARP协议工作流程
- 参考文档4:计算机网络