文档章节

4.IP分组的交付和转发

alon龙武
 alon龙武
发布于 2014/11/16 16:42
字数 1596
阅读 917
收藏 35

1 交付

网络层监视底层物理网络对分组的处理过程,定义为分组的交付。完成一个分组交付给最后终点的任务,需要使用两种不同的交付方法:直接交付和间接交付

1.1 直接交付

直接交付时,分组的终点是一台与交付者连接在同一个网络上的主机。直接交付发生在两种情况:一种是分组的源点和终点都在同一个物理网络。另一种是最后一个路由器与目的主机之间进行的交付。发送方通过提取终点的网络地址,然后与自己所连接的网络地址进行比较。

 

1.2 间接交付

如果目的主机与交付者不在同一个网络,分组需要间接地交付。间接交付时,分组经过一个又一个路由器,最后到达与终点连接在同一个网络上的路由器

 

2 转发

当IP作为无连接的协议时,转发的基础是IP数据报的目的地址。当IP作为面向连接的协议时,转发的基础是附加在IP数据报上的标记

2.1 基于目的地址的转发

一种传统的方法,要求主机或路由器有一张路由表才能进行转发。当主机有分组要进行发送,或路由器收到分组要进行转发时,搜索路由表获取到达最后终点的路由。然而,这种方法因为路由表的表项数量过多导致路由表的查找效率非常低。下面描述一些转发技术:


下一跳方法:可以减少路由表的内容。路由表中只保留下一跳的地址,而不是保留完整路由的信息


特定网络方法:路由表不是对连接在同一个物理网络上的每一台主机都设置一个表项,而只用一个表项来定义目的网络本身的地址。换言之,连接在同一个网络上的所有主机看成是一个表项


默认方法:主机的路由表不必把整个因特网所有的网络列出来,使用一个默认表项


无子网划分的转发:使用分类编址时,全球因特网中的绝大多数路由器没有涉及到子网划分,子网划分是在一个组织内部进行的。这样情况下,典型的转发模块使用三张表,每个单播类别ABC对应一张表。如果路由器支持多播,需要增加一张处理D类地址的表。每张路由表至少包括三列:目的网络的网络地址、下一跳地址和接口号

最简单的情况下,转发模块处理步骤:1.提取出分组的目的地址 2.目的地址的一个副本用来查找地址的类别,具体做法:地址的副本右移28,得到一个0~15之间的4位数(0~7 A类 0111、8~11 B类 1011、12~13 C类 1101、14 D类 1110、15 E类 1111) 3.根据步骤2得到的结果和目的地址,可以用来提取目的网络地址 4.根据地址的类别和目的网络地址查找下一跳地址和输出端的接口号。如果没有发现匹配,使用默认的 5.ARP模块根据下一跳地址和接口号找出下一个路由器的物理地址,然后请求数据链路层把分组交付到下一跳


有子网划分的转发:固定长度子网划分的简化模块:1.模块提取分组的目的地址 2.如果目的地址与路由表任意一个特定主机表项相匹配,提取下一跳地址和接口号 3.通过目的地址和掩码提取子网地址 4.根据子网地址搜索路由表,获取下一跳地址和接口号。如果没有匹配,使用默认的 5.下一跳地址和接口号传送给ARP


2.2 基于标记的转发

在一个面向连接的网络,交换机根据附加在分组上的标记转发分组。路由选择通常基于对路由表内容的搜索,而交换可以用一个索引访问交换表来完成。路由选择涉及到搜索过程,交换涉及到直接的访问

多协议标记交换MPLS

MPLS既可以用作路由器,也可以用作交换机。当用作路由器使用时,可以根据目的地址转发分组;当用作交换机使用时,可以基于标记转发分组


3 路由器的结构

一个路由器有四个构件:输入端口、输出端口、路由选择处理器和交换结构

输入端口:执行路由器的物理层和数据链路层的功能。它从接收到的信号中得到比特流,并把帧拆装后得到分组,同时进行差错的检测和纠正。分组准备就绪后,可以通过网络层进行转发。缓存队列用来在分组被传送到交换结构之前进行暂存

