网络层的目的是实现两个端系统之间的数据透明传送,具体功能包括寻址和路由选择、连接的建立、保持和终止等。它提供的服务使传输层不需要了解网络中的数据传输和交换技术。
网络层提供两种服务:
- 面向连接服务
- 无连接服务
对比角度 | 虚电报服务(面向连接) | 无连接数据报服务 |
思路 | 可靠通信由网络保证 | 可靠通信由用户主机保证 |
连接的建立 | 需要建立 | 不需要建立 |
目的地址 | 仅在连接建立时使用,子厚使用虚电报号 | 每个分组必须携带完整的目的地址 |
分组转发 | 沿着建立利好的虚电报发送 | 每个分组独立选择路由发送 |
分组顺序 | 按序到达 | 可能未按序到达 |
当节点故障时 | 所有通过故障节点的虚电报不能工作 | 出故障的节点会丢失分组,路由会发生改变 |
IP协议的组成:
- ARP 地址解析协议
- RARP 逆向地址解析协议(弃用)
- ICMP 网际控制报文协议
- IGMP 网际组管理协议
作用:将IP地址转换为MAC地址
IP地址的转化:
- IP->ARP->物理地址
- 物理地址->RARP->IP
作用:更加有效地转发IP数据报和提高交付成功的机会
ICMP差错报告报文类型:
报文类型 | 含义 |
终点不可达 | 路由器或主机不能交付数据报时向源主机发送 |
超时 | 路由器收到生存时间为0的数据报向源主机发送 |
参数问题 | 路由器或主机收到数据报首部格式中有字段值不正确 |
改变路由 | 路由器把该百年路由报文发送给主机 |
ICMP询问报文类型:
报文类型 | 含义 |
回送请求和回答 | 由路由器向特定的目的主机发送询问,目的主机给出回答 |
时间戳请求和回答 | 请某台主机或路由器回答当前的日期和时间 |
ping 使用了ICMP回送请求与回答报文来测试2台主机的连通性
tracert 用来追踪一个分组从源点到终点的路径
IP地址的组成: 网络号和主机号
网络号:保证相互连接的两个网段具有不同的标识, 简单来说就是标识网络
主机号:同一网段内, 主机之间具有相同的网络号, 但是必须有不同的主机号, 简单来说就是标识同一网段下的不同主机.
A类网络号:全0和全一不能使用
B类和C类网络号:全0不能用
主机数:全0和全1不能用
用于组建局域网的私有IP地址:
IPv4总地址空间为:2^32 可用率为87.5%,由于无法满足当前的需求,IPv6诞生了。
IPv6 规定每个地址占128位
IPv6 采用以16位为一组共8组,用十六进制表示,各值用冒号分割。
例如:5465:4564:2254:0000:0000:0000:0000:0000
由于IPv6地址数量庞大,可能0会比较多,所以采用零压缩法来表示
零压缩法:多组连续的0 用::代替 (只能用一次,防止歧义)
例如:
5465:4564:2254:0000:0000:0000:0000:0000
零压缩法:5465:4564:2254::
5465:4564:2254:0000:0000:1235:0000:5465
零压缩法:5465:4564:2254::1235:0000:5465
方法有:
双协议法:
在未完全使用IPv6时,使逐级和路由器同时安装两个协议栈
隧道技术:
把IPv6数据报分封装成IPv4的数据报
- 版本: 占4位 4和6 代表 IPv4和IPv6
- 首部长度:占4位,IP数据报头部的总长度以4字节为单位
- 区分服务:用于表示数据报的优先级和服务类型,占8位。包括一个3位长度的优先级,4位长度的标志位,最高位未用
- 总长度:首部和数据之和 16位 ,最长为2^16-1=65535字节(64KB)
- 标识:用于表示IP数据报的标识符,占16位
- 标志:占3位,标志字段有:MF和DF,MF代表更多的分片(1代表后面有分片,0反之)。DF表示不能分片(1为不能分片 0代表能分片)
- 片偏移:指出该分段在数据报中的相对位置。相对于用户数据字段的起点,该字段从何处开始,占13位, 片偏移=数据报片的起始字节序号/8
- 生存时间:TTL 代表数据表在网络中的寿命,一般用跳数表示,数据报每经过一个路由器跳数减一,一般在传输时设置跳数,当跳数为0时,就不在转发该数据报
- 协议:用来标识此IP数据报在传输层所采用的协议类型,以便使目的主机的IP层知道应将数据部分上交给哪个处理过程,占8位
- 首部检验和:检验首部是否有错,不包括数据部分
- 源地址和目的地址:各占32位,分别表示该IP数据报发送者和接收者的IP地址
- 可变部分:提供扩展余地
IP数据报是按片来经行传输,首先会把数据报分片,然后会计算标志字段和片偏移。
分片的计算:分片是向上取整的,才可以保存所有数据
由于总长度为4020,数据部分长度为4020-20=4000(减去首部)
分片数据报长度 1420-20=1400
n=4000/1400=3(向上取整)
第一部分:0-1399 第二部分:1400-2799 第三部分:2800-3999
片偏移:第一部分 0/8=0 第二部分:1400/8=175 第三部分:2800/8=350
总长度 | MF | DF | 片偏移 | |
原数据报 | 4200 | 0 | 0 | 0 |
数据报1 | 1420 | 1 | 0 | 0 |
数据报2 | 1420 | 1 | 0 | 175 |
数据报3 | 1220 | 0 | 0 | 350 |
每个数据报都需要加首部
分片后的总长度为 T=原长度+(n-1)*20
IP地址 | 硬件地址 | |
地址类型 | 逻辑地址(软件实现) | 物理地址(硬件实现) |
使用位置 | 网络层及以上各层 | 数据链路层和物理层 |
存放位置 | IP数据报首部 | MAC帧首部 |
路由器(Router)是连接两个或多个网络的 硬件 设备,在网络间起网关的作用,是读取每一个数据包中的地址然后决定如何传送的专用智能性的网络设备。 它能够理解不同的协议,例如某个局域网使用的 以太网协议 ,因特网使用的 TCP/IP协议
路由器的作用:
路由器中保存着传输路径的相关数据——路由表
静态路由表
静态路由表:是由管理员在路由器中手动配置的固定路由,路由明确地指定了包到达目的地必须经过的路径
特点:
1、它允许对路由的行为进行精确的控制
2、减少了网络流量
3、是单向的
4、配置简单
动态路由表:是指动态路由协议(如RIP)自动建立路由表,当你去掉一条连线时,它会自动去掉其路由。路由器的每一个接口对应不同网络,而一条连接两个路由器连线的两个端点IP应该属于同一网络。 设置的IP地址时,如果路由器的其它端口已有这个网络了,则提示已有这个网络,并显示对应的端口
特点:
1、节点增删时工作量少
2、网络拓扑变化,协议自动调整
3、配置不易出错
4、对网络扩容性好
5、需要占用路由器资源
路由表的参数:
路由器是根据目的地址的网络号来进行转发和分组,但也可以对特定的主机指定一个路由,
指定主机路由,可以提高数据的交付效率,因为不用查找路由表
默认路由:是对IP 数据包 中的目的地址找不到存在的其他路由时, 路由器所选择的路由。
- 从数据报的首部中提取目的主机的IP地址D,得出目的网络地址为N
- 判断N是否与路由器直接相连,是则把数据报直接交付目的主机D;否则间接交付执行下一个流程
- 查找路由表中是否有目的地址为D的特定主机路由,有则直接转发,否则执行下一步
- 查找路由表。若路由表中有到达网络N的路由,则把数据报传送给路由表指明的下一跳,没有则执行下一步
- 查找路由表中是否有一个默认路由。有则把数据报传送给默认路由,否则报告转发分组出错。
划分子网:简单的来讲就是把多个IP通过子网分批管理
划分子网时的三级结构:
IP地址::={<网络号>,<子网号>,<主机号>}
三级结构的优点:
● 减少了 IP 地址的浪费
● 使网络的组织更加灵活
● 更便于维护和管理
子网掩码(subnet mask)又叫网络掩码、地址掩码、子网络遮罩,它用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。
子网掩码的使用原因:
通过子网掩码的设置位置上来判定一个网络是否进行了子网划分,通过子网掩码和目的主机的IP地址可以得到子网的网络地址。现在的网络都必须使用子网掩码,没有划分的话则使用默认子网掩码。
子网掩码的格式:网络号全为1,主机号全为0
默认子网掩码:
网络类型 | 网络号位数 | 默认子网掩码 |
A类 | 8 | 255.0.0.0 |
B类 |
16 | 255.255.0.0 |
C类 | 24 | 255.255.255.0 |
- 网络号:目的IP与子网掩码进行与运算
- 主机号:用IP地址的二进制和子网掩码的二进制的反码,进行与运算
- 广播地址:网络号与子网掩码进行与操作
- IP可用范围:网络号+1 ———广播号-1
例一:ip地址:140.252.20.68 子网掩码:255.255.255.0
网络号: 140.252.20 与运算 255.255.255 结果为 140.252.20
主机号:68
例二:ip地址:140.252.20.68 子网掩码:255.255.255.240
子网掩码为:255.255.255.24
二进制:11111111.11111111.11111111.11110000
由于网络号全为1 所以 网络号有28位,所以主机号有4位
68的二进制为:01000100 取前4位为64 后4位为4
网络号:140.252.20. 64
主机号:4
例子:ip地址:140.252.20.68 子网掩码:255.255.255.240
网络号为:140.252.20.64 10001100.11111100.00010100.01000000
子网掩码:255.255.255.240 11111111.11111111.11111111.11110000
广播地址为:140.252.20.77 10001100.11111100.00010100.01001111
例子:ip地址:140.252.20.68 子网掩码:255.255.255.240
网络号:140.252.20.64
广播号:140.252.20.77
IP地址范围:140.252.20.65~140.252.20.76
子网的划分通过对子网掩码的主机号进行划分:
C类子网的划分情况 :255.255.255.0
子网位数 | 子网掩码 | 子网数 | 主机数 |
2 | 255.255.255.192 | 2(2^2-2) | 62(2^2-2) |
3 | 255.255.255.224 | 6(2^3-2) | 30(2^2-2) |
4 | 255.255.255.240 | 14(2^4-2) | 14(2^2-2) |
5 | 255.255.255.248 | 30(2^5-2) | 6(2^2-2) |
6 | 255.255.255.252 | 62(2^6-2) | 2(2^2-2) |
7 | 255.255.255.2554 | 126(2^7-2) | 0(2^2-2) |
注意:由于不能全0和全1所以子网数和主机数都需要减2
虚拟专用网简称VPN:是指在公用网络上建立专用网络的技术。
VPN的任意两个节点之间的连接并没有传统专用的端到端的物理链路,而是架构在公共网络服务商提供的网络平台。
1.本地地址:(内部地址),单位间,为了相互通信自行分配的IP地址称为本地地址,本地地址不需要向上级申请,因特网规定一些本地地址用于机构内部通信
- 10.00~10.255.255.255
- 172.16.0.0~172.31.255.255
- 192.168.0.0~192.168.255.255
路由器一旦接到目的地址为本地地址的数据报一率步进行转发。
2.全球地址:(外网地址),必须使用全球地址才能访问到外网的IP地址
VPN主要是采用隧道技术实现的。
使用场景:就是在外部无法随意访问的地方,开辟一个隧道(VPN),但需要输入用户名和密码,才能进行访问
网络地址转换是一种将本地地址转化为全球地址的转换技术。
使用在各种类型因特网接入方式和各种类型的网络。
网络地址转换的作用:
- 解决IP地址不足的问题
- 有效避免来之网络外部的攻击
实现地址转换需要在专用网连接到因特网的路由器上安装NAT软件,该路由器称为NAT路由器。
NAT路由器需要至少有一个有效的全球地址I,NAT路由器维持者主机和外部通信。