计算机网络第四章——网络层3(仅记录我所认为重要的知识点)

什么是IP数据报转发

有四个A类网络通过三个路由器连接在一起。每一个网络上都可能有成千上万个主机。
可以想像,若按目的主机号来制作路由表,则所得出的路由表就会过于庞大。但若按主机所在的网络地址来制作路由表,那么每一个路由器中的路由表就只包含4个项目。这样就可使路由表大大简化。

路由表

在这里插入图片描述

查找路由表

根据目的网络地址就能确定下—跳路由器
IP数据报最终一定可以找到目的主机所在目的网络上的路由器(可能要通过多次的间接交付)。
只有到达最后一个路由器时,才试图向目的主机进行直接交付。

默认路由

路由器可采用默认路由以减少路由表所占用的空间和搜索路由表所用的时间。

这种转发方式在一个网络只有很少的对外连接时是很有用的。默认路由在主机发送IP数据报时往往更能显示出它的好处。

如果一个主机连接在一个小网络上,而这个网络只用一个路由器和因特网连接,那么在这种情况下使用默认路由是非常合适的。

在这里插入图片描述

IP数据报转发流程

  1. 从收到的数据报首部提取目的IP地址。
  2. 先判断是否为直接交付。对路由器直接相连的网络逐个进行检查,看是否和相应的网络地址匹配,若匹配,则把分组进行直接交付(当然还需要把目的IP地址转换成物理地址,把数据报封装成帧发送出去),转发任务结束。否则就是间接交付,执行步骤3
  3. 对路由表中的每一行(目的网络地址,掩码,下一跳,接口),用其中的掩码和目的IP地址逐位相“与”(AND操作),其结果为N。若N与该行的网络地址匹配,则把数据报传送给该行指明的下一跳路由器;否则,执行步骤4
  4. 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行步骤5
  5. 报告转发数据报出错。

例题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

路由聚合

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

最长前缀匹配

使用CIDR时,路由表中的每个项目由“网络前缀”和“下一跳地址”组成。在查找路由表时可能会得到不止一个匹配结果。
应当从匹配结果中选择具有最长网络前缀的路由∶最长前缀匹配(longest-prefix matching)。
网络前缀越长,其地址块就越小,因而路由就越具体(more specific)。最长前缀匹配又称为最长匹配或最佳匹配。
在这里插入图片描述
在这里插入图片描述

特定主机路由

这种路由是为特定的目的主机指明一个路由︰路由表中前缀为“特定主机IP地址/32”的表项
采用特定主机路由可使网络管理人员能更方便地控制网络和测试网络,同时也可在需要考虑某种安全问题时采用这种特定主机路由。

CIDR的特点

CIDR消除了传统的A类、B类和C类地址以及划分子网的概念,因而可以更加有效地分配IPv4的地址空间。
CIDR使用不定长的“网络前缀”(network-prefix)来代替分类地址中的网络号和子网号。
CIDR虽然形式上是二级编址,但实际上可实现多级编址,大的地址块还可以划分为更小的地址块进行分配。
等级结构的CIDR地址块分配便于实现路由聚合。

ICMP网际控制报文协议

为了提高IP数据报交付成功的机会,在网际层使用了网际控制报文协议ICMP (Internet Control Message Protocol)。ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告。
ICMP不是高层协议,而是IP层的协议。
ICMP报文作为IP层数据报的数据,加上数据报的首部,组成IP数据报发送出去。
在这里插入图片描述

ICMP的报文种类

ICMP报文的种类有两种

  1. ICMP差错报告报文
  2. ICMP询问报文。
    ICMP报文的前4个字节是统一的格式,共有三个字段︰即类型、代码和检验和。接着的4个字节的内容与ICMP的类型有关。

类型字段占一个字节,不同类型决定了后面长度可变部分。
ICMP报文的代码字段也占一个字节。为的是进一步区分某种类型中的几种不同的情况。
检验和占两个字节,它检验整个ICMP报文。
ICMP差错报文有5种

  1. 目的站不可达
  2. 数据超时
  3. 改变路由(重定向)
  4. 源点抑制
  5. 参数问题

在这里插入图片描述

不应发送ICMP差错报告报文的几种情况

对ICMP差错报告报文不再发送ICMP差错报告报文。
对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文。对具有多播地址的数据报都不发送ICMP差错报告报文。
对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送ICMP差错报告报文。

