网络层提供的两种服务
面向连接的虚电路服务

l可靠通信由网络来保证
l必须建立网络层的连接一一虚电路VC
l通信双方沿着已建立的虚电路发送分组
l目的主机的地址仅在连接建立阶段使用,之后每个分组的首部只需携带一条虚电路的编号(构成虚电路的每一段链路都有一个虚电路编号)
l这种通信方式如果再使用可靠传输的网络协议,就可使所发送的分组最终正确到达接收方(无差错按序到达、不丢失、不重复)。
l通信结束后,需要释放之前所建立的虚电路。
l很多广域分组交换网都使用面向连接的虚电路服务。例如,曾经的X.25和逐渐过时的帧中继FR、异步传输模式ATM等
虚电路是建立一条逻辑连接,发送方与接收方不需要预先建立连接
无连接的数据报服务
l可靠通信应当由用户主机来保证
l不需要建立网络层连接
l每个分组可走不同的路径
l每个分组的首部必须携带目的主机的完整地址
l这种通信方式所传送的分组可能误码、丢失、重复和失序。
l由于网络本身不提供端到端的可靠传输服务,这就使网络中的路由器可以做得比较简单,而且价格低廉(与电信网的交换机相比较)。
l因特网采用了这种设计思想,也就是将复杂的网络处理功能置于因特网的边缘(用户主机和其内部的运输层),而将相对简单的尽最大努力的分组交付功能置于因特网核心。
IPV4地址概述

点分十进制

8位无符号二进制证书转十进制

十进制整数转8位无符号二进制数
除二取余法

凑值法(必须熟记8位二进制数各位的权值128 64 32 16 8 4 2 1)

分类编址的IPV4地址

l只有A类、B类和C类地址可分配给网络中的主机或路由器的各接口
l主机号为“全0”的地址是网络地址,不能分配给主机或路由器的各接口
l主机号为“全1”的地址是广播地址,不能分配给主机或路由器的各接口
A类地址

B类地址

C类地址




私有地址
私有ip属于非注册地址,专门为组织机构内部使用。RFC1918定义了私有IP地址范围:
A: 10.0.0.0~10.255.255.255 即10.0.0.0/8
B:172.16.0.0~172.31.255.255即172.16.0.0/12
C:192.168.0.0~192.168.255.255 即192.168.0.0/16
这些地址是不会被Internet分配的,它们在Internet上也不会被集线器等也可以使用这些地址,以节省IP地址资源。
划分子网的IPv4地址


解决方法:子网掩码
子网掩码
32比特的子网掩码可以表明分类IP地址的主机号部分被借用了几个比特作为子网号
l子网掩码使用连续的比特1来对应网络号和子网号
l子网掩码使用连续的比特0来对应主机号
l将划分子网的IPv4地址与其相应的子网掩码进行逻辑与运算就可得到IPv4地址所在子网的网络地址

例题1:



例题2:

根据子网号的连续的1来判断有多少个子网
若有连续x个1,则分配了2^x个子网(,其中有效的为2^x-2个子网掩码)?
根据子网号的连续的0来判断每个子网可以分配多少个主机号
若有y个连续的0,每个子网可分配2^y个主机号,其中,有效的个数为2^y-2
例子
IP:172.16.0.0 掩码:255.255.252.0
掩码换成二进制就是11111111.11111111.11111100.00000000
IP是B类IP 掩码里有6位子网号 10位主机号
就是说可以划分2^6个子网(,有效子网是2^6-2)?
每个子网所容纳的主机数目是2^10,有效个数是2^10-2
默认子网掩码
默认的子网掩码是指在未划分子网的情况下使用的子网掩码

CIDR
划分子网在一定程度上缓解了因特网在发展中遇到的困难,但是数量巨大的C类网因为其地址空间太小并没有得到充分使用,而因特网的IP地址仍在加速消耗,整个IPv4地址空间面临全部耗尽的威胁。
为此,因特网工程任务组ETF又提出了采用无分类编址的方法来解决IP地址紧张的问题,同时还专门成立IPv6工作组负责研究新版本lIP以彻底解决IP地址耗尽问题。
1993年,IETF发布了无分类域间路由选择CIDR( Classless Inter- Domain Routing)的RFC
文档:RFC1517~1519和1520.
lCIDR消除了传统的A类、B类和C类地址,以及划分子网的概念;
lCIDR可以更加有效地分配PV4的地址空间,并且可以在新的IPv6使用之前允许因特网的规模继续增长。

例题:

构造超网(路由聚合)

例题:

IPv4数据报的首部格式

