计算机网络 网络层
1、网络层
- 功能:为分组交换网上的不同主机提供通信。在发送数据时,将运输层产生的报文段或分组数据封装成分组或包进行传送
- 数据单位:分组(IP数据报、数据报、包)
2、网络层提供的两种服务
2.1 面向连接的通信方式(虚电路服务)
- 通信之前先建立虚电路,以保证双方通信所需的一切网络资源(虚拟连接)
- 再使用可靠传输网络协议,使所发送分组无差错、按序到达终点,不丢失、不重复
- 虚电路表示这是一条逻辑上的连接,分组沿着这条逻辑连接按照存储转发方式传送,而不是真正建立了一条物理连接
2.2 无连接的数据报服务
- 网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务
分组转发时不需要先建立连接。每一个分组独立发送,与其前后的分组无关
网络层不提供服务质量的承诺(可能会出现出错、丢失、重复、失序(不按序到达终点),也不能保证分组传送的时限)
- 尽最大努力交付
网络不提供端到端的可靠传输服务
有网络的主机中的运输层负责可靠交付(差错处理、流量控制)
2.3 虚电路服务与数据报服务的对比
3、网络层的两个层面
3.1 数据层面
- 路由器根据本路由器生成的转发表把收到的分组从查找到的对应接口转发出去
- 独立工作
- 采用硬件进行转发
3.2 控制层面
- 根据路由选择协议所使用的路由算法计算路由,创建出本路由器的路由表
- 许多路由器协同动作
- 采用软件计算,慢
路由之间传送的信息:1、数据;2、路由信息(为数据传送服务)
4、网络互联
将网络相互连接起来需要使用一些中间设备
4.1 中间设备(又称为中间系统或中继系统)
- 物理层中继系统:转发器
- 数据链路层中继系统:网桥或桥接器
- 网络层中继系统:路由器
- 网桥和路由器的混合物:桥路器
- 网络层以上中继系统:网关
4.2 概念
- 当中继系统是转发器或网桥时,一般并不称之为网络互连
| 因为这仅仅是把网络扩大 ,而这仍然是一个网络- 网络互连都是指用路由器进行网络互连和路由选择
4.3 网际协议IP
是TCP/IP体系中两个最主要的协议之一
与之配套的三个协议
- 地址解析协议 ARP
- 网际控制报文协议 ICMP
- 网际组管理协议 IGMP
互联网就是一个虚拟互连网
5、IP地址
5.1 IP地址及其表示方法
- 全世界范围内唯一的32位标识符
- 由互联网名字和数字分配机构ICANN进行分配
- IP地址 ::= {<网络号 net-id>,<主机号 host-id>}
5.2 分类IP地址
- A类地址
| net-id:8位,host-id:24位- B类地址
| net-id:16位,host-id:16位- C类地址
| net-id:24位,host-id:8位- D类地址
| net-id:1110,多播地址- E类地址
| net-id:1111,保留为今后使用
IP地址的指派范围
一般不指派的特殊IP地址
三个专用IP地址快
10.0.0.0到10.255.255.255
172.16.0.0到172.31.255.255
192.168.0.0到192.168.255.255
5.3 无分类编址 CIDR
无分类域间路由选择
消除了传统的分类地址和划分子网的概念,但仍然无法解决IP地址枯竭的问题
网络前缀
IP地址 ::= {<网络前缀 net-prefix>,<主机号 host-id>}
CIDR记法:斜线记法 a.b.c.d/n地址掩码(子网掩码)
1的个数就是网络前缀的长度
(IP 地址)AND(地址掩码)=网络地址特殊的CIDR块
路由聚合
只取网络前缀中连续相同的位数
有利于减少路由器之间的路由选择信息的交换,从而提高了整个互联网的性能
5.4 IP地址的特点
- 每个IP地址都由网络前缀和主机号两部分组成
- IP地址是标志一台主机(或路由器)和一条链路的接口
- 转发器或交换机连接起来的若干个局域网仍为一个网络
- 在IP地址中,所有分配到网络前缀的网络都是平等的
6、IP地址和MAC地址
6.1 区别
(1)IP地址放在IP数据报的首部,而MAC地址放在MAC帧的首部
(2)在网络层和网络层以上使用的是IP 地址,而数据链路层及以下使用的是MAC地址
(3)从源主机到目的主机的通信中,IP数据报首部中的源IP地址和目的IP地址始终不变,而数据链路层的帧首部中的源地址和目的地址在随着网络的不同而不断变化
6.2 使用两种地址的原因
(1)MAC地址是单个计算机网络内使用的,并且已经客观存在的
(2)互连在一起的异构网络的MAC地址体系各不相同,直接使用MAC地址进行通信需要进行非常复杂的地址转换工作,几乎是不可能的事。使用统一的、抽象的IP地址,可屏蔽硬件地址的差异,使寻址简单方便
7、地址解析解析ARP
从网络层使用的IP地址,解析出数据链路层使用的硬件地址
7.1 ARP高速缓存
- 存放所在局域网各主机和路由器的IP地址到硬件地址的映射表
- < IP address;MAC address;TTL>
TTL:地址映射有效时间
7.2 过程
- 先在ARP高速缓存中查看有无目的主机的IP地址
- 若没有,ARP进程在本地局域网广播发送ARP请求分组
- 收到ARP响应分组之后,写入ARP高速缓存
7.3 要点
- ARP请求分组
- 本地广播ARP请求
| 路由器不转发ARP请求- ARP相应分组
- ARP分组封装在物理网络的帧中传输
8、IP数据报
8.1 格式
- IP数据报:首部(20字节)+数据
版本:4位,IP协议的版本(IPv4)
首部长度:4位,IP的首部长度的最大数值是60个字节
区分服务:8位
总长度:16位,首部和数据之和的长度
| 数据报的最大长度为65535,但必须不能超过最大传送单元MTU标识:16位。计数器,产生IP数据报标识
标志:3位,目前只有前两位有意义
标志字段的最低位是MF
| MF=1时表示后面“还有分片”,MF=0时表示最后一个分片
标志字段的中间的一位使DF
| DF=0时才允许分片片偏移:13位,较长的分组在分片后某片在原分组中的相对位置
| 以8个字节位偏移单位(即长度除以8)生存时间:8位,记为TTL
| 数据报在网络中可通过的路由器的最大值协议:8位
首部校验和:16位,校验首部(二进制反码求和)
源地址:4字节
目的地址:4字节、
转发一个IP数据报时,可能改变:总长度、标志、片偏移、生存时间、首部校验和、源IP地址、目的IP地址
9、IP转发分组(路由转发)
9.1 基于终点的转发
基于分组首部中的目的地址传送和转发
分组在互联网中式逐跳转发的
9.2 最长前缀匹配(最长匹配、最佳匹配)
在查找路由表时可能会得到不止一个匹配结果
应当从匹配结果中选择具有最长网络前缀的路由
9.3 转发表中2种特殊的路由
主机路由
特定主机路由
a.b.c.d/32
放在转发表最前面
可方便地控制网络和测试网络,或需要考虑某种安全问题时采用
默认路由
不管分组的最终目的网络在哪,都由指定的路由器R来处理
0.0.0.0/0
放在转发表最下面
可减少路由表所占用的空间和搜索路由表所用的时间
9.4 转发算法
- 流程图
- 使用二叉线索查找转发表
10、网际控制报文协议 ICMP
10.1 概述
- 是互联网的标准协议
- 允许主机或路由器报告差错情况和提供有关异常情况的报告
- 不是高层协议,而是IP层协议(网络层)
- 报文格式
10.2 报文类型
ICMP 差错报告报文
终点不可达(类型位“3”)
| 代码0:网络不可达
| 代码1:主机不可达
| 代码2:协议不可达
| 代码3:端口不可达
| 代码4:需要进行分片但设置不分片比特
| ……
时间超出(类型位“11”)
| 代码0:传输期间生存时间位0
| 代码1:在数据包组装期间生存时间为0
参数问题(类型位“12”)
| 代码0:坏的IP首部(包括各种差错)
| 代码1:缺少必需的选项
ICMP 控制报文
源点抑制报文(不再使用)(类型为“4”)
改变路由(重定向)(类型为“5”)
ICMP 询问报文
回送请求和回答报文(PING命令)
时间戳请求和回答报文
10.3 ICMP差错报告报文的数据字段内容
tracert命令跟踪一个分组从源点到终点的路径
11、IPv6
11.1 概述
仍支持无连接的传送,但将协议数据单元PDU称为分组
更大的地址空间(128位)
11.2 数据报组成
基本首部(40字节)
版本:4位
通信量类:8位,区分不同的IPv6数据报的类别和优先级
流标号:20位,同一个流的数据报都具有同样的流标号
有效载荷长度:16位
下一个首部:8位
跳数限制:8位
源地址:128位
目的地址:128位
单播、多播、任播(目的站是一组计算机,但交付时只交付其中一个)
有效载荷(64KB)
IPv6地址分类
12、冒号十六进制记法
- 零压缩(在任一地址中,只能使用一次零压缩)
- 点分十进制记法的后缀
- CIDR的斜线表示法
13、从IPv4向IPv6过度
13.1 双协议栈
一部分主机装有两个协议栈(IPv4、IPv6)
13.2 隧道技术
IPv6数据报要进入IPv4网络时,把IPv6数据报封装成为IPv4数据报
14、路由选择协议
从路由算法的自适应考虑
静态路由选择策略(非自适应路由选择)
动态路由选择策略(自适应路由选择)
协议之间的比较
内部网关协议IGP
| 自治系统内部使用的路由选择协议(域间路由选择)
RIP
分布式的、基于距离向量的路由选择协议
记录到达其他网络的距离(最大为16)
三要点
和谁:仅和相邻路由器交换信息
什么信息:当前路由器所知道的全部信息,即自己的路由表
多久:固定时间间隔
特点:好消息传播的快,坏消息传播的慢
OSPF
开放最短路径优先OSPF
使用了Dijkstra提出的最短路径算法SPF
采用分布式链路状态协议
具有全网的拓扑结构图
三要点
和谁:本自治系统中所有路由器发送信息(洪泛法)
什么信息:与本路由器相邻的所有路由器的链路状态
多久:只有当链路状态发生改变时
外部网关协议BGP
| 自治系统之间进行路由选择时使用(域内路由选择)
选择出一条能到达目的网络且比较好的路由
采用路径向量路由选择协议
两种连接
eBGP连接
半永久TCP连接(端口号为179)
在不同AS之间交换路由信息
iBGP连接
两个路由器之间必须有一个逻辑通道(也使用TCP连接 )
在AS内部的路由器之间交换BGP信息
三种不同的自治系统
关系图
15、网络地址转换NAT
- 装有NAT软件的路由器叫做NAT路由器,它至少有一个有效的外部全球地址
- 使用本地地址的主机在和外界通信时,都要在NAT路由器上将其本地地址转换成全球IP地址,才能和互联网互联
- 内部主机A用本地地址IPA和互联网上主机B通信所发送的数据报必须经过NAT路由器。
- NAT路由器将数据报的源地址IPA转换成全球地址IPG,并把转换结果记录到NAT地址转换表中,目的地址IPB保持不变,然后发送到互联网。
- NAT路由器收到主机B发回的数据报时,知道数据报中的源地址是IPB而目的地址是IPG
- 根据NAT转换表,NAT路由器将目的地址IPG转换为IPA,转发给最终的内部主机A
- 当NAT路由器具有n个全球IP地址时,专用网内最多可以同时有n台主机接入到互联网。这样就可以使专用网内较多数量的主机,轮流使用NAT路由器有限数量的全球IP地址
16、路由器结构
16.1 路由选择部分(控制层面)
路由选择处理机
16.2 分组转发部分(数据层面)
- 交换结构
| 根据转发表对分组进行处理
存储器
| 存储器带宽为M分组/s,那么交换机的交换速率一定小于M/2
总线
纵横交换结果
- 输入端口
| 含义物理层、数据链路层、网络层处理模块- 输出端口
| 含义物理层、数据链路层、网络层处理模块