1. 网络层概念
- 在计算机网络中进行通讯的两个计算机之间可 能要经过许多节点和链路,也可能要经过多个不同路 由器互连的通信子网
- 网络层的任务:选择合适的路由,使发送站从传输层传下来的分组能够正确无误的按照地址找到目的站,并交付给目的站的传输层

网络层特点
- 经过许多节点和链路(无法广播问题)
- 经过不同通信子网(不同寻址问题)
- 通讯双方可能经过多条路径(路由选择问题)
2. 传输方式的选择
- 网络层向传输层提供的服务:面向连接or无连接?可靠交付应当由谁来负责?网络还是端系统?
两派意见:
- 电信派:主要采用面向连接的方式。可靠性由底层实现(通信子层),分组交换中采用VC(Virtual Circuit)
- Internet派:终端都是智能设备,可以处理差错问题,没有必要在底层处理差错问题。因此采用无连接的方式,将每个报文封装在单独的地址里,独立路由。可靠性由高层实现
2.1 internet采用的设计思路
- 网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务
- 网络在发送分组时不需要先建立连接。每一个分组(即IP数据报)独立发送,与其前后的分组无关(不进行编号)
- 网络层不提供服务质量的承诺。即所传送的分组可能出错、丢失、重复和失序(不按序到达终点),当然也不保证分组传送的时限
- 传输网络中不提供端到端的可靠传输服务,这使得网络中的路由器可以做的较简单
2.2 Internet 网络层的功能
- 基本功能:实现端到端的网络连接,屏蔽不同子网技术的差异,向上层提供一致的服务。
- 主要功能:
- 屏蔽子网的差异,实现统一的网络编地址
- 路由选择和转发
- 分组的分段与成块、顺序化
好处:最佳路径、隔离广播、提高性能及安全性
- 主要采用无连接方式、分组交换方式(IP方式)


3. 路由器
- 工作在OSI网络层中,实现下三层的转换,还具有中继器、网桥的功能,能够识别网络层协议、网络地址。
- 主要功能:
- 划分子网(不同广播域)
- 进行信息隔离
- 提高网络安全性
- 具有路由选择最佳性
- 容错和访问控制
4. Internet中的IP
- IP协议是TCP/IP体系中两个最主要的协议之一
- IP协议可以使互连起来的许多异构计算机网络能够进行通信
- 网络互连依赖于与硬件地址无关的逻辑地址(IP地址)
- Internet就是成千上万个IP子网通过路由器互连起来的国际性网络
4.1 IP数据报
- 采用传统的硬件帧格式
- 路由器要连接异构网络,而不同类型网络的帧格式不同
- 路由器链接的网络可能使用不兼容的地址格式;而帧中的物理地址只作用在同一个网络中(一个广播域中)
- 必须采用统一的报文格式,即IP报文。并采用全球统一编址、逻辑化的地址,即IP地址

4.2 IP 地址编址
- 1981年9月IP地址第一次标准化时,IP地址采用32位比特进行全球唯一标识,采用点分十进制标志方法:128.11.3.31

- 路由器利用IP地址来区分不同的网络,实现网络的互连和隔离,保持各个网络的独立性
- 网络号 和 主机号 合起来构成一个完整的IP地址
- 同一个网络中的主机IP地址,其网络号必须相同,广播号相同
- 网络号由网络号前缀组成,主机部分全为零
- IP地址空间分为五类:A,B,C,D,E类
- 各类具有不同的网络号前缀位数和主机号位数
- 各类可分别标识不同大小的网络,实际上可供用户分配的只有A,B,C三类

