IP分组交付和转发
1:交付
网络层监视底层物理网络对分组的处理过程叫做交付,分为直接交付和间接交付
1.1:直接交付
直接交付时,分组的终点是一台与交付着连接在同一个网络上的主机,发生在俩种情况下,分组的源点和终点都在同一个物理网络上,或者是在最后一个路由器与目的主机之间进行交付.
发送方提取终点的网络地址(用掩码与分组内目的IP地址进行与运算),然后与自己所连接的网络地址比较.若匹配,交付就是直接的。
1.2:间接交付
目的主机和交付者不在同一网络上,在间接交付时,分组经过一个又一个路由器,最后到达与终点连接在同一个网络上的路由器。
2:转发
转发意味者让分组踏上通往终点的路途。转发就是将分组交付给下一跳(下一跳可能是终点,也有可能是一个中间的连接设备).
当IP作为无连接的协议时,转发的基础是IP数据报的目的地址,而当IP作为面向连接的协议时,转发的基础是附加在IP数据报上的标记(IP面向连接协议时在进行发送IP分组之前需要先打通一个链路,此时每个分组经过的路由器都是相同的,发完后需要把这链接拆了)。
2.1基于目的地址的转发
这是一种传统的方式,目前的主流方式,这种转发方式要求主机或者路由器具有一张路由表。当主机有分组要转发时,或者路由器收到分组要进行转发时,就要搜索路由表找到最后终点的路由.这样是十分低效的,因为路由表的表项数量过多导致路由器的查找效率非常低.
2.1.2转发技术
1:下一跳方法
下一跳的技术可以减少路由表中的内容,这种技术就是在路由表中只保留下一跳地址,而不是保留完整的路由信息.
如下

2:特定网络法
此时路由表不是对连接在同一个物理网络上的每一台主机都设置一个表项,而是用一个表项来定义目的网络本身的地址,也就是我们把连接在同一个网络上的所有主机看成是一个表项.如下

3:特定主机法
使用特定主机方法,目的主机的地址在路由表中要给出,用牺牲效率换取其他优点,比如管理人员想染所有到达主机B的分组都经过路由器某个路由器
特定主机的路由选择主要用在检查路由或者提供安全措施这样的特殊情况下。
4:默认方法
主机S所连接的网络上有俩个路由器.通过R1可以把分组转发到N2,但是对于因特网其他部分,使用R2

3:使用分类编址时的转发
分类编址有一些缺点(造成IP地址浪费很严重),但是在分类地址中存在默认掩码.这就使得转发过程比较简单。
3.1:无子网划分的转发
转发模块要使用三张表,每个单播类别(A,B,C)对应一张表,如果路由器支持多播,那么还要增加一张处理D类地址的表。每张路由表要有下面三列
1.目的网络的网络地址,它告诉我们主机的位置.
2.下一跳的地址,在间接交付时它告诉我们分组应当交付到那个路由器,在直接交付时是空的.
3.接口号,它定义了分组从那个输出端口发送出去(一个路由器经常会连接到多个网络,每一个连接就有一个不同的端口号或者接口)

3.2:有子网划分的转发
子网划分发生在组织的内部,处理子网划分的路由器不是在该组织站点的边界上,就是在站点边界的里面。如果组织使用了可变长度的子网划分,那么我们就需要多张表,要不然就只要一张表,


4:使用无分类编址时的转发
使用无分类编址时,整个地址空间是完整的,没有划分类别,分组的目的地址中得不到有关网络地址的线索.为了解决这个问题,我们需要在路由表中包含掩码(/n),

