在计算机通信中,可靠交付应当由端系统负责
虚电路表示这是一条逻辑上的连接,分组都沿着这条逻辑连接按照存储转发方式传送,而并不是真正建立了一条物理连接。电路交换的电话通信是先建立了一条真正的连接。因此分组交换的虚连接和电路交换的连接只是类似,但并不完全一样。
与IP协议配套使用的还有四个协议:
网络互联的中间设备,或中继系统:
每一类地址都由两个固定长度的字段组成,其中一个字段是网络号 net-id,它标志主机(或路由器)所连接到的网络,而另一个字段则是主机号 host-id,它标志该主机(或路由器)。一个IP地址在整个互联网范围内是唯一的。
两级的 IP 地址可以记为:
IP 地址 ::= { <网络号>, <主机号>}(::= 代表“定义为”)
A类地址网络号1个字节,主机号3个字节,B类地址网络号2个字节,主机号2个字节,C类地址网络号3个字节,主机号1个字节。
对于第一字节:
注意:
在同一个局域网上的主机或路由器的IP地址中的网络号必须是一样的
应当注意:
ARP 是解决同一个局域网上的主机或路由器的 IP 地址和硬件地址的映射问题。
使用 ARP 的四种典型情况
IP 数据报首部的可变部分
IP 首部的可变部分就是一个选项字段,用来支持排错、测量以及安全等措施,内容很丰富。选项字段的长度可变,从 1 个字节到 40 个字节不等,取决于所选择的项目。增加首部的可变部分是为了增加 IP 数据报的功能,但这同时也使得 IP 数据报的首部长度成为可变的。这就增加了每一个路由器处理数据报的开销。实际上这些选项很少被使用。
假设有四个 A 类网络通过三个路由器连接在一起。每一个网络上都可能有成千上万个主机。若按目的主机号来制作路由表,则所得出的路由表就会过于庞大。 但若按主机所在的网络地址来制作路表,那么每一个路由器中的路由表就只包含 4个项目。这样就可使路由表大大简化。
根据目的网络地址就能确定下一跳路由器,这样做的结果是:
默认路由(default route)
添加静态路由
Windows网关就是默认路由
查看Windows本地路由表
添加路由表
三个地址分别是目标IP地址、子网掩码和网关
特别强调
IP 数据报的首部中没有地方可以用来指明“下一跳路由器的 IP 地址”。当路由器收到待转发的数据报,不是将下一跳路由器的 IP 地址填入 IP 数据报,而是送交下层的网络接口软件。 网络接口软件使用 ARP 负责将下一跳路由器的IP 地址转换成硬件地址,并将此硬件地址放在链路层的 MAC 帧的首部,然后根据这个硬件地址找到下一跳路由器。
早期使用的IP地址空间的利用率低,两级IP地址不够灵活,因此使用划分子网方式将两级IP地址变成三级IP地址。
好处:
划分子网的思路:
IP地址 ::= {<网络号>, <子网号>, <主机号>}
使用子网掩码可以找出IP地址中的子网划分
将子网掩码与IP地址进行逐位与运算,可得到其网络地址
例如:已知 IP 地址是 141.14.72.24,子网掩码是 255.255.192.0。试求网络地址?
默认的子网掩码
子网掩码是一个网络或一个子网的重要属性,划分子网增加了灵活性,但却减少了能够连接在网络上的主机数。
使用子网划分后,路由器必须包括以下三项内容:目的网络地址、子网掩码和下一跳地址。
路由器转发分组算法:
划分子网在一定程度上缓解了因特网在发展中遇到的困难。然而在1992 年因特网仍然面临三个必须尽早解决的问题,这就是:
IP 编址问题的演进
一开始使用变 长 子 网 掩 码VLSM(Variable Length Subnet Mask),后来在 VLSM 的基础上又进一步研究出无分类编址方法,它的正式名字是无分类域间路由选择 CIDR (Classless Inter-DomainRouting)。
CIDR特点:
无分类的两级编址的记法:
CIDR 还使用“斜线记法”(slash notation),它又称为CIDR记法,即在 IP 地址面加上一个斜线“/”,然后写上网络前缀所占的位数(这个数值对应于三级编址中子网掩码中 1 的个数)。
CIDR 把网络前缀都相同的连续的 IP 地址组成“CIDR 地址块”。
CIDR 地址块
路由聚合
CIDR 记法的其他形式
构成超网
为了进行更加有效的查找,通常是将无分类编址的路由表存放在一种层次的数据结构中,然后自上而下地按层次进行查找。这里最常用的就是二叉线索(binary trie)。
为了提高 IP 数据报交付成功的机会,在网际层使用了网际控制报文协议 ICMP (Internet Control Message Protocol)。ICMP 不是高层协议,而是 IP 层的协议。
ICMP报文有两种,ICMP差错报告报文和ICMP询问报文
ICMP报文前四个字节是统一的格式,共三个字段:类型、代码和检验和
ICMP 差错报告报文共有 4 种
ICMP 差错报告报文的数据字段的内容
将IP数据报首部和数据字段前8个字节提取出来(这8个字节是为了对应得到上层协议端口与发送序号),作为ICMP的数据字段在加上ICMP差错报告报文前8个字节,就构成了ICMP差错报告报文。
ICMP 询问报文有两种
通过ICMP可以探测网络故障
从路由算法的自适应性考虑分两大类:
将互联网划分为许多小的自治系统,记为AS,一个AS对其他AS表现出单一的和一致的路由选择策略。
互联网把路由选择协议划分为两大类:
自治系统之间的路由选择也叫做域间路由选择(interdomain routing),
在自治系统内部的路由选择叫做域内路由选择(intradomain routing)
RIP是一种分布式的基于距离向量的路由选择协议,网关就是默认路由
“距离”的定义:
RIP协议缺点:
RIP 不能在两个网络之间同时使用多条路由。RIP 选择一个具有最少路由器的路由(即最短路由),哪怕还存在另一条高速(低时延)但路由器较多的路由。
RIP 协议的三个要点:
路由选择算法
已知地址为X的相邻路由器发来RIP报文,先将收到的报文下一跳该为X,
所有距离加1,再对该表与自身路由表逐条进行比较。
if(原路由表无目的网络N){
将该项目添加到路由表中}
if else(本机路由表下一跳为X){
将该条更新原本的项目}
if else(距离<原来){
更新该条到路由表}
else{
不做更新操作}
if(三分钟收不到更新路由表){
将此相邻路由表距离设置为16(不可达)}
分析:
本路由器与相邻路由器相距为1,通过相邻路由表可知,本路由器经过相邻路由器到达目的地址的距离会加1,所以d+1,下一跳设置为X。然后对路由表进行比较,目的地址未知则直接添加,目的地址已知,看本路由表下一跳是否为X,如果是,则更新,因为这是最新消息。如果不是,比较距离,距离比原来小可添加。如果长时间收不到更新路由表,则自动标记为不可达。
开放的最短路径优先OSPF,主要特征是使用分布式的链路状态协议。
要点:
OSPF 将一个自治系统再划分为若干个更小的范围,叫作区域。区域也不能太大,在一个区域内的路由器最好不超过 200 个。
OSPF 使用层次结构的区域划分(仅有两层)。在上层的区域叫作主干区域(backbone area)。主干区域的标识符规定为0.0.0.0。主干区域的作用是用来连通其他在下层的区域将自治系统划分为多个区域,这样做可使泛洪法交换链路信息时只局限于一个区域,而不用扩大到整个自治系统,而一个区域的路由器只知道本区域的拓扑结构。
OSPF建立网络拓扑结构图的方式:
边界网关协议 BGP 只能是力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由。每一个自治系统的管理员要选择至少一个路由器作为该自治系统的“ BGP 发言人” ,一般为BGP边界路由器。
通过BGP协议可将上图的网络看做是如下形式:
进而实现多级ISP的网络多级结构
目的:从根本上解决地址耗尽的问题
IPv6的主要变化:
A与B内部的通信本来不经过互联网,如果两者之间想要通信,可使用VPN技术,A将数据报作为内部数据发给路由器R1,路由器R1收到数据报后,对内部数据报加密(保证数据安全),然后重新加上数据报的首部,封装成互联网的外部数据报,到达R2,然后在进行解密,从而实现两者间的通信。
NAT原理:
内部主机 X 用本地地址 IPX 和因特网上主机 Y 通信所发送的数据报必须经过 NAT 路由器。NAT 路由器将数据报的源地址 IPX 转换成全球地址 IPG,但目的地址 IPY 保持不变,然后发送到因特网。NAT 路由器收到主机 Y 发回的数据报时,知道数据报中的源地址是 IPY 而目的地址是 IPG。根据 NAT 转换表,NAT 路由器将目的地址 IPG转换为 IPX,转发给最终的内部主机 X。
现常用的NAT转换表利用运输层的端口号,使得多个拥有本地地址的主机共用一个路由器上的全球IP地址,使用端口号的NAT也叫网络地址与端口号转换NAPT。