-
网络层提供的服务:
虚电路服务和数据报服务 -
网际层协议 IP:
-
网际层协议 IP 配套使用协议:
- 地址解析协议 ARP(Address Resolution Protocol);
- 网际控制报文协议 ICMP (Internet Control Message Protocol);
- 网际组管理协议 IGMP (Internet Group Management Protocol)
-
虚拟互联网络:
- 物理层使用的中间设备叫做转发器(repeater)
- 数据链路层使用的中间设备叫做网桥(bridge)
- 网络层使用的中间设备叫做路由器(router)
- 网络层以上使用的中间设备网关叫做网关(gateway)
-
2.1.分类的 IP 地址:
-
A 类 IP 地址:
A 类 IP 地址可支票的网络号是 126 个. 网络号字段为全 0 的 IP 地址是个保留地址, 意思是本网络; 网络号为 127 保留作为本地软件环回测试(loopback test) 本主机的进程之间的通信使用.A 类 IP 地址的最大主机数量是 224 - 2. 全 0 的主机号字段表示该 IP 地址是本主机所连到的单个网络地址; 全 1 表示该网络上的所有主机.
-
B 类 IP 地址:
B 类 IP 地址的网络号数量是 214 - 1, 最大主机数为 216 - 2 -
C 类 IP 地址:
C 类 IP 地址的网络号数量是 221 - 1, 大主机数为 28 - 2
网络类别 最大可指派的网络数 第一个可指派的网络号 最后一个可指派的网络号 最大主机数量 A 27 - 2 1 126 224 - 2 B 214 - 1 129.1 191.255 216 - 2 C 221 - 1 192.0.1 223.255.255 28 - 2 -
IP 地址的特点:
- 每一个 IP 地址由网络号和主机号两部分组成. 分配 IP 地址时, 相当于只分配网络号; 路由器是根据目的主机所连接的网络号来转发分组.
- IP 地址和是标志一台主机和一条链路的接口. 连接几个网络就应该有几个 IP 地址. 例如路由器就应该至少有两个不同的 IP 地址.
-
-
2.2. IP 地址与硬件地址:
物理地址是数据链路层和物理层使用的地址, 而 IP 地址是网络层和以上各层使用的地址, 是一种逻辑地址(IP 地址是由软件实现的).在 IP 层抽象的互联网上只能看到 IP 数据报; 路由器只根据目的站的 IP 地址的网络号进行路由选择; 在数据链路层, 只能看见 MAC 帧; IP 层屏蔽了下层的复杂细节.
-
2.3. 地址解析协议 ARP:
每一台主机都有一个 ARP 高速缓存(ARP cache), 里面有本局域网上的个主机和路由器的 IP 地址到硬件地址的映射表. ARP 解决的是同一个局域网上的主机或路由器的 IP 地址和硬件地址的映射问题. -
2.4. IP 数据报的格式:
- 版本: 占 4 位
- 首部长度: 单位是字(32 比特). IP 首部固定长度是 20 字节, 因此首部长度最小值是 5 , 最大值是 15, 即 IP 首部长度最长为 60 字节.
- 区分服务: 一般不适用
- 总长度: 首部和数据长度之和, 单位为字节. 若总长度超过数据链路层帧的 MTU 就需要对数据报进行分片处理.
- 标识: 当数据报被分片后, 标识字段被复制到所有的数据报片的标识字段中. 相同的标识字段的值使分片后的各数据报片最后能够正确地重装成为原来的数据报.
- 标志:
- 标志最低位记为 MF(More Fragment). MF = 1 表示后面还有分片的数据报. MF = 0 表示这个最后一个数据报片.
- 标志中间一位记为 DF(Don’t Fragment). 当 DF = 0 时才允许分片.
- 片偏移: 某片在原分组中的相对起始位置. 以 8 个字节为单位.
- 生存时间: 数据报在互联中至多可以经过多少个路由器.
- 协议: 上层的协议
- 首部校验和: 将首部划分为 16 位的比特序列, 进行反码算术运算(就是异或运算, 并且两个 1 要进位)将所有 16 位比特序列相加, 然后将和取反.
-
2.5. IP 层转发分组的流程:
- 从数据报的首部提取目的主机的 IP 地址 D, 得出目的网络地址为 N.
- 若 N 就是与此路由器直接相连的某个网络地址, 则进行直接交付; 否则间接交付.
- 若路由表中有目的地址为 D 的特定主机路由, 则把数据报传送给路由表所指名的下一跳路由器; 否则执行下一步.
- 若路由表中有到达网络 N 的路由, 则把数据报传送给路由表所指名的下一跳路由器; 否则, 执行下一步.
- 若路由表中有一个默认路由, 则把数据报传送给路由表中所指名的默认路由器; 否则, 执行下一步.
- 报告转发分组出错.
-
-
划分子网和构造超网:
- 3.1. 划分子网:
将一个单位的多个物理网络划分为若干个子网(subnet). 对外仍然表现为一个网络. 凡是从其它网络发送给本单位某台主机的 IP 数据报, 仍然是根据 IP 数据报的目的网络号找到连接在本单位网络上的路由器. 此路由器在收到 IP 数据报后, 再按目的网络号和子网号找到目的子网, 把 IP 数据报交付给目的主机.
路由器是根据对应的子网掩码找到对应的子网. 所有的网络必须使用子网掩码, 如果一个网络不划分子网, 则该网络的子网掩码就使用默认子网掩码.
- 3.2 使用子网时分组的转发:
- 从收到的数据报的首部提取目的 IP 地址 D.
- 先判断是否为直接交付. 对路由器直接相连的网络逐个进行检查: 用各网络的子网掩码和 D 逐位相与, 看结果是否和相应的网络地址匹配. 若匹配, 则把分组进行直接交付; 否则进行间接交付, 执行下一步.
- 若路由表中有目的地址为 D 的特定主机路由, 则把数据报传送给路由表中所指名的下一跳路由器; 否则, 执行下一步.
- 对路由表中的每一行, 用其中的子网掩码和 D 逐位相与, 其结果为 N. 若 N 与该行的目的网络地址匹配, 则把数据报传送给该行指明的下一跳路由器; 否则, 执行下一步.
- 若路由表中有一个默认路由, 则把数据报传送给路由表中所指明的默认路由器; 否则, 执行下一步.
- 报告转发分组出错.
- 3.3 无分类编址 CIDR:
- 网络前缀: IP 地址划分为网络前缀和主机号两部分.
- 最长前缀匹配: 当匹配路由表时, 应该从匹配结果中选择具有最长网络前缀的路由.
- 使用二叉线索查找路由表: 二叉线索可以加快查找速度.
- 3.1. 划分子网:
-
网际控制报文协议 ICMP:
- ICMP 报文格式:
-
ICMP 报文种类: ICMP 差错报告报文, ICMP 询问报文.
ICMP 报文种类 类型的值 ICMP 报文的类型 差错报告报文 3 终点不可达 差错报告报文 11 时间超过 差错报告报文 12 参数问题 差错报告报文 5 改变路由 询问报文 8 或 0 回送请求或回答 询问报文 13 或 14 时间戳请求或回答 -
ICMP 差错报文格式:
把收到的需要进行差错报告的 IP 数据报的首部和数据字段的前 8 个字节提取出来, 作为 ICMP 报文的字段, 再加上相应的 ICMP 差错报告报文的前 8 个字节, 就构成了 ICMP 差错报告报文. 提取收到的数据报的数据字段前 8 个字节是为了得到运输层的端口号以及运输层报文的发送序号.
-
互联网的路由选择协议:
-
5.1. 内部网关协议 RIP:
- RIP 定义: RIP(Routing Information Protocol) 是一种分布式的基于距离向量的路由选择协议. RIP 协议的距离也称为跳数(hop count), RIP 允许一条路径最多只能包含 15 个路由器.
- RIP 特点:
- 仅和相邻路由器交换信息
- 路由器交换的是当前本路由器所知道的全部信息, 即自己现在的路由表.
- 按固定的时间间隔交换路由信息.
- RIP 算法:
- 对地址为 X 的相邻路由器发来的 RIP 报文, 先修改此报文中的所有项目: 把下一跳字段中的地址都改为X, 并把所有的距离字段的值加 1. 每一个项目的三个数据: 到目的网络N, 距离是 d, 下一跳路由器是 X.
- 对修改后的 RIP 报文中的每一个项目, 进行以下步骤:
若原来的路由表中没有目的网络N, 则把该项目添加到路由表中; 否则, 若下一跳路由器地址是 X, 则把收到的项目替换原路由表中的项目; 否则, 若收到的项目中的距离 d 小于路由表中的距离, 则进行更新; 否则什么也不做. - 若 3 分钟还没有收到相邻路由的更新路由表, 则把此相邻路由器记为不可达的路由器, 即把距离置为 16.
- RIP 协议的报文格式:
RIP 协议使用运输层的用户数据报 UDP 进行传送. RIP 报文的最大长度是 504 字节. RIP 协议具有好消息传播得快, 而坏消息传播得慢的特点.
-
5.2. 内部网关协议 OSPF:
- OSPF(Open Shortest Path First)协议的特点:
-
向本自治系统中所有路由器发送信息.
-
发送的信息就是与本路由器相邻的所有路由器的链路状态, 链路状态指的是本路由器和哪些路由器相邻, 以及该链路的度量(metric).
-
只有当链路状态发生变化时, 路由器才向所有路由器用泛洪法发送信息.
-
所有的路由器最终都能建立一个链路状态数据库(link-state databse), 也就是全网的拓扑结构图. 这个拓扑结构图在全网范围内是一致的.
-
- OSPF 分组格式: OSPF 直接使用 IP 数据报传送.
- OSPF 分组类型:
- 类型1, 问候(Hello)分组, 用来发现和维持邻站的可达性.
- 类型2, 数据库描述(Database Description)分组, 向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息.
- 类型3, 链路状态请求(Link State Request)分组, 向对方请求发送某些链路状态项目的详细信息.
- 类型4, 链路状态更新(Link State Update)分组, 用洪范法对全网更新链路状态.
- 类型5, 链路状态确认(Link State Acknowledgment)分组, 对链路更新分组的确认.
- OSPF(Open Shortest Path First)协议的特点:
-
5.3. 外部网关协议 BGP:
- 使用外部网关协议的原因:
- 互联网规模太大, 使得自治系统 AS 之间的路由选择非常困难. 如果采用链路状态协议, 计算最短路径消耗时间太大, 并且自治系统的内部路由协议也可能不一样.
- 自治系统 AS 之间的路由选择必须考虑有关策略.
- BGP 使用: 每个自治系统选择至少一个路由器作为该自治系统的 BGP 发言人, 一个 BGP 发言人与其它 AS 的 BGP 发言人要交换路由信息, 就要先建立 TCP 连接, 然后在此连接上交换 BGP 报文以建立 BGP 会话(session), 利用 BGP 会话交换路由信息.
- BGP 报文类型:
- OPEN 报文: 用来与相邻的应一个 BGP 发言人建立关系, 使通信初始化.
- UPDATE 报文: 用来通告某一路由的信息, 以及列出要撤销的多条路由.
- KEEPALIVE 报文:用来周期性地正式邻站的连通性.
- NOTIFICATION 报文: 用来发送检测到的差错.
- 使用外部网关协议的原因:
-
-
路由器的构成:
- 5.1. 路由器的结构:
路由器整体结构可以分为两大部分: 路由选择部分和分组转发部分. 路由表仅包含从目的网络到下一跳的映射, 而传发表是从路由表得出的. 转发表必须包含完成转发功能所必需的信息, 即从要到达的目的网络到输出端口和某些 MAC 地址信息的映射.
- 5.1. 路由器的结构:
-
IPv6:
- IPv6 记法: 冒号十六进制记法(colon hexadecimal notation), 当有一连串连续的零时, 可以用一对冒号所代替.
- IPv4 向 IPv6 过渡:
- 双协议栈: 双协议栈主机同时支持 IPv4 和 IPv6 协议, 并且具有两个 IP 地址: IPv6 地址和IPv4 地址.
- 隧道技术: 将 IPv6 数据报变成 IPv4 数据报的数据部分.
-
参考:
[1] : 计算机网络
计算机网络-网络层
最新推荐文章于 2024-09-09 15:42:52 发布