网络层
- 特点:无连接、不可靠(尽最大努力交付数据报)
- 网络层协议:IP、ARP、RARP、ICMP、IGMP
- 为什么要使用IP协议:使用IP协议可以使异构的物理网络进行通信
IP
-
IP地址的编址方法
三个阶段:分类、子网划分、超网(CIDR)
分类地址
-
每一类IP地址由网络号和主机号组成,分为A、B、C、D、E五类地址,D类地址为组播地址,E类地址保留以后使用,采用点分十进制表示。每一个网段的首个IP地址表示网络号,最后一个地址表示组播号。
-
特殊用途的地址
网段(直接)广播:主机号全为1,发送到目标网络的所有主机,路由器可以转发
有限(受限)广播:IP地址全为1,同一个子网的所有主机都会接收,路由器不转发
环回地址:不经过网络层,常用于本机测试
私有地址:不需要直接连接到因特网的主机,一般使用私有IP地址,私有IP地址允许重复
-
同一局域网的主机或路由器网络号一致
-
IP路由(分组转发算法)
1、目的地址与路由器直接相连,直接交付
2、判断是否有特定主机路由(路由器直接连接一个主机)
3、判断是否有到达目的网络的路由
4、使用默认路由
子网划分
-
目的:解决IP地址极大浪费的问题
-
将主机号划分一部分作为为子网号,每一类IP地址由网络号,子网号,主机号组成
-
划分子网为一个单位内部的事情,单位对外仍表现为没有划分子网的网络
-
子网掩码:网络号与子网号全为1,主机号为0
-
子网划分的IP路由
- 直接相连的网络的子网掩码与目的IP地址相与,判断是否和直接相连的网络地址一致
- 判断是否有目的地为目的IP地址的主机
- 将路由表中的每一行目的网络的子网掩码与目的IP地址相与,判断与目的网络地址是否一致
- 选择默认路由
CIDR
-
每一类IP地址由网络前缀,主机号组成,在IP地址后通过"/"指出网络前缀位数,全0、1的主机号地址不用
-
一个CIDR地址可以表示许多IP地址,称为路由聚合
-
CIDR的掩码:网络前缀位全为1,主机号全为0
-
CIDR的IP路由
- 路由表由网络前缀和目的地址组成
- 将掩码与IP地址相与,与目的地之比较,若一致,则匹配
- 可能会有多个匹配项目,选择最长前缀匹配
-
-
IP数据报格式:固定20字节,后接可选字段,最长60字节,校验和只校验头部,不校验数据部分
ARP
-
ARP请求:将IP地址转换为MAC地址,采用广播
-
ARP应答:采用单播
-
ARP不需要封装在IP数据报中
-
ARP请求发送流程
- 查找ARP缓存,查找到了匹配项,直接使用MAC地址
- ARP缓存中不存在,广播ARP请求
- 接收到ARP请求的计算机会将发送主机的IP地址与MAC地址对存储到自己的ARP缓存中
- ARP缓存每隔一段时间会删除长时间没有被更新的项(接收到对应的ARP请求包,或是指长时间未使用)
RARP
- MAC地址转IP地址,用于无盘系统获得自己的IP地址
- 凉了,被DHCP取代
ICMP
-
ICMP数据报封装在IP数据报中
-
作用:解释IP报文为什么无法传输
-
ICMP报文分为差错报告报文(向发送源报告差错)和ICMP问询报文
-
不发送ICMP报文的情况
- 广播或组播报文
- 不为ICMP差错报文产生ICMP差错报文
- 第一个IP分片以外的分片
- 具有特殊地址,例如环回地址
-
ICMP差错报告
-
数据报的数据部分包括IP数据报首部和IP数据报数据部分的前8个字节,前8个字节包括运输层端口号以及发送序列(对于TCP)
-
常用差错报告
- 重定向:当发送源的默认路由器发现了比经过自己更短的路由时,会通过重定向ICMP报文告诉发送源,将报文发送给另外一个路由器,发送源主机在路由表中新增一项,指出到某目的地应该通过该路由器
- 目的地不可达:数据报无法到达目的地
- 源站抑制:抑制发送源发送数据的速度
- 超时:TTL为0,IP分段不能在指定时间全部到达
- 参数问题:数据报头部标志出错,或缺少必须选项
-
-
ICMP问询报文
- 请求应答:例如ping,用于确认一台主机是否可达
- 地址掩码请求与应答:请求子网掩码
- 时间戳请求与应答
-
Traceroute
-
发送TTL为1的IP数据报,第一个接收路由器返回超时消息给发送源,发送源依据IP头部信息获得第一个路由器的IP地址
-
发送TTL+1的数据报,不断重复,判断是否到达目的地
- 发送的IP数据报封装的是UDP,UDP的端口设置的很大,到达目的地后,目的主机发送ICMP端口不可达报文(目的地不可达)
- 发送的IP数据报封装的是ICMP请求报文,到达目的地后,目的主机发送ICMP响应报文
-