ICMP差错报文

目的站不可达

当路由器不能给数据报找到合适的路由路径,或者主机不能将数据报递交给上层协议时,相应的IP数据报就会被丢弃,然后一个目的站不可达差错控制报文将会被返回给源主机。目的站不可达差错可以由很多因素引起,例如网络不可达、主机不可达、协议不可达、端口不可达等,可以在报文首部中的代码字段指出具体原因。在ICMP目的不可达报文的数据区域,装载了引起目的站不可达的IP数据报首部及数据报数据区的前8个字节,当源主机收到这样一份ICMP报文后,它能根据报文数据区中的数据判断是哪个数据报出现了问题。装载引起差错的数据报数据区的前8个字节是因为这8个字节恰好覆盖了TCP报文或UDP报文中的端口号字段,lP层能够根据这个端口号把ICMP报文传递给具体的上层协议进行处理。
常用目的站不可达报文格式及代码字段常用取值如下:
在这里插入图片描述

数据报超时

数据报超时可以用来防止数据报在网络中被循环的路由,在IP首部中都有一个生存时间(TTL)字段,数据报每被转发一次,TTL的值便会减1,当TTL的值被减为O时,数据报会被网络丢弃,同时一个ICMP数据报超时报文会被返回给源主机。此外在分片重装时,也用到了ICMP超时报文,若某个数据报在重装过程中其重装时间超时,而数据分片还没有全部到达,此时与该数据报所有相关的分片将被删除
,同时,一个ICMP超时报文将被返回给源主机。
常用数据报超时报文格式及代码字段常用取值如下∶
在这里插入图片描述

源站抑制

ICMP源站抑制报文就是为了给IP协议增加一种流量控制而设计的,当路由器或主机因拥塞而丢弃数据报时,它可以向源站发送ICMP源站抑制报文,这个报文将告诉源站两个信息︰
第一,你的数据报发得太快,我已经丢弃了
第二,路径中出现了拥塞,请放慢你的数据报发送频率

重定向(路由)

当路由器要将数据报转发到另一个网络时,它必须知道下一个路由器的IP地址,源主机也是这样,当一台主机刚开始运行时,它会将所有数据报发送给网络中的一个默认路由器,因为它只知道默认路由器这一个IP地址。
在这样的情况下,主机始终把所有数据报都发送到默认路由器,这样的处理也意味着所有数据报的目的地址都在默认路由器所处的网络内,但实际上,有些数据报可能是要发送到其他网络上的,若默认路由器接收到这样的数据报,它就可以发送一个ICMP重定向报文告诉源主机改变它的路由表∶你可以直接将那些数据报发送给另外一个路由器,这样我就不用再帮你转发了,你的数据报递交效率也提高了。

数据报参数错误

数据报在网络中传输时,其首部中出现的任何二义性都可能云一土里日个-立,工果路由器或主机发现了这种二义性,或者数据报中的呆个子段去大,哈口命云且3公弃数据报,并向源主机返回一个数据报参数错误报文。

两种ICMP询问报文

  1. 回送请求和回答报文
  2. 时间戳请求和回答报文

不再使用的ICMP报文

  1. 信息请求与回答报文
  2. 掩码地址请求和回答报文
  3. 路由器询问和通告报文

ICMP报文类型字段

在这里插入图片描述

ICMP报文

8位的代码字段进一步指出产生这种类型ICMP报文的原因,每种类型报文的产生的原因都可能有多个,就拿目的站不可达报文来说,产生的原因可能有主机不可达、协议不可达、端口不可达等;
16位校验和字段包括整个ICMP报文,即包括ICMP首部和数据区域。首部中的剩余4个字节在每种类型的报文中有特殊的定义。
在这里插入图片描述

ICMP Echo请求报文

是由主机或路由器向一个特定的目的主机发出的询问。收到此报文的机器必须给源主机发送ICMP Echo回答报文。这种询问报文用来测试目的站是否可达以及了解其有关状态。
Ping 使用此报文

ICMP时间戳请求报文

是请某个主机或路由器回答当前的日期和时间。在ICMP时间戳回答报文中有一个32bit的字段,其中写入的整数代表从1900年1月1日起到当前时刻一共有多少秒。时间戳请求与回答可用来进行时钟同步和测量时间。

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值