网络层协议
网络层经常被称为IP层。但网络层协议并不只是IP协议,还包括ICMP协议。ping基于是ICMP协议。
IP协议
IP是Internet Protocol的缩写,经常被提及的IP,一般不是特指IP协议本身,而是泛指直接或间接与IP协议相关的内容。有IPv4和IPv6两个版本。
IP协议作用:
- 为网络层的设备提供逻辑地址
- 负责数据包的寻址和转发
IP报文格式:
生存时间TTL
TTL字段设置了数据包可以经过的路由器数目。
一旦经过一个路由器,TTL值就会减1,当字段为0时,数据包会被丢弃。可以用来路由器的防止环路。(二层交换机防环STP)
例:原来TTL是255,经过了一台路由器就变成了254
为什么要封装数据?
因为每层和每层的协议数据单元不一样,比如传输层的数据段发给网络层数据段的话,网络层不知道什么是数据段,因为网络层只认识数据包。
IPv4地址介绍
IP地址在网络中用于标识一个节点。IP地址用于IP报文在网络中的寻址。IP地址就像现实中的地址,可以标识网络中的一个节点,数据就是通过它来找到目的地。
掩码:网络号和主机位的界线在哪里。区分一个IP地址中的网络部分和主机部分
IP地址表示
IP地址:32bit 4个字节,用点分十进制表示。
二进制:只有1和0,方便计算机识别。
十进制:方便人去看,0-9。
最小的IP地址:0.0.0.0
最大的IP地址:255.255.255.255
IP地址范围:0.0.0.0~255.255.255.255
IP地址构成
网络部分(网络号):是一种范围,代表一个班级存在N位同学。用来标识一个网络,代表IP地址所属网络。掩码为1是网络号,为0是主机号。
- IP地址不能反映任何有关主机位置的地理信息,只能通过网络号判断出主机属于哪个网络。
- 对于网络号相同的设备,无论实际所处的物理位置如何,它们都是属于一个。
主机部分(主机号):代表里面存在哪些节点。用来区分一个网络内的不同主机,能唯一标识网段上的某台设备。
网络掩码:网络号和主机位的界线在哪里区分一个IP地址中的网络部分和主机部分。
- 32位
192.168.1.1/24 代表什么?
1、IP地址是192.168.1.1,掩码是24;
2、是C类地址,范围是1-255;
3、该子网254个可用IP地址
该地址网络号为:192.168.1.0/24
IP地址寻址:
网络部分:用来标识一个网络,代表IP地址所属网络。
主机部分:用来区分一个网络内的不同主机,能唯一标识网段上的某台设备。
网络寻址:
- 二层网络寻址:可直接通过IP地址,找到对应的主机接口。
- 三层网络寻址:利用网关转发来自不同网段之间的数据包。
IP地址分类(有类编址和无类)
有类:
A类:0.0.0.0~127.255.255.255 (第一位是0,所以255减去128=127)
B类:128.0.0.0~191.255.255.255 (第一位是1,所以255减去64=191)
C类:192.0.0.0~223.255.255.255 (第一二位是11,所以255减去32=223)
A/B/C类默认网络掩码:
A类:8bit,0.0.0.0~127.255.255.255/8
B类:16bit,128.0.0.0~191.255.255.255/16
C类:24bit,192.0.0.0~223.255.255.255/24
A类默认掩码8位,B类16位,C类24位
无类:掩码随意设置
例如:IP地址10.1.1.1,掩码可以设置8位,16位,24位
私网IP地址和特殊IP地址
公网IP地址:IP地址是由于IANA统一分配的,以保证任何一个IP地址在Internet上的唯一性。这里的IP地址是指公网IP地址。
私网IP地址:私网IP地址的使用使得网络可以得到更为自由的扩展,因为同一个私网IP地址是可以在不同的私有网络中重复使用的。
A类:10.0.0.0~10.255.255.255 8
B类:172.16.0.0~172.31.255.255 12
C类:192.168.0.0~192.168.255.255 16
NAT,网络地址转换,基本作用是实现私网IP地址与公网IP地址之间的转换。
特殊IP地址:具有特殊含义和作用
IP地址类型:
一个网络号定义的网络范围称为一个网段
网络地址:用于标识一个网络 主机全是0
广播地址:用于向该网络中的所有主机发送数据的特殊地址 主机全是1
可用地址:可分配给网络中的节点或网络设备接口的地址
二进制与十进制的转换:
幂 |
2⁷ |
2⁶ |
2⁵ |
2⁴ |
2³ |
2² |
2¹ |
2⁰ |
十进制 |
128 |
64 |
32 |
16 |
8 |
4 |
2 |
1 |
二进制位 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
二进制: 1 1 1 1 . 1 1 1 1
十进制 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0
128 64 32 16 8 4 2 1
例如:十进制:192
二进制:11000000
=2^7+2^6
=128+64
=192
十进制:168
二进制:10101000
=2^7+2^5+2^3
=128+32+8
=168
IP地址计算
10.1.1.1/30的网络地址和广播地址写出来
网络地址:10.1.1.0000 0001 网络地址主机全为0,前30位不动,后两位全部变成0 ——》10.1.1.0000 0000 10.1.1.0/30
广播地址:10.1.1.0000 0001 广播地址主机全为1,前30位不动,后两位全部变成1 ——》10.1.1.0000 0011 10.1.1.3/30
例题:172.16.8.30/23的网络地址和广播地址是多神少?
网络地址:172.16.8.0/23
172.16.0000 1000.0001 1110/23 网络地址主机全是0 172.16.0000 1000.0000 0000/23
广播地址:172.16.9.255/23
172.16.0000 1000.0001 1110/23 广播地址主机全是1 172.16.0000 1001.1111 1111/23
请计算10.128.20.10/8这个A类地址的网络地址、广播地址以及可用地址数
网络地址:10.0.0.0/8
10.1000 0000.0001 0100.0000 1010/8 网络地址全是0 10.0000 0000.0000 0000.0000 0000/8
广播地址:10.255.255.255/8
10.1000 0000.0001 0100.0000 1010/8 广播地址全是1 10.1111 1111.1111 1111. 1111 1111/8
可用地址数:2^24-2(24是主机位,由掩码32位减去当前掩码8所得。减2是去掉网络地址和广播地址)
可用地址范围:10.0.0.1~10.255.255.254
IPv4与IPv6:
IPv4
地址长度:32bit
地址分类:单播、广播、组播地址
特点:地址枯竭;包头设计不合理;对ARP的依赖,导致广播泛滥
IPv6
地址长度:128bit
地址分类:单播、广播、任播地址
特点:无限地址;简化的报文头部、IPv6自动部署
IPv4有效的改善不足手段:
1、NAT
2、私有IP地址
3、DHCP回收IP地址
彻底改善不足手段:推行使用IPv6地址。
IP地址规划的目标是:易管理、易扩展、利用率高。
IP报文格式
IP报文长度固定为20字节,如果带有options则是20-60字节。
每行4字节,32比特,共有5行。
Version:4比特 4表示ipv4,;6表示ipv6
IHL(IP Header Lenth):4比特 IP首部长度
Type of Service:8比特 服务类型。
Total Length:16比特 总长度,整个IP数据报的长度,包括首部和数据之和,单位为字节,最长为65535,总长度不能超过最大传输单元MTU。
Identification }
Flags } 分片使用的
Fragment Offset }
Time to Live:TTL 8比特 可经过的最多路由数量 用来防环
Protocol:协议:下一层协议。 指出此数据报携带的数据使用何种协议,以便目的主机的IP层将数据部分交给哪个进程处理。如果这里编号为1,交给ICMP处理。编号为6交给TCP处理,编号为89,交给OSPF处理。
Header Checksum:16比特 首部校验和,不检验数据部分,
Source address:32比特 源IP地址
Destination address:32比特 目的IP地址
Options: 可变 选项字段,扩充IP字节,最大扩充到60字节
Padding:可变 填充物,比如IP字节为20-60字节,不足20,则添加0在前面。
子网划分
为什么要子网划分?
缩小广播域,避免广播风暴
VLAN(可变长子网掩码):将一个大的有类网络,划分成若干个小的子网,使得IP地址的使用更为科学。
怎么划分子网?
一个bit存在两种可能(1和0),根据需要的子网数量,借用够用的比特数
比如:192.168.1.0/24,可用地址数2^8-2=254,现在有两个部门,需要借1位,因为2^1=2.
192.168.1.0/24
192.168.1.0000 0000/24 借一位变成:
192.168.1.0000 0000/25 网络地址:192.168.1.0/25 广播地址:192.168.1.127/25
可用地址范围:192.168.1.1~192.168.1.126
192.168.1.1000 0000/25 网络地址:192.168.1.128/25 广播地址:192.168.1.255/25
可用地址范围:192.168.1.129~192.168.1.254
那如果存在4个部门呢?那就借2位,因为2^2=4。8个部门呢?借3位,因为2^3=8
问题:现有一个C类网络地址段192.168.1.0/24,请使用可变长子网掩码给三个子网分别分配IP地址。
192.168.1.0/24
借三位,子网掩码变成27位
192.168.1.0000 0000/27 255.255.255.1110 0000
2^3=8个子网
2^5=32个主机数(5是,32位掩码减去27位掩码)
192.168.1.0~192.168.1.31
192.168.1.32~192.168.1.63
192.168.1.64~192.168.1.95
192.168.1.96~192.168.1.127
192.168.1.128~192.168.1.159
192.168.1.160~192.168.191
192.168.1.192~192.168.1.223
192.168.1.224~192.168.1.255
ICMP协议
Internet控制消息协议ICMP,是IP协议的辅助协议。
ICMP协议用来在网络设备间传递各种差错和控制信息,用于收集各种网络信息、诊断和排除各种网络故障等方面起着至关重要的作用。
ICMP消息封装在IP报文中,IP报文头部Protocol值为1时表示ICMP协议。
ping用的就是ICMP协议。
ICMP重定向
ICMP重定向报文是ICMP控制报文的一种。在特定的情况下,当路由器检测到一台机器使用非最优路由的时候,它会向该主机发送一个ICMP重定向报文,请求主机改变路由。
ICMP重定向过程:
1.主机A希望发送报文到服务器A,于是根据配置的默认网关地址向网关RTB发送报文。
2.网关RTB收到报文后,检查报文信息,发现报文应该转发到与源主机在同一网段的另一个网关设备RTA,此转发路径是更优的路径,所以RTB会向主机发送一个Redirect消息,通知主机直接向另一个网关RTA发送该报文。
3.主机收到Redirect消息后,会向RTA发送报文,然后RTA会将该报文再转发给服务器A。
ICMP差错检测
ICMP Echo消息常用于诊断和目的地之间的网络连通性,同时还可以提供其他消息,如报文往返时间等。
功能:Ping
ping是网络设备、Windows、Linux和Unix平台上的一个命令,其实是一个小巧而实用的应用程序,该应用基于ICMP协议。Ping常用于探测到达目的节点的网络可达性。
ICMP错误报告
ICMP定义了各种错误消息,用于诊断网络连接性问题;根据这些错误消息,源设备可以判断出数据传输失败的原因。如:当网络设备无法访问目标网络时,会自动发送ICMP目的不可达报文到发送端设备。
功能:Tracert
tracert基于报头中的TTL值来逐跳跟踪报文的转发路径。tracert是检测网络丢包和时延的有效手段,同时还可以发现网络中的路由环路。