4.2.1 A类IP地址编址
- A类具有8bit网络号前缀,其最高位置为0,其余7位为网络,随后的24bit为主机号
- 最多可定义 126 (2^7 - 2) 个网络号(全零代表this,01111111保留作为本地软件测试本机进程之间的通信)
- 最多可定义16777214(2^24 - 2)台主机
- IP地址:N.H.H.H
4.2.2 B类IP地址编址
- B类具有16bit网络号前缀,其最高位置为10,其余14位为网络,随后的16bit为主机号
- 最多可定义 16384 (2^14 ) 个网络号
- 最多可定义65534(2^16 - 2)台主机
- IP地址:N.N.H.H
4.2.3 C类IP地址编址
- C类具有24bit网络号前缀,其最高位置为110,其余21位为网络,随后的8bit为主机号
- 最多可定义 2097152(2^21 ) 个网络号
- 最多可定义254(2^8 - 2)台主机
- IP地址:N.N.N.H
4.2.4. D类IP地址编址
- D类的前4位置为1110,用于多广播
- 224.0.0.0 ~ 239.255.255.255
- 举例
- 224.0.0.1:LAN的所有系统
- 224.0.0.2:LAN的所有路由器
- 224.0.0.5:LAN的所有OSPF路由器
4.2.5 E类IP地址编址
- E类地址的前5位置为11110
- 留作实验或未来的特殊使用
- 240.0.0.0 ~ 255.255.255.255
4.2.6 保留地址(不能分配)
- 在A类至C类地址中,由若干个地址有专门的用途或特殊意义,不能分配给主机
- 网络地址:即主机号为0,代表一个网络
- 例如:129.0.0.0
- 广播地址:即主机号全为1,代表一个广播域
- 例如:129.1.255.255,12.255.255.255
- 自检地址:loopback adress:127.H.H.H(127.0.0.1)
- 全零0.0.0.0表示缺省地址,全1,代表本网广播
- 网络地址:即主机号为0,代表一个网络

4.2.7 专有地址与全球地址
- 问题:在内部使用的本地地址有可能和互联网中某个IP地址重合,这样会出现地址的二义性
- 解决:RFC 1918指明了一些专用地址 (private address)。专用(私有)地址只能用作本地地址而 不能用作全球地址。在互联网中的所有路由器, 对目的地址是专用地址的数据报一律不进行转发。
- 专有地址(私有地址)
- A类(1):10.0.0.0~10.255.255.25
- B类(16):172.16.0.0~172.31.255.25
- C类(256):192.168.0.0~192.168.255.255

4.3 IP地址的特点
- 分等级地址结构,IP地址分为网络部分和主机部分
- 方便了IP地址的管理
- 路由器仅根据目的主机所连接的网络号来转发分组(而不考虑目的主机号),这样可以使路由表中的项目数大幅度减少,从而减小了路由表所占的存储空间
- IP地址与子网掩码确定了网络号及对应的广播域,一个路由器接口对应一个网络号
- 当一个主机同时连接到两个网络上时,该主机必须同时要具有两个相应的IP地址,这种主机称为多归属主机
- 由于一个路由器至少应当连接到两个网络,因此一个路由器至少要有两个不同的IP地址
- 根据Internet的观点,用switch(bridge)、hub(repeater)连接起来的若干个局域网仍为一个网络。因此,这些局域网都具有相同的网络号,即一个广播域
- 在IP地址中,所有分配到网络号的网络,不管是局域网还是广域网都是平等的
- IP地址有时也可用来指明一个网络的地址, host-id 全零(即网络号)
4.4 IP通讯的环境
IP通讯大体分为四种环境
- 通过同一根电缆直接连通
- 由中继器隔离
- 通过switch(bridge)隔离
- 通过路由器隔离
前三种都属于在同一个网络(同一个广播域),网络号必须相同。而对于路由器来说,路由器有几个口,就有几个网络号,一个网络号就是一个广播域(能够直接到达 的)。 路由器只转发IP报文,而隔离广播消息
4.5 子网掩码
- 子网掩码中,1的长度就是网络号的长度

4.6 子网划分
- 早期IP地址设计不够合理,IP地址空间的利用率较低,而且两级制IP地址不够灵活
- 子网编址是对组织内部的系统管理者对网址的进一步管理和划分
- 只有本地路由器知道有多个物理网络,而且知道如何选择路由;对其他AS路由器来说,好像只存在一个物理网络
- 子网由三级组成

划分子网的基本思路
- 从主机号借用若干个位作为子网号,而主机号host-id也就减少了若干个位
- 网络号 = 网络号 + 子网号


子网划分的作用
- 提高安全性,将网络由一个广播域变成多个广播域
- 便于管理,节省IP地址
- 为了减少网络地址数目可使多个物理网络共享同一IP地址前缀
- 对外可以聚合成一个网络号
4.7 可变长掩码VLSM
- VLSM:variable length subnet mask
- 当IP网络子网划分时,具有多个不同的子网掩码时,由于网络前缀具有不同的长度而被称为可变长掩码子网
- VLSM允许内部地址空间进行递归划分,这样可以通过最高程度的聚合,以降低路由信息量

