第九讲 网络层(一)
本讲主要内容 网络层概述 数据报与虚电路 网际协议IP IPv4与IPv6 IP数据报构成 IP地址 子网与子网掩码
7.1网络层概述 网络层的根本任务是将源主机发出的分组经各种途径送到目的主机。 从源主机到目的主机可能得经过许多中间节点。这一功能与数据链路层形成鲜明的对比,数据链路层仅将数据帧从导线的一端送到其另一端,而网络层是处理点到点数据传输的最低层。
7.1.1网络层的的设计问题 当源主机与目的主机不处于同一网络中时,应由网络层来处理这些差异,并解决由此而带来的问题,这是网络层关心的一个重要问题:异种网络互联。 网络层必须知道通信子网的拓扑结构(即所有路由器的位置),并选择通过子网的合适路径,这是网络层要解决的另一个重要问题:路由选择。 另外,选择路径时要注意到,不要使一些通信线路超负荷工作,而另一些通信线路却处于空闲状态,这是另一方面的问题:拥塞控制。
表7-1 不同网络的不同性质 不同的方面 可能的取值 提供的服务 面向连接的和无连接的 网络层协议 表7-1 不同网络的不同性质 不同的方面 可能的取值 提供的服务 面向连接的和无连接的 网络层协议 IP,IPX,CLNP,AppleTalk, DECnet等 服务质量 支持服务质量或不支持,许多不同的方法 多点广播 存在多点广播或不存在 分组大小 各个网络分组长度的最大值不一致 寻址方式 分层的(如IP),平面的(如IEEE 802) 流量控制 速率控制,滑动窗口,其它方法或不支持流量控制 拥塞控制 漏桶、抑制分组等 差错控制 可靠的,有序的和无序的提交 安全性 使用规则、加密等 参数 不同的超时值、流说明等 计费方式 按连接时间计费,按分组数计费,按字节数计费或不计费
7.1.2 虚电路与数据报 在网络层主要提供两种数据传输服务: 面向连接的虚电路方式 无连接的数据报方式
1.面向连接的虚电路方式 主机 H1 先向主机 H5 发出一个特定格式的控制信息分组, 通信就发回响应,然后双方就建立了虚电路。 1.面向连接的虚电路方式 H2 H4 H1 向 H5 发送的 所有分组都沿此 虚电路传送。 D H1 要和 H5 通信 B 虚电路 H6 E H1 A H5 C H3 分组交换网
提供虚电路服务的特点 同理,主机 H2 和主机 H6 通信之前,也要建立虚电路。 H4 H2 D B H6 E H1 A H5 C H3 分组交换网
提供虚电路服务的特点 在虚电路建立后,网络向用户提供的服务就好像在 两个主机之间建立了一对穿过网络的数字管道。 所有发送的分组都按顺序进入管道,然后按照 先进先出的原则沿着此管道传送到目的站主机。 提供虚电路服务的特点 H2 H4 D B H6 E H1 A H5 C H3 分组交换网
提供虚电路服务的特点 到达目的站的分组顺序就与发送时的顺序一致, 因此网络提供虚电路服务对通信的 服务质量 QoS (Quality of Service)有较好的保证。 提供虚电路服务的特点 H2 H4 D B H6 E H1 A H5 C H3 分组交换网
2.无连接的数据报方式 网络随时接受主机发送的分组(即数据报) 网络为每个分组独立地选择路由。 H2 向 H6 发送分组 D H1 向 H5 发送分组 B 路径可能变化 H6 E H1 A H5 C H3 分组交换网
无连接的数据报方式特点 网络尽最大努力地将分组交付给目的主机,但网络对源主机没有任何承诺。 网络不保证所传送的分组不丢失,也不保证按源主机发送分组的先后顺序,以及在时限内必须将分组交付给目的主机。 当网络发生拥塞时,网络中的结点可根据情况将一些分组丢弃 。 数据报提供的服务是不可靠的,它不能保证服务质量。
在无连接的数据报方式的设计中,下面几个部分是非常关键的。 寻址 路由。 分组生命期。 差错控制和流量控制。 分段和重组。
7.2 网际协议IP TCP/IP协议族是Internet所采用的协议族,是Internet的实现基础。 因特网协议IP (Internet Protocol)是TCP/IP协议族中网络层的协议,是TCP/IP协议族的核心协议。
7.2.1 IP协议提供的服务 IP协议是因特网中的基础协议,由IP协议控制传输的协议单元称为IP数据报。 IP将多个网络连成一个互联网,可以把高层的数据以多个数据报的形式通过互联网分发出去,它的基本任务是屏蔽下层各种物理网络的差异,向上层(主要是TCP层或UDP层)提供统一的IP数据报,各个IP数据报之间是相互独立的。 IP协议提供不可靠的、无连接的、尽力的数据报投递服务。
将IP数据报封装到以太网的MAC数据帧中
7.2.2 IPv4与 IPv6 目前因特网上广泛使用的IP协议为IPv4,IPv4的IP地址是由32位的二进制数值组成的。
IPv4的数据报结构 比特 1 2 3 4 5 6 7 优 先 级 D T R C 未用 比特 4 8 16 19 24 31 首 部 1 2 3 4 5 6 7 优 先 级 D T R C 未用 比特 4 8 16 19 24 31 首 部 版 本 首部长度 服 务 类 型 总 长 度 固 定 部 分 标 识 标志 片 偏 移 生 存 时 间 协 议 首 部 检 验 和 源 地 址 目 的 地 址 可变 部分 可 选 字 段 (长 度 可 变) 填 充 数 据 部 分 传送 首 部 数 据 部 分 IP 数据报 IPv4的数据报结构
IPv4的数据报结构 比特 1 2 3 4 5 6 7 优 先 级 D T R C 未用 比特 4 8 16 19 24 31 固 定 部 1 2 3 4 5 6 7 优 先 级 D T R C 未用 比特 4 8 16 19 24 31 固 定 部 分 版 本 首部长度 服 务 类 型 总 长 度 标 识 标志 片 偏 移 首 部 生 存 时 间 协 议 首 部 检 验 和 源 地 址 目 的 地 址 可变 部分 可 选 字 段 (长 度 可 变) 填 充 数 据 部 分 传送 首 部 数 据 部 分 IP 数据报 IPv4的数据报结构
IPv4的数据报结构 比特 1 2 3 4 5 6 7 优 先 级 D T R C 未用 比特 4 8 16 19 24 31 版 本 1 2 3 4 5 6 7 优 先 级 D T R C 未用 比特 4 8 16 19 24 31 版 本 首部长度 服 务 类 型 总 长 度 固 定 部 分 标 识 标志 片 偏 移 首 部 生 存 时 间 协 议 首 部 检 验 和 源 地 址 目 的 地 址 可变 部分 可 选 字 段 (长 度 可 变) 填 充 数 据 部 分 传送 首 部 数 据 部 分 IP 数据报 IPv4的数据报结构
IPv4首部字段 版本号(Version):4位,说明对应IP协议的版本号 IP头长度(IP Header Length):4位,以32位为单位的IP数据报的报头长度。 服务类型(Type of Service):8位,用于规定优先级、传送速率、吞吐量和可靠性等参数。 IP数据报总长度(Total Length):16位,以字节为单位的数据报报头和数据两部分的总长度。 标识符(Identifier):16位,它是数据报的唯一标识,用于数据报的分段和重装。 标志(Flag):3位,数据报是否分段的标志。 段偏移(Fragment Offest):13位,以64位为单位表示的分段偏移
IPv4首部字段 生存期(Time of Live):8位,允许数据报在互联网中传输的存活期限。 协议(Protocol):8位,指出发送数据报的上层协议。 IP报头校验和(Header Checksum):16位,用于对报头的正确性检验。 源站IP地址:32位,指出发送数据报的源主机IP地址。 目的站IP地址:32位,指出接收数据报的目的主机的IP地址。 IP选项:可变长度,提供任选的服务,如错误报告和特殊路由等。 填充项:可变长度,保证IP报头以32位边界对齐。
IPv6被提出 32位的IP地址空间将无法满足因特网迅速增长的要求;不定长的数据报头域处理影响了路由器的性能提高;单调的服务类型处理;缺乏安全性要求的考虑;负载的分段/组装功能影响了路由器处理的效率。 90年代初,人们就开始讨论新的互联网络协议。IETF的IPng工作组在1994年9月提出了一个正式的草案"The Recommendation for the IP Next Generation Protocol",1995年底确定了IPng的协议规范,并称为"IP版本6"(IPv6)
IPv6的数据报头结构 比特 4 12 16 24 31 版 本 通 信 量 类 流 标 号 有 效 载 荷 长 度 下 一 个 首 部 4 12 16 24 31 版 本 通 信 量 类 流 标 号 有 效 载 荷 长 度 下 一 个 首 部 跳 数 限 制 源 地 址 IPv6 的 基本首部 (40 B) (128 bit) 目 的 地 址 (128 bit) 扩展首部 / 数据 IPv6 的 有效载荷 (至 64 KB)
IPv6主要特点有: (1)扩展地址和路由的能力。 (2)简化了IP报头的格式。 (3)支持扩展选项的能力。 (4)支持对数据的确认和加密。 (5)支持自动配置。 (6)支持源路由。 (7)定义服务质量的能力。 (8)IPv4的平滑过渡和升级。
7.2.3 IP地址 我们把整个因特网看成为一个单一的、抽象的网络。IP 地址就是给每个连接在因特网上的主机(或路由器)分配一个在全世界范围是唯一的 32 bit 的标识符。 每个因特网上的主机和路由器都有一个IP地址,包括类别、网络标识和主机标识。为了避免冲突,因特网中所有的IP地址都是由一个中央权威机构SRI的网络信息中心NIC(Network Information Center)分配。
IP地址的一般格式为: 类别 + Netid + Hostid 通常将因特网IP地址分成5种类型:(A类、B类、C类、D类、E类) 网络标识(Netid):表示入网主机所在的网络; 主机标识(Hostid):表示入网主机在本网段中的标识。
表7-2 IP地址结构 地址 网络部分 主机部分 A类 0XXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX B类 C类 110XXXXX XXXXXXXX D类 1110XXXX XXXXXXXX E类 1111XXXX XXXXXXXX
点分十进制记法 10000000000010110000001100011111 机器中存放的 IP 地址 是 32 bit 二进制代码 10000000 00001011 00000011 00011111 每隔 8 bit 插入一个空格 能够提高可读性 将每 8 bit 的二进制数 转换为十进制数 128 11 3 31 采用点分十进制记法 则进一步提高可读性 128.11.3.31
值得注意的是因特网还规定了一些特殊地址: Hostid为全'0'的IP地址,不分配给任何主机,仅用于表示某个网络的网络地址;例:202.119.2.0。 Hostid为全‘1’的IP地址,不分配给任何主机,用作广播地址,例:202.119.2.255。 32位为全'1'的IP地址(255.255.255.255),称为有限广播地址,通常由无盘工作站启动时使用,希望从网络IP地址服务器处获得一个IP地址; 32位为全'0'的IP地址(0.0.0.0),表示本身本机地址; 127.*.*.*:为环回测试地址,常用于本机上软件测试和本机上网络应用程序之间的通信地址。
7.2.4子网及子网掩码 1.子网 在 ARPANET 的早期,IP 地址的设计确实不够合理。 从 1985 年起在 IP 地址中又增加了一个“子网号字段”,使两级的 IP 地址变成为三级的 IP 地址。 这种做法叫作划分子网(subnetting) 。划分子网已成为因特网的正式标准协议。
划分子网的基本思路 划分子网纯属一个单位内部的事情。单位对外仍然表现为没有划分子网的网络。 从主机号借用若干个比特作为子网号 subnet-id, 而主机号 host-id 也就相应减少了若干个比特。 IP地址 ::= {<网络号>, <子网号>, <主机号>}
一个未划分子网的 B 类网络145.13.0.0 网络 145.13.0.0 … … … 我的网络地址 是 145.13.0.0 145.13.3.101 145.13.3.11 … 145.13.7.34 R2 145.13.3.10 145.13.7.35 网络 145.13.0.0 R1 … R3 145.13.7.56 … 所有到网络 145.13.0.0的分组均到达此路由器 145.13.21.23 145.13.21.8 145.13.21.9
划分为三个子网后对外仍是一个网络 网络 145.13.0.0 所有到达网络 145.13.0.0 的分组均到达 此路由器 145.13.3.101 145.13.3.11 145.13.7.34 145.13.3.10 … 145.13.7.35 R2 子网 145.13.3.0 子网 145.13.7.0 … 145.13.7.56 R1 R3 子网 145.13.21.0 … 145.13.21.23 网络 145.13.0.0 145.13.21.9 145.13.21.8
使用子网掩码(subnet mask)可以找出 IP 地址中的子网部分
IP协议标准规定: 每一个使用子网的网点都选择一个32位的位模式,若位模式中的某位为1,则对应IP地址中的某位为网络地址(包括类别、网络地址和子网地址)中的一位;若位模式中某位置为0,则对应IP地址中的某位为主机地址中的一位。子网掩码与IP地址结合使用,可以区分出一个网络地址的网络号和主机号。
IP 地址的各字段和子网掩码 因特网部分 本地部分 两级 IP 地址 网络号 net-id 主机号 host-id 因特网部分 本地部分 subnet-id 子网号 host-id 网络号 主机号 子网掩码 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 划分子网时 的网络地址 net-id subnet-id host-id 为全 0
(IP 地址) AND (子网掩码) = 网络地址 因特网部分 本地部分 两级 IP 地址 网络号 net-id 主机号 host-id 因特网部分 本地部分 三级 IP 地址 net-id host-id subnet-id AND 网络号 子网号 主机号 子网掩码 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 划分子网时 的网络地址 net-id subnet-id host-id 为全 0
A 类、B 类和 C 类 IP 地址的默认子网掩码 A 类 地 址 网络地址 net-id host-id 为全 0 默认子网掩码 255.0.0.0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 B 类 地 址 网络地址 net-id host-id 为全 0 默认子网掩码 255.255.0.0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 C 类 地 址 网络地址 net-id host-id 为全 0 默认子网掩码 255.255.255.0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0
例1:利用子网掩码求网络号与主机号。 已知一个IP地址为202. 168. 73. 5,其缺省的子网掩码为255. 255. 255 其次,将子网掩码255.255.255.0转换为二进制11111111.11111111.11111111.00000000。 然后将两个二进制数进行逻辑与(AND)运算,得出的结果即为网络号。结果为,202.168.73.0。 最后,将子网掩码取反再与二进制的IP地址进行逻辑与运算,得出的结果即为主机号。结果为0.0.0.5,即主机号为5。
例2:利用子网掩码划分子网 某单位需要构建5个分布于不同地点的局域网络,每个网络有10到25台不等的主机,而其仅向NIC申请了一个C类的网络ID号,其号码为192.65.126.0。 正常情况下,C类IP地址的子网掩码应该设为255.255.255.0。这种情况下,C类网络的254台主机必然属于同一个网络段内。 但现在网络构建需求却为分布于5个不同地点的不同网络段,此时,如果将子网掩码设为255.255.255.224,与255.255.255.0不同的是该子网掩码的最后一个字节为224,而不是0。224所对应的二进制值为11100000,它表示原主机地址的最高三位是现在所划分出的子网的个数。也就是可将主机ID中最高的三位用于子网分割。
例2:利用子网掩码划分子网 某单位需要构建5个分布于不同地点的局域网络,每个网络有10到25台不等的主机,而其仅向NIC申请了一个C类的网络ID号,其号码为192.65.126.0。
小结 网络层的作用 数据报与虚电路各自特点 IP数据报首部重要字段的构成与作用 IP地址:作用、长度、表示方法、分类 掌握划分子网、计算网络号与主机号的方法