首部长度
占4比特,表示IP数据报首部的长度。该字段的取值以4字节为单位
最小十进制取值为5,表示IP数据报首部只有20字节固定部分;
最大十进制取值为15,表示P数据报首部包含20字节固定部分和最大40字节可变部分。
可选字段
长度从1个字节到40个字节不等。用来支持排错、测量及安全等措施。
可选字段增加了IP数据报的功能,但这同时也使得IP数据报的首部长度成为可变的。这
就增加了每一个路由器处理IP数据报的开销。实际上可选字段很少被使用。
填充字段
确保首部长度为4字节的整数倍。使用全0进行填充。
区分服务
占8比特,用来获得更好的服务。
该字段在旧标准中叫作服务类型,但实际上一直没有被使用过
1998年,因特网工程任务组ETF把这个字段改名为区分服务。
利用该字段的不同数值可提供不同等级的服务质量。
只有在使用区分服务时,该字段オ起作用。一般情况下都不使用该字段
总长度


标识、标志、片偏移

分片

同时要考虑IP数据包的首部长度
片偏移以8个字节为1个单位
TTL生存时间
占8比特,最初以秒为单位,最大生存周期为255秒;路由器转发IP数据报时,将IP数据报首部中的该字段的值减去IP数据报在本路由器上所耗费的时间,若不为0就转发,否则就丢弃。
现在以“跳数”为单位,路由器转发IP数据报时,将IP数据报首部中的该字段的值减1,若不为0就转发,否则就丢弃。
IP数据包每经过一“跳”TTL减去一;当路由器收到一个TTL=0的数据包时,则宣告此数据包死亡并丢弃。TTL的本质是为了IP数据包的“环路”问题


协议

首部检验和
占16比特,用来检测首部在传输过程中是否出现差错。比CRC检验码简单,称为因特网检验和
IP数据报毎经过一个路由器,路由器都要重新计算首部检验和,因为某些字段(生存时间、标志、片偏移等)的取值可能发生变化。
由于IP层本身并不提供可靠传输的服务,并且计算首部校验和是一项耗时的操作,因此在IPv6中,路由器不再计算首部校验和,从而更快转发lP数据报。
路由选择协议
静态路由选择
l由人工配置的网络路由、默认路由、特定主机路由黑洞路由等都属于静态路由
l这种人工配置方式简单、开销小但不能及时适应网络状态(流量、拓扑等)的变化。
l一般只在小规模网络中采用。
动态路由选择
l路由器通过路由选择协议自动获取路由信息。
l比较复杂、开销比较大。能较好地适应网络状态的变化。
l适用于大规模网络。
因特网所采用的路由选择协议的主要特点

分层次


路由信息协议RIP的基本工作原理
RIP要求自治系统AS内的每一个路由器都要维护从它自己到AS内其他每一个网络的距离记录。这是一组距离,称为“距离向量D-V( Distance-Veco)
RIP使用跳数( Hop Count)作为度量( Metric)来衡量到达目的网络的距离。
l路由器到直连网络的距离定义为1.
l路由器到非直连网络的距离定义为所经过的路由器数加1
l允许一条路径最多只能包含15个路由器。“距离"等于16时相当于不可达。
因此,RIP只适用于小型互联网。

lRIP认为好的路由就是“距离短”的路由,也就是所通过路由器数量最少的路由

虽然蓝色的路径带宽更小,但是经过的路由更少,所以被RIP协议认为为最短路径
l当到达同一目的网络有多条“距离相等”的路由时,可以进行等价负载均衡。也就是通信量均匀的分布到多条等价的路由上

中间没有路由器则为相邻,有则不是相邻

更新规则
C将路由表发送给D,D将接受的路由表进行改造,下一跳变为C且距离+1(因为D可以连通C,所以C路由表可以连通的D都可以通过C来连通,只不过距离要加1)

例题:


RIP协议存在坏消息传的慢问题

当R2被误导根据R1更新路由表后,若后面R1想要根据R2更新路由表则又会被R2的错误信息误导,如此往复

“坏消息传播得慢”又称为路由环路戓距离无穷计数问题,这是距离向量算法的一个固有问题可以采取多种措施减少出现该问题的概率或减小该问题带来的危害。
l限制最大路径距离为15(16表示不可达)
l当路由表发生变化时就立即发送更新报文(即“触发更新”),而不仅是周期性发送
l让路由器记录收到某特定路由信息的接口,而不让同一路由信息再通过此接口向反方向传送(即“水平分割“)
开放最短路径OSPF
开放最短路径优先OSPF( Open Shortest Path First),是为克服RIP的缺点在1989年开发出来的。
l“开放”表明OSP协议不是受某一家厂商控制,而是公开发表的。
l“最短路径优先”是因为使用了 Dijkstra提出的最短路径算法SPF
OSPF是基于链路状态的,而不像RIP那样是基于距离向量的
OSPF采用SPF算法计算路由,从算法上保证了不会产生路由环路。
OSPF不限制网络规模,更新效率高,收敛速度快。
链路状态是指本路由器都和哪些路由器相邻,以及相应链路的“"代价”(cost)
l“代价”用来表示费用、距离、时延、带宽,等等。这些都由网络管理人员来决定。


