文档章节

4.IP分组的交付和转发

alon龙武
 alon龙武
发布于 2014/11/16 16:42
字数 1596
阅读 926
收藏 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.榕树交换结构


© 著作权归作者所有

共有 人打赏支持
上一篇: 5.网际协议版本4
下一篇: Linux C错误代码
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
浅谈路由概念

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

卫莨
2017/09/23
0
0
计算机网络知识点

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

Panda_Jerry
2017/11/07
0
0
驱动模式劫持指定进程的网络连接并转发,支持TCP和UDP

【业务需求】 一、功能需求 针对特定游戏进程的网络通信转发到后台服务器,进行游戏加速 举例:让玩家在绝地求生时候,网络流量走后台特定的加速节点 二、技术要求 1,通过驱动方式劫持特定进...

小梦小白
2017/12/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

zookeeper配置与使用

一.登录官网下载 不要带后缀的,那是公侧版本,下稳定版,比如3.4.9 二.安装与使用 解压后bin里是启动程序 配置文件:在conf下 复制zoo_sample.cfg改名为为zoo.cfg,打开zoo修改文件...

小兵胖胖
24分钟前
1
0
spring源码阅读笔记(一)

ClassPathXmlApplicationContext 与 FileSystemXmlApplicationContext 用了这么久的框架,是时候搞一下源码了,一般最初接触spring 从以下步骤开始 创建一个bean类 并创建 ooxx.xml之类的spr...

NotFound403
48分钟前
2
0
MySQL主从配置

12月14日任务 17.1 MySQL主从介绍 17.2 准备工作 17.3 配置主 17.4 配置从 17.5 测试主从同步 MySQL主从介绍 MySQL主从又叫做Replication、AB复制。简单将就是A/B两个服务器做主从后,在A上写...

robertt15
50分钟前
8
0
我的Linux系统九阴真经

在今天,互联网的迅猛发展,科技技术也日新月异,各种编程技术也如雨后春笋一样,冒出尖来了。各种创业公司也百花齐放百家争鸣,特别是针对服务行业,新型互联网服务行业,共享经济等概念的公...

问题终结者
今天
22
0
Java 使用 gson 对 json 根据 key 键进行排序

引入Google的gson jar <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.0</version>......

yh32
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部