计算机网络 —— 网络层
写在前面:网络层相比物理层和数据链路层的知识点更多并且重要,在网上搜索了一些博客的笔记,感觉做的侧重点太强,并且不是很全面。这里参考了一下亚东大佬的blog(附上链接)并自己进行了一些补充。由于前三章的笔记都写在备忘录里,有时间也更新到博客里来。
1.网络层提供的两种服务
虚电路服务(面向连接)和数据报服务(无连接)
虚电路服务:
-
可靠通信应当由网络来保证
-
每个分组使用短的虚电路号
-
属于同一条虚电路的分组均按照同一路由进行转发
-
所有通过出故障的结点的虚电路均不能工作
-
分组总是按发送顺序到达终点
-
端到端的差错处理和流量控制可以由网络负责,也可以由用户主机负责
数据报服务:写入地址,由路由选择传送地址,现在多用此服务,特点为简单灵活、无连接、尽最大努力交付
-
可靠通信应当由用户主机来保证
-
每个分组都有终点的完整地址
-
每个分组独立选择路由进行转发
-
出故障的结点可能会丢失分组,一些路由可能会发生变化
-
分组到达终点时不一定按发送顺序
-
端到端的差错处理和流量控制由用户主机负责
2.虚拟互联网
目的:逻辑互联,解决物理网络的异构性
中间设备:又称为中间系统或中继 (relay)系统
- 物理层中继系统:转发器
- 数据链路层中继系统:网桥 或 桥接器
- 网络层中继系统:路由器(有时也叫网关)
- 网络层以上的中继系统:网关(用得少)
3.网络层的 IP 协议及配套协议
网络层协议:IP(国际协议)、ARP(地址解析协议)、ICMP(网际控制报文协议)、IGMP(网际组管理协议)
3.1 IP协议
3.1.1 IP 地址的编址方法
-
分类的 IP 地址
-
层次化IP地址将32位的IP地址分为网络号和主机号(不全为1、不全为0)
-
如何理解一个 IP 地址在整个互联网范围内是唯一的:这个唯一是在公网上的IP地址唯一,局域网里可以随便设置统一网段的私有IP。
-
各类 IP 地址的网络号字段和主机号字段
- A类:8+24,固定为0,1~126
- B类:16+16,固定为10,128.1~191.255
- C类:24+8,固定为110,192.0.1~223.255.255
- D类:多播,固定为1110
- E类:研究用,固定为1111
-
-
常用的三种类别
- A类:网络号1-126,网络数 (2^7 – 2),每个网络主机数(2^24 – 2)
- B类:网络号128.1-191.255,网络数 (2^14 – 1),每个网络主机数(2^16 – 2)
- C类:网络号192.0.1-223.255.255,网络数 (2^21 – 1),每个网络主机数254
-
特殊地址
- 127.0.0.1:本地环回地址
- 169.254.0.0:windows DHCP自动生成的错误地址,临时使用
- 保留的私网地址:A类 10.0.0.0 B类 172.16.0.0~172.31.0.0 C类 192.168.0.0~192.168.255.0
- 0.0.0.0:未定地址,在本网络上的本主机
- 255.255.255.255:限制广播地址
-
子网掩码:将IP地址划分为网络地址和主机地址
-
子网的划分
- 从主机号借用若干个位作为子网号,而主机号也就相应减少了若干个位
- 改变子网掩码,使用子网掩码(32位)可以找出 IP 地址中的子网部分
- 子网掩码左边部分的一连串 1,对应于网络号和子网号,右边部分的一连串 0,对应于主机号
- 每个子网是原来的1/2,子网掩码往后移动一位,子网不包含主机位全0与全1的情况
- 点到点的WAN链路只需要2个地址,故使用255.255.255.252子网掩码,主机位2位
- 无分类域间路由选择 CIDR
- CIDR 把网络前缀都相同的连续的 IP 地址组成“CIDR 地址块“
- 斜线后面是网络前缀的位数,对应于三级编址中子网掩码中 1 的个数
- 128.14.32.0/20 地址块的最小地址:128.14.32.0
128.14.32.0/20 地址块的最大地址:128.14.47.255
-
构成超网
-
CIDR地址块的聚合常称为路由聚合,也成构成超网
-
使用最长前缀匹配查找路由表
-
使用二叉线索查找路由表
-
IP地址决定数据包最终到哪(不变),MAC地址决定了路由转发的下一跳是谁(可变)
-
CIDR记法:
-
对于 /20 地址块,它的掩码是 20 个连续的 1
-
10.0.0.0/10 可简写为 10/10,也就是把点分十进制中低位连续的 0 省略
-
网络前缀的后面加一个星号 * 的表示方法,如 00001010 00*,在星号 * 之前是网络前缀
-
-
3.1.2 IP数据报
- 由首部和数据两部分组成,首部固定长度为20字节
- TTL:首部生存时间,可判断操作系统类型
- 路由器分组转发算法:目的主机IP与子网掩码相与,得到网络地址;若网络地址与目的地址相等,则该网络与路由器直接相连,按下一条转发,否则与下一项子网掩码相与,若都不相等,则按默认路由
3.2 ARP协议
ARP协议:通过广播,将IP地址转换为MAC地址
RARP协议:通过广播,将MAC地址转换为IP地址
3.3 ICMP协议
ICMP协议不是高层协议,是IP层的协议,主要负责报告差错和故障
-
差错报告报文
-
终点不可达
-
源点抑制
-
时间超过
-
参数问题
-
改变路由(重定向)
-
-
询问报文
-
回送请求和回答报文
-
时间戳请求和回答报文
-
3.4 互联网的路由选择协议
-
内部网关协议 IGP:具体的协议有多种,如 RIP 和 OSPF 等
- RIP协议(路由信息)
- 最早的动态路由协议
- 特点:周期性(30s)广播、根据跳数判断距离(不准确)、一条路径最多只能包含 15 个路由器
- 距离向量算法
- OSPF协议(开放最短路径优先)
- 内部网关协议,也属于动态路由协议
- 度量值为带宽,比较准确
- 支持多区域、二级结构
- 触发式更新
- 三个表(邻居表、链路状态表、计算路由表)
- RIP协议(路由信息)
-
外部网关协议 BGP:BGP 发言人往往就是 BGP 边界路由器,连接各个自制系统,发言人交换路径向量
3.5 IPv6
IPv6 将地址从 IPv4 的32位增大到了128位。
首部长度必须是 8 字节的整数倍,原来的 IPv4 首部是 4 字节对齐
目的地址:单播、多播、任播
一个结点(路由器或主机)接口的单播地址可用来唯一地标志该结点
3.6 IGMP协议
网际组管理协议,主要管理组播成员,组播(多播、一对多通信)管理协议
4.虚拟专用网络 VPN
使用VPN的原因:IP 地址的紧缺、互联网并不很安全,本机构自行分配地址
网络地址转换NAT:将其本地地址转换成全球 IP 地址
网络地址与端口号转换 NAPT:使用端口号的 NAT 叫做网络地址与端口号转换NAPT,而不使用端口号的 NAT 就叫做传统的 NAT