使用OSPF的每个路由器都会产生链路状态通告LSA( Link State Advertisement).LSA中包含以下内容:
l直连网络的链路状态信息
l邻居路由器的链路状态信息
LSA被封装在链路状态更新分组LSU中,采用洪泛法发送。
使用OSPF的每个路由器都有一个链路状态数据库LSDB,用于存储LSA.
通过各路由器洪泛发送封装有自己LSA的LSU分组,各路由器的LSDB最终将达到一致。


OSPF有以下五种分组类型
类型1,问候(Hlo)分组
用来发现和维护邻居路由器的可达性
类型2,数据库描述( Database Description)分组
向邻居路由器给出自己的链路状态数据库中的所有链路状态项目的摘要信息
类型3,链路状态请求( .ink State Request)分组
向邻居路由器请求发送某些链路状态项目的详细信息。
类型4,链路状态更新( Link State Update)分组
路由器使用这种分组将其链路状态进行洪泛发送,即用洪泛法对全网更新链路状态
类型5,链路状态确认( Link State Acknowledgment)分组
这是对链路状态更新分组的确认分组。
边界网关协议BGP
外部网关协议EGP(例如边界网关协议BGP)
l在不同自治系统内,度量路由的“代价”(距离,带宽,费用等)可能不同。因此,对于自治系统之间的路由选择,使用“代价”作为度量来寻找最佳路由是不行的
l自治系统之间的路由选择必须考虑相关策略(政治,经济,安全等)
lBGP只能是力求寻找一条能够到达目的网络且比较好的路由(不能兜圏子)而并非要寻找一条最佳路由

在配置BGP时,每个自治系统的管理员要选择至少ー个路由器作为该自治系统的“BGP发言人”
不同自治系统的BGP发言人要交换路由信息,首先必须建立TCP连接,端口号为179
l在此TCP连接上交换BGP报文以建立BGP会话
l利用BGP会话交换路由信息(例如,增加新的路由,或撤销过时的路由,以及报告出错的情况等)
l使用TCP连接交换路由信息的两个BGP发言人,彼此称为对方的邻站( neighbor)或对等站(peer)
BGP发言人除了运行BGP外,还必须运行自己所在自治系统所使用的内部网关协议IGP,例如OSPF或RIP

BGP发言人交换网络可达性的信息(要到达某个网络所要经过的一系列自治系统)
当BGP发言人互相交换了网络可达性的信息后,各BGP发言人就根据所采用的策略从收到的路由信息中找出到达各自治系统的较好的路由。也就是构造出树形结枃、不存在回路的自治系统连通图


BGP-4有以下四种报文
lOPEN(打开)报文:用来与相邻的另一个BGP发言人建立关系,使通信初始化。
lUPDATE(更新)报文:用来通告某一路由的信息,以及列出要撤销的多条路由
lKEEPALIVE(保活)报文:用来周期性地证实邻站的连通性。
lNOTIFICATION(通知)报文:用来发送检测到的差错。
在BGP协议刚运行时,BGP的交换整个BGP路由表,但以后只需要发生化时更新有变化的部分,这样做对节省网络带宽和减少路由器的处理开销都有好处
例题:

虚拟专用网VPN( Virtual Private Network)
利用公用的因特网作为本机构各专用网之间的通信载体,这样的专用网又称为虚拟专用网。由于IPv4地址的紧缺,一个机构能够申请到的IPv4地址数量往往远小于本机构所拥有的主机数量。因此,虚拟专用网中的各主机所分配的地址应该是本机构可自由分配的专用地址而不是需要申请的、在因特网上使用的公有地址

同一机构内不同部门的内部网络所构成的虚拟专用网VPN又称为内联网VPN
有时一个机构的VPN需要有某些外部机构(通常就是合作伙伴)参加进来。这样的VPN就称为外联网VPN
在外地工作的员工需要访问公司内部的专用网络时,只要在任何地点接入到因特网,运行驻留在员工PC中的VPN软件,在员工的PC和公司的主机之间建立VPN隧道,即可访问专用网络中的资源。这种VPN称为远程接入VPN
网络地址转换NAT( Network Address Translation)
虽然因特网采用了无分类编址方式来减缓IPv4地址空间耗尽的速度,但由于因特网用户数目的激增,特别是大量小型办公室网络和家庭网络接入因特网的需求不断增加,IPv4地址空间即将面临耗尽的危险仍然没有被解除。
1994年提出了一种网络地址转换NAT的方法再次缓解了IPv4地址空间即将耗尽的问题。
NAT能使大量使用内部专用地址的专用网络用户共享少量外部全球地址来访问因特网上的主机和资源。
发送:

回报:

当有多条主机同时发送,则会在路由表上记录多条记录



对手一些P2P网络应用,需要外网主机主动与内网主机进行通信,在通过NAT时会遇到问题,需要网络应用自己使用一些特殊的NAT穿越技术来解决问题
另外,由于NAT对外网屏蔽了内网主机的网络地址,能为内网的主机提供一定的安全保护





