文章目录
1、网络层
1.1 网络层提供的两种服务
虚电路服务:当两个计算机进行通信时,先建立连接,以保证双方通信所需的一切网络资源。
数据报服务:网络层只向上提供简单灵活的、无连接的、尽最大努力交付的数据报服务。网络在发送分组时不建立连接,每一个分组独立发送,与其前后分组无关,也不提供服务质量承诺。
1.2 网际协议IP
与IP配套使用的三个协议:
地址解析协议ARP
网际控制报文协议ICMP
网际组管理协议IGMP
1.3 IP协议
基本概念:主机:配有ip地址,但不进行路由控制的设备;路由器:配有ip地址,又进行路由控制;节点:主机和路由器的统称。
1.4 协议头格式
1)4位版本号:ip协议版本(一般就是ipv4)
2)4位首部长度:ip头部的长度是length * 4,4个比特位可以表示的最大数字是15,所以ip头部的最大长度是60字节
3)8位服务类型:前三位弃用,4位TOS字段,和以为保留位(必须置零)。4位TOS字段:最小延迟,最大吞吐量,最高可靠性,最小成本。
4)16位总长度:ip数据整体占多少字节
5)16位标识:唯一的标识主机发送的报文(在数据链路层的每个分片中id都是相同的)
6)3位标志字段:第一位保留,第二位为1表示禁止分片,第三位:如果有多个分片,最后一个分片置为1,其他置为0。
7)13位片偏移:分片相对于原始报文开始出的偏移(在接收端需要根据这个将分片报文连接起来)
8)8位生存时间(TTL):数据报到达目的地的最大跳数,没经过一个路由器 - 1,直到 0 时被丢弃(防止路由循环)
9)16位头部校验和:使用CRC进行校验
10)32位源地址和32位目的地址:表示发送端和接收端
11)选项字段:不定长,最长40字节
1.5 网段划分
网络号:保证相互连接的两个网段具有不同的标识
主机号:同一网段内,主机之间具有相同的网络号,但是主机号不同
早期ABCDE类划分
A类:0.0.0.0 ---- 127.255.255.255
B类:128.0.0.0 ----191.255.255.255
C类:192.0.0.0 ---- 223.255.255.255
D类:224.0.0.0 ---- 239.255.255.255
E类:240.0.0.0 ---- 247.255.255.255
缺陷:大多数组织都申请B类网络地址,B类很快就用完了,但是A类却大量的浪费地址。
无分类编址CIDR(构造超网)
为了更精细化的划分IP地址,增加了子网掩码(子网掩码:32个比特位的高位全部为1,连续的1)。
计算方式:当前网络的网络号 = ip & 子网掩码
172.17.0.3 & 255.255.240.0 = 172.17.0.0
当前的最大主机数量 ~(子网掩码)
255.255.240.0 —> 4095
CIDR一定程度上缓解了IP地址不够用的问题,提高了利用率,减少了浪费。
私网IP地址
10.*:前8位是网络号,总共16777216个地址
172.16 ---- 172.31:前12位网络号,总共1048576个地址
192.168.*:前16位是网络号,总共65536个地址
1.6 特殊的ip地址
127.* :本机环回测试,通常为127.0.0.1
网络号:ip地址当前中主机号全为0的ip地址就是当前子网的网络号
广播号:ip地址当中主机号全为1的ip地址为当前子网的广播号
1.7 路由
路由的过程就是一跳一跳“问路”的过程。每个路由器内部维护一个路由表。
1)在转发数据的时候,先获取数据的目的ip地址,通过目的ip地址和路由表当中的路由项 ‘&’ 操作
2)如果获取的结果和当前路由项当中的destination相符合,说明这条数据时转发给当前子网当中的机器
3)如果获取到的结果和当前路由表中的destination不符合,则继续匹配下一个路由项,直到所有的子网路由项匹配一遍之后,还没有找到响应的数据转发的路由项,则会和网关路由项的子网掩码进行按位&操作,将数据通过网关WAN转发给上级路由器
4)上级路由器获取数据之后,也是重复上述的步骤。在每一次路由器转发的时候,都会对ip数据报当中的ip协议的TTL进行减1操作。
IP层分组转发的流程
- 从数据报的首部提取目的主机的IP地址D,计算出目的主机的网络地址N。
- 若N就是与此路由器直接相连的某个网络的网络地址。则直接进行交付,不需要经过其他路由器,而是直接将IP数据报交付给目的主机。(注意,直接交付时,路由器需要将目的主机地址D转换为具体的硬件地址,把数据报封装在MAC帧,在发送此帧。) 若N不是与此路由器直接相连的网络,就进行间接交付。执行3.
- 若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行4。
- 若路由表中有到达网络N的路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行5。
- 如果3和4都没能将IP数据报转发出去,若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认;否则执行6。
- 报告转发分组出错。
2、ARP协议
ARP协议是一个介于数据链路层和网络层之间的协议。
2.1 ARP协议的作用
ARP协议建立了主机IP地址和MAC地址的映射关系。
1)在网络通讯时,源主机知道目的主机的ip地址和端口号,不知道目的主机的硬件地址。
2)如果接受到的数据包的硬件地址与本机不符,则直接丢弃。
3)因此在通讯前必须获得目的主机的硬件地址。
2.2 ARP协议的工作流程
每台主机都维护一个ARP缓存表。缓存表一般存在20分钟,如果没有使用则该表失效。下次继续使用ARP请求来获取目的主机的硬件地址。
2.3 ARP数据报的格式
1)硬件类型:数据链路层网络类型,1为以太网
2)协议类型:0x0800为IP地址
3)硬件地址长度:以太网6字节
4)协议类型长度:IP地址为4字节
5)op字段:1表示ARP请求,2表示ARP应答
3、IPv6
3.1 IPv6的基本首部
主要变化:
- 更大的地址空间:将地址从32位增大到128位
- 扩展的地址层次结构
- 灵活的首部格式:定义了很多可选的扩展首部
- 改进的选项:允许数据报包含有选项的控制信息,其选项放在有效载荷中
- 允许协议继续扩充
- 支持即插即用:自动配置,不需要使用DHCP
- 支持资源的预分配
- 首部改为8字节对齐
IPv6数据报格式:首部长度固定位40字节
各字段含义:
1)版本:占4位。指明协议的版本
2)通信量类:占8位。为了区分不同的IPv6数据报的类别或优先级
3)流标号:占20位。标明数据报所属的流,在流经过的路径上的路由器都保证服务质量
4)有效载荷长度:占16位。指明除基本首部外的字节数,最大值是64KB
5)下一个首部:占8位。相当于IPv4的协议字段或可选字段。当没有扩展首部时,指明首部后面的数据应交付IP上层哪个协议;有扩展首部时,就标识后面第一个扩展首部的类型
6)跳数限制:占8位。防止数据报在网络中无限期存在,最大255跳,每转发一次就-1,为0就将这个数据报丢弃
7)源地址:占128位。是数据报发送端的IP地址
8)目的地址:占128位。是数据报接收端的IP地址
3.2 6.2.IPv6地址
结点与接口:将实现IPv6的主机和路由器均称为结点。
IPv6的表示:
1)冒号16进制记法:用8段,每段4个16进制数组成,允许将数据前的0省略
例:68E6:8C64:FFFF:FFFF ---->0:1180:FFFF:FFFF
2) 零压缩:一串连续的零可用一对冒号所代替,在一个地址中只能使用一次,若多次压缩将导致地址无法还原
例:FF05:0:0:0:0:0:0:0:03 ---->FF05::03
3)点分十进制记法的后缀:可将IPv4地址前添加6组0,使其变成IPv6的地址
例如:0:0:0:0:0:0:128.10.2.1 ---->::128.10.2.1
3.3 IPv4向IPv6过渡
双协议栈:在完全过渡到IPv6前,使一部分主机或路由器装有两个协议栈,使其可与不同网络通信时采用不同的协议,将IPv6数据报报头改为IPv4数据报形式
隧道技术:在IPv6协议进入IPv4网络时,更改源地址为隧道起点,目的地址变为隧道终点,建立隧道,使整个原IPv6数据报作为IPv4数据报的数据部分,在出隧道时改回原来的源地址和目的地址,还原为IPv6数据报