网络层的几个基本概念
网络层提供的两种服务
电信网的设计思路是提供端到端的可靠传输的服务。d
但是互联网的设计采用了完全不同 的思路:网络层要设计地尽量简单,要向其上层只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。
网络层不提供服务质量的承诺。
这样的好处是:网络造价大大降低、运行方便灵活、能够适应多种应用
网络层的两个方面
不同网络中的两个主机之间的通信,需要经过若干个路由器转发分组来完成,分组查找路由器中的转发表,从指明的接口转发到下一个路由器。转发表是由路由表导出的,路由表又是由互联网中的诸多路由器,按照共同选定的路由选择协议,通过许多次的相互交换路由信息产生的。由此可见,在路由器之间的信息有以下两类:
第一类是转发源主机和目的主机之间所传送的数据,把源主机所发送的分组,像接力赛跑一样从一个路由器转发到下一个路由器,再把分组传送到目的主机。
第二类则是传送路由信息,是根据路由选择协议所使用的路由算法,彼此不断地交换路由信息分组,目的是为了在路由器中创建路由表,并由此到处为转发分组而用的转发表。
即将网络层抽象地划分为数据层面(或转发层面)和控制层面。这里说的层面和体系结构中的层次很类似。
在实际的情况中,数据层面的操作是路由器独立的,但是控制层面的工作却需要路由器之间进行协同。
软件定义网络SDN(software defined network),将改变这两个层面。
在传统的路由器中,既有转发表又有路由器选择软件,即,每个路由器中,既有数据层面又有控制层面。
但是在SDN结构中,路由器的功能变得简单了。路由器中的路由选择软件都不存在了,因此路由器之间不再相互交换路由信息。在网络的控制层面上有一个逻辑上集中的远程控制器(但在物理上可以由不同地点的多个服务器组成)。远程控制器掌握各主机和整个网络的状态。能够为每一个分组计算出最佳的路由,然后在每一个路由器中生成正确的转发表。而路由器的工作很单纯,即收到分组、查找转发表、转发分组。
但是此处仍旧从传统的角度讲解,即从数据层面的协议到控制层面的路由选择协议。
网际协议IP
网际协议IP(Internet Protocol)是TCP/IP体系中的两个最主要的协议之一[STEV94][COME06][FORO10],这也是最重要的互联网标准协议之一[RFC 791,STD5]。
与IP协议配套使用的有如下几个协议:
地址解析协议ARP
网际控制报文协议ICMP
网际组管理协议IGMP
虚拟互连网络
没有一种单一的网络能够适合用户的具体需求
从一般概念上来讲,想要将网络连接起来,需要一些中间设备。根据中间设备所在的层次,可以有以下四种不同的中间设备:
(1)物理层使用中间设备叫转发器;
(2)数据链路层使用的中间设备叫做网桥或桥接器,以及交换机;
(3)网络层使用的中间设备叫做路由器;
(4)在网络层以上使用的中间设备叫做网关。用网关连接两个不兼容的系统需要在高层进行协议的转换。
直接交付与间接交付
IP地址
IP地址是一个基本的概念
IP地址极其表示方法
整个互联网就是一个单一的、抽象的网络。IP地址就是给连接到互联网上的每一台主机的每一个接口,分配一个在全世界范围内唯一的32位标识符。IP地址的结构使我们可以在互联网上很方便地进行寻址。IP地址现在由互联网名字和数字分配机构ICANN进行分配。
人们通常使用点分十进制法进行区分。
IP地址可以记为:
IP 地址 ::={<网络号>,<主机号>}
::=表示定义为
IP地址指明了
分类的IP地址
在互联网发展早期所采用的是分类的IP 地址。其中,ABC类都是单播地址,D类是多播放地址,而E类是保留地址。其中,区分类别的是n值,n值代表网络号的位数。另外,ABC每类都有固定位数,A类地址的固定位为0,B类地址的固定位为10,C类的固定位为110.
00000000 --> 0
01111111 --> 127
10000000 --> 128
10111111 --> 191
11000000 -->192
11011111 -->223
其中,0.0.0.0表示本网络。127.0.0.1用于环回测试loopback test
后来,随着互联网的快速发展,以及前期申请IP的不节省,导致IP地址面临枯竭的风险,于是了分配子网的方法。即在IP地址的主机号中,插入一个子网号,将两级的IP地址变成三级的IP地址。但是,这并不能解决IP地址枯竭的问题。
后来,人们又使用了一种称为无分类编址的方法。
无分类编址CIDR
这种编址方法的全称是无分类域间路由选择classless inter-domain routing
1)网络前缀
CIDR将上面的网络号改为“网络前缀”,用来指明网络,而剩下的部分仍旧是主机号,用来表示主机。有时候也可将主机号称为后缀。在此处,不仅仅是在概念上将网络号改为网络前缀,更进一步的是网络前缀的位数n不确定,即可以在0-32位选择任意值。
CIDR采用斜线记法,即在IP地址的斜线后面的数字是网络前缀的位数。
地址块
CIDR将网络前缀都相同的所有连续IP地址组成一个“CIDR地址块”,一个CIDR地址块包含的IP地址数目,取决于网络前缀的位数。我们只要知道CIDR地址块中的任何一个地址,就可以知道这个地址块中的起始地址,以及终止地址。使用了CIDR之后,仅仅从斜线右边的IP地址已经无法得知具体的网络地址了,因此,还是之前的IP地址表示方式较为方便。
地址掩码
CIDR使用斜线记法可以使我们快速知道网络前缀的数值,但是计算机不能从此获知具体的数值。因此,使用地址掩码来计算网络地址就显得尤其重要。
地址掩码由一串1和接着的一串0组成,而1的个数就是网络前缀的长度。地址掩码又称为子网掩码。在CIDR记法中,斜线后面的数字就是地址掩码的个数。对于早期使用的分类的IP地址,其子网掩码是固定的,因此不用再做说明,通常不专门指出。
二进制的IP地址与子网掩码进行二进制逻辑AND运算,就可以得到其网络地址。
CIDR中还有特三个特殊的地址块,即:
主机路由,其网络前缀32位,即没有主机号;
点对点链网,其中网络前缀31位,只有两个IP地址;
默认路由,前缀为0,同时IP地址也全是0,用于默认路由
一个很大的CIDR地址快中往往包含很多小的地址块,所以在路由器转发表中就利用较大的一个CIDR地址来替换较小的CIDR地址块,这种方法称为路由聚合。
网络前缀越短的地址块所包含的地址数就越多。
IP地址的特点
每一个IP地址都由网络前缀和主机号组成,仓这个意义上来说,IP地址是一个分等级的地址结构。分两个等级的好处是:第一,IP地址管理机构只是分配IP地址的网络前缀,第二,路由器根据目的主机所连接的网路前缀来转发分组,这样可以使转发表中的项目数大大减少,从而减少转发表的所占的存储空间,缩短查找转发表的空间。
实际上IP地址是标志一台主机(或路由器)和一条链路的接口。当一台主机同时连接到两个网络上时,该主机就必须有两个相应的IP地址,其网络前缀必须是不同的。
按照互联网的观点,一个网络是指具有相同网络前缀的主机的集合,因此,用转发器或交换机连接起来的若干个局域网仍为一个网路。具有不同网络前缀的局域网必须使用路由器进行连接。
在IP地址中,所欲呕分配到网络前缀的网络(不管是范围很小的局域网,还是可能覆盖很大范围的广域网)都是平等的,所谓平等,是指互联网同等对待每一个IP地址。
IP地址是标志一个主机连接到网路上的接口。
应该注意,
在统一个局域网上的主机或路由器的IP地址中的网络号必须是同样的,即具有同样的网络号。
路由器总是有两个或者两个以上的IP地址,即路由器的每个接口的IP地址具有不同的网络前缀。
IP地址与MAC地址
MAC地址又称为硬件地址或者物理地址。
MAC地址是数据链路层使用的地址,而IP地址是网络层和以上各层使用的地址,是一种逻辑地址。
强调以下几点:
在IP层抽象的互联网只能看到IP数据报;鲁豫哦其只根据目的站的IP进行转发;在局域网的链路层,只能看到MAC帧,尽管互连在一起的网络的MAC地址的体系各不相同,但IP层抽象的互联网却屏蔽了下层这些复杂的细节。只要我们在网络层上讨论问题,就能够使用统一的、抽象的IP地址研究主机或路由器之间的通信。
地址解析协议ARP
IP地址和下层的数据链路层的MAC地址之间由于格式不同不存在简单的映射关系,而地址解析协议通过采用ARP高速缓存的方法来解决这种缺失问题。
IP数据报的格式
IP数据包首部的固定部分中的各字段
版本
首部长度
区分服务
总长度
标识
标志
片偏移
生存时间
协议
首部检验和
源地址
目的地址
IP数据包首部的可见部分
IP层转发分组的过程
基于终点的转发、最长前缀匹配
使用二叉线索查找转发表
网际报文协议ICMP
为了更有效地转发IP数据报和提高交付成功的机会,在网际层使用了网际报文控制协议ICMP。
ICMP分为差错报文和询问报文两种。
其中,差错报文又分为以下四种:终点不可达、时间超过、参数问题、改变路由(重定向)
询问报文有两种,分为:回送请求或回送回答、时间戳请求或时间戳回答。
其应用主要为PING与traceroute两种。
IPv6
IP协议是互联网的核心协议,但是由于过去一段时间互联网的快速发展,目前的IPv4的地址早已耗尽。解决IP耗尽的根本措施就是采用更大的地址空间的新版本的IP。
其特点为:
更大的地址空间;扩展的地址层次结构;改进的选项;首部长度是固定的;允许协议继续扩充;支持即插即用;支持资源的再分配。
版本、通信量类、流标号、有效载荷长度、下一个首部、跳数限制、源地址、目的地址。
IPv6的地址
单播、多播、任播。
使用冒号十六进制记法,另外继续使用压缩方法对地址进行压缩,但是其压缩只允许一次。
IPv6地址类型
环回地址
未指明地址
多播地址
本地点单播地址
本地链路单播地址
全球单播地址
从IPv4向IPv6过渡
双协议栈、隧道技术
互联网的路由选择协议
理想的路由算法
撸算法必须是正确的和完整的、算法在计算上应简单、算法应能适应通信量和网络拓扑的变化,算法应具有稳定性,算法应是最佳的。所谓最佳只能是对于某一种特定要求下得出的较为合理的选择。
动态路由选择策略和静态路由选择策略
分层次的路由选择协议
内部网关协议RIP
基于距离向量的路由选择协议
距离向量算法
坏消息传播得很慢
内部网关协议OSPF
开放路径最短路径优先
分享与本机相邻的所有路由器的链接状态,之后构建全网链路状态数据库。
OSPF的几种类型
类型1,问候分组
类型2,数据库描述
类型3,链路状态请求
类型4,链路状态更新
类型5,链路状态确认
外部网关协议BGP
BGP作为粘合剂,才使得这么多的AS孤岛能够连接成一个完整的互联网。
互联网的规模太大,使得自治系统AS之间路由选择非常困难,自治系统AS之间必须考虑有关策略。
在一个自治系统AS中有两种不同功能的路由器,即边界路由器(或边界网关)和内部路由器。
使用热土豆的算法
路由器的构成
路由器的结构
路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组。
路由选择部分叫做控制部分,其核心构件是路由选择处理机。路由选择处理机的任务是根据所选定的路由选择协议构造出路由表,同时经常或定期地和相邻路由器交换路由信息而不断地更新和维护路由表。
分组转发是数据层面的问题,其包括三个部分:交换结构、一组输入端口与一组输出端口。小型路由器的端口只有几个,大型路由器的端口多达几百。
交换结构又称为交换组织,它的作用是根据转发表对分组进行处理。因此称为“在路由器中的网络”。
转发仅涉及一个路由器,但是路由选择涉及到很多路由器。在讨论路由选择原理时,往往不去区分转发表和路由表的区别,而可以笼统地使用路由表这一名词。
交换结构
交换结构是路由器的关键构件。
IP多播
多播路由器
多播地址只能用于目的地址,而不能用于源地址
在局域网上进行硬件多播
IP多播需要两种协议
网际分组管理协议IGMP
虚拟专用网VPN和网络地址转换NAT
虚拟专用网VPN
本地的计算机使用本地地址在本地有效,但是并不能在互联网上使用。
如果本地的计算机需要和外界的网路进行交流,则需要涉及到专用网络的问题。在互联网中的所有路由器,对目的地址是专用地址的IP数据报统一不转发。以下为专用地址:
0.0.0.0/8
172.16.0.0/12
192.168.0.0/16
采用这样的专用IP地址的互联网称为本地互联网或专用互联网,或者直接称为专用网。专用IP也称为可重用地址。
有时一个很大的机构的许多部门分布的范围很广,这些部门经常需要互相交换信息。可以有两种方法,第一种是租用电信公司的通信线路为本机构所用,但是租金太高;第二种方法是利用公用的互联网作为本机构各专用网之间的通信载体,这样的专用网又称为虚拟专用网VPN。其中所有通过互联网的数据都要加密。要使用vpn则必须为它的每一个场所购买专门的硬件和软件,并进行配置,使每一个场所的VPN知道其他场所的地址。
由VPN组成的网络又称为内部网。另一种方式叫做远程接入VPN。
网络地址转换
网络地址转换NAT需要在专用网连接到互联网的路由器上安装NAT软件。
多协议标签交换MPLS
MPLS的工作过程
基本工作过程
给予一定范围内的IP数据报以标签,然后通过标签转换的方式。
软件自定义网络SDN简介
逻辑上集中式,基于流的控制。