从发送主机向接收主机传送数据段(segment ) 。发送主机:将数据段封装到数据报(datagram )中,接收主机:向传输层交付数据段(segment )。
转发:将分组从路由器的输入端口转移到合适的输出端口
选路:确定分组从源到目的经过的路径
无连接服务(connection-less service):
连接服务(connection service):
虚电路网络提供网络层连接服务
虚电路: 一条从源主机到目的地的主机,类似于电路的路径(逻辑连接)
通信过程:
每条虚电路包括:
对于虚电路网络,每台路由器的转发表包括了VC号的转换。
为什么一个分组沿着其路由在每条链路上不能保持相同的VC号?
通过允许沿着该虚电路路径每条链路有一个不同的VC号,大大简化了虚电路的建立。
虚电路中三个确认的阶段:
虚电路的建立
网络层无连接
* 每个分组携带目的地址
* 路由器根据分组的目的地址转发分组
* 基于路由协议/算法构建转发表
* 检索转发表
* 每个分组独立选路
一台路由器的4个组成部分:
因特网的网络层有三个主要的组件。
字段 | 描述 |
---|---|
版本号(4bit) | 描述IP协议的版本号,目前主要有V4和V6两个版本 |
首部长度(4bit) | 以四字节为单位例如: 5 -> IP首部长度为20(5 * 4)字节,不这么计算的话,长度描述根本不够 |
服务类型(8bit) | 指示期望获得哪种类型的服务:1 .只有在网络提供区分服务(DiffServ)时使用2.一般情况下不使用,通常IP分组的该字段(第2字节)的值为00H |
总长度(16bit) | IP分组的总字节数(首部 + 数据) |
生存时间TTL(8bit) | IP分组在网络中可以通过的路由器数(或跳步数) |
协议(8bit) | 指示IP分组封装的是哪个协议的数据包,实现复用/分解 |
首部校验和(16位) | 实现对IP分组首部的差错检测 |
源IP地址、目的IP地址字段(各占32bit | 分别标识发送分组的源主机/路由器(网络接口)和接收分组的目的主机/路由器(网络接口)的IP地址 |
选项字段(长度可变,范围在1~40B之间) | 携带安全、源选路径、时间戳和路由记录等内容(实际上很少被使用) |
填充(长度可变,范围在0~3B之间) | 目的是补齐整个首部,符合32位对齐,即保证首部长度是4字节的倍数 |
标识字段(16bit) | 标识一个IP分组,IP协议利用一个计数器,每产生IP分组计数器加1,作为该IP分组的标识 |
标志位(3bit) | DF =1:禁止分片;DF =0:允许分片MF =1:非最后一片;MF =0:最后一片(或未分片) |
片偏移(13bit) | 一个IP分组分片封装原IP分组数据的相对偏移量片偏移字段以8字节为单位 |
IP数据报分片
网络链路存在MTU (最大传输单元)—链路层数据帧可封装数据的上限不同链路的MTU不同。大IP分组向较小MTU链路转发时, 可以被“分片” (fragmented)。
接口(interface): 主机/路由器与物理链路的连接
IP地址: 32比特(IPv4)编号标识主机、路由器的接口
IP地址:
IP子网
无类域间路由(CIDR: Classless InterDomain Routing)
- 消除传统的 A 类、 B 类和 C 类地址界限
- NetID+SubID→Network Prefix (Prefix)可以任意长度
- 融合子网地址与子网掩码,方便子网划分
- 无类地址格式: a.b.c.d/x,其中x为前缀长度
来分析一个组织如何为其设备得到一个地址块和一个设备如何从本地组织地址中被分配到一个地址。
ICMP最典型的作用是差错报告。但是不仅用于通知差错报告,如ping和源抑制报文。
AS内部路由协议也称为内部网络协议IGP(interiorgatewayprotocols)
早于1982年随BSD-UNIX操作系统发布
- 距离向量路由算法
- 距离度量:跳步数 (max = 15 hops),每条链路1个跳步(防止无穷计数)
- 每隔30秒,邻居之间交换一次DV,成为通告(advertisement)
- 每次通告:最多25个目的子网(IP地址形式)
RIP示例
注意这里路由器之间交换的通告和一般的距离向量路由算法不同,增加了下一跳信息,如果看到某个路由器看到下一跳就是自己,那么就相当于起到了毒性逆转的作用.
RIP链路的失效和恢复信息
如果180秒没有收到通告→邻居/链路失效
RIP路由表的处理:RIP路由表是利用一个称作route-d(deamon)的应用层进程实现的
通告报文周期性通过UDP数据报发送
RIP协议适用于小规模AS,以为最大跳步15.
采用链路状态路由算法
OSPF优点
- 安全(security): 所有OSPF报文可以被认证(预防恶意入侵)
- 允许使用多条相同费用的路径 (RIP只能选一条)
- 单播选路与多播选路的综合支持
- 支持在单个选路域内的层次结构
区边界路由器(Area Border Routers):“汇总”到达所在区网络的距离,通告给其他区边界路由器(每个小区和蓝色区相交的那个路由器)
主干路由器(Backbone Routers):在主干区内运行OSPF路由算法.(图中蓝色区域的普通路由器)
AS边界路由器(AS boundary routers):连接其他AS.(最上面那个路由器)
边界网关协议BGP (Border GatewayProtocol):事实上的标准域间路由协议。将Internet “粘合”为一个整体的关键
BGP为每个AS提供了一种手段:
BGP会话(session): 两个BGP路由器 (“ Peers” )交换BGP报文:
BGP报文:
当AS3通告一个前缀给AS1时:
BGP分发路径信息:
在3a与1c之间, AS3利用eBGP会话向AS1发送前缀可达性信息.
通告的前缀信息包括BGP属性
两个重要属性:
BGP路由选择
网关路由器收到路由通告后,利用其输入策略(import policy)决策接受/拒绝该路由e.g., 从不将流量路由到AS x
路由选择策略示例:
A向B通告一条路径: AW
B向X通告路径: BAW
B是否应该向C通告路径BAW呢?
- 绝不! B路由CBAW的流量没有任何“收益”,因为W和C均不是B的客户。
- B期望强制C通过A向W路由流量
- B期望只路由去往/来自其客户的流量!
为什么采取不同的AS内与AS间路由协议
策略(policy):
规模(scale):
性能(performance):