输出端口:首先,向外发送的分组需要进行排队,然后将分组封装成帧,最后使用物理层的功能,把帧变成发送到线路的信号

路由选择处理器:路由选择处理器执行网络层的功能。通过目的地址找出下一跳地址,同时找出分组发送出去的端口号。一些较新的路由器,路由选择处理器功能被转移到输入端口,为了使这个过程更容易更快地进行

交换结构:路由器最困难的任务就是把分组从输入队列搬移到输出队列。完成的速度直接影响到输入/输出队列的大小和分组交付的总延时。

a.纵横交换结构

b.榕树交换结构


© 著作权归作者所有

共有 人打赏支持
alon龙武
粉丝 2
博文 14
码字总数 20481
作品 0
深圳
程序员
加载中

评论(2)

alon龙武
alon龙武

引用来自“hphper”的评论

看不懂
呵呵,哪些地方看不懂哈!
hphper
hphper
看不懂
计算机网络学习笔记(2):IP协议

主要内容:IP头部,IPV6扩展头部,IP转发。IPV6扩展头部主要是分片头部。 引言 IP是TCP/IP协议族中最核心的协议。所有TCP,UDP,ICMP,IGMP数据都通过IP数据报传输。IP提供了一种尽力而为,无...

我和我的皮球
2017/11/20
0
0
网络基础之--IP数据报、分片策略、路由表

IP 数据报的格式 一个 IP 数据报由首部和数据两部分组成。 首部的前一部分是固定长度共 20 字节是所有 IP 数据报必须具有的。 在首部的固定部分的后面是一些可选字段其长度是可变的。 IP 数据...

duanjiatao
06/26
0
0
计算机网络知识点

基本知识点 1.OSI参考模型(七层体系结构) 物理层 - 数据链路层 - 网络层 - 运输层 - 会话层 - 表示层 - 应用层 2.TCP/IP体系结构(四层体系结构) 网络接口层 - 网际层IP - 运输层(TCP/UD...

Panda_Jerry
2017/11/07
0
0
浅谈路由概念

计算机网络的五层因特网协议栈由上而下分别是:应用层,运输层,网络层,链路层和物理层,路由概念就出现在网络层中,因为网络层的三个重要功能为:转发、路由选择、建立连接。这篇文章主要分...

卫莨
2017/09/23
0
0
你应该知道的计算机网络知识

前言 作为一名程序员,不可能不与网络打交道。不夸张地说,我们的手机和电脑离开了网络就是一块「废铁」,它们的作用将大打折扣.。本文要是针对非网络专业开发的人员准备的,以「最短的时间,...

Yomut
2016/09/08
32
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

RabbitMQ在CentOS环境安装

1.废话不多说准备一台虚拟机,系统为centos,我这里使用的系统版本如下图所示:

凌晨一点
53分钟前
0
0
线程池相关

在java.util.concurrent包下,提供了一系列与线程池相关的类。 使用线程池的好处 降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗; 提高响应速度。当任务到达时,任务...

edwardGe
55分钟前
0
0
学习大数据这三个关键技术是一定要掌握!

大数据时代全面来临,大数据、人工智能等技术引领科技创新潮流,获得国家政策大力支持,前景广阔。学习大数据技术的人自然是络绎不绝, 学习大数据虽然是一个趋势,但也要注意大数据培训课程...

董黎明
今天
0
0
jetbrains 上传代码到github

设置中找github 获取token 验证是否成功 测试git 生成key,一路回车即可 ssh-keygen -t rsa -C “youremail@example.com” 打开pub复制key,需要再次输入一次密码 验证是否成功,输入yes即可...

阿豪boy
今天
0
0
分布式服务框架(拾遗)

前言 现在的大部分工程都已经是基于分布式架构来处理。所以这里对分布式框架做一个简单的总结 常用的RPC框架 RPC框架原理 RPC(Remote Procedure Call,远程过程调用)一般用来实现部署在不同...

kukudeku
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部