IP分组交付和转发的更多相关文章
- TCP/IP协议原理与应用笔记19:IP分组的交付和路由选择
1. 引言: (1)互联网结构: 信息:IP分组(直接广播地址(Directed Broadcast Address),其指定了在一个特定网络中的"所有主机".) 节点:路由器.主 ...
- IP分组
IP 分组为了更准确地讨论 I n t e r n e t协议处理,我们必须定义一些名词.图 显示了在不同的I n t e r n e t层之间传递数据时用来描述数据的名词.我们把传输协议交给 I P ...
- IP分组和分片
本文讨论两个问题①IP数据报的首部②IP数据报的分片 TCP/IP模型分为五层,从上到下依次是应用层.传输层.网络层.数据链路层和物理层. IP数据报是网络层的概念. IP数据报的首部 版本号:0~3 ...
- 基于CIDR的IP分组转发算法
话不多说,直接上运行截图 #include<iostream> #include<vector> using namespace std; struct ...
- iptables实现IP地址重定向(转发)
iptables不单只防火墙这么简单,NAT转发这些都很强大.但是市面上iptables的教程基本都是围绕着CentOS 6来展开的,而对于CentOS 7和Ubuntu又不一样的写法,尤其是Ubun ...
- UDP用户数据报协议和IP分组
UDP总体的封装格式例如以下: 以下是8字节UDP首部: 当IP层依据协议字段把UDP报文向上传送到UDP模块后,UDP模块再依据port号将数据发送到对应的进程中,以此实现进程到进程间的通信. 16 ...
- 基于TCAM 的高速路由查找
摘要 随着路由器接口速率的提高,传统的软件路由查找机制已经不能满足要求.目前常见的硬件解决方案是采用TCAM实现关键词 TCAM,路由查找,最长前缀匹配. 1.引言 路由器转发IP 分组时,转发引擎需 ...
- 哈工大 计算机网络 实验三 IPv4 分组收发实验&IPv4 分组转发实验
计算机网络实验代码与文件可见github:计算机网络实验整理 实验名称 IPv4 分组收发实验&IPv4 分组转发实验 实验目的: (注:实验报告模板中的各项内容仅供参考,可依照实际实验情况进 ...
- IP 层收发报文简要剖析6--ip_forward 报文转发
//在函数ip_route_input_slow->ip_mkroute_input注册, /* * IP数据包的转发是由ip_forward()处理,该函数在ip_rcv_finish() * ...
随机推荐
- ajax提交post请求出现数组被截断情况的解决方法
一.场景 php post 提交数据时传的数据时数组,没有多数据进行序列化处理.发现传到服务端时,部分数据丢失,查询了资料发现php对参数个数有限制,限制在php配置文件中(max_input_var ...
- BZOJ4872: [Shoi2017]分手是祝愿【概率期望DP】【思维好题】
Description Zeit und Raum trennen dich und mich. 时空将你我分开.B 君在玩一个游戏,这个游戏由 n 个灯和 n 个开关组成,给定这 n 个灯的初始状态 ...
- [Perl] 删除数组中重复元素
写一个小程序时候,需要去除一个数组中的重复元素,搜索了一下,找到的代码主要是两种,一种是使用grep函数,一种是转换为hash表,代码分别如下: 使用grep函数代码片段:代码: my @array ...
- MySQL · 特性分析 · 优化器 MRR & BKA【转】
MySQL · 特性分析 · 优化器 MRR & BKA 上一篇文章咱们对 ICP 进行了一次全面的分析,本篇文章小编继续为大家分析优化器的另外两个选项: MRR & batched_ ...
- FastAdmin 开发第三天:认识目录
以下为标准 FastAdmin 安装后的目录 我们在运行命令时都是在这个目录. 我们所有的命令都在这个目录下面运行. 比如:安装前端组件,bower install 安装php 组件 composer ...
- idea新用法
https://blog.csdn.net/linsongbin1/article/details/80211919
- ASP.NET Core 2.0 使用支付宝PC网站支付实现代码(转)
最近在使用ASP.NET Core来进行开发,刚好有个接入支付宝支付的需求,百度了一下没找到相关的资料,看了官方的SDK以及Demo都还是.NET Framework的,所以就先根据官方SDK的源码, ...
- 线性代数之SVD与PCA
[作者:byeyear Email:east3@163.com 首发www.cnblogs.com 转载请注明] 回忆学校的美好时光,一起来复习下曾经的课程吧. 1. SVD推荐am ...
- SpringMVC中session的使用
SpringMVC中仍然可以使用传统方式使用session /** * 使用session - 传统方式 */ @RequestMapping("/hello13.action") ...
- mysql实战优化之九:MySQL查询缓存总结
mysql Query Cache 默认为打开.从某种程度可以提高查询的效果,但是未必是最优的解决方案,如果有的大量的修改和查询时,由于修改造成的cache失效,会给服务器造成很大的开销. mysql ...