计算机网络-网络层
网络层服务
网络层
- 从发送主机向接收主机传送数据段(segment)
- 发送主机:将数据段封装到数据报(datagram)中
- 接收主机:向传输层交付数据段(segment)
- 每个主机和路由器都运行网络层协议
- 路由器检验所有穿越它的IP数据报的头部域
- 决策如何处理IP数据报
网络层核心 功能- 转发与路由
转发(forwarding):将分组从路由器的输入端口转移到合适的输出端口
路由(routing): 确定分组从源到目的经过的路径,路由算法(routingalgorithms)
网络层核心功能- 连接建立
- 某些网络的重要功能:
- ATM, 帧中继, X.25
- 数据分组传输之前两端主机需要首先建立虚拟/逻辑连接
- 网络设备(如路由器)参与连接的建立
- 网络层连接与传输层连接的对比:
- 网络层连接: 两个主机之间 (路径上的路由器等网络设备参与其中)
- 传输层连接: 两个应用进程之间(对中间网络设备透明)
网络层服务 模型
- 无连接服务(connection-less service):
- 不事先为系列分组的传输确定传输路径
- 每个分组独立确定传输路径
- 不同同 分组可能传输路径不同
- 数据报网络(datagram network )
- 连接服务(connection service):
- 首先为系列 分组的传输 确定从源到目的经过的路径( 建立连接)
- 然后沿该路径(连接)传输系列分组
- 系列分组传输路径相同
- 传输接 结束后拆除连接
- 虚电路络 网络(virtual-circuit network )
虚电路网络
- 数据报(datagram)网络与虚电路(virtual-circuit)网络是典型两类分组交换网络
- 数据报网络提供网络层无连接服务
- 虚电路网络提供网络层连接服务
- 类似于传输层的无连接服务(UDP)和面向连接服务(TCP),但是网络层服务:
- 主机到主机服务
- 网络核心实现
虚电路(Virtual circuits)
虚电路:一条从源主机到目的主机,类似于电路的路径(逻辑连接)
- 分组交换
- 每个分组的传输利用链路的全部带宽
- 源到目的路径经过的网络层设备共同完成虚电路功能
通信过程:
- 呼叫建立(call setup) → 数据传输 → 拆除呼叫
- 每个分组携带虚电路标识(VCID),而不是目的主机地址
- 虚电路经过的每个网络设备(如路由器),维护每条经过它的虚电路连接状态
- 链路、网络设备资源(如带宽、缓存等)可以面向VC进行预分配
- 预分配资源=可预期服务性能
- 如ATM的电路仿真(CBR)
VC 的具体实现
每条虚电路包括:
- 从源主机到目的主机的一条路径
- 虚电路号(VCID), 沿路每段链路一个编号
- 沿路每个网络层设备(如路由器),利用转发表记录经过的每条虚电路
沿某条虚电路传输的分组,携带对应虚电路的VCID,而不是目的地址
同一条VC ,在每段链路上的VCID通常不同,路由器转发分组时依据转发表改写/替换虚电路号
虚电路信令协议(signaling protocols)
数据报网络
- 网络层无连接
- 每个分组携带目的地址
- 路由器根据分组的目的地址转发分组
- 基于路由协议/算法构建转发表
- 检索转发表
- 每个分组独立选路
数据报转发表
最长前缀匹配优先
在检索转发表时,优先选择与分组目的地址匹配 前缀最长的入口(entry )。
数据报网络 or VC 网络
IP 协议-IP 数据报
Internet 网络层
IP 数据报( 分组)
- 版本号字段占4位:IP协议的版本号
- E.g. 4→IPv4,6 → IPv6
- 首部 长度字段占4位:IP分组首部长度
- 以4字节为单位
- E.g. 5→IP首部长度为20(5×4)字节
- 服务类型(TOS)字段占8位:指示期望获得哪种类型的服务
- 1998 年这个字段改名为区分服务
- 只有在网络提供区分服务(DiffServ)时使用
- 一般情况下不使用,通常IP分组的该字段(第2字节)的值为00H
- 总长度字段占16位:IP分组的总字节数(首部+数据)
- 最大IP分组的总长度:65535B
- 最小的IP分组首部:20B
- IP分组可以封装的最大数据:65535-20=65515B
- 生存时间(TTL )字段占8位:IP分组在网络中可以通过的路由器数(或跳步数)
- 路由器转发一次分组,TTL减1
- 如果TTL=0,路由器则丢弃该IP分组
- 协议字段占8位:指示IP分组封装的是哪个协议的数据包
- 实现复用/分解
- E.g. 6为TCP,表示封装的为TCP段;17为UDP,表示封装的是UDP数据报
- 首部校验和字段占16位:实现对IP分组首部的差错检测
- 计算校验和时,该字段置全0
- 采用反码算数运算求和,和的反码作为首部校验和字段
- 逐跳计算、逐跳校验
- 源 源IP 地址、目的IP 地址字段各占32位:分别标识发送分组的源主机/路由器(网络接口)和接收分组的目的主机/路由器(网络接口)的IP地址
- 选项字段占长度可变,范围在1~40B之间:携带安全、源选路径、时间戳和路由记录等内容
- 实际上很少被使用
- 填充字段占长度可变,范围在0~3B之间:目的是补齐整个首部,符合32位对齐,即保证首部长度是4字节的倍数
IP 协议-IP 分片
最大传输 单元(MTU)
IP分片与重组
- 标识字段占16位:标识一个IP分组
- IP协议利用一个计数器,每产生IP分组计数器加1,作为该IP分组的标识
- 片偏移字段占13位:一个IP分组分片封装原IP分组数据的相对偏移量
- 片偏移字段以8字节为单位
IP 分片 过程
- 假设原IP分组总长度为L,待转发链路的MTU为M
- 若L>M,且DF=0,则可以/需要分片
- 分片时每个分片的标识复制原IP分组的标识
- 通常分片时,除最后一个分片,其他分片均分为MTU允许的最大分片
- 一个最大分片可封装的数据应该是8的倍数,因此,一个最大分片可封装的数据为:
- 需要的总片数为:
IP 协议-IP编址
- IP分组:
- 源地址(SA)-从哪儿来
- 目的地址(DA)-到哪儿去
- 接口(interface): 主机/路由器与物理链路的连接
- 实现网络层功能
- 路由器通常有多个接口
- 主机通常只有一个或两个
- 接口 (e.g.,有线的以太网
- 接口,无线的802.11接口)
-
IP地址: 32 比特(IPv4)编号标识主机、路由器的接口
-
IP地址与每个接口关联
-
IP地址:
- 网络号(NetID) – 高位比特
- 主机号(HostID) – 低位比特
-
IP 子网:
- IP地址具有相同网络号的设备接口
- 不跨越路由器(第三及以上层网络设备)可以彼此物理联通的接口
IP 协议- 有类IP 地址
特殊IP 地址
私有(Private )IP 地址
IP 协议-IP 子网划分 与码 子网掩码
如何区分一个IP 子网更小范围网络(子网)?---- 子网划分
路由器如何确定应该将IP分组转发到哪个子网?
子网掩码的应用
一个C 类网络划分子网举例
♪(^∇^*)♪(^∇^*)(~ ̄▽ ̄)~有没有感觉很棒呀!!!(#^.^#),(*^▽^*)O(∩_∩)O哈哈~