1、网络层要做什么?
● 封装源数据
● 识别目的主机
● 找到一根好的路径(路由)
○ 路由选择协议
○ 路由器
2、 网际协议IP
- 网际协议 IP 是 TCP/IP 体系中两个最主要的协议之一;
- IP地址:每个连接在互联网上的主机(或路由器)被分配到的一个在全球范围是唯一的 32 位标识符(大约43亿个IP地址)。
- IP地址的组成:IP 地址现在由互联网名字和数字分配机构ICANN分配
- 与 IP 协议配套使用的还有三个协议:
a. 地址解析协议 ARP (Address Resolution Protocol)
b. 网际控制报文协议 ICMP (Internet Control Message Protocol)
ⅰ. 种类:
ⅱ. ICMP 差错报告报文
ⅲ. ICMP 询问报文
c. 网际组管理协议 IGMP (Internet Group Management Protocol)
3、IP地址及其表示方法
a. 点分十进制记法
4、IP地址的编址方法
b. 分类的IP地址
ⅰ. 最基本的编址方法
c. 子网的划分
ⅰ. 对基本编址方法的改进
d. 构成超网
ⅰ. 比较新的无分类编址方法
- 分类的IP地址
● 将IP地址划分为若干个固定类
● 每一类地址都由两个固定长度的字段组成
○ 网络号 net-id,标志主机(或路由器)所连接到的网络(高位)
○ 主机号 host-id,标志该主机(或路由器)(低位)
● 主机号在网络号指明的网络范围内必须唯一
● 一个 IP 地址在整个互联网范围内是唯一的
5、常用的三种类别的IP地址
6、一般不使用的特殊IP地址
7、地址解析协议 ARP
为啥需要这个?
因为,无论网络层使用什么协议,链路上传送数据帧时必须使用硬件地址。
-
IP地址与硬件地址
IP 地址放在 IP 数据报的首部
硬件地址放在 MAC 帧的首部
-
作用
知道主机或路由器的IP地址,如何找出其相应的硬件地址?
地址解析协议 ARP:从网络层使用的 IP 地址,解析出在数据链路层使用的硬件地址。
-
ARP 高速缓存 (ARP cache)
每个主机都有 ARP 高速缓存 (ARP cache),保存其所在局域网上各主机和路由器的 IP 地址到硬件地址的映射表。
-
实现过程:
● 当主机 A 欲向本局域网上的某个主机 B 发送 IP 数据报时,先在其 ARP 高速缓存中查看是否有主机 B 的 IP 地址。
○ 如有,查出其对应的硬件地址,将此硬件地址写入 MAC 帧,然后通过局域网将该 MAC 帧发往此硬件地址。
○ 如没有, ARP 进程在本局域网上广播发送一个 ARP 请求分组。收到 ARP 响应分组后,将得到的 IP 地址到硬件地址的映射写入 ARP 高速缓存。 -
解决的问题
ARP 是解决同一个局域网上的主机或路由器的 IP 地址和硬件地址的映射问题。
如果所要找的主机和源主机不在同一个局域网上,就通过 ARP 找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络。
剩下的工作就由下一个网络来做。 -
使用ARP的四种典型情况
● 发送方是主机,将IP 数据报发送到本网另一主机。用 ARP 找目的主机的硬件地址。
● 发送方是主机,将IP 数据报发送到其他网络上的主机。用 ARP 找到本网的一个路由器的硬件地址。其他工作由这个路由器来完成。
● 发送方是路由器,将IP 数据报转发到本网主机。用 ARP 找到目的主机的硬件地址。
● 发送方是路由器,将IP 数据报转发到另一网络的主机。用 ARP 找到本网另一个路由器的硬件地址。其他工作由这个路由器来完成。
8、IP数据报
- IP数据报格式
● 一个 IP 数据报由首部和数据两部分组成。
● 首部的前一部分是固定长度,共 20 字节,是所有 IP 数据报必须具有的。
● 首部的固定部分后是一些可选字段,其长度可变。
2. 版本:占 4 位,指 IP 协议的版本。IPv4 :0100IPv6 :0110
3. 首部长度:占 4 位(取值0101~1111),表示首部的最大数值是 15 个单位(一个单位为 4 字节)
因此 IP 的首部长度的最大值是 60 字节。
4. 区分服务:占 8 位,用来获得更好的服务
5. 总长度:占 16 位,指首部和数据之和的长度
单位为字节最大IP分组长度:65535 B IP分组可封装的最大数据:65535-20=65515B
6. 标识(identification):占 16 位,IP协议利用一个计数器,每产生IP分组计数器加1,作为该IP分组 的标识(序列号)。由发送方维护,接收方可以通过该号码进行重组
7. 标志(flag):占 3 位
● MF (More Fragment)
● DF (Don’t Fragment)
- 片偏移:占13 位,指出:较长的分组在分片后某片在原分组中的相对位置。
- 生存时间:占8 位,记为 TTL (Time To Live),数据报在网络中可通过的路由器数的最大值(跳步数)。
路由器转发一次分组,TTL减1 TTL=0,路由器则丢弃该IP分组 - 协议:占8 位,指出此数据报携带的数据使用何种协议,(17:UDP 6:TCP)
- 首部检验和:占16 位,只检验数据报的首部,逐跳计算、逐跳检验(TTL每经过一跳都有变化)不检验数据部分。不采用 CRC 检验码而采用简单的计算方法
- 源地址和目的地址:各占4个字节
9、IP层分组转发的流程
-
路由表存储(目标网络地址,吓一跳地址)
-
一些概念
● 特定主机路由:即为特定的目的主机指明一个路由。
● 默认路由:
比如默认路由这样用
-
路由器分组转发算法
(1)从数据报的首部提取目的主机的 IP 地址 D, 得出目的网络地址为 N。
(2) 若网络 N 与此路由器直接相连,则把数据报直接交付目的主机 D;否则是间接交付,执行(3)。
(3) 若路由表中有目的地址为 D 的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行(4)。
(4) 若路由表中有到达网络 N 的路由,则把数据报传送给路由表指明的下一跳路由器;否则,执行(5)。
(5) 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行(6)。
(6) 报告转发分组出错。
10、划分子网构造超网
- 划分子网
a. 形式
b. 使用子网寻找目标主机:凡从其他网络发送给本单位某主机的 IP 数据报,仍根据 IP 数据报的目的网络号 net-id,先找到连接在本单位网络上的路由器。然后此路由器在收到 IP 数据报后,再按目的网络号 net-id 和子网号 subnet-id 找到目的子网。最后就将 IP 数据报直接交付目的主机。
c. 子网掩码
ⅰ. 一个 IP 数据报的首部是无法判断源主机或目的主机所连接的网络是否进行了子网划分。使用子网掩码(subnet mask)可以找出 IP 地址中的子网部分。
ⅱ. 子网掩码长度=32位
1. 某位=1:IP地址中的对应位为网络号和子网号
2. 某位=0:IP地址中的对应位为主机号
ⅲ.
ⅳ. 前四个1是240
ⅴ. 前三个1是224
ⅵ. 前两个1 是192
ⅶ. 前一个1 128
d. 划分子网的方法
ⅰ. 固定长度子网:所有子网的子网掩码都是相同的
ⅱ. 变长子网
1.
2. 使用子网时分组的转发
3. 无分类编址CIDR(构造超网)