第 5 章 网络层
子网划分
有类IPV4地址分类;
没有划分子网情况下,默认掩码计算方法和作用
如何划分子网,子网掩码计算方法和作用
思考一个问题:给你一个IP地址和子网掩码,计算得到网络地址、 直接广播地址、可分配的IP地址范围。如何用C程序实现
第1节:IPv4地址
- 因特网无连接服务 (可靠性由端系统上层 (传输层)负责)
网络层向上层(传输层)只提供简单灵活的、无连接的、尽最大努力交付的数据报服务;端系统发送与接收分组,交换设备对分组存储转发,查找路由表;
网络层的功能
- 异构网络互连
- 编址(IP地址)
- 分片/组装
- 存储转发
- 路由算法建立路由表
- 拥塞控制
- 差错报告和网络信息查询(如TTL,目的不可达,ICMP)
- 地址解析(ARP,RARP)
- 数据传输服务
- 无连接服务:数据报(因特网)
- 面向连接服务:虚电路(X.25,FR,ATM)
与 IP 协议 配套使用的还有四个协议:地址解析协议 ARP,逆地址解析协议 RARP,网际控制报文协议 ICMP,网际组管理协议 IGMP
- 有类IPv4地址
因特网中每一个网络设备都至少有一个IP地址
路由器有多个接口,每个接口有一个IP地址。三层交换机?
MAC地址作用范围:VLAN内部,不同VLAN之间无法区分
IP地址配置
- 人工配置:一般也要配置子网掩码、网关、DNS服务器地址。
- 自动配置:动态主机配置协议( DHCP : Dynamic Host Configuration Protocol)
有类IP地址由三部分组成
类别号(M);
网络标识(NetId):主机(或路由器)接口所连接到网络;
主机标识(HostId):标识网络中主机(或路由器)接口。
A 类地址的 net-id 为 7比特有效(128 A类网段);
共有128块地址,实际只有126块,除去以下两块 0.x.y.x 127.x.y.z 一块地址保留给私有地址(private address) 10.x.y.z(私网只能在企业内部使用)
主机数2^24-2(全0网络地址全1广播地址)
B类地址 net-id 为14比特有效(2的14次方B网段)
网络号围:10000000.00000000~10111111.11111111(128.0~191.255)
16块私有地址:172.16~172.31
每块B类网段可以容纳2的16次方-2台主机。
C类地址 net-id 为21比特有效
网络号围: (192.0.0~223.255.255)
私有地址C类网段:192.168.0~192.168.255(256个)
每个C地址块最多分配254台主机(2的8次方-2)。
使用单位:大部分机构
私有地址不需申请,访问Internet:NAT技术(网络地址转换)基本NAT,扩展NAT工作原理
NAT路由器:本地地址转换为全球IP地址
- Static NAT
- Dynamic NAT
- Overload
D类地址(组播地址) 224.0.0.0~239.255.255.255
E类地址保留为今后使用,如实验地址: 240.0.0.0~247.255.255.255
三、划分子网和构建超网
1. 划分子网
子网掩码计算方法:网络id+子网id全为1,主机id全0
子网掩码作用:与IP地址相与,得到子网的网络地址(网络号)
变长子网掩码(VLSM
无子网划分的IP网络
- 相同网络地址的主机间可以直接通信。
- 属于不同网络地址的主机间通信需要路由器进行转发;
有子网划分的IP网络
如果两个主机在不同子网, 即子网网络地址不同, 则它们之间就要通过三层路由才可进行通信。
2. 构造超网
超网(Super network):将几个小的C网络,利用超网掩码合并为一个大的网络。
超网实质:将若干netid通过聚合成hostid, netid长度减少
- 无分类编址(CIDR) 无分类域间路由选择方法 CIDR (Classless InterDomain Routing)。
网桥和二层交换机连接起来的局域网属于一个网络,该局域网都具有同样的网络号 net-id(+subnet-id)。
网桥和二层交换机没有IP地址概念;
连接其上的主机必须属于同一个网络(网络地址/子网网络地址)
三层交换机:划分VLAN,每个VLAN属于一个网段,有一个虚拟网络接口地址
- IP分组存储转发
如果源和目的在一个LAN中(A发送IP分组给B),A主机IP协议调用ARP获取目的B主机MAC地址(路由器丢弃该IP分组)。直接交付
如果该路由不是直接交付(间接交付), 则将路由表中下一跳路由器IP 地址记录下来,利用ARP获取下一跳路由器端口MAC地址
若按主机所在的网络地址来构造路由表,那么每一个路由器中的路由表只包含 4 个路由记录,使路由表大大简化
- IP协议(续)
- IP 分组格式
总长度:占 16 bit,指首部+数据的长度(578-1500B), 单位为字节,因此分组的最大长度为 65535 字节。 总长度必须不超过最大传送单元 MTU。 目前该长度足够,在将来高速网络中,数据帧MTU有可能大于65535 字节;每个分片总长度仅仅指该分片首部+数据长度
标识(identification): 占 16 bit. 源节点每产生一个新分组,计数器+1,作为该分组的标识,而不是序号,IP提供无连接通信,不存在按序接收. 注意:一个分组不同分片具有相同标识. 与分片与组装有关的字段:标识+标志+片偏移
片偏移:12 bit 指出较长分组,主要指数据部分在分片后,某一个分片(或分组)的数据部分第一个字节在原始数据中的相对位置。 片偏移以8个字节为偏移单位。
这里有一个分片举例
IP协议完成分片的工作,保证首地址可以被8整除。
- TTL=0? ICMP协议处理
- 首部校验
- 排队
- 路由选择
帧首 | DATA(这一部分为MTU) | 帧尾 |
生存时间(TTL :Time To Live):8 bit 目的:丢弃网络中存在很长时间的分组。 发送源一般TTL设置为64,最大255,每经过一个路由器,在转发前TTL 减1,为0丢弃,同时向源端发送一个ICMP超时信息。 情况:网络存在环路,或找不到确切路由,一直使用默认路由。
首部校验和字段: 16 bit 只校验分组首部,不包括数据部分,减少IP层处理分组时间,数据差 错控制由端系统传输层完成。
不采用CRC检验码,而采用简单的计算方法,减少路由器计算负荷。 当分组从一个路由器转发给另一个路由器需前要重新计算首部校验和 (至少TTL、片偏移发生变化)
选项字段:0个字节到40个字节不等;用于控制、测量和安全。 提供各种选服务:如时间戳选项,源路由选项等; 可变部分增加IP协议功能的同时,也使得首部长度成为可变,增加了每一个路由器处理分组开销,实际上这些选项现在很少被使用。
选项字段(科研项目用到,实际应用没有)
源路由选项:指转发分组的路由信息是由源主机指定, 而不是由IP协议通过路由表确定的,分为两类:限制和自由源路由
- 限制源路由:用于网络测试(strict route)
- 自由源路由:用于网络安全(loose route)
- 记录路由选项:(record route)
- 时间戳选项:分析网络吞吐量、拥塞、负载(timestamp)
- 安全选项:(security)
- IP 分组分片与组装
各种实际物理网络中,数据链路层帧的数据字段都有不同的最大长度限制,称为最大数据传送单元MTU(Maximum Transfer Unit)
分组(分片)组装条件
在进行数据分组重新组装时, 各个IP分片具有相同标识,按偏移排序
具有相同的上层协议号、源IP地址和目的IP地址。
在一定的时间内要全部到齐
分片组装条件加一条:所有分片首部校验正确
- IP分组转发(路由选择)
- 静态路由算法
最短路径路由算法 (SP :Shortest Path) 故也称Dijkstra算法
基于流量的路由算法 (FR :Flow-based Routing 利用Dijstra算法求解即可。
考虑了网络拓扑结构和通信 流量两方面因素。
静态路由在实际工程中应用
- 动态路由算法
距离矢量路由算法 (DVR :Distance Vector Routing)
著名的路由信息协议RIP(Routing Information Protocol) 也是基于该算法开发。
后来出现了OSPF协议和IS-IS等路由协议,RIP协议的性能和不足表现出来,但由于历史原因,大部分已有网络使用了该 协议,并且新增加的网络也支持RIP,所以在以后一段时 间,RIP协议还将继续使用.
RIP协议工作原理
使用UDP进行路由信息交互,端口为520,工作在应用层。
RIP路由信息的时效性使用了三个定时器。
更新定时器(Updata timer)
过期定时器(expiration timer)
刷新定时器(flush timer). – 便于坏路由消息传播,又称为垃圾回收定时器(garbage collection timer)
环路解决方法
方法一:触发更新(triggered update)
方法二:水平分割(simple split horizon)
链路状态路由算法(LSR :Line State Routing)
- 划分区域(OSPF)
层次结构的区域划分:主干区域(backbone area),主干区域的标识符规定为0.0.0.0,主干区域的作用是用来连通其他非主干区域。
- 链路状态LSA: 邻居关系
- 链路状态数据库LSD
- 链路状态检测,每个路由器得到各自LSA 路由器周期性的向直接相邻的路由器发送查询报文 (HELLO),检测它们之间链路是否UP或DOWN.如果对方有应答( HELLO ),说明UP,同时得到了代价(metric).
- 路由信息广播(泛洪),
- 每个路由器利用链路状态数据库(LSD),采用Dijstra算法独立计算本节点为根到区域内其他路由器的最短路径,构成最短路径树
典型协议:OSPF,IS-IS
OSPF支持VLSM和CIDR, 支持多种路由度量标准,有好健壮 性和可扩展性,特点如下:
OSPF定义了五种类型报文 Hello报文:相邻路由器之间建立各自邻接关系;
OSPF 不用 UDP, 而是直接用 IP 分组传送
2. ARP协议
逆地址解析协议 RARP在无盘工作站时代曾起到很重要作用; 现在DHCP协议(应用层)已经包含了RARP协议功能,本节不再单独讲解。
但是云计算时代的到来又意味着我们还会重新使用RARP协议
ARP 高速缓存(ARP cache),内存中
所有IP 地址到硬件地址的映射
Arp –a
IP协议调用ARP协议,ARP协议构造ARP请求报文
为什么我们不直接使用硬件地址进行通信?
由于全世界存在着各式各样的网络,它们使用不同的硬件地址;要使这些异构网络能够互相通信就必须进行非常复杂的硬件地址转换工作,因此几乎是不可能的事。
连接到因特网的主机都拥有统一的 IP 地址,它们之间的通信就像连接在同一个网络上那样简单方便;
调用 ARP 来寻找某个路由器或主机的硬件地址都是由计算机软件自动进行的,对用户来说是看不见这种调用过程的。
如果目的节点和源节点不在同一个网段,如何处理?
IP调用ARP(IP-网关获取MAC网关)
想获取“下一跳”接口的物理地址。
3. ICMP协议
IP无连接不可靠 ICMP差错报告
校验和范围为:ICMP首部+数据;而IP分组只对首部检验。
目的不可达ICMP报文类型(Type)为 3, 并进一步细分成 13 种子类, 用代码(Code)来标识, 其它信息字段未用, 为全 0。
如何找到一条从当前节点到目的节点的路径信息?
tracert www.nwpu.edu.cn (TTL=1,2,...) 工作原理:源主机向目的发送一连串的IP分组,分组中封 装的是无法交付的UDP用户数据报。
route print 查看主机路由表信息
ICMP控制报文
)源抑制报文:
) 重定向报文:
ICMP查询报文
在许多TCP/IP实现中, 提供的一种用户命令Ping便是利用这种 ICMP回送请求/响应报文来测试目的可达性的。
命令:Ipconfig /all; 查看主机网络配置信息. 命令:ping 127.0.0.1; 测试TCP/IP协议 命令:ping 本机IP; 测试本机网络配置信息. 命令:ping 网关IP;
Ping是应用层直接使用网络层ICMP协议,它没有通过运输层的 TCP 或UDP。
一、网络分层路由
解决方法:分级路由,核心思想如下:将整个Internet分为不同AS;每个AS根据需要被划分成若干区域;区域内路由器只需要知道所在区域内所有路由信息(网络拓扑结构), 但是对其他区域的内部结构并不需要知道。 当不同的区域网络互连,需要一个专用路由器(区域边界路由器), 该路由器需要知道所连接的两个区域路由信息。
,但AS 对 其他 AS 表现出的是一个单一的和一致的路由选择策略。
因特网有两大类路由协议 内部网关协议 IGP (Interior Gateway Protocol) 即 在一个自治系统内部使用的路由协议;目前这类路由协议使用得最多的是 RIP 和 OSPF 协议。 外部网关协议EGP (External Gateway Protocol) 不同自治系统AS之间所采用的一种路由协议,目前使用最多的是 BGP-4。
3种路由计算方式:区域内、区域间和AS间
外部网关协议(EGP)用于AS(AS边界路由器)之间路由计算。
按BGP观点,全球网络是由支持BGP协议的AS边界路由器互连而成的,AS边界路由器之间通信采用基于面向连接的传输层协议(如TCP协议) ,保证通信的可靠性。
BGP-4采用的是类似距离矢量路由算法(RIP),但有区别 – 路径矢量路由算法。
二、 拥塞控制机制
- 关键技术
拥塞控制与流量控制区别 拥塞控制(congestion control)主要用于保证网络通畅地转发数据分组,它涉及网络中所有与之相关的主机和路由器的发送和转发行为,是一种全局性的控制措施。 流量控制(flow control)只涉及点到点(或端到端)的流量控制行为,主要用于保证发送方的发送速率与接收方的缓冲区容量相匹配,以防止在接收端缓冲区不足时发生数据丢失现象。
- 面向虚电路的拥塞控制算法
流量整形(Traffic Shaping):调整数据传输的速率,使数据流按照传输模式规定的速率进行传输,尽量避免因突发性通信量而产生拥塞问题。
流量整形主要采用两种算法:
漏桶(Leaky Bucket)算法
令牌桶(Token Bucket)算法,在ATM交换机和RSVP协议中,就是应用上述的流量整形算法来解决网络拥塞问题。
令牌桶算法中,当令牌比较多时,转发速率可增加,最大为缓冲区队列长度的大小每秒,所 以网络中存在突发数据流
漏桶中存放的是分组,桶满了丢弃分组; 令牌桶中存放的是令牌,桶满了丢弃令牌, 不丢弃分组;但是当分组用尽了令牌时,有可能丢弃后续分组。
- 面向数据报的拥塞控制算法
数据报是一种无连接数据传输方式。
按分组优先级的规则载荷脱落方法被很多网络系统或协议所采用,如 ATM网络、帧中继网络以及IP网络等。
请设计一个网络通信协议,要求提供流量控制,采用选择重发 连续ARQ协议提供差错控制,采用16位CRC冗余校验实现差错检测,请完成以下内容: (1) 请问可用数据帧类型有哪些?如何进行编码? (2) 请写出数据帧的具体格式; (3) 请画出该协议交互的时序关系.