精华内容
下载资源
问答
  • 网络层(二)——IP数据转发

    千次阅读 2018-10-01 17:42:43
    网络层的主要目的是为了对上层屏蔽各种复杂、异构的底层网络,从而提供简单灵活的、无连接的、尽最大努力交付的数据报服务。前面我们介绍了IP地址,它为网络上的每一台主机和路由器的每个接口指明了一个唯一的地址。...

    前言

    网络层的主要目的是为了对上层屏蔽各种复杂、异构的底层网络,从而提供简单灵活的、无连接的、尽最大努力交付的数据报服务。前面我们介绍了IP地址,它为网络上的每一台主机和路由器的每个接口指明了一个唯一的地址。为了完成数据报的交付,下一步的任务就是在知道了目的主机的IP地址后,如何将数据报送过去。

    这就有点类似于“把信送给加西亚”的故事。我们有一封信,也知道送给谁,但怎么送到目前还不知道。

    路由表

    要实现IP数据报的转发离不开路由器。路由器工作在网络层,将多个网络连接在一起。它就像是岔路口的指示牌,为数据报(分组)指明了前进的方向。这一点其实我们从路由器的名字中就可以看出——“路由”,即“路该由此向哪里走”。而具体来说,这一功能则是通过路由表以及相应的转发算法来实现的。路由表里面存储了一系列的路由,而一条路由包括如下信息:

                                                                             (目的网络地址,下一跳地址)

    下面简单说明路由表的工作原理:当一个分组到达后,路由器首先提取出分组中包含的目的IP地址,并计算出IP地址中的目的网络地址,接下来在路由表中查找与目的网络地址匹配的路由,如果匹配成功,就将该分组转发到下一跳地址所示的路由器。

    IP分组转发算法

    其实刚刚介绍的路由表的工作原理已经包含了IP分组转发算法的主要思想。但有一点需要注意的是,在路由表中每一个路由仅仅指明了要去往目的网络的下一个路由器的地址,而并没有给出到达目的网络的完整路径。这就好像我们平时问路,路人虽然知道目的地在哪里,但并不是很好清晰地讲出来,于是就告诉我们你先去下一个十字路口,到那里之后再找个人问问。

    另外还有一点需要注意的是,有时候目的网络和路由器直接相连,那么就不需要下一跳地址,而可以直接把数据报发送给目的网络上的主机,因此就有了直接交付间接交付的概念。

    下面给出具体的IP分组转发算法:

    1. 从数据报的首部提取出目的主机的IP地址D,并计算出目的网络地址N;
    2. 若N就是与此路由器直接相连的某个网络,则进行直接交付,不再经过其他的路由器直接把数据报交付目的主机(这里涉及到地址解析协议,不再详述);否则就是间接交付,执行(3);
    3. 若路由表中有目的地址为D的特定主机路由,则把数据报传送给该路由指明的下一跳地址;否则,执行(4);
    4. 若路由表中有目的网络地址为N的路由,则把数据报传送给该路由指明的下一跳地址;否则,执行(5);
    5. 若路由表中有一个默认路由,则把数据报该默认路由指明的下一跳地址;否则,报告转发分组出错。

    另外,当涉及到包含子网划分的问题时,需要将路由做如下改动:

                                                                    (目的网络地址,子网掩码,下一跳地址)

    相应的,上述算法也需要做一些改动,但整体流程还是一致的。改动如下:

    1. 从数据报的首部提取出目的主机的IP地址D;
    2. 用与此路由器直接相连的网络的子网掩码与D做按位逻辑与操作,若得出的网络地址N和与路由器相连的网络地址匹配,则进行直接交付,不再经过其他的路由器直接把数据报交付目的主机(这里涉及到地址解析协议,不再详述);否则就是间接交付,执行(3);
    3. 若路由表中有目的地址为D的特定主机路由,则把数据报传送给该路由指明的下一跳地址;否则,执行(4);
    4. 用路由表中每一个路由包含的子网掩码与D作按位逻辑与操作,若得出的网络地址N与路由中的目的网络地址匹配,则把数据报传送给该路由指明的下一跳地址;否则,执行(5);
    5. 若路由表中有一个默认路由,则把数据报该默认路由指明的下一跳地址;否则,报告转发分组出错。

    结语

    以上内容简单介绍了IP数据报是如何转发的,可以看出,转发的关键就在于路由表的使用。但其实还有一个关键问题没有解决,那就是路由表是如何构建的,它是如何保证按照路由表上的指引最终能够到达目的主机的呢?关于这一问题就需要了解路由选择协议了,小白的我这一块还不是很明白,以后有机会再补充吧

     

     

     

     

    展开全文
  • 网络层转发与路由选择

    千次阅读 2019-03-03 20:41:49
    网络层转发功能和路由选择功能 转发涉及分组在单一的路由器中从一条入链路到一条出链路的传送 路由选择涉及一个网络的所有路由器,它们经路由选择协议共同交互,以决定分组从源到目的地结点所采用的路径。 一、...

    网络层作用:将分组从一台发送主机移动到一台接收主机。

    网络层的转发功能和路由选择功能

    转发涉及分组在单一的路由器中从一条入链路到一条出链路的传送
    路由选择涉及一个网络的所有路由器,它们经路由选择协议共同交互,以决定分组从源到目的地结点所采用的路径。

    一、转发

     转发表(FIB):用于判断基于 IP 包的网络前缀,如何进行转发。对于每一条可达的目标网络前缀,FIB 包含接口标识符和下一跳信息。 FIB 概念上类似于路由表,它维护一份 RIB 表中的转发信息镜像。

    遵循 最长掩码匹配原则。

    举个例子:一个目的地址为8.1.2.1的报文进入路由器,查找对应的FIB表,首先,目的地址8.1.2.1与FIB表中各表项的掩码“0,8,16”作逻辑与运算,得到下面的网段地址: 
    0.0.0.0  8.0.0.0  8.1.0.0。这三个结果可以匹配到FIB表中对应的三个表项的匹配长度分别是0bit、8bit和16bit,最终,路由器会选择最长匹配8.1.0.0进行转发,也就是从接口转发这条目的地址为8.1.2.1的报文。
     

     

    二、路由选择

    路由表: 路由表的表项根据设备不同,可能是不同的。但是目的IP地址、网络掩码、网关(下一站路由器的IP地址)、接口(将数据报从哪个接口发出,是自己设备上的。)、标志这几项是必须存在的。

     

    路由选择算法:

    (路由器就是点,链路就是边,所以其实就是选择从A到B的最短路径算法。)

    1.全局式路由选择算法 : 用完整的、全局性的网络知识计算出从源到目的地之间的最低费用路径。
    链路状态LS算法

    出现问题:拥塞敏感路由出现的振荡
    解决:确保并非所有的路由器都同时运行LS算法  让每台路由器发送链路通知的时间随机化

    2.分散式路由选择算法:以迭代、分布式的方式计算出最低费用路径。
    距离向量DV算法

     

     

     

    IPv4数据报格式: 为了解决IP不够用的问题,现在已用IPv6 (128比特)代替。IPv6对数据没有分片操作。

     

     

     

     

     

     

    很久未写博客发现表达能力越来越弱了,连与自我交流都成了困难。

    多看书才慢慢体会到原来“数据结构与算法是计算机的基础”这句话之精辟犹如科学的尽头就是哲学,然而还是自己太狭隘了。

    带着思考的行动去试探那些不确定性。

     

     

     

     

    展开全文
  • OSI模型 ... 五模型 应用 HTTP,DHCP,FTP 报文 常见PC机,工作站,终端等 应用 表示   ...

     

    OSI模型

    协议

    数据包叫法

    常见设备

    五层模型

    应用层

    HTTP,DHCP,FTP

    报文

    常见PC机,工作站,终端等

    应用层

    表示层

     

    会话层

     

    传输层

    TCP/UDP

    传输协议分组,分组

    网关

    传输层

    网络层

    IP协议,ICMP协议,IGMP协议

    IP包,IP数据报

    路由器,三层交换机

    网络层

    数据链路层

    以太网协议,ARP协议

    帧,数据帧

    交换机,网桥

    数据链路层

    物理层

    802.3

    比特流

    网口,网线,集线器

    物理层

     

    概念:二层转发,即数据包在二层网络设备上的转发过程。而二层网络设备常用的是交换机和网桥,将PC通过交换机或者网桥连接在一起,形成一个局域网的拓扑。在此基础上讨论二层转发原理。

    需要明白的基础知识:PC在自己内部维护一个ARP表,内容为IP和MAC地址。在将数据发送出去的时候,就会查找该表,根据IP封装MAC头部。而交换机(Switch)内部维护的是一个FDB(Forwarding DataBase)表,里面包含端口和对应的MAC地址。在转发数据的时候根据这个FDB表进行转发。

     

     

    一:构建拓扑

     

     

    二:二层转发过程及二层转发原理

    (1)PC A要讲数据发往PC C,PC A已知 PC C  IP地址为192.168.1.3。但是在PC A 的ARP表中没有相关的项。

    (2)此时,PCA 就会广播ARP请求,交换机SW1收到这个请求后,根据收到的端口,和数据包的源MAC地址,确定这个MAC地址和这个端口是对应的,于是将它添加到FDB表。

    (3)因为PCA发的是广播的ARP查询包,所以SW1会将该数据包广播出去。

    (4)SW2收到该数据包后,同SW1一样,会根据源MAC和接受的端口,来添加一项FDB表。因为是广播,PC b也会收到该ARP广播报文,但是因为该ARP请求报文的请求的IP不是自己,所以PCb不做什么回应。PCb他会利用该数据包,得知IP和ARP。会在自己的ARP表中添加一项,但是我们在这里先不用考虑PC b这台主机。

    (5)SW2继续广播出去。

    (6)PC C收到数据包,为自己的ARP表添加一项。

    (7)PC C解析该数据包,发现找的就是自己的IP地址,于是回应一个ARP响应报文。

    (8)SW2收到后,同理也会根据源Mac和收到该数据包的端口,添加一个FDB表项。

    (9)SW2查找FDB表项,发现发往0000-00e0-0001MAC地址的端口是E0/0,所以直接发过去,不会广播。

    (10)同理,SW1收到该数据包,也会添加FDB

    (11)同理,SW1会根据FDB,确定转发的端口是E0/1,所以此时PC b就不会收到这个数据包了。

    (12)PC A收到了这个ARP回应报文,于是添加了一个ARP表项。

    (13)现在PCA可以根据ARP表,封装要发往PC C的数据包了,然后SW1,SW2也有了相应的FDB表项,就会轻车熟路的进行转发,这就是二层转发的过程,SW1,SW2根据FDB表项进行转发的机制,即是二层转发的原理。

     

    注:上面的图片素材是我在某公司上班时,为应届生进行交换机知识授课的时候自己做的PPT。如需要,可访问我的下载资料。

    展开全文
  • 4--网络层数据平面

    万次阅读 2020-09-01 14:03:53
    网络层数据平面: 网络层中每台路由器的功能 决定到达路由器输入链路之一的数据报【网络层分组】,如何转发到该路由器输出链路之一。 传统IP转发转发基于数据报的目的地址 通用转发:可使用数据报首部中几个不同域...

    网络层:数据平面

    网络中每一台主机和路由器都有一个网络层部分。
    网络层数据平面:
    网络层中每台路由器的功能
    决定到达路由器输入链路之一的数据报【网络层分组】,如何转发到该路由器输出链路之一。
    传统IP转发:转发基于数据报的目的地址
    通用转发:可使用数据报首部中几个不同域的值执行转发和其他功能
    
    网络层控制平面:
    控制数据报沿着从源主机到目的主机的端到端路径中路由器之间的路由方式
    路由选择算法
    OSPF/BGP等路由选择协议
    

    网络层概述

    下图是一个简单的网络
    有H1,H2两台主机
    假设H1向H2发送消息
    H1中的网络层取得来自H1运输层的报文段
    将每个报文段封装成一个数据报,
    向相邻路由器R1发送该数据报
    
    在接收方主机H2
    网络层收到来自相邻路由器R2的数据报
    提取出运输层报文段
    将其向上交付给H2的运输层
    
    路由器只包含网络层/数据链路层/物理层协议部分
    

    在这里插入图片描述

    转发和路由选择:数据平面和控制平面

    网络层的作用表面看简单,即将分组从一台发送主机移动到一台接收主机
    - 转发
    当一个分组到达某路由器的一条输入链路时,
    该路由器必须将该分组移动到适当的输出链路
    - 路由选择
    分组从发送方流向接收方时,
    网络层须决定这些分组所采用的路由或路径
    计算路径的算法称为路由选择算法
    
    转发指将分组从一个输入链路接口转移到适当的输出链路接口的路由器本地动作。
    转发发生的时间尺度短,采用硬件实现
    路由选择指确认分组从源到目的地所采取的端到端路径的网络范围处理过程。
    路由选择发生的时间尺度长得多,常用软件实现。
    
    每台网络路由器中有一个关键元素是它的转发表
    路由器检查到达分组首部的一个或多个字段值,
    使用这些首部值在其转发表中索引,来转发
    

    控制平面:传统的方法

    路由选择算法决定插入该路由器转发表的内容
    路由选择算法运行在每台路由器中,
    在每台路由器中都包含了转发和路由选择两种功能
    
    在一台路由器中的路由选择算法与在其他路由器中的路由选择算法通信,
    及计算出它的转发表的值
    

    控制平面:SDN方法

    路由选择厂商在其产品中采用传统方法。
    每台路由器有一个与其他路由器的路由选择组件通信的路由选择组件
    

    在这里插入图片描述

    上图,显示从路由器物理上分离的另一方法。
    远程控制器计算和分发转发表以供每台路由器使用。
    上图,控制平面路由选择功能与物理的路由器是分离的。
    远程控制器计算并分发转发表。
    路由器和远程控制器,通过交换包含转发表和其他路由选择信息的报文通信。
    上图,计算转发表并与路由器交互的控制器用软件实现。
    

    网络服务模型

    网络服务模型定义了分组在发送与接收端系统间的端到端运输特性
    考虑网络层能提供的某些可能服务
    - 确保交付
    - 有时延界限的确保交付
    - 有序分组交付
    - 确保最小带宽
    - 安全性
    因特网的网络层提供单一服务,称尽力而为
    不保证有序,不保证交付,不保证端到端时延,不保证最小带宽
    
    约定,
    分组交换机指一台通用分组交换设备,它依据分组首部字段中的值,从输入链路接口到输出链路接口转移分组。
    分组交换机又可分为
    链路层交换机:依据链路层帧字段来转发
    路由器:依据网络层数据报首部字段来转发
    

    路由器工作原理在这里插入图片描述

    - 输入端口
    在路由器中执行终结入物理链路的物理层功能
    还要与位于链路远端的数据链路层交互来执行数据链路层功能
    在输入端口还要执行查找
    
    到达的分组通过路由器的交换结构转发到输出端口
    控制分组从输入端口转发到路由选择处理器
    - 交换结构
    将路由器的输入端口连接到它的输出端口
    这种交换结构完全包含在路由器中,是一个网络路由器中的网络
    - 输出端口
    存储从交换结构接收的分组
    通过执行必要的链路层和物理层功能在输出链路上传输这些分组
    链路是双向时,输出端口常与该链路的输入端口成对出现在同一线路卡上
    - 路由选择处理器
    路由选择处理器执行控制平面功能。
    传统路由器中,
    它执行路由选择协议,
    维护路由选择表
    关联链路状态信息
    为该路由器计算转发表
    
    SDN路由器中,路由选择处理器负责与远程控制器通信
    路由选择处理器还执行网络管理功能。
    
    路由器的输入端口,输出端口,交换结构总是用硬件实现。
    数据平面以纳秒时间尺度运行,
    路由器的控制功能以毫秒或秒时间尺度运行,
    这些控制功能包括执行路由选择协议,对上线或下线的连接链路进行响应,与远程控制器通信,和执行管理功能
    控制平面功能常用软件实现,在路由选择处理器上执行。
    
    - 基于目的地转发
    - 通用转发
    

    输入端口处理和基于目的地转发 在这里插入图片描述

    输入端口的线路端接功能与链路层处理实现了用于各个输入链路的物理层和链路层。
    在这些地方,路由器使用转发表来查找输出端口,使到达的分组能经过交换结构转发到该输出端口
    
    转发表从路由选择处理器经过独立总线复制到线路卡
    使用在每个输入端口的影子副本,转发决策能在每个输入端口本地做出
    
    考虑最简单情况,
    一个入分组基于该分组的目的地址交换到输出端口
    作为一个说明处理规模问题例子,假设路由器有4条链路,编号0到3
    分组按地址范围,分别转发到对应链路接口
    

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

    使用上述风格的转发表,路由器用分组目的地址的前缀与该表表项匹配
    多个匹配时,使用最长前缀匹配规则
    
    一旦通过查找确定了某分组的输出端口,
    则该分组就能发送进入交换结构
    查找在输入端口处理中可认为是最重要动作,
    其他动作是
    - 物理层和链路层处理
    - 检查分组版本号,检验,寿命,重写后两个字段
    - 更新用于网络管理的计数器
    

    交换

    通过交换结构,分组实际地从一个输入端口交换【转发】到一个输出端口
    

    在这里插入图片描述

    - 经内存交换
    最早的路由器是传统计算机,
    输入和输出端口功能像传统操作系统中的I/O设备一样
    一个分组到达一个输入端口时,该端口会先通过中断方式向路由选择处理器发出信号
    分组从输入端口处被复制到处理器内存
    处理器提取目的地址,
    在转发表找输出端口,
    将分组复制到输出端口缓存
    
    
    这时,
    如内存带宽为每秒可写进内存或从内存读出最多B个分组,
    则总的转发吞吐量【分组从输入端口被传送到输出端口的总速率】必小于B/2
    
    许多现代路由器通过内存进行交换,
    差别是,
    目的地址的查找,将分组存储进适当的内存存储位置由输入线路卡完成
    
    - 经总线交换
    输入端口经一根共享总线,将分组直接传送到输出端口
    不需路由器选择处理器的干预
    让输入端口为分组预先计划一个交换机内部标签
    指示本地输出端口
    使分组在总线上传送和传输到输出端口
    
    分组能由所有输出端口收到,
    但只有与该标签匹配的端口才能保存该分组
    然后标签在输出端口被去除
    如多个分组同时到达路由器,每个位于不同输出端口
    一次只能一个分组跨越单一总线
    - 经互联网络交换
    多个总线组成互联网络
    如图4-6
    每条垂直的总线在交叉点与每条水平的总线交叉
    交叉点通过交换结构控制器能在任何时候开启和闭合
    当某分组到达端口A,需转发到端口Y时,
    交换机控制器闭合总线A和Y交叉部分的交叉点
    端口A在其总线上发送该分组
    分组由总线Y接收
    来自端口B的一个分组在同一时间能转发到端口X
    A到Y
    B到X的分组使用不同的输入和输出总线
    纵横式网络可并行转发多个分组
    纵横式交换机是非阻塞的,
    主要没其他分组当前被转发到该输出端口,转发到输出端口的分组将不会被达到输出端口的分组阻塞
    

    输出端口处理

    在这里插入图片描述

    输出端口取出已经存放在输出端口内存的分组,将其发送到输出链路
    选择,取出,链路层和物理层传输
    

    何处出现排队

    在输入端口和输出端口处,可形成分组队列
    排队的位置和程度将取决于流量负载,交换结构的相对速率,和线路速率
    随着这些队列的增长,路由器的缓存空间将耗尽,无内存可用时,存储到达分组时将出现丢包
    
    设
    输入线路速度和输出线路速度相同,
    均为R_{line}【单位为每秒分组数】
    且有N个输入端口,N个输出端口
    设所有分组有相同固定长度,
    分组以同步方式到达输入端口,
    任何链路发送分组的时间等于任何链路接收分组的时间
    
    在这样时间间隔内,在一个输入链路能到达0或1个分组
    定义交换结构传送速率R_{switch}为从输入端口到输出端口能移动分组的速率,
    如R_{switch}比R_{line}快N倍
    则在输入端口处仅会出现微小的排队
    

    输入排队

    如交换结构不能快的使所有分组无时延通过
    输入端口将出现分组排队
    假定
    基于纵横式交换
    - 所有链路速度相同
    - 一个分组能以一条输入链路接收一个分组所用的相同的时间量,
    从任意一个输入端口传到给定输出端口
    - 分组按FCFS方式,从一指定输入队列移动到其要求的输出队列中
    只要输出端口不同,
    多个分组可并行传送
    如位于两输入队列前端的两个分组是发往同一输出队列的,则其中一个分组被阻塞,且需在输入队列等待。交换结构一次只能传送一个分组到指定端口。
    

    在这里插入图片描述

    因为队列前分组本次由于和其他队列前某分组导向同一目的端口,而未被选中,本次阻塞,导致其后一分组,也等待,称为线路前部阻塞。
    

    输出排队

    假设
    - R_{switch}比R_{line}快N倍
    - 且到达N个输入端口的每个端口的分组,其目的地是相同的输出端口
    这时,
    在向输出链路发送一个分组的时间内,
    将有N个新分组到达该输出端口
    输出端口在一个单位时间【该分组的传输时间】内仅能传输一个分组
    这N个到达分组必须排队经输出链路传输
    
    
    当没有足够内存来缓存一个入分组时,
    要么丢弃到达的分组,
    要么删除一个或多个已排队的分组
    
    某些情况下,
    缓存填满前便丢弃一个分组,称为主动队列管理
    

    在这里插入图片描述

    分组调度

    先进先出

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

    优先权排队

    到达输入链路的分组被分类放入输出队列中的优先权类
    每个优先权类通常有自己的队列。
    

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

    循环和加权公平排队

    循环排队规则下,
    分组像使用有限权排队那样被分类
    但在类之间不存在严格的服务优先权,
    循环调度器在这些类之间轮流提供服务
    
    最简单形式循环调度中,类1的分组被传输,
    接着是类2的分组,接着又是类1的分组,如此往复。
    
    一个所谓的保持工作排队规则,在有【任何类的】分组排队等待传输时,
    不允许链路保持空闲。
    寻找给定类的分组但没找到时,保持工作的循环规则将立即检查循环序列的下一个类。
    

    在这里插入图片描述

    一种通用形式的循环排队已经广泛实现在路由器中,
    即所谓的加权公平排队规则。
    到达的分组被分类并在合适的每个类的等待区域排队,
    与循环调度一样,
    WFQ调度器也以循环方式为各个类提供服务
    

    在这里插入图片描述

    WFQ【加权公平排队】和循环排队的不同在于:
    每个类在任何时间间隔内可能收到不同数量的服务
    具体而言,
    每个类i被分配一个权w_{i}
    使用WFQ方式,
    在类i有分组要发送的任何时间间隔,
    第i类将确保接收到的服务部分等于w_{i}/(∑w_{j}),式中分母中的和是计算所有有分组排队等待传输的类别得到的。
    对一条传输速率为R的链路,
    第i类总能获得至少为R*w_{i}/(∑w_{j})的吞吐量
    

    网际协议:Ipv4,寻址,Ipv6及其他

    Ipv4数据报格式

    在这里插入图片描述

    IPv4数据报中的关键字段
    - 版本号
    这4比特规定了数据报的IP协议版本,
    通过版本号,路由器能确定如何解释IP数据报的剩余部分
    不同的IP版本使用不同的数据报格式
    - 首部长度
    一个IPv4数据报可包含一些可变数量的选项
    选项包括在IPv4数据报首部中,
    故需用这4比特来确定IP数据报中载荷实际开始地方
    一般的IP数据报有20字节的首部
    - 服务类型
    实时数据报/非实时流量
    提供特定等级的服务是一个由网络管理员对路由器确定和配置的策略问题
    - 数据报长度
    IP数据报的总长度[首部加上数据],以字节计。
    该字段16比特。
    - 标识,标志,片偏移
    IP分片
    - 寿命
    每当一条路由器处理数据报时,该字段的值减1.若变为0,则该数据报被丢弃
    - 协议
    通常仅当一个IP数据报到达其最终目的地时才会有用
    该字段值指示了IP数据报的数据部分应交给哪个特定的运输层协议。
    值为6表明数据部分交给TCP
    值为17表明数据要交给UDP
    IP数据报中的协议号所起的作用,类似于运输层报文端中端口号字段所起的作用。
    协议号是将网络层与运输层绑定到一起的黏合剂。
    端口号是将运输层和应用层绑定到一起的黏合剂。
    链路层帧也有一个特殊字段用于将链路层与网络层绑定到一起
    - 首部检验和
    首部检验和用于帮助路由器检测收到的IP数据报中的比特错误
    首部检验和:
    将首部中的每2个字节当作一个数,
    用反码算术对这些数求和
    该和的反码【称为因特网检验和】存放在检验和字段中
    路由器要对每个收到的IP数据报计算其首部检验和,
    如数据报首部中携带的检验和与计算得到的检验和不一致,
    则检测出差错。
    路由器一般会丢弃检测出错误的数据报
    每台路由器上必须重新计算检验和并再次存放到原处,
    因为TTL及可能的选项字段会改变
    
    在TCP/IP的运输层和网络层都执行差错检测,原因:
    在IP层只对IP首部计算了检验和
    TCP/UDP检验和是对整个TCP/UDP报文段进行的
    TCP/UDP与IP不一定都必须属于同一个协议栈
    
    原则上,
    TCP能运行在一个不同的协议上,
    而IP能携带不一定要传递给TCP/UDP的数据
    - 源和目的IP地址
    某源生成一个数据报时,在源IP字段插入它的IP地址,
    在目的IP地址字段插入其最终目的地地址
    源主机通过DNS查找来决定目的地址
    - 选项
    允许IP首部被扩展
    - 数据【有效载荷】
    

    IPv4数据报分片

    有的链路层协议能承载大数据报,有的只能承载小分组
    一个链路层帧能承载的最大数据量叫作最大传送单元【MTU】
    每个IP数据报封装在链路层帧中从一台路由器传输到下一台路由器
    故链路层协议的MTU严格限制着IP数据报的长度
    发送方与目的路径上的每段链路可能使用不同的链路层协议,且每种协议可能具有不同的MTU
    
    想象你是,一台互联几条链路的路由器,
    且每条链路运行具有不同MTU的链路层协议
    设你从某条链路收到一个IP数据报
    通过检查转发表确定出链路
    且该条出链路的MTU比该IP数据报的长度要小
    解决办法是:
    将IP数据报中的数据分片成两个或更多个较小的IP数据报
    用单独的链路层帧封装这些较小的IP数据报,通过输出链路发送这些帧。
    每个这些较小的数据报称为片。
    
    片在其到达目的地运输层以前需要重新组装。
    为坚持网络内核保持简单的原则,
    IPv4的设计者决定将数据报的重新组装工作放到端系统,而非网络路由器
    
    一台目的主机从相同源收到一系列数据报时,
    它需确定这些数据报中的某些是否是一些原来较大的数据报的片,
    如某些数据报是这些片的话,
    则它须进一步确定何时收到最后一片
    且如何将这些接收到的片拼接到一起以形成初始的数据报
    
    为让目的主机执行这些重新组装任务,
    IPv4的设计者将标识,标志,和片偏移字段放在IP数据报首部中。
    生成一个数据报时,发送主机在为该数据报设置源和目的地址的同时贴上标识号。
    发送主机通常将它发送的每个数据报的标识号加1.
    当某路由器需要对一个数据报分片时,
    形成的每个数据报【即片】具有初始数据报的源地址,目的地址与标识号。
    当目的地从同一发送主机收到一系列数据报时,
    它能检查数据报的标识号以确定哪些数据报实际上是同一较大数据报的片
    
    为了让目的主机绝对地相信它已收到了初始数据报的最后一个片,
    最后一个片的标志比特被设为0,
    而所有其他片的标志比特被设为1
    为了让目的主机确定是否丢失了一个片【且能按正确顺序重新组装】
    使用偏移字段指定该片应放在初始IP数据报的哪个位置
    

    在这里插入图片描述

    IPv4编址

    一台主机通常只有一条链路连接到网络,
    当主机中的IP想发送一个数据报时,
    它就在该链路上发送
    
    主机与物理链路间的边界叫接口
    现考虑一台路由器及其接口
    路由器的任务是从链路上接收数据报并从某些其他链路转发出去
    路由器必须拥有两条或更多链路与它连接
    路由器与它的任意一条链路之间的边界也叫接口
    一台路由器有多个接口,每个接口有其链路
    每台主机和路由器都能发送和接收IP数据报,
    IP要求每台主机和路由器接口拥有自己的IP地址,
    从技术上讲,
    一个IP地址与一个接口相关联
    而不是与包括该接口的主机或路由器相关联
    
    每个IP地址长度为32比特,
    因此共2^32个可能的IP地址
    通常按所谓点分十进制记法
    地址中的每个字节用它的十进制形式书写,
    各字节间以句点隔开
    
    在全球因特网中的每台主机和路由器上的每个接口,都必须有一个全球唯一的IP地址
    一个接口的IP地址的一部分需要由其连接的子网来决定
    

    在这里插入图片描述

    该图中,一台路由器【有3个接口】,用于互联7台主机。
    左上侧3台主机及它们连接的路由器接口,都有一个形如223.1.1.xxx的IP地址。
    也即,在它们的IP地址中,最左侧的24比特是相同的。
    
    这四个接口也通过一个并不包含路由器的网络互联起来。
    该网络可能由一个以太网LAN互联。
    此时,这些接口将通过一台以太网交换机互联,
    或通过一个无线接入点互联
    
    用IP的术语说,
    互联这3个主机接口与一个路由器接口的网络形成一个子网
    IP编址为这个子网分配一个地址223.1.1.0/24
    其中的/24记法,有时称为子网掩码
    指示32比特中的最左侧24比特定义了子网地址。
    子网223.1.1.0/24由3个主机接口223.1.1.1/2/3和一个路由器接口223.1.1.4组成
    任何其他要连到223.1.1.0/24网络的主机都要求其地址具有223.1.1.xxx的形式。
    

    在这里插入图片描述

    一个子网的IP定义并不局限于连接多台主机到一个路由器接口的以太网段。
    

    在这里插入图片描述

    上图显示了3台通过点对点链路彼此互联的路由器
    每台路由器有3个接口
    每条点对点链路使用一个
    一个用于直接将路由器连接到一对主机的广播链路。
    
    对于一个路由器和主机的通用互联系统,按如下定义系统中的子网:
    为了确定子网,
    分开主机和路由器的每个接口,
    产生几个隔离的网络岛,
    使用接口端接这些隔离的网络的端点,
    这些隔离的网络中的每一个都叫作一个子网
    
    上图中有6个子网
    223.1.1/2/3/7/8/9
    
    一个具有多个以太网段和点对点链路的组织【如一个公司或学术机构】
    将具有多个子网
    在给定子网上的所有设备有相同的子网地址
    
    全球因特网的编址
    因特网的地址分配策略称为无类别域间路由选择【CIDR】
    CIDR将子网寻址的概念一般化了,
    使用子网寻址时,
    32比特的IP地址被划为两部分,
    且也具有点分十进制数形式a.b.c.d/x
    x指示了地址的第一部分中的比特数
    
    形如a.b.c.d/x的地址的x最高比特构成了IP地址的网络部分,
    且经常被称为该地址的前缀
    一个组织常被分配一块连续的地址
    即具有相同前缀的一段地址。
    这时,组织内部的设备的IP地址将共享共同的前缀,
    组织网络外部的路由器仅考虑前面的前缀比特x
    也即,当该组织外部的一台路由器转发一个数据报,
    且该数据报的目的地址位于该组织的内部时,
    仅需考虑该地址的前面x比特
    这减少了在这些路由器中转发表的长度,
    因为a.b.c.d/x的单一表项足以将数据报转发到该组织内的任何目的地。
    

    在这里插入图片描述

    这种使用单个网络前缀通告多个网络的能力通常称为地址聚合,也称为路由聚合或路由摘要
    当地址按块分给ISP,又由ISP分给客户组织时,
    地址聚合工作极为有效
    

    在这里插入图片描述

    上图是,
    一个路由器包含了两类性质不同子网情况,
    此时更大的因特网上的其他路由器看见地址块200.23.16.0/20和200.23.18.0/23时,使用最长前缀匹配。
    
    
    一个地址的剩余32-x比特,可认为是用于区分该组织内部设备的。
    该组织内部的路由器转发分组时,才考虑这些比特。
    
    在CIDR被采用前,IP地址的网络部分被限制为长度为8/16/24特别,这是一种称为分类编址的编址方案。
    具有8、16、24比特子网地址的子网称为A,B,C类网络。
    
    一个C类子网,仅能容纳2^8 - 2 = 254台主机。有两个地址用作特定用途。
    在分类编址下,
    如一个有2000台主机的组织常被分给一个B类(/16)地址
    这导致了B类地址空间的迅速损耗,及所分配空间的利用率低下。
    255.255.255.255目的地址,对应同一个网络中的所有主机。
    一个组织如何为其设备得到一个地址块,
    再看,一个设备如何从某组织的地址块中分配到一个地址的
    

    获取一块地址

    网络管理员也许首先与他的ISP联系,
    该ISP可能从已分给它的更大地址块中提供一些地址。
    

    在这里插入图片描述

    从一个ISP获取一组地址,不是得到一块地址唯一方法。
    IP地址由因特网名字和编号机构管理,管理规则基于[ RFC7020]
    ICANN,分配IP地址,管理DNS根服务器,分配域名,解决域名纷争。
    ICANN--区域性因特网注册机构--...--ISP--主机
    

    获取主机地址:动态主机配置协议

    某组织一旦获得了一块地址,
    就可为本组织内的主机与路由器接口逐个分配IP地址。
    
    系统管理员,常手工配置路由器中的IP地址
    主机地址也能手动配置
    但目前更多使用动态主机配置协议
    
    DHCP允许主机自动获取一个IP地址,
    网络管理员能配置DHCP,使某给定主机每次与网络连接时能得到一个相同的IP地址或某主机将被分配一个临时的IP地址,每次与网络连接时该地址也许是不同的。
    除主机IP地址分配外,DHCP还允许一台主机得知其他信息。
    如子网掩码,第一跳路由器地址【默认网关】,本地DNS服务器地址
    
    DHCP有将主机连接进一个网络的网络相关方面的自动能力,常称为即插即用协议或零配置协议。
    
    DHCP是一个客户-服务器协议。
    客户常为新到达的主机,
    它要获得含自身使用的IP地址在内的网络配置信息。
    
    简单场合下,
    每个子网有一台DHCP服务器
    如某子网没服务器,则需一个DHCP中继代理【常为一台路由器】,
    代理知道用于该网络的DHCP服务器地址
    

    在这里插入图片描述

    对一台新到达的主机,
    针对上图的网络设置,
    DHCP协议是一个4个步骤的过程,
    下图yiaddr指示分配给该新到达客户的地址
    

    在这里插入图片描述

    - DHCP服务器发现
    一台新到达主机的首要任务是发现一个要与其交互的DHCP服务器
    可通过使用DHCP发现报文完成,
    客户在UDP分组向端口67发该发现报文,
    该UDP分组封装在一个IP数据报中
    DHCP客户生成包含DHCP发现报文的IP数据报,
    使用广播目的地址255.255.255.255
    且使用"本主机"源IP地址0.0.0.0
    DHCP客户将该IP数据报传递给链路层,
    链路层然后将该帧广播到所有与该子网连接的节点
    - DHCP服务器提供
    DHCP服务器收到一个DHCP发现报文时,用DHCP提供报文向客户做出响应,
    该报文向该子网的所有节点广播
    仍使用IP广播地址255.255.255.255
    在子网中可能存在几个DHCP服务器,
    客户也许会发现它处于能在几个提供者之间进行选择的优越位置。
    每台服务器提供的报文包含有收到的发现报文的事务ID,向客户推荐的IP地址,网络掩码及IP地址租用期【IP地址有效的时间量】
    - DHCP请求
    新到达的客户从一个或多个服务器提供中选择一个
    向选中的服务器提供DHCP请求报文进行响应,
    回显配置的参数
    - DHCP ACK
    服务器用DHCP ACK报文对DHCP请求报文进行响应,证实所要求的参数。
    
    
    一旦客户收到DHCP ACK后,交互便完成了,且客户能在租用期使用DHCP分配的IP地址。
    客户可能在该租用期超时后还使用这地址,
    DHCP还提供了一种机制以允许客户更新它对一个IP地址的租用。
    
    移动性看,
    每当节点连到一个新子网,
    要从DHCP得到一个新IP地址,
    一个移动节点在子网间移动时,
    不能维持与远程应用间的TCP连接。
    

    网络地址转换

    每当一个SOHO想安装一个LAN以互联多台机器时,
    需ISP分配一组地址以供该SOHO的所有IP设备【电话,平板电脑,打印机...】使用。
    子网变大时,需分配一块较大地址
    如ISP已为SOHO网络的当前地址范围分配过一块连续地址该如何?
    家庭主人要首先知道的管理IP地址的典型方法?
    网络地址转换
    

    在这里插入图片描述

    位于家中的NAT使能的路由器有一个接口,
    该接口是上图右侧家庭网络一部分。
    家庭网络内的编址像上面所看。
    其中的所有4个接口有相同的网络地址10.0.0/24
    地址空间10.0.0.0/8是在[RFC 1918]保留的三部分IP地址空间之一,
    这些地址用于上图的家庭网络等专用网络,或具有专用地址的地域。
    
    有专用地址的地域指其地址仅对该网络中的设备有意义的网络。
    许多家庭网络,使用了相同的地址空间10.0.0.0/24
    在一个给定家庭网中的设备能使用10.0.0.0/24编址彼此发送分组。
    转发到家庭网络之外进入更大的全球因特网的分组显然不能使用这些地址【或作为源地址,或作为目的地址】
    因为有很多网络使用这块地址。
    
    即10.0.0.0/24地址仅在给定的网络中才有意义。
    如专用地址仅在给定网络中才有意义,
    当向或从全球因特网发送或接收分组时如何处理编址问题。
    地址在何处需要唯一。
    
    NAT使能路由器对于外部世界甚至不像一台路由器。
    NAT路由器对外界的行为如同一个具有单一IP地址的单一设备。
    所有离开家庭路由器流向更大因特网的报文都拥有一个源IP地址138.76.29.7
    且所有进入家庭的报文都拥有同一个目的IP地址138.76.29.7
    本质上讲,
    NAT使能路由器对外界隐藏了家庭网络的细节
    【家庭网络计算机从哪个得到其地址,路由器从哪儿得到它的单一IP地址。通常为DHCP】
    路由器从ISP的DHCP服务器得到它的地址,
    且路由器运行一个DHCP服务器,
    为位于NAT-DHCP路由器控制的家庭网络地址空间中的计算机提供地址
    
    如从广域网到达NAT路由器的所有数据报都有相同的目的IP地址【特别对NAT路由器广域网一侧的接口】,路由器怎样知道它应将某个分组转发给哪个内部主机。
    NAT路由器上一张NAT转换表,表项包含了端口号及其IP地址。
    
    NAT的争议:
    - 端口号传统下用于进程寻址,NAT下参与主机寻址。
    家庭网络中的服务器需在周知端口号上等待接入请求
    解决方案:
    NAT穿越,通用即插即用。
    - 路由器指第三层设备,且应处理只能达到网络层的分组。
    NAT违反主机应直接彼此对话原则,修改了数据报IP地址及端口
    
    NAT已成为因特网的一个重要组件,称为所谓中间盒
    中间盒运行在网络层,不执行传统的数据报转发,而执行诸如NAT,流量流的负载均衡,流量防火墙等。
    
    
    
    检查数据报:防火墙,和入侵检测系统
    对抗恶意分组攻击的两种流行的防御措施是防火墙和入侵检测系统
    网络和因特网间的防火墙
    防火墙检查数据报和报文段首部字段
    拒绝可疑数据报进入内部网络
    基于源和目的IP地址及端口号阻挡分组
    
    IDS,常位于网络的边界,执行"深度分组检查"
    检查数据报【包括应用层数据】中的首部字段,
    检查其有效载荷。
    
    IDS具有一个分组特征数据库,
    特征是已知攻击的一部分。
    随新攻击的发现,该数据库自动更新特征。
    分组通过IDS时,IDS试图将分组的首部字段和有效载荷与其特征数据库中的特征匹配。
    

    Ipv6

    Ipv6数据报格式

    在这里插入图片描述

    - 扩大的地址容量
    IPv6将IP地址长度从32比特增加到128比特。
    这确保全世界不会用尽IP地址。
    除了单播与多播外,IPv6还引入了一任播地址。
    使数据报交付给一组主机中的任意一个。
    - 简化高效的40字节首部
    40字节定长首部允许路由器更快地处理IP数据报
    一种新的选项编码允许更灵活的选项处理
    - 流标签
    IPv6有一个难捉摸的流定义。
    该字段可用于"给属于特殊流的分组加上标签,特殊流是发送方要求进行特殊处理的流"
    
    
    - 版本
    IPv6该字段值设为6,4比特
    - 流量类型,8比特
    - 流标签,20比特
    用于标识一条数据报的流
    能对一条流中的某些数据报给出优先权,或它能用来对来自某些应用的数据报给出更高优先权
    - 有效载荷长度,16比特
    作为一个无符号整数,
    给出了IPv6数据报中跟在定长的40字节数据报首部后面的字节数量
    - 下一个首部
    该字段标识数据报中的内容[数据字段]需交付给哪个协议[如TCP或UDP...]
    该字段使用与IPv4首部中协议字段相同的值
    - 跳限制
    转发数据报的每台路由器对该字段内容减1
    如跳限制到0,数据报被丢弃
    - 源地址和目的地址
    IPv6 128比特地址的各种格式描述见RFC 4291
    - 数据
    IPv6数据报的有效载荷部分
    数据报达到目的地时,有效载荷就从IP数据报移出,交给在下一个首部字段中指定的协议处理
    
    IPv4中存在,IPv6中不存在的几个字段
    - 分片/重新组装
    IPv6不允许在中间路由器上进行分片和重新组装
    如路由器收到的IPv6数据报太大,而不能转发到出链路
    路由器丢弃该数据报,向发送方发回一个分组太大的ICMP差错报文即可.
    于是,发送方能使用较小长度的IP数据报重发数据
    - 首部检验和
    因特网中的运输层和数据链路层协议执行了检验操作
    网络层移除,以便加快处理速度
    - 选项
    可能出现在IPv6首部中由"下一个首部"指出的位置上.
    就如TCP/UDP协议首部可为下一个首部一样,选项字段也可为下一个首部
    

    从IPv4到IPv6的迁移

    新型IPv6使能系统可发送/路由/接收 IPv4数据报
    已部署的具有IPv4能力的系统却不能处理IPv6数据报
    
    
    在实践中广泛采用的IPv4到IPv6迁移的方法包括建隧道
    除IPv4到IPv6迁移外的许多其他场合的应用都具有建隧道的关键概念
    
    建隧道依据的基本思想如下:
    假定两个IPv6节点,要使用IPv6数据报进行交互
    但它们经中间IPv4路由器互联
    将两条IPv6路由器中间IPv4路由器的集合称为一个隧道
    借助于隧道,在隧道发送端的IPv6节点可将整个IPv6数据报放到一个IPv4数据报的数据[有效载荷]字段中.
    该IPv4数据报的地址设为指向隧道接收端的IPv6节点,
    再发给隧道中的第一个节点
    隧道中间的IPv4路由器在它们之间为该数据报提供路由
    像对待其他数据报一样
    隧道接收端的IPv6节点收到该IPv4数据报
    确定该IPv4数据报含有一个IPv6数据报
    从中取出IPv6数据报
    再为该IPv6数据报提供路由
    

    在这里插入图片描述

    通用转发和SDN

    因特网路由器的转发传统上仅基于分组的目的地址
    目前许多执行第三层功能的中间盒有了大量发展
    NAT盒重写首部IP地址和端口号
    防火墙基于首部字段值阻拦流量或重定向分组以进行其他处理[如深度分组检查]
    负载均衡将请求某种给定服务的分组转发到提供该服务的服务器集合中一个
    
    第二层交换机和第三层路由器等中间盒的剧增,给网络操作员带来了麻烦.
    近期软件定义网络的进展预示且正提出一种统一的方法,以一种现代,简洁和综合方式,提供多种网络层功能及某些链路层功能.
    基于目的地转发的特征总结为:
    查找目的IP地址
    将分组发送到有特定输出端口的交换结构
    现考虑一种更有意义的通用"匹配加动作"范式
    能对协议栈的多个首部字段进行"匹配"
    这些首部字段与不同层次的不同协议相关联
    动作包括:
    将分组转发到一个或多个输出端口
    跨越多个通向服务的离开接口进行负载均衡分组
    重写首部值
    有意识地阻挡/丢弃某个分组
    为进一步处理和动作向某个特定的服务器发送一个分组
    等等
    
    通用转发中,
    一张匹配加动作表将在4.2.1看到的基于目的地的转发表一般化了
    能使用网络层和/或链路层源和目的地址做出转发决定
    转发设备描述为分组交换机
    
    下图显示位于每台分组交换机中的一张匹配加动作表
    该表由远程控制器计算,安装和更新
    虽然在各台分组交换机中的控制组件可相互作用,
    但实践中通用匹配加动作能力是通过计算,安装,更新这些表的远程控制器实现的.
    

    在这里插入图片描述

    后续对通用转发的讨论将基于OpenFlow
    它已成为匹配加动作转发抽象,控制器,及更为一般的SDN革命等概念的先驱
    
    主要考虑OpenFlow1.0,
    该标准引入了SDN抽象和功能
    匹配加动作转发表在OpenFlow中称为流表,它的每个表项包括:
    - 首部字段值的集合
    入分组将与之匹配
    与基于目的地转发一样,基于硬件匹配在TCAM内存中执行得最为迅速
    匹配不上流表项的分组将被丢弃或发送到远程控制器做更多处理
    - 计数器集合
    计数器可包括已经与该表项匹配的分组数量,及自从该表项上次更新以来的时间
    - 当分组匹配流表项时所采取的动作集合
    动作可能将分组转发到给定的输出端口,丢弃该分组,复制该分组,将它们发送到多个输出端口,和/或重写所选的首部字段
    
    将学习每台分组交换机网络范围的匹配规则集合如何来实现多种多样功能
    如路由选择/第二层交换路由/防火墙/负载均衡/虚拟网络/...
    通过在网络分组交换机的集合中适当地编程/配置这些表,
    网络范围的行为能被类似地编程
    

    匹配

    下图显示了11个分组首部字段和入端口ID
    该ID能被OpenFlow1.0中的匹配加动作规则所匹配
    到达一台分组交换机的一个链路层帧将包含一个网络层[第三层]数据报作为其有效载荷,
    该载荷通常依次将包含一个运输层[第四层]报文段
    
    第一个观察是,
    OpenFlow的匹配抽象允许对来自三个层次的协议首部所选择的字段进行匹配
    显示在下图的源和目的MAC地址是与帧的发送和接收接口相关联的链路层地址
    通过基于以太网地址而不是IP地址进行转发,看到OpenFlow使能的设备能等价于路由器转发数据报以及交换机转发帧.
    以太网类型字段对应于较高层协议,
    利用该字段分解该帧的载荷,
    且VLAN字段与所谓虚拟局域网相关联
    

    在这里插入图片描述

    入端口是指分组交换机上接收分组的输入端口
    流表项也可有通配符
    如
    一个流表中IP地址128.119.*.*将匹配其地址的前16比特为128.119的任何数据报所对应的地址字段
    每个流表项也具有相应的优先权
    
    如一个分组匹配多个流表项,选定的匹配和对应的动作,将是其中有最高有限权的.
    最后,
    我们观察到并非一个IP首部中的所有字段都能被匹配
    OpenFlow不允许基于TTL字段或数据报长度的匹配
    

    动作

    每个流表项有0个或多个动作列表
    这些动作决定了应用于与流表项匹配的分组的处理
    如有多个动作,它们以在表中规定的次序执行
    其中最重要的动作可能是:
    - 转发
    一个入分组可转发到一个特定的物理输出端口,广播到所有端口[除分组到达端口]
    或通过所选的端口集合进行广播
    该分组可能被封装并发送到用于该设备的远程控制器
    该控制器可能或可能不对该分组采取某些动作,
    包括安装新的流表项,及可能将该分组返回给设备以在更新的流表规则集合下进行转发
    - 丢弃
    没有动作的流表项表明某个匹配的分组应当被丢弃
    - 修改字段
    在分组被转发到所选的输出端口前,
    分组首部的10个字段中的值可以重写
    

    匹配加动作操作中的OpenFlow例子

    在这里插入图片描述

    - 第一个例子:简单转发
    假定希望的转发行为是:
    来自h5或h6发往h3或h4的分组从s3转发到s1,从s1转发到s2
    在s1中的流表项将是:
    

    在这里插入图片描述

    在s3中的流表项,使得该数据报从h5/h6经过出接口3转发到s1
    

    在这里插入图片描述

    最后,也需要在s2中有一个流表项来完成第一个例子,使得从s1到达的数据报转发到它们的目的主机h3或h4
    

    在这里插入图片描述

    - 第二个例子:负载均衡
    考虑一个负载均衡场景,
    来自h3发往10.1.*.*的数据报经过s1和s2之间的直接链路转发
    与此同时,来自h4发往10.1.*.*的数据报经过s2和s3,s3到s1之间的链路转发
    这种行为不能通过基于IP的目的地址转发取得,这种情况下,在s2中的流表项将是
    

    在这里插入图片描述

    - 第三个例子:充当防火墙
    考虑一个防火墙场景,其中s2仅希望[在它的任何接口上]接收来自与s3相连的主机所发送的流量
    

    在这里插入图片描述

    如果在s2的流表中没有其他表项,则仅有来自10.3.*.*的流量将被转发到与s2相连的主机
    学习SDN时,再次考察流表,
    其中SDN控制器计算和分发流表,
    协议用于在分组交换机和它的控制器之间通信.
    

    小结

    网络层的数据平面功能:即每台路由器决定到达路由器输入链路之一的分组如何转发到该路由器的输出链路之一
    输入/输出端口
    基于目的地的转发
    路由器的内部交换机制
    分组排队管理
    ..
    
    传统转发
    通用转发
    Ipv4/Ipv6协议
    因特网编址
    
    展开全文
  • 网络数据包转发过程

    万次阅读 2014-09-30 11:33:40
    这篇文章讲述了上网时数据包转发的全过程,下面是电脑和网络设备连接简略图:   以PC1 ping PC3为例讲述数据包转发过程: 1、当PC1 ping PC3时,发现它们的IP不在同一网段,PC1就将数据包发送至网关(1.1.1.1/24)...
  • 简单网络拓扑: IP分配,如上图。PC0为192.168.1.1,网关为192.168.1.100。PC1为192.168.3.1,网关为192.168.3.100。 PC4为192.168.4.1,网关为192.168.4.110。 可以发现配置PC的网关即为路由器相应端的IP,这...
  • 2、应用层、运输层、网络层数据链路层、物理层的区别与功能 3、转发器、集线器、网桥、交换机、路由器、网关的功能与区别 一、二:不同传输单位与各层级的区别和作用: 1、应用层:   概念:通过应用进程间的...
  • 路由选择与分组转发2.异构网络互联3.拥塞控制 0.思维导图 1.主要任务与传输单位 2.路由选择与分组转发 路由器主要完成两个功能:是路由选择 (确定哪一 条路径),二是分组转发 (当一个分组 到达时所采取的动作)。 1...
  • 网络层-转发分组的流程

    千次阅读 2017-04-04 19:20:56
     若N就是与此路由器直接相连的某个网络地址,则进行直接交付,不需要再经过其他的路由器,直接把数据报交付目的主机(这里包括把目的主机地址D转换为具体的硬件地址,把数据报封装为MAC帧,再转发此帧);否则就是间接交付,...
  • 数据包的转发机制

    千次阅读 2018-05-15 20:49:13
    常用的几种数据包的转发机制: 1.进程交换(Process Switching) 在该模式下,当数据包...然后确定数据包将要从哪里发出去,此时数据包的二层数据地址就会被重新写成下一跳接口的MAC地址,并将数据包发送出去。这...
  • 假设:有四个A类网络通过三个路由器连接在一起。 每一个网络上都可能有成千上万个主机。 可以想像,若按目的主机号来制作路由表,每一路由表就有4万个项目,即4万行(每一行对应于 一台主机),则所得出的路由表就...
  • 网络与三数据包转发过程

    千次阅读 2017-08-14 17:21:00
    这一主要的数据转发设备是集线器和交换机,对于集线器,由于每一个数据帧都会被复制到各个端口,使每个连接主机收到很多跟自己无关的数据帧,这直接导致主机和集线器之间信道冲突剧烈(冲突域属于物理概念),...
  • 层数据转发过程

    万次阅读 多人点赞 2017-10-25 18:37:16
    层数据转发过程
  • 数据链路层、网络层基本概念总结

    万次阅读 2020-03-01 20:49:10
    数据链路层、网络层基本概念总结 常见的web中间件(容器) IIS apache lamp ngnix,但server-u不是。 数据的封装与解封装过程 数据链路层 一、数据链路层概述 1.基本概念 数据链路层(Data Link Layer)属于第二层...
  • 华为 MPLS的数据转发流程

    万次阅读 多人点赞 2021-02-15 12:24:39
    爱对了人,每天都过情人节...需求:4.4.4.4/32 访问1.1.1.1/32的MPLS的数据转发流程 二、底层配置 R1 [R1]int g0/0/0 [R1-GigabitEthernet0/0/0]ip address 10.1.12.1 24 [R1-GigabitEthernet0/0/0]q [R1]int LoopBack0
  • 对于初学者甚至许多计算机科班出身的同学来说,学习网络和操作系统一样,感觉十分抽象,学完总有一种朦朦胧胧的感觉,...OSI将计算机网络可以分为七层模型,从底层网上分别是物理层,数据链路层,网络层,... ,应...
  • 虚电路和数据报网络——网络层

    千次阅读 2019-11-07 14:33:04
    网络层为接在网络上的主机所提供的服务可以有两大类 面向连接的网络服务(虚电路服务) 无连接的网络服务(数据报服务) 一、虚电路 1、组成 一条虚电路由如下组成:源和目的主机之间的路径(一系列链路和...
  • IP地址专注于网络层,将数据包从一个网络转发到另外一个网络;而MAC地址专注于数据链路层,将一个数据帧从一个节点传送到相同链路的另一个节点。定位网络中的计算机的位置,最常用的有域名地址、Ip地址、MAC地址三种...
  • OSI七层模型详解(物理层、数据链路层、网络层、传输层.....应用层协议与硬件)   OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能就是帮助...
  • 网络层的目的是实现两个端系统之间的数据透明传送,具体功能包括 寻址和路由选择、连接的建立、保持和终止 等。它提供的服务使传输层不需要了解网络中的数据传输和交换技术。 网络层的主要功能: 1)屏蔽网络差异,...
  • 计算机网络:网络层——数据平面

    千次阅读 2018-12-13 12:57:22
    两种重要的网络层功能:转发和路由选择。(forwarding and routing) 数据层面(Data plane): local, per-router function determines how datagram arriving on router input port is forwarded to router ...
  • 三层交换技术的前身是单臂路由,三层交换机就是具有部分路由器功能的交换机,工作在OSI网络标准模型的第三层:网络层。三层交换机的最重要目的是加快大型局域网内部的数据交换,所具有的路由功能也是为这目的服务的...
  • 物理的作用正是要尽可能地屏蔽掉这些传输媒体和通信手段地差异,使得物理上面的数据链路感觉不到这些差异。 运用于物理的协议也常被称为物理的规程。 可以将物理的主要任务描述为确定与传输媒体的接口的...
  • 一、会话 提供的服务可使应用建立和维持会话,并能使会话获得同步。会话使用校验点可使通信会话在通信失效...这种类型的服务之所以需要,是因为不同的计算机体系结构使用的数据表示方法不同。 例如,IBM主机...
  • 计算机网络-网络层

    千次阅读 2019-05-29 12:51:14
    网络层数据交换4. 网络层协议及报文格式5. ARP与RARP6. 国际控制报文协议ICMP 1. 前言 网络层介于传输层和数据链路层之间,其主要作用是实现两个网络系统之间的数据透明传送,具体包括路由选择,拥塞控制和网际互连...
  • 2 网络层的主要功能是路由和转发,部分网络层还提供链接服务(如ATM)。路由是从端到端的确定数据在整个网络上的传输路径,转发是在某个节点将数据从输入端口转发的适当的输出端口,路由算法的运行结果确定了每个...
  • 交换机是属于 物理 还是 数据链路? 集线器 工作于OSI(开放系统互联参考模型)参考模型第一,即“物理” 普通交换机 工作于OSI(开放系统互联参考模型)参考模型第二,即“数据链路” 智能交换机 ...
  • 网络层----------IP层转发分组的流程

    千次阅读 2018-02-01 10:44:38
    1.如果按主机号来制作路由表,那么如果一个网络有1W个主机 就要在路由表添加1W条。...1)IP数据报最终可以找到目的主机所在的网络。 2)只有到达最后一个路由器时,才试图向目的主机对数据报的直接
  • 数据转发过程(转)

    千次阅读 2019-06-08 10:25:00
    所以网络工程师,深入地了解数据在各种不同设备上的转发过程,才能够对网络在进行正确地分析和检测。 数据包在相同网段内或者不同网段之间转发所依据的原理...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 165,290
精华内容 66,116
关键字:

网络层数据转发