4.8 无类域间路由选择 CIDR
- 有类IP路由的不足
- A,B,C类地址空间面临近期耗尽
- 全球网络路由表的快速增大(网络+子网)
- 32-bit IPv4 地址空间的最后耗竭
- 地址分配不够灵活,效率不高
- 无类域间路由选择 CIDR
- 消除A,B,C类地址分配的传统做法,使得IPv4地址空间的分配更加高效
- 支持路由聚合,可以凭简单的路由表项代表 成千上万个传统有类路由的地址空间
4.8.1 IPv4地址空间的高效分配
- 用概括性的网络前缀思想取代传统的有类地址思想
- 网络前缀决定网络号和主机号之间的分界点
- 比用有类地址进行的8-bit, 16-bit 或24-bit网络 号划分更能适应任意规模的网络
- 具有相同前缀长度的所有前缀代表相同数量的地址空间
- a/20 代表具有 20 bit的前缀长度,12 bit 主机号,可支持分配212 (4096) 个主机地址。又 称“斜线记法或表示法” (slash notation)
4.8.2 路由选择算法
- 每条路由表项均含有网络地址(网络号) 和32bit的掩码(十进制表示/斜线法表示)。
- 当一个IP分组到来时, 首先找出其目的地址。
- 路由表进行扫寻, 将目的地址与每个表项的 掩码进行逻辑与运算,并与每个表项的网 络地址进行比较,得出最佳匹配。

4.8.3 Supernet 超网
- 超网的作用是聚合路由
- 具体做法:将子网掩码的一些位1改为0,做与子网掩码相反的过程
4.8.4 路由聚合
- 聚合地址块数必须是2^n(N=1,2…)
- 地址块必须是连续的地址块
- 开始地址必须能被地址数2^N整除(包括0)
- 地址分配也要符合聚合规则

最长前缀匹配
- 查找路由表时可能有多个匹配结果, 如何确定哪条最佳路径?
- 应当从匹配结果中选择具有最长网络 前缀的路由(longest-prefix matching)
- 网络前缀越长,其地址块就越小,路 由就越具体(more specific)

5. IP报文首部
- IP首部最少20字节,最大60字节

- 标志flag:占三位,目前前两位有意义
- 最低位:MF=1表示后面还有分片,MF=0表示最后一个分片
- 中间一位:DF:DF=0允许分片
- 片偏移:较长的分组在分片后某片在原分组中的相对位置,以8个字节为偏移单位
6. 地址解析协议ARP和逆地址解析协议RARP

- 数据帧传输(封装)IP协议,最终必须使用硬件地址
- 以太网每个主机都有一个ARP高速缓存(ARP cache)arp -a

- 当主机A欲向本局域网上的某个主机B发送IP数据报时,先在其ARP高速缓存中查看有无B的IP地址,若有,则查出对应的硬件地址,写入MAC帧
- 若没有,ARP进程在本局域网上广播发送一个ARP请求报文,收到ARP响应报文后,将得到的IP地址到硬件地址的映射写入ARP高速缓存

7. ICMP协议
- ICMP:Internet Control Message Protocol,网际控制报文协议
- IP协议是TCP/IP协议使用的传输机制,它是一种不可靠的、无连接的数据报协议,IP协议不提供检验或者跟踪机制
- ICMP希望对IP包无法传输时提供报告,这些差错报 告帮助发送方了解为什么无法传递,网络发生了什 么问题,确定应用程序后续操作
- ICMP像一个更高层的协议使用IP(ICMP消息被封装 在IP数据报中)。实际上,ICMP是IP的一个组成部 分,同属于网络层,而且用IP进行传输和路由
7.1 ICMP特点
- ICMP不能用来报告ICMP消息的错误,避免了无限循环。当ICMP查询消息时通过发送ICMP来响应
- 对于被分段的数据报,ICMP消息只发送关于第一个分段中的错误
- 响应具有一个广播或组播目的地址的数据报时, 永远不会发送ICMP消息
- 响应一个没有源主机IP地址的数据报时永远不会 发送ICMP消息
总的来说,源地址不能为0、一个回送地址、一个 广播地址或者一个组播地址。这些是为了防止过 去允许ICMP差错报文对广播分组相应所带来的广 播风暴。
7.2 ICMP 报文格式

- 类型和Message对应关系

7.3 Ping
- Ping(Packet Internet Grouper):进行测试
- 终点可达性
- 计算往返时间
- 计算到终点的跳数
- 可能提供记录路线选项
- 样例输出
- Reply from 164.107.144.3: 48 bytes in 47 msec. TTL: 253
- Ping-of-death
- IP报文最大为65535bytes
- 有些系统能发送大于65525bytes数据的ICMP报文,该报文在传输过程中被分为多个片段,在目的端重组后将超过IP报的最大尺寸
- 这会使得接收方覆盖掉内部的数据结构,从而导致整个系统崩溃
7.4 Traceroute

