计算机网络--知识点总结2(网络层)
文章目录
一、概述
功能:
主要解决不同局域网之间的数据传输
内容:
网络层IP协议:IP协议、子网划分、简单路由过程
网络层其他协议:ARP协议与RARP协议、ICMP协议
IP路由算法:路由的概述、内部网关路由协议、外部网关路由协议
二、IP协议
1、虚拟互连网络
- 物理设备通过使用IP协议,屏蔽了物理网络之间的差异
- 当网络中的主机使用IP协议连接时,则无需关注细节
- IP协议使复杂的实际网络变为一个虚拟互连的网络
- IP协议使网络层可以屏蔽底层细节而专注网络层的数据转发
- IP协议解决了在虚拟网络中数据报传播路径的问题
2、IP协议
- IP地址长度为32位,分为4个8位
- IP地址常使用点分十进制来表示
- 用这种方法最多可以表示2^32=42亿个不同IP地址
- IP地址在根据所处的网域不同而不同
1)IP数据报头部
这里每一行都占32位4个字节,必须有的为5行,所以IP地址首部最少为20个字节;
版本:占4位,指IP协议的版本,通信双方的版本必须一致,当前主流版本是4,即IPv4,也有IPv6;
首部位长度: 占4位,最大数值为15(16进制,所以首部最大数值为15X4=60),表示IP首部长度,单位是32位字,即4个字节;
总长度: 占16位,最大数值位65535,表示IP数据报总长度(IP首部+IP数据),但是数据链路层中的MTU(最大传输单位)是1500,65535远远超过1500,所以在实际传输过程中,如果IP数据报长度超过1500,数据链路层会将IP数据报分片传送;
标识: 是协议内部具体使用,无需了解
标志: 占3位,只用2位是有意义的,标志IP报文是否要分段;
片偏移: 如果IP报文超过1500,需要分段传送时,片偏移表示当前传送的是报文的第几个片段;
TTL: 占8位,表示IP数据报文在网络中的寿命,没经过一个设备,TTL减1,当TTL=0时,网络设备必须丢弃该报文;为了防止报文在网络中找不到目的地址而无限传输,占用网络带宽;
协议: 占8位,表示IP数据报所携带的具体数据是什么协议(如:TCP、UDP);
协议名 | ICMP | IGMP | IP | TCP | UDP | OSPF |
---|---|---|---|---|---|---|
字段值 | 1 | 2 | 4 | 6 | 17 | 89 |
以上为可使用的不同协议,为每个协议赋不同的值来表示
首部校验和: 占16位,校验IP首部是否有出错,如果有错误,直接丢弃;
源IP地址: 占32位,发送端的IP地址;
目的IP地址: 占32位,接收端的IP地址;
2)IP协议的转发流程
计算机A—路由器A–网络1—路由器B–网络2—计算机B 通过逐跳的形式到达
i、路由表简介
类似于MAC地址表(计算机/路由器都拥有路由表)
目的IP地址 | 吓一跳IP地址 |
---|---|
IP1 | IP2 |
IP3 | IP4 |
ii、IP协议的转发流程
实例说明:
计算机A—>路由器E—>计算机D,路由器F—>计算机C,计算机B
这里计算机A向计算机C发送数据报文
第一步:
- A发出目的地址为C的IP数据报,查询路由表发现下一跳为E
- A将IP数据报交给数据链路层,通过ARP缓存表获得MAC地址,并告知目的MAC地址是E(通过ARP协议转化)
- 数据链路层填充源MAC地址A和目的MAC地址E
- 数据链路层通过物理层将数据发送给E
第二步:
- E的数据链路层接收到数据帧,把帧数据交给网络层
- E ** 查询路由表,发现下一跳为F**
- E ** 把数据报交给数据链路层,通过ARP缓存表获得MAC地址,并告知目的MAC地址为F**
- E的数据链路层封装数据帧并发送
第三步:
- F的数据链路层接收到数据帧,把数据帧交给网络层
- F查询路由表,发现下一跳为C
- F把数据报交给数据链路层,通过ARP缓存表获得MAC地址,并告知目的MAC地址为C
- F的数据链路层封装数据帧发送
数据帧每一跳的MAC地址都在变化
IP数据报每一跳的IP地址始终不变
3、ARP协议与RARP协议
1)ARP协议
ARP(Address Resolution Protocol)地址解析协议
网络层IP32位地址—> 通过ARP协议转化—> 数据链链路层MAC48位地址
ARP缓存表:
IP地址 | MAC地址 |
---|---|
192.168.83.254 | 00-50-56-e0-33-40 |
- ARP缓存表是ARP协议和RARP协议运行的关键
- ARP缓存表缓存了IP地址和MAC地址的映射关系
- ARP缓存表的记录并不是永久有效的,有一定的期限
- 命令行中通过arp -a查询ARP缓存表
ARP协议在数据报文中的位置:
数据报文:
目的地址 | 源地址 | 类型 | 帧数据 | CRC |
---|---|---|---|---|
6 | 6 | 2 | 46~1500 | 4 |
其中,ARP协议存放在帧数据中:
类型0806 | ARP请求/应答 | PAD |
---|---|---|
2 | 28 | 18 |
其中,ARP请求/应答包括:
硬件类型 | 协议类型 | 标记 | 发送端以太网地址 | 发送端IP地址 | 目的端以太网地址 | 目的端IP地址 |
---|---|---|---|---|---|---|
2 | 2 | 4 | 6 | 4 | 6 | 4 |
两种情况:
1、ARP缓存表中有IP地址和MAC地址的映射关系,则网络层将数据报表交给数据链路层时,通过查询ARP缓存表,获得目的计算机的MAC地址
2、ARP缓存表中没有目的计算机的IP地址和MAC地址的映射关系,目的计算机的IP地址以广播的形式发送给除源计算机的端口,目的计算机收到后将自己的MAC地址发送给发送端口,并将此映射关系添加到ARP缓存表
2)RARP协议
- RARP(Reverse Address Resolution Protocol)逆地址解析协议
- 与ARP协议相反
- 数据链路层MAC48位地址–> RARP协议转换 --> 网络层IP32位地址
RARP协议在报文中的位置与ARP协议相同:
都在帧数据中:
类型8035 | RARP请求/应答 | PAD |
---|---|---|
2 | 28 | 18 |
3)小结
- ®ARP协议是TCP/IP协议栈里面基础的协议
- ARP和RARP的操作对程序员是透明的,虽然存在但是就像不存在一样
- 理解R(ARP)协议有助于理解网络分层的细节,辅助网络层和数据链路层对IP地址和MAC地址的转换
4、IP地址的子网划分
1)分类的IP地址
i、概念
为了更好的规划和分类IP地址
IP地址一共32位:
网络号 | 主机号 |
---|---|
A类地址:
网络号(0开头) | 主机号 |
---|---|
8位 | 24位 |
B类地址:
网络号(10开始) | 主机号 |
---|---|
16 | 16 |
C类地址:
网络号(110开头) | 主机号 |
---|---|
24位 | 8位 |
D类地址:1110开头,用于特殊用途
E类地址:1111开头,用于特殊用途
ii、子网的运算
最小网络号 | 最大网络号 | 子网数量 | 最小主机号 | 最大主机号 | 主机数量 | |
---|---|---|---|---|---|---|
A | 1 | 127(01111111) | 2^7-2 | 0.0.1 | 255.255.254 | 2^24-2 |
B | 128.1 | 191.255 | 2^14-1 | 0.1 | 255.254 | 2^16-2 |
C | 192.0.1 | 223.255.255 | 2^21-1 | 1 | 254 | 2^8-2 |
需要排除的网络号和主机号
特殊的主机号:
- 主机号全0表示当前网络段,不可分配给特定主机
- 主机号为全1表示广播地址,向当前网络段所有主机发送消息
特殊的网络号:
- A类地址**网络段全0(00000000)**表示特殊网络
- A类地址**网络段后7位全1(011111111:127)**表示回环地址
- B类地址**网络段(10000000.00000000:128.0)**是不可使用的
- C类地址**网络段(192.0.0)**是不可使用的
其中,回环地址(127.0.0.1),通常称为本地回环地址,不属于一个有类别地址类,代表设备的本地虚拟接口,只要计算机开机,这个地址就是通的,永远不会宕掉;因此在安装网卡之间可以ping通这个本地回环地址,用来检查本地网络协议、基本数据接口是否正常。
运算举例举例:
125.125.3.60 ---->前8位:01111101 属于A类,因为首位为0
163.70.31.23 —>前8位: 10100011 属于B类,因为开头位10
210.36.127.11 -->前8位:11010010 属于C类,因为开头为110