Chapter4 网络层(一)
解决走哪条路径的问题
使主机可通过网络层把分组发往任何网络,并使分组独立地传向目标。
网络层提供的服务
- 面向连接,建立虚电路,以保证双方通信所需的一切网络资源
- 无连接,网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。
尽最大努力交付的好处:
- 由于不提供可靠传输服务,可以使得网络中的路由器比较简单,价格低廉
- 想要让进程间的通信可靠,需要运输层的努力(差错处理,流量控制)
网络造价大大降低,运行方式灵活,能适应多种应用
分类的IP地址
{<网络号>,<主机号>}IP地址的特点
- IP地址是一种分等级的地址结构,路由器仅根据主机所连接的网络号来转发分组,使得路由表的项目数大幅度减小,减小了路由表所占的空间
- IP地址标志一个主机/路由器和一条链路的接口,若一个主机同时接在两个网络上,它必须有两个IP地址,被称为多归属主机。一个路由器至少应当连接两个网络,故路由器至少有两个IP地址。
- 用转发器或网桥连接起来的若干局域网仍为一个网络,这些局域网具有相同的网络号。
- 所有分配到网络号的网络都是平等的
物理地址是数据链路层和物理层使用的地址
IP地址是网络层和以上各层使用的地址,是一种逻辑地址
ARP&&RARP
ARP高速缓存的作用
- 主机A在发送其ARP请求分组时,将自己的IP地址到硬件地址的映射写入ARP请求分组。
- 当主机B收到A的ARP请求分组时,就将主机A的这个映射写入自己的ARP高速缓存中。这样以后B向A发送数据报时更方便,不再需要以广播方式发送ARP请求分组。
ARP的四种应用
- 主机找主机
- 主机找路由器
- 路由器找主机
- 路由器找路由器
RARP使只知道自己硬件地址的主机能够知道其IP地址,目前很少使用
IP数据报的格式
首部 + 数据
首部前一部分是固定长度,共20字节,所有IP数据报必备。
后面是可选字段,长度可变。
首部长度最大值为60字节
总长度----占16位,最大长度为65535字节,总长度必须不超过最大传送单元MTU,若超过则需要分片。
标志字段
- MF = 1表示后面还有分片 , MF = 0表示最后一个分片
- DF = 0 允许分片 , DF = 1不允许分片
片偏移:指出较长的分组在分片后某片在原分组中的相对位置,以8字节为偏移单位
分片生存时间(TTL) 数据报在网络中可通过的路由器数的最大值,作用是防止因无法交付而在因特网中兜圈子,跳数限制为255
分组转发算法
- 从数据报的首部提取目的主机的IP地址D,得出目的网络地址为N
- 若网络N与此路由器直接相连,则把数据报直接交付目的主机D,否则间接交付,执行(3)
- 若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中指明的下一跳路由器,否则执行(4)
- 若路由表中有到达网络N的路由,则把数据报传送给路由表指明的下一跳路由器,否则执行(5)
- 若路由表中有个默认路由,则把数据报传送给路由表中指明的默认路由器,否则执行(6)
- 报告转发分组出错 分组转发
划分子网
{<网络号>,<子网号>,<主机号>}
划分子网之前,IP地址是两级结构,划分后变成三级结构。划分子网只是把主机号这部分进行再划分,不改变原来的网络号。
子网掩码
(IP地址)AND(子网掩码) = 网络地址 默认子网掩码
路由表中的每一个项目,除了要给出目的网络地址外,还必须给出该网络的子网掩码。
例子,求网络地址
不同的子网掩码可能会得出相同的网络地址,但不同掩码的效果是不同的
使用子网掩码的分组转发过程
- 从收到的分组的首部提取目的IP地址D
- 先用各网络的子网的子网掩码和D逐位相“与”,看是否和相应的网络地址匹配。若匹配,则将分组直接交付,否则间接交付,执行(3)
- 若路由表中有目的地址为D的特定主机路由,则将分组传送给指明的下一跳路由器,否则执行(4)
- 对路由表中的每一行的子网掩码和D逐位相“与” ,若其结果与该行的目的网络地址匹配,则将分组传送给该行指明的下一跳路由器,否则执行(5)
- 若路由表中有一个默认路由,则将分组传送给路由表中所指明的默认路由器,否则执行(6)
- 报告转发分组出错 使用子网时的分组转发算法
CIDR(无分类编址)
使用各种长度的“网络前缀”来代替分类地址中的网络号和子网号,是两级编址
{<网络前缀>,<主机号>},网络前缀相同的连续IP地址促成“CIDR地址块”。
CIDR例子
最长前缀匹配
使用CIDR时,查找路由表时应当从匹配结果中选择具有最长网络前缀的路由。网络前缀越长,其地址块越小,路由越具体。
网友评论