目录
一、虚拟互连网络
二、IP地址
1、IP地址表示方法
2、IP地址分类
3、无分类编址CIDR
(1)网络前缀
(2)地址块 、 地址掩码
4、IP地址特点
5、地址解析协议ARP
(1)原理
(2)ARP四种情况
6、IP数据报的格式
(1)版本——4位
(2)首部长度——4位
(3)区分服务——8位
(4)总长度——16位
(5)标识——16位
(6)标志——3位
(7)片漂移——13位
(8)生存时间——8位
(9)协议——8位
(10)首部检验和——16位
(11)源地址、目的地址——32位
(12)可变部分——长度可变
三、阅读本文章后,你需要具备的能力
我们知道,数据链路层用于同一个网络内的不同主机通信
但是,不同的网络,要如何通信?
这就是IP协议的作用,让不同的计算机网络进行通信。
在理解IP协议前,需要先了解虚拟互连网络
一、虚拟互连网络
世界上数以百万计的不同网络之间,实现方式不可能一模一样
因为用户对网络的需求是不一样的,这就导致实现方式不同
实现方式不同,网络结构就有差异,例如:
不同寻址方式、不同接入方式、不同最大分组长度、不同路由控制技术等等
那么,如何将这不同的、有差异的网路进行连接互通呢?
这就需要中间设备辅助实现:转发器、交换机、路由器、网关
网络层次 | 设备名称 | 功能描述 |
---|---|---|
物理层 | 转发器 | 负责在物理层传输信号,连接同一网络内的设备。 |
数据链路层 | 交换机 | 在数据链路层转发数据帧,依据MAC地址进行数据转发,提升同一网络的效率。 |
网络层 | 路由器 | 在网络层转发数据包,依据IP地址选择最佳路径,连接不同的网络。 |
网络层以上 | 网关 | 作为不同网络协议之间的“翻译器”,处理网络层以上的数据传输和协议转换。 |
理解:
现在路由器将不同的网络连接起来
不同网络之间的通信通过路由器支持的IP协议实现
于是,IP协议屏蔽了不同网络底层的差异和异构
在逻辑上,以统一的视角将不同网络组织起来
从逻辑上看,好像所有的网络都是一样的,都是以IP协议进行连接
你用IP协议,我也用IP协议,大家都用IP协议,都一样
于是,网络之间的连接,就可以模糊掉底层细节,化成以下的样子:
(在一个异构层的上层增加一个统一的技术层是组织一个系统结构的重要手段)
直接交付:两个主机在同一个网络
间接交付:两个主机不同一个网络,需要通过路由器转发
分组在路由器中的每一次转发叫做“跳”
主机的协议栈有5层,路由器的协议栈只有下三层
二、IP地址
一个连接在互联网的设备,如果没有IP地址,就无法和其他主机通信,即没有接入网络
IP地址是互联网分配给世界上每一台主机的一个唯一的32位标识
只要接入互联网,就会自动被分配一个IP地址,作为该主机在整个计算机网络的地址标识
1、IP地址表示方法
IP地址是32位的二进制代码
为了提高可读性,一般8个为一个单元,使用十进制进行记录
然后在每一个十进制之间使用小数点隔开,称为点分十进制法
例如:
IP地址分两个字段
前面的网络号 + 后面的主机号 = 32位
IP地址指明,连接到某一个网络号的主机 / 路由器
2、IP地址分类
以网络号个数进行分类:
A类(8位)、B类(16位)、C类(24位)单播地址 和 D类多播地址
主机号一般扣除全1和全0;网络号也一般扣除全1和全0
A类地址网络号有8位,第一位固定0,实际有7位
网络号0000 0000 :表示本网络,特殊用途
网络号0111 1111:127表示环回测试,用于本主机进程通信
因此,可用网络范围为:1-126,减去全0和全1
主机号可分配位为24位置,除去全0和全1(全0表示网络号,全1表示所有主机,广播)2^24-2
B类地址网络段有2个字节,16位,前两位固定10,实际有14位,可分配网络号:2^14-2
主机号地址有16位,最大主机数是2^16-2
网络号范围为128.1-191.254(全0和全1不指派)
C类:网络有3字节,24位,前三位固定110,实际有21位,主机号有8位,减去全0和全1有2^8 -2
可分配网络号:2^21-2,网络号范围为192.0.1-223.255.254,全0,全1不可指派
3、无分类编址CIDR
(1)网络前缀
网络前缀不固定,设置为n位,指明网络号的位数;剩余为主机号后缀
网络号的n位不是固定的值,而可以是任意位
使用斜线记法:192.168.1.1/20
(2)地址块 、 地址掩码
32位的地址,减去n位的网络号剩余就是主机号,扣去全0和全1
地址掩码举例:192.255.1.1/20(斜线后面的20就是地址掩码的个数)
由地址掩码获取网络号:
0111 1111 1111 1111 0000 0001 0000 0001 原地址
1111 1111 1111 1111 1111 0000 0000 0000 地址掩码 (源地址与地址掩码 与运算)
0111 1111 1111 1111 0000 0000 0000 0000 网络号
写成点分十进制,192.255.0.0就是网络号
特殊地址块:
0.0.0.0/0:默认路由
前缀n=31,只有两个主机号0和1,用于点对点链路
前缀n=32,前32位都是网络号,没有主机号,用于路由器路由
路由聚合:
一个大地址快会包含多个小地址块
当由很多小地址块时,可以使用一个大地址块作为目的网络地址
于是,一个转发表地址就可以转发很多个对应网络
大大节省转发表空间
4、IP地址特点
(1)网络前缀由IP地址管理机构分配,主机号由得到该网络前缀的单位自行分配
(2)路由器根据网络号进行分组转发,剩下的交给网络内部自己处理
(3)具有不同网络前缀的网络必须使用路由器进行转发
(4)所有的网络号都是平等的
IP地址是标志主机连接一个网络的接口,如果断开连接,IP地址就不存在
交换机连接起来的多个网段依旧是一个网络
路由器至少拥有两个以上的IP地址,一个端口就是一个IP地址
两个路由器连接,连线两端可以分配网络(必须不同),也可以不分配网络(无编号 / 匿名网络)
MAC地址和IP地址的区别:
MAC是硬件地址,物理地址
IP地址是逻辑地址,因为是软件实现的
MAC地址运行在数据链路层
IP地址运行在网络层,是MAC的上层协议
网络层->数据链路层:
使用IP地址的数据报发送给链路层,会被封装为MAC帧,在IP地址基础加上MAC首部和CRC尾部
数据链路层看不见IP数据报
MAC帧在传送时使用的源地址和目的地址都是MAC地址
数据链路层->网路层
MAC帧剥去MAC地址首部和尾部得到IP数据报
在整个IP数据报的转发过程中,改变的只有MAC地址
而IP地址始终没有变化
因此,路由器只根据IP地址进行转发
而发送到局域网后的数据帧只能看到MAC地址(局域网只能看见MAC地址)
5、地址解析协议ARP
IP地址可以让路由器将数据在不同的网络之间传递
但是,从网络层到数据链路层,到具体的局域网
此时数据报只有IP地址,需要封装成MAC帧
那么,如何知道MAC地址?
使用ARP协议
ARP协议用于解决同一个局域网的IP地址和MAC地址映射问题
该解析过程是主机自动进行的
(1)原理
在主机的ARP高速缓存存放一个从IP地址到MAC地址的映射表,并经常更新
假设,A主机向B主机发送IP数据报,先在A主机的ARP中查看是否存在B的IP地址
有,写入MAC帧
没有:
第一步、ARP进程向本局域网所有主机广播请求分组
内容是:A的IP地址、MAC地;B的IP地址,请求B的MAC地址
第二步、所有主机收到请求,
第三步、B主机收到分组,更新B的ARP映射表,同时向A单播信号:
内容为:A的A的IP地址、MAC地;B的IP地址,B的MAC地址
第四步:A收到回复,更新映射表,封装mac帧,发送数据
映射地址的生存时间:凡超过生存时间的项目都删除
(2)ARP四种情况
1、发送方是主机,同一个网络
查ARP地址映射表
有,写入AMC帧
没有,广播请求分组
2、发送方是主机,不同网络
广播分组,找到该局域网内对应路由器(路由表)
找到路由器后,剩下的交给它处理
同时,路由器单播返回自己的MAC地址
主机更新ARP映射表
3、发送方是路由器,接收方是一个网络的主机
广播ARP分组,找到主机MAC地址
单播返回,写入MAC地址,发送
同时更新ARP映射表
4、发送方式路由器,接受方不同网络的主机
广播ARP分组,找到对应路由器
剩下工作由下一个路由器来做
单播返回,写入MAC地址,发送
同时更新ARP映射表
6、IP数据报的格式
(1)版本——4位
指明IP协议版本。(通信双方IP协议版本必须一致才能通信。)
(2)首部长度——4位
表示首部长度,1个单位表示4个字节。范围是0~15,首部长度范围为:0~60字节。
例如,首部长度为4时,首部长度为16,但是一般首部长度固定为20
(3)区分服务——8位
用于区分服务,判断是否有会员。没什么用处,不必理会
(4)总长度——16位
指明首部和数据长度之和,单位为字节。
因此数据报最大长度为:-1=65535字节。
但是,数据链路层一般最大数据帧为1500字节。超过,就要分片。
分片,就要指明各个片之间的关系。
总长度就指明:分片后的数据报,其首部和数据的长度之和
(5)标识——16位
作用是:指明同属于一个数据报
每一个数据报都有标识。
当一个数据报需要分片时,该标识被复制到所有子分片中
最后有相同标识的数据分片重新组合,恢复原数据报
(6)标志——3位
指明分片情况,只有前两位有用。
低位:MF(more fragment),1表示后面还有分片;0表示我是最后一个分片
中间位:DF(don't fragment),表示不能分片,只有0才可以分片
(7)片漂移——13位
指明一个分片在该数据报的相对位置。
相对于数据起点,该分片从何处开始。片漂移以8个字节为单位。
假如某分片片漂移为100,100×8=800字节。
则说明该片要从数据段800个字节后开始。
(注意:数据被分片以后,还要加上20个首部长度进行组装)
(8)生存时间——8位
TTL(time to live)
指明数据报在网络中的寿命,在发送源设置
目的是防止数据报在网络中兜圈子
数据报每经过一个路由器,减去相应消耗时间(若时间小于1s,TTL减去1,取整)
当TTL为0,丢弃数据报
随着技术的发展,现在TTL不是秒数,而是跳数
没经过一个路由器,TTL-1,当TTL减为0,丢弃
生存时间占8位,TTL范围:1~255
(初始值不能设为0,否则都发不出去;因为为0说明不能再网络传播,会被直接丢弃)
如果TTL为1,则只能在本网络传输
(9)协议——8位
指明该IP数据报使用什么协议。方便交付上层
常用协议字段:
(10)首部检验和——16位
作用:仅仅检验首部
计算方法:
1、将首部字段分为多个16位子段
对发送方:对首部所有16位字段相加,和取反码,写入首部检验和
对接收方:对首部所有16位字段 和首部检验和 一起相加,和取反码
如果接收方结果为0,保留;否则丢弃
(11)源地址、目的地址——32位
发送主机、接收主机的IP地址
(12)可变部分——长度可变
用于拓展IP数据报的功能,实际没什么用,不必理会
上述所讲的是IP协议的第四个版本,故称为IPV4
IP协议还有三个协议:地址解析协议、网络控制报文协议、网络组管理协议:
协议名称 | 简称 | 英语全称 | 功能描述 | 主要用途 |
---|---|---|---|---|
地址解析协议 | ARP | Address Resolution Protocol | 将网络层地址(IP地址)映射到链路层地址(MAC地址)。 | 在以太网等网络中查找目标设备的MAC地址。 |
网络控制报文协议 | ICMP | Internet Control Message Protocol | 用于发送控制消息和错误消息,帮助管理网络。 | 例如,ping命令使用ICMP确认主机是否可达。 |
网络组管理协议 | IGMP | Internet Group Management Protocol | 用于管理主机加入和离开多播组,支持多播通信。 | 实现多播数据传输,常用于视频流和在线游戏等。 |
三、阅读本文章后,你需要具备的能力
1、会对网络进行划分、规划设计网络
2、会计算网络号
3、清晰IP数据报在整个网络的转发过程和细节
4、清晰在网络的传输中,IP数据报的格式的变化
5、清晰IP地址到MAC地址的地址解析ARP,以及四种情况
6、会检验首部
7、会计算网络号范围、主机号范围
8、会配置路由器的路由表
9、会对数据报进行分片
10、对IP数据报的各个功能结构要非常清晰
11、熟悉IP数据报格式的组成、长度、功能、实现
12、理解IP数据报和MAC帧的区别
13、IP地址和MAC地址的区别
14、如果进行路由聚合
等。
如果对上述的任何一个能力,你不知道,不清晰,不明白,请及时补习。