- 使用 tracert 命令
8. 路由协议
- 路由作用:完全依靠路标,找到一条最佳路径(路由最短、速度最快,安全可靠,开销最小)

- 路由协议的核心就是路由算法,即通过何种算法获取路由表中的各路由表项
理想的路由算法特点
根据是否能随网络通信量或拓扑自适应地进行调整变化来划分
- 静态路由:非自适应路由选择
- 简单、开销小,但不能及时适应网络状态的变化。如缺省网关(占一个IP地址)
- 动态路由:
- 能较为的适应网络状态的变化,但实现起来较为复杂,开销较大
- 静态路由:非自适应路由选择

- 静态路由

- 动态路由
8.2 分层次的路由选择协议
- 互联网采用分层次的路由选择协议

- 域间路由选择:自治系统之间的路由选择
- 域内路由选择:自治系统内部的路由选择
互联网两大类路由选择协议
- 内部网关协议IGP(Internet Gateway Protocol)
- 在一个自治系统AS内部使用的路由选择协议
- 如:RIP协议和OSPF协议
- 外部网关协议EGP(External Gateway Protocol)
- 若源站和目的站处在不同AS时,当数据报传到一个AS的边界时,就需要使用一种协议将路由选择信息传递到另一个AS中。这样的协议就是外部网关协议 EGP
- 如:BGP-4协议

9. RIP协议
9.1. 基本概念
- RIP:Routing Information Protocol
- RIP是一种分布式的、基于距离向量的路由选择协议
- RIP协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录
RIP封装在UDP报文中,端口号为520
RIPv2

9.2. 报文结构
9.3. 路由刷新过程
9.4. RIP路由表的更新

9.5. 网络发现
9.6. RIP的问题
9.7. 解决办法
10. OSPF协议
10.1 基本概念
- OSPF:Open Shortest Path First
- OSPF是一种链接状态(L-S)的路由协议,使用基于带宽的度量值
- OSPF采用SPF算法计算路由,从算法上保证了无路由环路
- OSPF报文封装于IP,协议号89,组播地址224.0.0.5和224.0.0.6
10.2. 算法步骤
- 发现邻居节点,并学习它们的网络地址
- 测量到每一个邻居节点的延迟或开销
- 将所有学习到的内容封装成一个分组
- 将这个分组用泛洪法发送给所有其他路由器
- 生成一个网络拓扑图
- 利用Dijkstra算法计算最小生成树,从而得到该节点(树根)到其他路由器的最短路径
- 只能利用图中的边构造最小生成树
- 只能使用、且仅能使用图中的n-1条边来连接图中的n个顶点;
- 不能使用图中产生回路的边。
10.3. L-S路由建立过程
10.4. 泛洪法
10.5. 链路状态数据库

OSPF的三张表
- 邻居列表
- 列出每台路由器全部已经建立邻接关系的邻居路由器
- 链路状态数据库LSDB
- 列出网络中其他路由器的信息,由此显示全网的网络拓扑
- 路由表
- 列出通过SPT算法计算出的到达每个相连网络的最佳路径
10.6 报文结构
10.7 OSPF分层
- OSPF采用分层管理的办法,将一个AS分成若干个区域,一个区域内的路由器之间交换所有的信息而对于同一个AS内的其他区域则隐藏其详细拓扑结构
- 每个区域独立生成SPT,每个路由器独立计算最短路径

11. 算法比较
12. BGP
12.1 EGP和IGP的区别
12.2 AS number
12.3 交换路径向量和路径选择



13. IPv6
13.1 基本概念
- IP是互联网的核心协议
- 2011年2月,IPv4的32位地址已经耗尽
- 解决办法:采用更大空间的IP地址,即下一代互联网协议IPv6
- IPv6:128位
- 使用冒号十六进制记法,例如:68E6:8C64:FFFF:FFFF:0:1180:960A:FFFF
- 允许将数字前面的0省略
13.2 首部
14. 虚拟专用网VPN
- VPN(Virtual Private Network):指依靠ISP,在公共网络中建立专用数据网络的技术
- 虚拟:是一条逻辑的安全隧道
- 在V PN中,任意两个节点之间的连接并没有端到端物理链路,而是利用公众网的资源动态组成的

- VPN基本原理
15. 网络地址转换NAT


16. 防火墙 Firewall
- 防火墙(Firewall)指隔离在内部网络和外部网络之间的一道防御系统,它能挡住来自外部网络的攻击和入侵,保障内部网络的安全。


17. IP多播











