1.网络层提供的两种服务
- 互联网采用的设计思路:网络层向上只提供无连接的,简单灵活的,尽最大可能交付的数据报服务
- 不提供服务质量承诺
- TCP/IP体系的网络层提供的是数据报服务
2.网际协议IP
- 与IP配套使用的协议
- 地址解析协议ARP
- 网际控制报文协议ICMP
- 网际组管理协议IGMP
2.1.虚拟互连网络(逻辑互连)
- 没有一种单一的网络能满足所有用户的需求
- 互连网络的中间设备
- 物理层:转发器
- 数据链路层:网桥
- 网络层:路由器
- 网络层以上:网关
- 互联网可以由多种异构网络互相构成
2.2.分类的IP地址
2.2.1.IP地址及其表示方法
- IP地址是唯一的32位的网络标识符,在整个互联网范围内是一致的
- IP地址编址方法经过了三个阶段
- 分类IP地址
- 子网的划分
- 构成超网(网络号)
- IP地址= 网络号+主机号 共32位
- 地址类别
- A类:开头0 网络号共8位
- B类:开头10 网络号共16位
- C类:开头110 网络号共24位
- D类:开头1110 多播地址
2.2.2.常用的三类别IP地址(ABC)
- 分割地址为:128和192
- IP地址特点
- 网络号+主机号 共32位
- 路由器仅根据目的主机所连接的网络号来转发分组(不考虑目的主机号),减少了路由表所占的存储空间以及查询路由表的时间
- 实际上IP地址时表示一台主机和一条链路的接口
- 用转发器或者网桥联络起来的若干个局域网仍为一个网络
- 对等连接
- 全0全1不可做为主机号
2.3.IP地址与硬件地址
- MAC是数据链路和物理层使用的地址
- IP地址是网络层和以上使用的地址,是一种逻辑地址
- 两者一些区别
- 在IP层抽象的互联网上只能看到IP数据报
- 虽然IP数据报首部有源站IP地址,但路由器只能根据目的站的IP地址的网络号进行路由选择
- 在局域网的链路层,只能看见MAC帧
- IP层抽象的互联网却屏蔽了下层这些很复杂的细节。只要我们在网络层上讨论问题,就能偶使用IP地址研究主机或路由器之间的通信
2.4.ARP地址解析协议
- 由于IP协议使用了ARP协议,因此通常把ARP协议规划到网络层
- 网络层使用IP地址,但在实际网络的链路上传输数据帧时,最后还是必须使用MAC地址
- ARP通过在主机ARP高速缓存中存放一个从IP地址到硬件地址的映射表,并且这个映射表经常动态更新 实现了IP转MAC
- ARP是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题
2.5.IP数据报的格式
- 首部和数据两部分组成
- 首部的前一部分是固定长度20字节
- 路由表中最主要的信息:目的网络地址,下一跳地址
2.5.1.IP数据报首部的固定部分
- 版本:4位
- 首部长度:4位。由于 首部(固定部分+可选部分),固定部分20字节的存在,所以首部长度最小为5,0101。
- 区分服务:8位
- 总长度:16位,首部和数据之和的长度
- 标识:16位,因为ip是无连接服务
- 标志:3位,但目前只有2位有意义
- MF:1表示后面“还有分片”,0表示这是最后一个
- DF:表示不能分片,为0时才允许分片
- 片偏移:13位。指出某片在原分组中的相对位置。片偏移以8个字节为偏移单位,除了最后一个数据报片外,每个分片的长度一定是8字节的整数倍
- 生存时间:8位。TTL值随着时间减少
- 首部校验和:16位。只检验首部,不包括数据部分
- 源地址:32位
- 目的地址:32位
3.划分子网和构成超网
3.1.划分子网
- 从现在来看,IP的设计不够合理
- ip地址空间利用率有时很低
- 路由表填充会变得太大降低性能
- 二级IP不够灵活
- 解决方案:划分子网
- 划分子网纯属一个单位内部的事情,对外表现还是一个网络
- 划分子网是在划分主机号部分的高位作为子网号
- 此时:IP地址:网络号,子网号,主机号
3.2.子网掩码
- IP数据报的首部是无法看出所连接的网络是否进行了子网划分,为了处理这种情况,提出了 子网掩码
- 将子网掩码和目的IP地址做“与”运算,就可得到子网络地址
- A类地址默认的子网掩码:255.0.0.0
- B类地址默认的子网掩码:255.255.0.0
- C类地址默认的子网掩码:255.255.255.0
3.3.使用子网分组转发
- 划分子网增加了灵活性,但减少了可连接的主机数
- 使用子网划分后,路由表要包含:目的网络地址、子网掩码、下一跳地址
3.4.无分类编制CIDR(构成超网)
3.4.1.网络前缀
- CIDR无分类网络域间路由
- CIDR的特点:
- 消除了传统ABC类地址以及划分子网的概念
- IP地址:网络前缀,主机号
- 网络前缀相同的IP地址组成一个CIDR地址块
- 路由聚合:一个CIDR地址块中有很多地址,所以在路由表中就利用CIDR地址块来查找目的网络,这类地址的聚合称为路由聚合
- 网络前缀越短,其地址块所包含的地址数就越多
3.4.2.最长前缀匹配
- 在查询路由表时(做与运算),很可能得到不止一个匹配结果,这是应选择具有最长网络前缀的路由。(选择更精确的)
4.网际控制报文协议ICMP
- ICMP允许主机或者路由器报告差错情况和有关异常情况的报告
- ICMP封装在IP数据报中,作为数据部分,是IP层的协议,所以不是高层协议
4.1.ICMP报文的种类
- 差错报告报文
- 终点不可达
- 时间超过
- 参数问题
- 改变路由(重定向)
- 询问报告报文
- 回送请求和回答:目的站是否可达等有关情况
- 时间戳请求和回答:时间同步,时间测量
- Ping使用了回送请求和回送回答报文,没有通过运输层的TCP和UDP
5.互联网路由选择协议
- 从某角度来讲,只分为:静态路由和动态路由
- 静态路由:非自适应路由选择,人工配置每条路由,简单,开销小
- 动态路由:较好的适应网络状态的变化,复杂,大网络
5.1.自治系统
- 自治系统AS:在单一技术管理下的一组路由器,这些路由器使用一种自治系统内部的路由选择协议和共同的度量。一个AS对其他AS表现为一个单一的和一致的路由选择策略
- 互联网把路由选择协议分为两大类:
- IGP内部网关协议(域内路由选择):一个自治系统内部使用的路由选择协议
- RIP、OSPF······
- EGP外部网关协议(域间路由选择):数据报传到一个自治系统的边界时,需要一种协议将路由选择信息传递到另一个自治系统中。
- BGP
- IGP内部网关协议(域内路由选择):一个自治系统内部使用的路由选择协议
5.2.内部网关协议RIP
- 路由信息协议RIP
- 基于距离向量的路由选择协议,简单(经过的路由器数+1)
- 只能包含一条路径15个路由器
- RIP认为最优路线就是路径最短的路线
- 到目的网络N,距离d,吓一跳路由器是X
- 特点:
- 仅和相邻路由器交换信息
- 路由器交换的信息是当前本路由器所知道的全部信息,即自己的路由表
- 按固定的时间间隔交换路由信息
- (先把相邻路由传过来的路由表距离加一,下一跳改成相邻路由,再做以下判断)
- 到相同的目的网络,下一跳地址是相同的,则取最新消息
- 到相同的目的网络。但下一跳地址不相同,则取最短的那条
- 好消息传得快,坏消息传得慢
- 实现简单,开销较少
- RIP使用UDP进行传送
5.3.1.RIP协议的报文格式
- 首部+路由部分
- 首部
- 4个字节,命令字段指出报文的意义,后面补零对齐
- 路由部分
- 每个路由信息要20个字节,最多25个路由,所以RIP长度最大504字节
5.3.内部网关协议OSPF
5.3.1.开放最短路径协议OSPF的基本特点
- 是公开发表的
- 分布式的链路状态协议(RIP是距离向量)
- 向本自治系统中所有路由器发送信息。
- 发送的消息就是相邻的所有路由器的链路状态,即 部分信息
- 只有当链路状态发生变化时,路由器才向所有路由器发送此信息(RIP)
- 由于个路由器交换链路状态,最终所有的路由器会建立一个链路状态数据库,即 全网的拓扑结构图(RIP只知道如何跳,却不知道全网的拓扑图)
- 最大的优点:更新过程收敛的快
- 不用UDP传送,而是IP数据报传送
- OSPF允许管理员给每条路由指派不同的代价。(链路的重要性等级)
- 负载平衡:相同代价的路径,可以多路分配,
- 存在鉴别功能,保证了仅在可信赖的路由器之间交换链路状态信息
- 也支持CIDR
5.3.2.OSPF的五种分组类型
- 问候:发现和维持邻站的可达性
- 数据库描述:给邻站自己的链路状态摘要信息
- 链路状态请求:向对方请求某些链路状态详细信息
- 链路状态更新:最核心的部分。洪泛式对全网更新状态
- 链路状态确认:更新的确认
5.4.外部网关BGP
- 边界网关协议BGP
- 并非要寻找一条最佳路由,而是要一条能够达到且比较好的选择
- 采用路径向量路由选择协议,与RIP,OSPF都不相同
- 大致流程
- 每个AS(自治系统)选择至少一个路由器作为BGP发言人,发言人与其他AS的发言人交换信息
- 建立TCP连接,形成对等站
- 建立BGP会话
5.5.路由器
- 具有多个输入端口和输出端口、负责分组转发
5.5.1.路由器构成
- 路由选择
- 控制部分。核心构件是路由选择处理机
- 分组转发
- 交换结构:又称交换组织,根据转发表分组处理
- 交换方式:存储器,总线,互联网络
- 输入端口:
- 输出端口:
- 交换结构:又称交换组织,根据转发表分组处理
6.IPv6
6.1.IPv6的基本首部
- 支持无连接的传送,但将协议数据单元PDU成为分组,而不是IPv4的数据报
- 特点
- 更大的地址空间:128位
- 扩展的地址层次结构
- 灵活的首部格式
- 改进的选项:允许数据报包含有选项的控制信息,但IPv6的首部长度是固定的
- 允许协议继续扩充
- 自动配置:不需要DHCP
- 支持资源的预分配
- 首部8字节对齐:即首部长度必须是8字节的整数倍
- 组成:基本首部、有效载荷(净负荷)
- 有效载荷允许有多个扩展首部,再后面是数据比分,所有扩展首部不属于IPv6的首部
- 首部长度固定,40字节,所以取消了首部长度字段
- 字段:
- 版本:4位
- 通信量类:8位,区分不同的IPv6数据报的类型
- 流标号:20位 流分配 对于音频视频很有用,传统的电子邮件和非实时数据则可以不用,置0
- 有效载荷长度:16位
- 下一个首部:8位
- 跳数限制:8位 防止无限存在
- 源地址:128位
- 目的地址:128位
- IPv6将选项的功能放在拓展首部中,处理交给源点和终点,途中路由不处理,大大提高了处理效率。IPv4则相反
6.2.IPv6的地址
- IPv6目的地址类型:
- 单播:点对点
- 多播:一对多
- 任播:IPv6新增,任播的终点是一组计算机,数据报只交付其中一个
- IPv6采用冒号十六进制记法
- 允许 0压缩
7.虚拟专用网VPN和网络地址转换NAT
7.1.VPN
- 在互联网中的所有路由器,对目的地址是专用地址的数据报一律不进行转发
- VPN在效果上与专用网(本地地址的概念)一致
7.2.NAT
- 使用本地地址的主机和外界通信时,都要在NAT路由器上将本地地址转换成全球IP地址
- 通过NAT路由器的通信必须由专用网内的主机发起
- 使用端口号的NAT也叫做NAPT网络地址和端口号转换