***网络GIS原理与应用***(计算机网络原理)
借鉴(计算机网络基础知识总结 | 菜鸟教程 (runoob.com))
2.5 I P地址
(1)网络地址
- IP地址由网络号(包括子网号)和主机号组成,网络地址的主机号为全0,网络地址代表着整个网络
(2)广播地址
-
广播地址通常称为直接广播地址,是为了区分受限广播地址。
-
广播地址与网络地址的主机号正好相反,广播地址中,主机号为全1。当向某个网络的广播地址发送消息时,该网络内的所有主机都能收到该广播消息。
(3)组播地址
A类地址以0开头,第一个字节作为网络号,地址范围为:0.0.0.0~127.255.255.255;
B类地址以10开头,前两个字节作为网络号,地址范围是:128.0.0.0~191.255.255.255;
C类地址以110开头,前三个字节作为网络号,地址范围是:192.0.0.0~223.255.255.255;
D类地址以1110开头,地址范围是224.0.0.0~239.255.255.255,D类地址作为组播地址(一对多的通信);
E类地址以1111开头,地址范围是240.0.0.0~255.255.255.255,E类地址为保留地址,供以后使用。
注:只有A,B,C有网络号和主机号之分,D,E没有划分网络号和主机号。
(4)255.255.255.255
该IP地址指的是受限的广播地址。受限广播地址与一般广播地址(直接广播地址)的区别在于,受限广播地址只能用于本地网络,路由器不会转发以受限广播地址为目的地址的分组;一般广播地址既可在本地广播,也可跨网段广播。
(5)0.0.0.0
常用于寻找自己的IP地址,例如在我们的RARP,BOOTP和DHCP协议中,若某个未知IP地址的无盘机想要知道自己的IP地址,它就以255.255.255.255为目的地址,向本地范围(具体而言是被各个路由器屏蔽的范围内)的服务器发送IP请求分组。
(6)回环地址
127.xx.yy.zz被用作回环地址,回环地址表示本机的地址,常用于对本机的测试,用的最多的是127.0.0.1。
(7)A、B、C类私有地址
私有地址(private address)也叫专用地址,它们不会在全球使用,只具有本地意义。
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
2.6子网掩码及网络划分
子网掩码
子网掩码是标志两个IP地址是否同属于一个子网的,也是32位二进制地址,其每一个为1代表该位是网络位,为0代表主机位。它和IP地址一样也是使用点式十进制来表示的。如果两个IP地址在子网掩码的按位与的计算下所得结果相同,即表明它们共属于同一子网中。
在计算子网掩码时,我们要注意IP地址中的保留地址,即" 0"地址和广播地址,它们是指主机地址或网络地址全为" 0"或" 1"时的IP地址,它们代表着本网络地址和广播地址,一般是不能被计算在内的。
子网掩码的求法一般有下边的两种(对于无须再划分成子网的IP地址来说,其子网掩码非常简单,即按照其定义即可写出:如某B类IP地址为 10.12.3.0,无须再分割子网,则该IP地址的子网掩码255.255.0.0。如果它是一个C类地址,则其子网掩码为 255.255.255.0。其它类推,不再详述。下面我们关键要介绍的是一个IP地址,还需要将其高位主机位再作为划分出的子网网络号,剩下的是每个子网的主机号,这时该如何进行每个子网的掩码计算。)
- 利用子网数来计算
算法实现:在求子网掩码之前必须先搞清楚要划分的子网数目,以及每个子网内的所需主机数目。(补充:子网数=主机位^3,172.16.2.160换算成二进制就是10101100.00010000.00000010.10 | 100000 ,其中"|“线前是网络位,”|"线后是主机位)
- 将子网数目转化为二进制来表示;欲将B类IP地址168.195.0.0划分成27个子网:27=11011
- 取得该二进制的位数,为 N;二进制为五位数,N = 5
- 取得该IP地址的类子网掩码,将其主机地址部分的前N位置1 得出该IP地址划分子网的子网掩码。B类地址的子网掩码255.255.0.0的主机地址前5位置 1,255.255.248.0(11111111.11111111.11111111.11111|000)
- 利用主机数来计算
如欲将B类IP地址168.195.0.0划分成若干子网,每个子网内有主机700台:
-
将主机数目转化为二进制来表示;
700=1010111100
-
如果主机数小于或等于254(注意去掉保留的两个IP地址),则取得该主机的二进制位数,为N,这里肯定 N<8。如果大于254,则 N>8,这就是说主机地址将占据不止8位;该二进制为十位数,N=10;
-
使用255.255.255.255来将该类IP地址的主机地址位数全部置1,然后从后向前的将N位全部置为 0,即为子网掩码值。
将该B类地址的子网掩码255.255.0.0的主机地址全部置1,得到255.255.255.255,然后再从后向前将后 10位置0,即为:11111111.11111111.11111100.00000000,即255.255.252.0。这就是该欲划分成主机为700台的B类IP地址 168.195.0.0的子网掩码。
- 还有一种题型,要你根据每个网络的主机数量进行子网地址的规划和计算子网掩码。
比如一个子网有10台主机,那么对于这个子网需要的IP地址是:
10+1+1+1//注:加的第一个1是指这个网络连接时所需的网关地址,接着的两个1分别是指网络地址和广播地址//
因为13小于16(16等于2的4次方),所以主机位为4位。而256-16=240,所以该子网掩码为255.255.255.240。
如果一个子网有14台主机,不少人常犯的错误是:依然分配具有16个地址空间的子网,而忘记了给网关分配地址。这样就错误了,因为14+1+1+1=17,17大于16,所以我们只能分配具有32个地址(32等于2的5次方)空间的子网。这时子网掩码为:255.255.255.224。
2.6 ARP/RARP协议
- ARP工作流程
概念:地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。(ARP协议只适用于局域网)
应用:ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。
主机A的IP地址为192.168.1.1,MAC地址为0A-11-22-33-44-01;
主机B的IP地址为192.168.1.2,MAC地址为0A-11-22-33-44-02;
当主机A要与主机B通信时,地址解析协议可以将主机B的IP地址(192.168.1.2)解析成主机B的MAC地址,以下为工作流程:
- 根据主机A上的路由表内容,IP确定用于访问主机B的转发IP地址是192.168.1.2。然后A主机在自己的本地ARP缓存中检查主机B的匹配MAC地址。
- 如果主机A在ARP缓存中没有找到映射,它将询问192.168.1.2的硬件地址,从而将ARP请求帧广播到本地网络上的所有主机。源主机A的IP地址和MAC地址都包括在ARP请求中。本地网络上的每台主机都接收到ARP请求并且检查是否与自己的IP地址匹配。如果主机发现请求的IP地址与自己的IP地址不匹配,它将丢弃ARP请求。
- 主机B确定ARP请求中的IP地址与自己的IP地址匹配,则将主机A的IP地址和MAC地址映射添加到本地ARP缓存中。
- 主机B将包含其MAC地址的ARP回复消息直接发送回主机A。
- 当主机A收到从主机B发来的ARP回复消息时,会用主机B的IP和MAC地址映射更新ARP缓存。本机缓存是有生存期的,生存期结束后,将再次重复上面的过程。主机B的MAC地址一旦确定,主机A就能向主机B发送IP通信了。
- ARP代理
如果ARP请求时从一个网络的主机发往另一个网络上的主机,那么连接这两个网络的路由器可以回答该请求,这个过程称作委托ARP或者ARP代理。这样可以欺骗发起ARP请求的发送端,使它误以为路由器就是目的主机。
- RARP工作流程
概念:逆地址解析协议,即RARP,功能和ARP协议相对,其将局域网中某个主机的物理地址转换为IP地址。
应用:RARP协议广泛应用于无盘工作站引导时获取IP地址。
-
主机发送一个本地的RARP广播,在此广播包中,声明自己的MAC地址并且请求任何收到此请求的RARP服务器分配一个IP地址。
-
本地网段上的RARP服务器收到此请求后,检查其RARP列表,查找该MAC地址对应的IP地址。
-
如果存在,RARP服务器就给源主机发送一个响应数据包并将此IP地址提供给对方主机使用。
-
如果不存在,RARP服务器对此不做任何的响应。
-
源主机收到从RARP服务器的响应信息,就利用得到的IP地址进行通讯;如果一直没有收到RARP服务器的响应信息,表示初始化失败。
-
帧格式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IcZEhV2a-1632818406501)(E:\大三上\Web Gis\图像\ARP_RARP帧格式.png)] -
以太网目的地址:目的主机的硬件地址。目的地址全为1的特殊地址是广播地址。
-
以太网源地址:源主机的硬件地址。
-
帧类型:对于ARP协议,该字段为0x0806。对于RARP协议,该字段为0x8035。
-
硬件类型:表示硬件地址的类型。值为1时表示以太网地址。也就是说ARP协议不仅仅应用于以太网协议,还可以支持别的链路层协议。
-
协议类型:表示要映射的协议地址类型。值为0x0800时表示IP协议。
-
硬件地址长度:与硬件类型对应的硬件地址的长度,以字节为单位。如果是以太网,则是6字节(MAC长度)。
-
协议地址长度:与协议类型对应的协议地址长度,以字节为单位。如果是IP协议,则是4字节(IP地址长度)。
-
操作类型(op):四中操作类型。ARP请求(1),ARP应答(2),RARP请求(3),RARP应答(4)。
-
发送端硬件地址:如果是以太网,则是源主机以太网地址,此处和以太网头中的源地址对应。
-
发送端协议地址:如果是IP协议,则表示源主机的IP地址。
-
目的端硬件地址:如果是以太网,则是目的以太网地址,和以太网头中的目的地址对应。
-
目的端协议地址:如果是IP协议,则表示源主机要请求硬件地址的IP地址。
-
对应ARP请求包来说,目的端的硬件地址字段无须填充,其他字段都需要填充。对于ARP回复包来说,所有字段都需要填充。
APR请求包是广播的,但是ARP应答帧是单播的。
以太网数据报最小长度是60字节(14字节的以太网头,不包含4字节的FCS),ARP数据包长度为42字节(14字节的以太网头和28字节的ARP数据),需要加入填充字符到以太网最小长度要求:60字节。
2.7路由器选择协议(RIP协议、OSPF协议)
-
RIP协议 :底层是贝尔曼福特算法,它选择路由的度量标准(metric)是跳数,最大跳数是15跳,如果大于15跳,它就会丢弃数据包。
-
OSPF协议 :Open Shortest Path First开放式最短路径优先,底层是迪杰斯特拉算法,是链路状态路由选择协议,它选择路由的度量标准是带宽,延迟。
注:贝尔曼-福特算法(Bellman–Ford algorithm )用于计算出起点到各个节点的最短距离,支持存在负权重的情况;狄克斯特拉算法(Dijkstra )用于计算出不存在非负权重的情况下,起点到各个节点的最短距离。
法,它选择路由的度量标准(metric)是跳数,最大跳数是15跳,如果大于15跳,它就会丢弃数据包。