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() * ...
随机推荐
- HPU 1007: 严格递增连续子段(贪心)
1007: 严格递增连续子段 [模拟] 时间限制: 1 Sec 内存限制: 128 MB提交: 244 解决: 18 统计 题目描述 给定一个有NN个正整数组成的序列,你最多可以改变其中一个元素,可以 ...
- CentOS安装crontab 定时备份文件夹
一. 编写脚本编写一个脚本文件,使脚本可以执行备份命令. 例如,将文件目录 /home/backups/balalala 备份到/home目录下,并压缩.1. 创建脚本命令格式: touch 路径/文 ...
- 《DSP using MATLAB》Problem 4.1
用到的z变换的计算公式: 代码: %% ------------------------------------------------------------------------ %% Outp ...
- streamsets 集成 minio s3测试
具体streamsets crate 集成可以参考 streamsets crate 以下文档只关注minio 集成的配置 minio 服务 搭建 具体搭建参考: https://www.cnblog ...
- Tensoflw.js - 02 - 模型与内存管理(易懂)
Tensoflw.js - 02 - 模型与内存管理(易懂) 参考 W3Cschool 文档:https://www.w3cschool.cn/tensorflowjs/ 本文主要翻译一些英文注释,添 ...
- java中原子操作的实现分析
一.CAS原理: CAS的全程即Compare And Swap,翻译成中文为比较并交换: CAS操作依赖于CPU指令CMPXCHG来实现比较并交换操作的原子性,通过查看HotSpot源码如下: 可以 ...
- Oracle Supplemental 补全日志介绍
转. Oracle补全日志(Supplemental logging)特性因其作用的不同可分为以下几种:最小(Minimal),支持所有字段(all),支持主键(primary key),支持唯一键( ...
- mysql复制表结构create table as和like的区别
对于MySQL的复制相同表结构方法,有create table as 和create table like 两种,区别是什么呢? create table t2 as select * from t1 ...
- RequiresAuthentication
@RequiresAuthentication 验证用户是否登录,等同于方法subject.isAuthenticated() 结果为true时. @RequiresUser 验证用户是否被记忆,us ...
- 解决eclipse中断点调试不起作用的问题
解决eclipse中断点调试不起作用的问题 eclipsegeneration编译器file工作 最近几天,遇到了一个问题,就是在eclipse中进行断点调试程序到时候,跟踪不到我设置的断点.困惑 ...