网络层:实现网络互联,进而实现数据包在各网络之间的传输
路由器:一台专用计算机,用于互联网中的路由选择
服务
1、面向连接的虚电路服务(可靠通信由网络来保证)
必须建立网络层的连接——虚电路VC
通信双方沿着已建立的虚电路发送分组
目的主机的地址仅在建立连接的阶段使用,之后每个分组的首部只需携带一条虚电路的编号
通信结束后需要释放之前所建立的虚电路
2、无连接的数据报服务
可靠通信由用户主机来保证
不需要建立网络层连接
每个分组可走不同的路径
每个分组的首部必须携带目的主机的完整地址
这种通信方式所传送的分组可能误码、丢失、重复和失序
网络中的路由器造价低廉
寻址问题
1、IPv4地址:给因特网上的每一台主机的每一个接口分配一个在全世界范围内是唯一的32比特标识符
IPv4地址采用点分十进制表示方法
编址方法:
(1)分类编址
A类:8位网络号,24位主机号。网络号的最高位固为0(1~126),不能指派的网络号为0(广播号)和127(作为本地回环地址)
B类:16位网络号,16位主机号。网络号最高两位固定为10(128.0~191.255)
C类:24位网络号,8位主机号。网络号最高三位固定为110(192.0.0~223.255.255)
D类:前4位为1110,为多播地址
E类: 前四位为1111,保留为今后使用
(2)划分子网
子网掩码:32比特子网掩码可以表明分类IP地址的主机号被借用了几个比特作为子网号
子网掩码使用连续的比特1来对应网络号和子网号,使用连续的比特零来对应主机号
将划分子网的IPv4地址与其对应的子网掩码进行逻辑与运算就可以得到IPv4地址所在子网的网络地址
默认子网掩码:未划分子网的情况下使用的子网掩码(A类:255.0.0.0 B类:255.255.0.0 C类:255.255.255.0)
(3)无分类编址
无分类域间路由选择CIDR
1、CIDR消除了传统的ABC类地址以及划分子网的概念
2、CIDR可以更加有效地分配IPv4的地址空间
CIDR使用斜线计数法或者称CIDR计数法,即在IPv4地址后加上“/”,在斜线后面写上网络前缀所占的比特数量如:128.14.35.7/20
IPv4地址的应用规划
定长子网掩码(FLSM):是用同一个子网掩码来划分子网,每个子网所分配的IP地址数量相同,造成IP地址的浪费
变长子网掩码(VLSM):使用不同的子网掩码来划分子网,每个子网所非陪的IP地址数量可以不同,尽可能减少对IP地址的浪费
IP数据报的发送和转发
1、主机发送IP数据报
判断目的主机是否与自己在同一个网络,若在同一个网络,则直接交付;若不在,则传输给主机所在网络的默认网关(路由器)
2、路由器转发IP数据报
(1)检查IP数据报首部是否出错:出错则直接丢弃,并通告源主机;不出错则进行转发
(2)根据IP数据报的目的地址在路由表中查找匹配的条目:找到则转发给条目中指示的下一条;找不到则丢弃该IP数据报并通告源主机
路由条目类型:直连网络、静态路由、动态路由
特殊的静态路由条目:默认路由、特定主机路由、黑洞路由
静态网络配置可能产生路由环路问题
1、配置错误
2、聚合了不存在的网络
3、网络故障
路由选择问题(路由算法)
静态路由选择:由人工配置的网络路由、默认路由、特定主机路由,黑洞路由等
特点:简单、开销小、但不能即时适应网络状态的变化,只在小规模网络中使用
动态路由选择:路由器通过路由选择协议自动获取路由信息
特点:比较复杂、开销比较大、能较好地适应网络状态的变化,适用于大规模网络
路由选择协议
特点:自适应、分布式、分层次
路由信息协议RIP:自治系统AS内的每一个路由器都要维护从它自己到AS内其他每一个网络的距离记录,称为距离向量D-V
RIP使用跳数作为度量来衡量到达目的网络的距离
RIP会选择距离短的路由,当到达同一目的网络有多条距离相等的路由时,可以进行等价负载均衡,距离最大为15(距离16表示目的网络不可达)
RIP协议使路由器仅和相邻路由器周期性交换信息(自己的路由表)
问题:RIP存在坏消息传得慢的问题,形成路由环路长达数分钟
开放最短路径有限OSPF
特点:基于链路状态、不会产生路由环路、不限制网络规模、收敛速度快、
链路状态:本路由都有哪些相邻路由,以及相应链路的“代价”(权值)
五种分组:
1、问候(Hello)分组:发现和维护邻居路由器的可达性
2、数据库描述分组:向邻居路由器给出自己的链路状态数据库种的所有链路状态项目的摘要信息
3、链路状态请求分组:相邻居路由器请求发送某些链路状态项目的详细信息
4、链路状态更新分组:路由器是哦那个这种分组将其链路状态进行洪泛发送向全网更新链路状态
5、链路状态确认分组:对链路状态更新分组的确认分组
OSPF中邻居关系的建立
选举指定路由器DR和备用指定路由器BDR,所有非DR/BDR只与DR/BDR建立邻居关系,非DR/BDR之间通过DR/BDR交换信息
为了使OSPF能用于规模更大的网络,OSPF把一个自治系统再划分为若干个更小的范围,叫做区域。
区域内路由器:所有接口都在区域内
区域边界路由器:一个接口连接自身所在区域,另一个接口用于连接主干区域
自治系统边界路由器:主干区域内和本自治系统外的其他自治系统交换信息
边界网关协议BGP(自治系统间的协议、也就是外部网关协议):因为需要考虑多方面因素,所以只能力求寻找一条能够到达目的网络且比较好的路由
四种报文:
1、OPEN打开报文:用来与相邻的另一个BGP发言人建立关系,使通信初始化
2、UPDATE更新报文:用来通告某一路由的信息,以及列出要撤销的多条路由
3、KEEPALIVE保活报文:用力啊周期性地证实邻站的连通性
4、NOTIFICATION通知报文:用来发送检测到的差错
IPv4数据报的首部格式
20字节的固定部分:版本号4比特(现在大多为4)、首部长度4比特、区分服务8比特(一般不使用)、总长度字段16比特、标识16比特、标志3比特、片偏移13比特、生存时间8比特(防止IP数据报再网络中永久兜圈)、协议8比特、首部检验和18比特、源IP地址和目的IP地址各占32比特
最大40字节的可变部分:可选字段,长度从1到40字节不等,用来支持排错、测量及安全等措施,实际上可选字段很少被使用
IP数据报分片
最大传送单元MTU:一个数据链路层数据报能承载的最大数据量
IP分片:分片的数据中第一个数据的MF为1表示还有后续,片偏移为0表示该字段在原始IP数据报中的位置。中间的数据中的MF为1表示还有后续,片偏移为距离数据报开头的字节数表示该字段在原始IP数据报中的位置。最后的数据中的MF为0表示没有后续,片偏移为距离数据报开头的字节数表示该字段在原始IP数据报中的位置。
只有DF为0的数据才可以分片
网际控制报文协议ICMP
差错报告报文:终点不可达、源点抑制、时间超过、参数问题、改变路由
询问报文:回送请求请求和回答、时间戳请求和回答
虚拟专用网VPN:利用公用的因特网作为本机构各专用网之间的通信载体,虚拟专用网中的各主机所分配的地址应该是本机构可自由分配的专用地址。
网络地址转换NAT:使用内部专用地址的专用网络用户共享少量外部全球地址来访问因特网上的主机和资源。
网络地址与端口号转换NAPT利用运输层的端口号和IP地址一起进行转换,可以用一个全球IP地址使多个拥有本地地址的主机同时和因特网上的主机进行通信
内网主机与外网主机进行通信时,外网主机不能优先进行访问
IPv6
特点:
1、更大的地址空间。有128字节来存储地址
2、扩展的地址层次结构
3、灵活的首部格式
4、改进的选项
5、允许协议继续扩充
6、支持即插即用(自动配置)
7、支持资源的预分配
8、只有在包的源结点才能分片,是端到端的,传输路径中的路由器不能分片,所以从一般意义上讲,IPv6不允许分片
9、首部必须是8B(64位)的整数倍
10、增大了安全性(身份验证和保密功能)
IPv6的目的地址可以有三种:1、单播 2、多播 3、任播(IPv6增加的一种格式,目的站是一组计算机,但数据报在交付时只交付其中一台计算机,通常是距离最近的一台)
地址表示:每4位用一个16进制数表示,每16位之间用分号隔开
当16位开头有一些0时,可以采用一种缩写。如:4B5f:1C34:0000:0000:0000:0023:0A7F:000B可以表示为4B5f:1C34:0:0:0:23:A7F:B。使用双冒号可以进一步表示为4B5f:1C34::23:A7F:B。双冒号表示中间的所有地址都是0,每个地址只能有一个双冒号
IP组播:有的应用程序要把一个分组发送给多个目的主机。
组播组:每个组都有一个特别分配的地址,要给该组发送的计算机将使用这个地址作为分组的目的地址。在IPv4中,这些地址在D类地址空间中分配,而IPv6也有一部分地址空间保留给组播组
组播一定仅应用于UDP,主机使用IGMP协议加入组播组。
组播数据报与一般IP数据报的区别是使用D类地址作为目的地址,并且首部中的协议字段值是2,每个D类IP地址标志一个组播组
注:
1、组播数据报“尽最大努力交付”,不提供可靠传输服务
2、组播地址只能用于目的地址,不能用于源地址
3、对组播数据报不产生ICMP差错报文
4、并非所有D类地址都可以作为组播地址
因特网组管理协议IGMP:连接到局域网上的组播路由器还必须和因特网上的其他组播路由器协同工作,以便把组播数据报用最小代价传送给所有组员
IGMP应视为TCP/IP的一部分,其工作可分为两个阶段:
1、当某主机加入新的播组时,该主机向组播组地址发送一个IGMP报文,声明自己要成为改组的成员。本地组播路由器收到IGMP报文后将组成员发给因特网上的其他组播路由器。
2、因为组成员关系时动态的,本地组播路由器要周期性地探询本地局域网上的主机,以便知道这些主机是否仍继续是组的成员。只要对某个组有一台主机相应,那么组播路由器就认为这个组是活跃的。但一个组在经过几次的探询后仍然没有一台主机响应时,则不再将该组的成员关系转发给其他组播路由器
因特网使用TCP/IP协议栈,由于TCP/IP协议栈的网络层使用网际协议IP,因此也称网络层为网际层