网络层关注的是如何将分组的数据从源端沿着网络路径到达目的端。在早期的计算机领域中,网络层应该提供怎样的服务引起了长期的争论。到底是“面向连接”还是“无连接”?实质就是:可靠性应该由谁负责?是网络还是端系统?
面向连接->可靠性由网络负责->虚电路服务
无连接->可靠性由端系统负责->数据报服务
虚电路:模仿电话面向连接的经验,建立可靠连接。指在数据发送之前与目标建立逻辑上的连接,分组的数据都顺序沿这条逻辑连接传输,如果该连接中断,则无法继续发送数据。
注意:由于建立了连接,虚电路服务传输的分组数据不包含目的主机地址,包含的是虚电路编号,这就使得每个路由器间数据必须无差错,如果有差错,所有到达数据再重新发,由此通过网络保证了数据的可靠性。
数据报(分组)服务:指网络在发送分组的数据(IP数据报)时不需要建立连接,每一组都是独立发送的,与其前后分组无关,每个数据报的传输路径由中间的网络设备联合决定(一般是采用最小生成树算法确定)。
数据报服务默认网络层不提供服务质量的承若,即所传送的IP数据报可能出错、丢失、重复和失序,当然也不保证分组传送的时限。就像我们网上购物一样,如果我们网上下单后,没有收到物品,我们不会找快递公司,而是去找卖家,即端对端的可靠服务。
简而言之,就是可靠性由端系统负责,而不是网络。
强调一下:静态路由和动态路由都是建立的数据报的基础上实现的。
现在的互联网都是采用的数据报服务,其好处主要如下(了解一下):
1. 中间设备/中继系统
1. 物理层中继系统:转发器(repeater),比如集线器
* 一般用来加强电信号
2. 数据链路层中继系统:网桥或桥接器(bridge)(交换机)
3. 网络层中继系统:路由器(router)
4. 网络层以上的中继系统统称网关。
* 注意:
1. 中间设备又叫中继系统。
2. 当中继系统是转发器或网桥时,不是网络互连设备,因为这只是扩大了网络,仍属于一个网络。网络层的路由器是网络互连设备
3. 互联网都是指用路由器进行互连的网络。
2. 网关
* 关于网关的说明:
1. 网关本指网络层以上的中继系统,但是由于历史原因,现在基本上将网络层使用的路由器叫网关,有时候也把路由器的端口叫做网关。
2. 计算机上配置的网关是指路由器的一个接口的地址。
3. 一个计算机可以指定多个网关或IP,如果计算机不设置网关,则只能访问同一局域网下的设备。比如:用集线器连接的PC,PC间可相互通信。
* 虚拟互联网
* 说明:
1. 虚拟网络就是逻辑互连网络,他的意思是互连起来的各种物理网络的异构性本来是客观存在的,但是我们利用IP协议
就可以使这些性能各异的网络从用户看起来好像是一个统一的网络。相当于是实际互联网络的抽象。
2. 使用IP协议的虚拟互连网络简称为IP网
* 好处:当互联网上的主机进行通信时,就好像在一个网络上通信一样,而看不见互连的各具体的网络异构细节。
网际协议IP
是TCP/IP
体系中的一个。与IP
协议配用的协议有三个(算上RARP有四个):地址解析协议ARP
、网际控制报文协议ICMP
、网际组管理协议IGMP
.其关系如下:
1. IP地址有32位,由两个字段组成:网络号(地址) + 主机号(地址)
* 注意:主机号全为0或者全为1不能分配给主机,因为全为0是用来表示网段的,全为1是给广播使用的。
2. 网络地址:唯一指定了每个网络。同一网络中的计算机有相同的网络地址。
3. 分类:
1. A类地址:最高位为 0 ,即最高8位的十进展为 1-126
* 127为环回地址但是也是属于A类地址,因为其最高位为0。但是其不可使用。
* A类地址的网络号为高8位
2. B类地址:高2位为 10 ,即最高8位的十进展为 128-191
* B类地址的网络号为高16位
3. C类地址:高3位为 110 ,即最高8位的十进展为 192-223
* C类地址的网络号为高24位
4. D类地址:高4位为 1110 ,即最高8位的十进展为 224-239
* D类地址为组播地址,无主机号
5. E类地址:高4位为 1111 ,即最高8位的十进展为 240-255
* 保留为今后用
IP地址分类示意图:
由上述的知识可以知道,处于同一个局域网中的终端IP的网络号是一样的,只是主机号不一样,表示在同一个网段/局域网。路由器是将多个局域网连接起来,所以其每个接口的网关(GATEWAY)或IP是不一样的。
同时注意:路由器的每一个接口都占其局域网中的一个IP地址,等价于一台设备。特别是在做实验的时候需要注意
事实上并不是所有的A、B、C类网络都是可以使用的,有一些特殊的网络是不能使用的:
0
, 128.0
, 192.0.0
网络号不可以使用,也就是 0.x.x.x
、128.0.x.x
、192.0.0.x
IP不能使用。(现在最新消息可以使用了,如果做题还是当作不可使用处理)。解释:因为,网络号中除了
A,B,C
类网络的标识位外,其余网络位全为0表示A,B,C
类网段。
A、B、C类网络的标志分别是0
,10
,110
,其剩下的网络位为零来分别表示是整个A、B、C类网络。这样仅仅用来表示网络分类,显得浪费,特别是现在IPV4紧缺的情况下,所以,现在将这些网络划分给了一些公司,节省资源。参考连接:B类地址第一个可分派的网络号为什么不是128.0? - tckidd的回答 - 知乎
https://www.zhihu.com/question/37927675/answer/82062124
所以,第一个可用A类网络是
1
,第一个可用B类网络是128.1
,第一个可用A类网络是192.0.1
127
是本机回环地址,不可以使用。网络号 + 主机号全为0
不可分配给主机。主机号全为0表示网络号
代表的网段。网络号 + 主机号全为1
该IP可以使用,但是不可分配给主机,因为他是广播专用的。192.168.1.1
,这个IP可以使用。1. 作用:标识IP的网络位数,用来判断网段。具体用来判断目标地址和自己是不是同一个网关,很重要,如果配置错误会造成计算机通信故障。
2. 如何确定子网掩码:
1. A类网络缺省子网掩码:255.0.0.0
2. B类网络缺省子网掩码:255.255.0.0
3. C类网络缺省子网掩码:255.255.255.0
* 注意:上面缺省了子网掩码,子网就是将一个IP再划分为几个小的局域网,如果一个IP划分了子网,那么每个子网的网关不一样。
3. 计算机通信时利用子网掩码的过程:
1. 将自己的IP地址于自己的子网掩码做与运算,主机号清零,得到自己所属的网段。
2. 再用自己的子网掩码与目标地址做与运算,主机号清零,得到目标地址所属网段。
3. 如果自己与目标不在一个网段,则使用网关的MAC地址封装数据帧,再将数据帧发送给路由器(网关)。如果在同一个网段,则直接使用目标的MAC地址封装数据帧,直接把数据帧发送给目标地址。
4. 子网掩码的两种表达:假如有一个C类网段,IP:192.168.60.0
1. IP:192.168.60.0 mask:255.255.255.0 的这种形式
2. 192.168.60.0/24 的这种形式, 24表示网络位为前24位
数据包在网络中是怎么传输的吗?是靠什么来传输的吗?也许你会说是靠IP地址,但从下图可以知道:数据的传输所依懒的是MAC地址而非IP地址。IP地址只是指引了方向,具体的数据传输是利用MAC地址实现的。
思考:交换机(局域网的中间设备)虽然通过MAC地址来转发数据的,那么源端封装数据时,能不能从传输层直接到数据链路层,也就是不经过网络层的IP封装??也就是不携带IP,只携带MAC地址。
- 解答:不可以,原因简单来说就是统一。
因为现在的操作系统都是在网络通信方面都是七层架构,已经固定。层与层之间相互依赖,解析数据时只有通过下一层的协议才可以进行上一层的协议;封装数据时,数据只有经过该层协议封装数据后才能让下一层的协议将数据再封装。也就是说,对方能将消息发出去,则一定用了网络层的协议,如果自己没有网络层的arp协议就不能解析出数据,自然就无法通信了。
如果要强行这样通信,可以单独的设计操作系统,不设计网络层,因为现在基本上都是网络通信,只能在局域网内通信就显得本末倒置了。
为了支持IP 多播,以太网的大佬们已经为 Ethernet和Fiber Distributed Data Interface (FDDI)的MAC地址保留了一个多播地址区间:01-00-5E-00-00-00 到 01-00-5E-7F-FF-FF。 正如下图所示48位的MAC地址中的高25位是固定的,低23位是可变的。
为了映射一个IP 多播地址到MAC层的多播地址,IP多播地址的底23位可以直接映射为MAC层多播地址的底23位。
例如:多播地址224.192.16.1可以映射为01-00-5E-40-10-01。(IP去掉高9位 = 8 + 1)
IP多播地址的范围是:224.0.0.0–239.255.255.255,其中:
1)224.0.0.0–224.0.0.255 本地保留,ttl=1,其中224.0.0.1是本网所有主机接收
2)224.0.0.2是本网所有路由器接收
3)239.0.0.0–239.255.255.255 私有组播地址
4)232.0.0.0–232.255.255.255 特定源多播
5)224.0.1.0–238.255.255.255 全球
一个IP数据报由首部和数据两部分组成。首部的前一部分是固定长度,该固定长度共20字节,是所有IP数据报必须有的。
1. 版本:用来标识是IPV6还是IPV4。
2. 首部长度:标识IP数据报首部占多少位。
3. 区分服务:用数来标记优先级,比如路由器优先转发哪些数据。(路由器也需要配置)
4. 总长度:整个IP数据报 = 首部 + 数据,所占位数。
5. 标识:他是一个计数器,用来标识产生的数据报,不是序号,每产生一个数据报,就增加1.
6. 标志:占3位,目前只有两位有意义,标志字段最低位是MF(More Fragment),MF=1表示后面还有分片,MF=0表示这是最后一个分片。中间一位是DF,只有DF=0才允许分片。
7. 片偏移:较长的分组在分片后某片在原分组中的相对位置,片偏移以8个字节为偏移单位。
8. 生存时间:记为TTL(Time To Live),表示数据报在网络中可通过的路由器数的最大值。数据报每通过一个路由器,TTL减一,当TTL=0时,数据报会丢失。一般Windows系统,发出数据报时,TTL=128
* 在电脑命令行中ping一个IP,ping通后,会看见TTL,此时的TTL是你发送到对方,对方保存后给你的,只减了过去的,而不是往返的。
* ping IP -i 5 可以设置TTL的初始值为5
* ping IP -i 1 可以知到网关的IP地址
* ping IP -i 2 可以知道第二个路由器的IP
......
9. 协议:指出此数据报携带的数据使用哪种协议,以便目的主机的IP层将数据部分上交给哪个协议处理。
10. 首部校验和:用于检验数据报的首部是否有错误。如果有错误就丢弃该数据报。就像快递一样,快递上面的电话号码改了说明有问题,而不在乎包裹里物品是否坏掉。不采用CRC校验码,而采用简单的计算方法。
11. 源地址:自己发送端的IP地址
12. 目标地址:接收端的IP地址
13. 可选字段:是一个选项字段,1-40字节,为了增加IP数据报的功能。用来支持排错、测量以及安全等措施,内容很丰富。由于增加了时间开销,很少使用。
注意从上图可知:
- IP数据报首部的最大长度为60字节。 解释:IP数据报首部中有一个首部长度字段,4 位长,可表示的最大十进制数字是15。因此首部长度的最大值是15个4字节长的字,即60字节。但是,典型的IP数据报不使用首部中的选项,因此典型的IP数据报首部长度是20字节。
- IP数据报的最大长度为
2^16-1 = 65535
个字节。
上面我们在首部的**“标志”**中提到了对分组进行分片的概念,下面详细说明一下:
在“ 首部校验和”中提到了校验首部信息是否出错,那么它是如何判断的呢?下图是判断的过程:
* 应该知道的几个知识点:
1. 数据路由:路由器在不同的网段转发数据包(数据报)
2. 网络畅通的条件:能去能回。
3. 沿途的路由器必须知道目标网络下一跳给哪个接口
4. 沿途的路由器必须知道源网络下一跳给哪个接口
5. 如果目标网段和源网段在一个路由器的两端可以直通,不需要配置路由;如果不是,则需要使用以下命令来配置静态路由:
* ip route 目标网段 目标网段掩码 下一跳网关
假如有如下网络:
则上述结构中,路由器Router0
的路由表会是如下情况:
地址掩码 | 目标地址 | 下一跳地址 | 路由器端口地址 |
---|---|---|---|
/24 | 192.0.1.0 | 无 | m0 |
/24 | 192.0.2.0 | 无 | m1 |
/16 | 128.1.0.0 | 192.0.2.2 | m1 |
注意:路由表中没有下一跳的路由项,说明该目标地址其是该路由器的直通网段。
PC0
向网段128.1.0.0/16
中的一个计算机128.1.0.64/16
发送消息的流程如下:
- PC0向
128.1.0.64/16
发送消息XXX
- 由于端口m0和其在一个局域网,且m0也有IP(相当于一台计算机)所以,端口m0能够收到消息
XXX
。(同一局域网通过MAC地址将消息发送给目标计算机)- Router0收到数据后,按照路由表项逐个对比,判断转发给谁。
3.1 路由表第一项:128.1.0.64
与255.255.255.0
做与运算为128.1.0.0
,与路由项目的地址192.0.1.0
不一样,说明不是发往该目标地址的,接着向下匹配。
3.2 路由表第二项:128.1.0.64
与255.255.255.0
做与运算为128.1.0.0
,与路由项目的地址192.0.2.0
不一样,说明不是发往该目标地址的,接着向下匹配。
3.2 路由表第三项:128.1.0.64
与255.255.255.0
做与运算为128.1.0.0
,与路由项目的地址128.1.0.0
一样,说明是发往该目标地址的,匹配成功。- 匹配到的路由表项的端口是
m1
,下一跳是192.0.2.2
,所以消息XXX
通过端口m1
发送给目标192.0.2.2
。(由于其在同一个局域网,能够收到消息)
以上就是一个路由器转发一个数据的流程。
记住,分析网络能不能通的时候一定要去和来的时候都要一步步的分析,不要受惯性思维的影响。比如下面这幅图,图上标准的IP
, MASK
, GATEWAY
等信息都是已经配置好的:
不通的原因分析:
IP:192.168.1.2
,由于arp协议根据其IP查不到MAC地址,会将数据发送给网关IP:192.168.0.1
,由于IP:192.168.1.2
属于网段192.168.1.0
,IP:192.168.0.1
属于网段192.168.0.0
,这两个网段被Router0直通,数据被发到IP182.168.1.2
,即Router1IP:192.168.0.2
属于网段192.168.0.0
,而Router1直通网段是192.168.1.0
,不是直通网段,由于没有设置路由,所以该路由器不知道往哪里发数据,于是将数据丢弃。我们知道,给路由器加路由,信息最终会加到路由表中。windows虽然不是路由器,但是他也有路由表,且路由表中默认路由是设置的网关,因为给计算机网卡配置网关就是添加默认路由(一个网卡只能配置一个网关),默认路由的网段都是0.0.0.0
,相当于没有网段。由下图可见:
- 在windows的doc下输入:
route print
或者netset -r
可以看见计算机上的路由表。- 在doc下输入:
routeadd 目标网段 mask 目标网段掩码 网关
命令可以添加路由到路由表中。
使用route /?
可以所有的route命令
需要注意的是,如果计算机装了两个网卡,且每个网卡设置了网关,即该计算机有两个默认路由。如果没有指定静态/动态路由,计算机会轮流的使用这两个默认路由,使得过这个路由器的通信时通时不通。如下面这个例子:
小结:计算机如果有多个网卡,只为一个网卡配置网关。
1. 划分子网的作用:把一个IP划分成多个局域网,合理规划IP的主机数,提高IP地址的利用率,因为IPv4的地址现在已经快不够用了。
2. 分类:
1. 等长子网划分
2. 变长子网划分
3. 如何划分?
1. 根据实际情况,将IP地址的主机号的部分高位让给网络号。
2. 其子网掩码也对应变化
* 把握住这两点,无论A类、B类还是C类IP划分,以及后面的等长子网和变长子网如何划分就很简单
4. 举例:IP:192.168.60.0,将这个网段划分为两个子网。
* 两个子网需要用1位二进制表示,所以,将该IP的主机号的最高的1位让给网络号,于是,产生了两个子网IP
-->192.168.60.0
-->192.168.60.128
* 由于这是一个C类地址,且网络号多了一位,所以,这两个的子网掩码都是:255.255.255.128
如果划分一个IP地址,要求子网分别能容纳A,B,C…台主机,如果2k-1k,2k-1k,2k-1N-k
位给网络号,如果是C类IP则N=8
,如果是B类IP则N=16
,如果是A类IP则N=24
.
等长子网划分的例子
以一个C类IP为例,如果划分一个IP地址,要求子网分别能容纳A,B,C…台主机,如果2k-1k,2k-1k,2n-1
下面是一个思科考试的例子,在下面黑色的网关位置从左边选出合适的IP及mask:
构造超网是子网划分的逆过程,用于将几个IP合并为一个大IP。
合并两个子网的例子:
是不是任何两个IP都只用1位就可以合并成一个超网??? 答案是否定的,比如192.168.1.0
与192.168.2.0
就不行,因为其网络号的最后两位分别是01
和10
,至少需要两位才可以合并。
ARP
协议是“Address Resolution Protocol”
(地址解析协议)的缩写。所谓“地址解析”就是主机在发送帧前将目标IP
地址转换成下一跳目标MAC
地址的过程。ARP
协议的基本功能就是通过目标设备的IP
地址,动态映射出目标设备的MAC
地址,以保证通信的顺利进行。
通过上面的知识,我们知道,计算机通信时发送的数据帧携带下一跳的MAC地址(跨局域网的),而MAC
地址是通过MAC
协议“动态映射”出来的,这个“动态映射”可以理解为一张表,表中存放着IP
对应的MAC
地址。那么计算机中的这张表是如何得到的????
任何时候,当主机需要找出这个网络中的另一个主机的物理地址(MAC地址)时,它就可以发送一个ARP
请求报文,这个报文包好了发送方的MAC地址、IP地址和接受方的IP
。这个报文包是以广播的形式发送的。(广播的范围是所在局域网的所有设备,不能跨局域网,会被网关拦截), 接受方接受到数据报后,记录对方的MAC地址和IP地址,然后再将自己的IP和MAC地址封装后返回此计算机,这样计算机就得到了邻居计算机的MAC地址。
然后,你可能又会问,发送方如何知道接受方的IP???其实也是类似的方法,用广播的发送数据报:自己ip + 询问对方ip
,对方接受后记录发送方的ip并返回数据报:自己的ip
。
ARP协议负责将IP数据包映射为MAC数据包,而RARP协议是根据MAC地址映射IP地址。其关系如下图所示。但是如果要将数据发送给另一个局域网的IP,此时arp高速缓存中没有该IP和MAC地址的映射关系,会统一用网关的MAC地址,发送给网关,剩下的事情由路由器完成。
ARP欺骗原理:arp协议不管是否发送了arp请求,都会根据收到的任何arp应答数据包对本地的arp高速缓存(用来存放映射关系表)进行更新,将应答数据包中的IP地址和MAC地址存储在arp高速缓存中。这正是实现arp欺骗的关键。可以通过编程的方式构建arp应答数据包,然后发送给被欺骗者,用假的IP地址与MAC地址的映射来更新被欺骗者的arp高速缓存,实现对被欺骗者的arp欺骗。
有两种arp欺骗:
1. ICMP:为了提高IP数据报交付成功的机会,在网际层使用了网际控制报文协议ICMP(Internet Control Message Prorocol)。用大白话来说,就是检测报文在网络传输的过程中在哪里出了什么错误。
2. 特点:
1. ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告。
2. ICMP不是高层协议,而是网络层的协议。
3. ICMP报文作为IP层数据报的数据,加上IP数据报的首部,组成IP数据报发送出来。
3. 类型:
1. ICMP差错报告报文(Reply/Response)
* 类型:
1. 终点不可到达
2. 源点抑制:当一个系统(路由器或主机)接收数据报的速度比其处理速度快时,可能产生这个差错
3. 时间超过
4. 参数问题
5. 改变路由(重定向)
2. ICMP询问报文(Request)
* 类型
1. 回送请求
2. 时间戳请求
4. ICMP应用举例
1. ping用来测试两个主机之间的连通性
2. ping使用了ICMP回送请求与回送回答报文
3. ping是应用层直接使用网络层ICMP的例子,他没有通过运输层的TCP或UDP。
4. pathping
5. tracert:能够看到目标网段途径的网段
语法:tracert 目标IP
ping发送一个ICNP回声请求消息给目的地并报告是否收到所希望的ICMP回声应答。
使用ping能够判断网络通还是不通,比如请求超时,你就不能判断位置出现的网络故障造成的请求超时。
使用pathping命令能够跟踪数据包的路径,能够查出故障点,并且能够计算路由器转发丢包率和链路丢包率以及延迟,据此能够判断出网络拥堵情况。
1. 静态路由:手动的指定路由表中的路由网段和网关,除非网络管理员进行干预,否则静态路由表不会发生变化。
1. 优点:简单、高效、可靠、网络安全、转发效率高。
2. 缺点:不能灵活的适应网络的动态变化。
3. 使用场景:网络规模不大,拓扑结构固定的网络中。
2. 动态路由:指路由器能够自动地建立自己的路由表,并且能够根据实际情况的变化适时地进行调整。
1. 优点:灵活,能够适时适应网络结构的变化,无需管理员手工维护,减轻了管理员的工作负担。
2. 缺点:占用网络带宽(用于传输路由更新信息)
3. 使用场景:网络规模大,网络拓扑机构复杂的网络。
路由器能够在网络中转发数据,主要是根据路由器中的路由表去查看往哪里转。而静态路由和动态路由都是往路由表中加路由项,也就是填充路由表的内容。比如,有下面这个路由表:
地址掩码是目标网络地址的掩码。
没有下一跳地址的路由项,说明是本路由器的端口,且目的网络是该路由器的直通网络。
由此可知,直通网段也放在路由表中
常用配置静态路由步骤:
Router>enable
Router#config t
Router(config)#ip route 目标网段 目标网段的掩码 下一跳的IP
Router(config)#end
Router#show ip route
含静态路由配置的一个案例
配置动态路由步骤:
1. 开启rip协议
* 语法:
* route rip
2. 设置每个路由器的动态路由。
* 如何设置??
* 抓住一点,这个掩码不用输入,根据你输入的网段,自动生成A/B/C类网段掩码。如果路由器所有直通网
在一个A/B/C类网段,则只用设置一个,否则设置多个。如果不怕麻烦,保险起见,有多少个设置多少个。
* 语法:network 网段
* 例如:
1. 一个路由器直通网有:192.168. 1.0, 192.168. 2.0,192.168. 3.0,则需要设置三次:
Router(config)#net 192.168. 1.0
Router(config)#net 192.168. 2.0
Router(config)#net 192.168. 3.0
2. 一个路由器直通网有:192.168. 1.1, 192.168. 1.2,192.168. 2.1,则需要设置两次:
Router(config)#net 192.168. 1.0
Router(config)#net 192.168. 2.0
常见配置步骤:
Router>enable
Router#config t
Router(config)#route rip
Router(config)#net 172.16.0.0
Router(config)#net 172.16.1.0
Router(config)#end
Router#show ip route
配置动态路由步骤:
1. 开启ospf协议
* 语法:
* route ospf 进程号
2. 设置每个路由器的动态路由。
* 如何设置??
* 可以像rip协议一样设置的是A/B/C类网络,也可以自定义,因为其输入反转掩码, 能在同一个大网段的直连网段。
* 语法:network/net 网段 该网段的反转掩码 area 区域号
* 例如:一个路由器直通网有:172.18.0.0/16, 192.168.0.8/30,192.168.0.16/30
1. 设置二次:
Router(config)#net 172.18.0.0 0.0.255.255 area 0
Router(config)#net 192.168. 0.0 0.0.0.255 area 0
2. 设置三次:
Router(config)#net 172.18.0.0 0.0.255.255 area 0
Router(config)#net 192.168. 0.8 0.0.0.3 area 0
Router(config)#net 192.168. 0.16 0.0.0.3 area 0
常见配置步骤:
Router>enable
Router#config t
Router(config)#route ospf 1
Router(config)#net 172.18.0.0 0.0.255.255 area 0
Router(config)#net 192.168. 0.0 0.0.0.255 area 0
Router(config)#end
Router#show ip route
动态路由协议分类:
1. 自治系统(AS)内的(IGP,Interior Gateway Protocol)的路由协议。
1. rip协议
2. ospf协议
2. 自治系统之间(EGP,External Gateway Protocol)的路由协议。
1. bgp协议
* IGP
1. 距离矢量协议
1 rip
2.XNS RIP
...等等
2. 链路状态路由协议
1. 最短路径优先(OSPF)
2. 中间系统到中间系统(IS-IS)
* 注意:这两个协议都采用Dijkstra最短路径算法。
* RIP协议
* 特点:
1. 采用广播的形式通信,且每30秒交换的路由表信息
2. 最大距离(两主机间包括自己的最多的路由器个数)是15
3. 度量值:中间路由器的个数。取最小的。
* 优点:实现简单,开销较小。
* 缺点:
1. 路由器之间交换的路由信息是路由器中的完整路由表(即路由表的所有项),,每30秒广播发送一次。非常的占流量,且随着网络规模的扩大,开销将会急速增加。
2. 收敛速度/慢。 当网络出现故障时,要经过比较长的时间才能将此信息传送到所有的路由器。
3. 限制了网络的规模,它能使用的最大距离为15个路由器。(16表示不可达)
4. 度量值与实际不符。
注意:
对于同一源发出到同一网段的rip数据包,直接更新。
对于不同源发过来到同一网段的rip包,取度量值小的。
* OSPF协议:随着网络规模的扩大,RIP协议的缺点导致用户体验越来越差,OSPF就是为了解决这种大规模动态路由产生的。
* 特点:
1. 度量值:带宽。 弥补了rip的不足,不一定距离越短就越快,应该以带宽来衡量。
2. 适合大型网络区域,比如:移动、联通、电信,比他们更大的比如还有国家电网。
3. 支持多区域
4. 无路由环, 由于采用SFP算法。
5. 触发式更新:每个结点只有添加邻居路由器或者邻居路由器坏掉时才会触发更新其路由表的操作,否则路由表不变。比arp每30秒广播一次要好
* 优点:
1. OSPF 适合在大范围的网络:OSPF 协议当中对于路由的跳数,它是没有限制的。
2. 组播触发式更新:OSPF 协议在收敛完成后,会以触发方式发送拓扑变化的信息给其他路由器,这样就可以减少网络宽带的利用率;同时,可以减小干扰,特别是在使用组播网络结构,对外发出信息时,它对其他设备不构成其他影响
3. 以开销作为度量值:OSPF 协议在设计时,就考虑到了链路带宽对路由度量值的影响。OSPF 协议是以开销值作为标准,而链路开销和链路带宽,正好形成了反比的关系,带宽越是高,开销就会越小,这样一来,OSPF 选路主要基于带宽因素。
4. OSPF 协议的设计是为了避免路由环路:在使用最短路径的算法下,收到路由中的链路状态,然后生成路径,这样不会产生环路。
* 使用:一般是小范围内用rip协议,中范围用ospf协议,大范围再用ospf协议
* 特点:
1. BGP协议交换路由信息数量不是很多
2. BGP发言人数目不多,路由选择相对简单
3. BGP协议支持CIDR
4. BGP建立时,交换整个路由表但之后只交换变化部分
这些专用地址常用来做内网(专用网),且不同的网段都可以用这些专用地址来构造自己的内网,所以专用地址具有可重用性。这样也极大的减少了IPV4资源不足的问题。
这样,理论上,外网是无法访问内网的,但是通过VPN技术可以实现访问。
注意:建立了虚拟专用网,就等价于把计算机移到了内网。
NAT路由器的工作原理:
其实核心就是NAT路由器有多个全球IP地址,NAT路由器将源IP地址替换成一个其连接的全球IP地址,并记录与表中。下面是一张例子表:
由此可见,当NAT路由器具有n个全球IP地址时,专用网络最多可以同时有n台主机接入到互联网,这样专用网可以用更多的主机,轮流使用NAT路由器有效数量的全球IP地址。
可能你也想到了,轮流替换在内网主机量特变大的时候效果不好,那么我们有没有更加好的方法???其实,我们把传输层的端口也用上就可以了。那么,这样内网的多个主机可以用NAT路由器连接的1个全球IP地址,只是端口号不一样,比如下图:
而将端口号也做映射的NAT就NAPT(Natwork Address Port Translation)