网络层——ip地址和物理地址

ip地址就是给互联网上的每一台主机或设备的每一个接口分配一个全球唯一的32位标识符(即32位二进制)
现在看到的ip地址是4个十进制数用“.”分隔的形式,称为点分十进制法;32位分成4个8位二进制,然后转换成十进制进行表示

 

既然是全球唯一,那么这32位二进制的分配存在一定编址规则;就像身份证号一样,根据地区性别出生日期来生成的
因此ip地址的编址方式经历了3个阶段:分类编址——划分子网——无分类编址

分类编址
将ip地址分为多个固定类,但是每个固定类都有两个固定长度的字段组成(网络号+主机号的二级IP地址)
网络号:标志主机或路由器所连接到的网络;
主机号:标志主机或路由器,在所连接到的网络下,该主机号是唯一的;

地址分类 网络号位数 主机号位数 分配网络范围 分配主机范围
A类地址 0(固定)+7位二进制 24位二进制 0-127(128个) 0.0.0-255.255.255(224个)
B类地址 10(固定)+14位二进制 16位二进制 128.0-191.255 0.0-255.255(216个)
C类地址 110(固定)+21位二进制 8位二进制 192.0.0-223.255.255 0-255(256个)
D类地址 1110(固定)      
E类地址 1111(固定)      

网络号的位数决定能分配多少个网络,主机号的位数决定每个网络中能给多少个主机分配IP地址
注意事项:
  1. A类地址中网络号的0(0000 0000)和127(0111 1111)是不能够分配给用户使用的,0表示本网络,127是本地回环
  2. 主机号全0或主机号全1是不能够分配给用户使用的,全0表示网络地址,全1表示广播地址
  3. 由2可以推出一个小细节,分配的主机个数是xx个,但是有效分配的主机个数是xx-2个,因为全0和全1都不能分配使用
由以上的信息就可以很轻易的知道一个IP地址是几类地址并且范围是多少能分配多少台主机或路由器(做题的时候很重要啊!!!)

 


划分子网

为什么有了分类编址还要划分子网?
为了充分的利用各类地址,避免不必要的浪费;例:学校有1000台主机,C类地址不合适,B类地址合适但是有超过64000个地址被浪费

方法:从主机号中取不定长的若干位做子网号,这样就使得主机号的位数减少;从分类地址的二级IP地址变为了划分子网的三级IP地址(网络号+子网号+主机号)

 

什么是地址掩码?

地址掩码(也称子网掩码)由连续的一串1连续的一串0组成,其中1的个数就是网络号+子网号的个数,0的个数就是主机号的个数
32位子网掩码是为了与32位IP地址配合使用;
A类默认的子网掩码是255.0.0.0,B类默认的子网掩码是255.255.0.0,C类默认的子网掩码是255.255.255.0。

IP地址和子网掩码的使用方式
将IP地址和子网掩码都转成32位二进制,然后进行与运算,得出来的结果转回十进制就可以知道是几类网且子网号是什么,主机号的位数和分配数量就一目了然了

以书上P137页例题列些思路
题:IP地址是141.14.72.24,子网掩码是255.255.192.0,试求网络地址(也就是接入在哪个网络下的)
1. 从IP地址中的141可以推算出该IP地址属于B类地址
2. IP地址 = 1000 1101 0000 1110 0100 1000 0001 1000
子网掩码 = 1111 1111 1111 1111 1100 0000 0000 0000
将其进行与运算后网络地址 = 1000 1101 0000 1110 0100 0000 0000 0000 = 141.14.64.0
取主机号中的前2位作为子网号,则主机号是214
3. 从2的运算可知,子网掩码是255的部分IP地址可以直接抄下来,简化计算难度

 

无分类编址

无类别域间路由选择(CIDR):取消传统的ABC类地址以及子网掩码的概念,通过不定长的网络前缀来区分不同网络地址(即网络编码+主机号的无分类二级编址)
使用的是斜线记法(又称CIDR法):在IP地址后面加上斜线(/),然后写上网络前缀所占的位数;如/20就表示IP地址中前20位都是网络前缀,后12位是主机号
因此就可以得到这个网络前缀下的最大地址和最小地址,子网掩码,聚合C类网数量和地址数量
最大和最小地址:网络前缀固定,主机号全1和全0的地址
子网掩码:网络前缀是20位固定的,也就是说子网掩码的前20位是1,后面的12位是0,转成十进制就可以了
聚合C类网数量 = 2(掩码长度差) ;    掩码长度差 = 原C类网络号位数(固定24) - 现有网络号位数(/x) = 24 - x
地址数量 = 2主机号位数 

 

 

 

 

IP地址和物理地址
从层面上看,物理地址是数据链路层或物理网络使用的地址,而IP地址是网络层及以上各层使用的地址,是一种逻辑地址(软件地址、虚拟地址)
IP地址放在IP数据报的首部,而物理地址则放在MAC帧的首部,在网络层及以上使用IP地址,数据链路层使用物理地址
因此在数据传输的过程中,IP地址中的原地址和目的地址不会变化,而物理地址中的原地址和目的地址会逐个网变化

ARP地址解析协议:已知IP地址,找MAC地址    (此协议只能解决在同一个局域网中的问题,跨网络的解决不了)
工作原理:原主机发送一个ARP请求,里面包含原IP地址,目的IP地址,原物理地址等;向局域网中的所有设备进行广播,接收到之后开始解析目的ip地址是否与设备IP地址匹配,如果匹配则返回一个ARP响应,告诉原主机目的IP的目的物理地址是什么?
ARP表:会记录已知的本局域网上各主机和路由器的IP地址到物理地址的映射表,方便多次通信,不会造成广播风暴

IP数据报的格式
61d74c372fbca46b88aa0894b57f10e2

首先看大框架,分为数据部分和首部,数据部分就是包含的数据信息可以不管,首部需要一点一点的拆分出来,分为固定部分(20字节)和可变部分(0-40字节)

第一行四个字段
1. 版本:占4位比特
,表示IP的版本信息,是IPV4还是IPV6      常见0100        0110;
2. 首部长度:占4位比特,表示整个首部的大小(包含固定和可变部分),这里需要注意的一点,将4位比特所表示的十进制×4才是整个首部所占的字节大小
3. 区分服务:占8位比特即1个字节
4. 总长度:占16位比特即2个字节,表示整个IP数据报的大小,最大长度就是216-1 = 65535字节;

在了解第二行的三个字段前,补充一下关于分片的内容
从总长度可知一个IP数据报最大可以是65535字节;而数据链路层的封装规定数据部分最大支持1500字节(MTU最大传输单元);那么当IP数据报的大小超过数据链路层封装规定的大小,则需要对IP数据报进行拆分发送,这就是分片;其实也就是分组
原主机和中间设备都具有分片和传输的功能,但是没有重组功能,只有目的主机有重组功能
5. 标识:占16位比特即2个字节,就是一个计数器,每产生一个数据报计数器就加1,然后赋值给标识字段,没有什么特殊含义
6. 标志:占3位比特,目前只有两位有意义,中间位DF不能分片,为1时不能分片如超过MUT则直接丢弃,为0时可以分片;最低位MF,为1表示该分片不是IP数据报的最后一个小报文,为0表示最后一个小报文
7. 片偏移:占13位比特。指出分片后某一个分片在原IP数据报中的相对位置。以8字节为单位,知道位置之后别忘了除8,得到字节单位
  第二行的三个字段会出一道大题,内容基本上是分了几个小报文,小报文的大小,MF,片偏移量是多少?以下是解题步骤:
  1. 先找原始数据长度(IP数据报的原始长度)
  2. 再找最大分片数据部分(MTU - IP首部长度)      注意:一定要验算一下,试试能不能整除8,不能则找一个最接近可以整除8的数字
  3. 判断每片数据长度
  4. 片偏移量
  5. MF标志位

 

第三行三个字段
8.生存时间(TTL):占8位比特即1个字节,表示数据报在网络中的寿命,通过“跳数限制”。目的防止路由错误的数据报无限制在互联网中兜圈子
9.协议:占8位比特即1个字节,表示此数据鞋带的数据来自何种协议,目的主机的IP层知道应将数据部分上交给哪个处理过程。   ICMP:1    IGMP:2    TCP:6    UDP:17
10. 首部校验和:占16位比特即2个字节,这个字段只检验数据报的首部,不检验数据部分

 

11.源地址:占32位比特,IP地址本身就是32位比特
12.目的地址:占32位比特

首部可变部分:包含选项字段。选项字段用来支持排错、测量及安全等措施,内容很丰富

 

路由表的组成:
目的网络地址、地址掩码、下一跳、接口
目的网络地址:就是目的IP地址所对应的网络地址
地址掩码:有多少位作为网络位,将其与目的IP地址进行相与就可以知道所对应的目的网络地址
下一跳:目的网络地址是否是本路由器直连,如果是,则不需要下一跳,如果不是,则需要填写下一个路由器与本路由器相连的接口IP地址
接口:IP数据报从路由器的哪个接口转发出去

 

默认网关:一个局域网中路由器接口的地址

 

路由器转发IP数据报的基本过程:
1. 从收到的数据报首部提取目的IP地址D
2. 判断是否是直接交付。将IP地址与路由器中的路由表每个目的网络地址的子网掩码进行相与运算,看属于哪个目的网络,直连就是直接交付;如果需要下一个路由器则是间接交付,还需要看3
3. 查看算出来的目的网络,与路由表中的哪一个目的网络匹配,则将IP数据报转发给对应的下一跳IP地址,如果都对不上看4
4. 如路由表中有一条默认路由,则把数据报传送给路由表中所知名的默认路由器,否则看5
5. 报告转发数据报出错

 

路由聚合:又称地址聚合;将路由表中的某些路由相同的表合并。连接的网络越多,路由表越长,查找时间变长,路由聚合有效缓解了这个问题。
通过路由聚合,有产生了另外一个问题,就是路由聚合的地址怎么投送到具体的网络呢?
答:凡是路由聚合的网络前缀,它所对应的下一跳一定是一个路由器,通过下一跳的路由器对网络地址进行更细致的转发
 最长前缀匹配:使用了路由聚合后,路由表中可能有多个包含关系的地址块前缀,这个时候会得到不止1个匹配结果,从匹配结果中选择具有最长网络前缀的路由,就叫做最长前缀匹配
默认路由可以用网络前缀0.0.0.0/0来表示,因为该网络前缀的长度为0,任何IP地址都能和它匹配,前提是路由表中没有任何其他项目可以匹配。

 

 

 

互联网控制报文协议(Internet Control Message Protocol   ICMP)
通常我们把ICMP作为IP层的协议,而不是高层协议,因为它配合IP一起实现网络层功能; ICMP报文在IP数据报的数据部分而不是首部

ICMP报文的种类(差错报告报文和询问报文)
ICMP差错报告报文的类型
1. 终点不可达:路由器或主机不能交付数据报事,向源IP发送终点不可达报文
2. 超时:TTL为0或者分片重装超时
3. 参数问题:当路由器或目的主机收到的数据报的首部中有字段的值不正确,路由器或目的主机丢弃该数据报并向源IP发送参数问题报文
4. 路由重定向:路由器吧路由重定向报文发送给主机,让主机知道下一次应将数据报发送给另外的路由器(提供一条更好的路由路径)

不发送ICMP差错报告报文的几种情况:
1. ICMP差错报告报文出错不再发送ICMP差错报告报文
2. 对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文(只有第一个分片的数据报才有资格使路由器发送ICMP差错报告报文)
3. 对具有多播地址的数据报都不发送ICMP差错报告报文
4. 对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送ICMP差错报告报文

ICMP询问报文
1. 回送请求或应答:ICMP回送请求报文是有主机或路由器向一个特定的目的主机发送的询问报文,收到此报文的主机必须向源主机或路由器发送ICMP回送应答报文,将ICMP回送请求报文携带的数据原封不动的送回去
2. 时间戳请求或应答:ICMP时间戳请求报文用于请某台主机或路由器应答当前的日期和时间(电脑和手机自动校准时间)

互联网分组探测器(PING):用来测试两台主机之间的连通性,使用ICMP回送请求报文和回送应答报文

 

路由器
路由器可以划分为两大部分:路由选择分组转发部分
路由器不转发广播,具有隔离广播风暴的作用

 

 

虚拟专用网(VPN)和网络地址转换(NAT)
虚拟专用网(VPN)

网络地址转换(NAT)
内网转外网,更改源IP地址、源端口号(路由器的信息)
外网转内网,更改目的地址、目的端口号(接收主机的信息)
内网与外网IP地址有对应关系,外网有一个范围,会与内网进行匹配。因此就可以精准定位到是哪个内网的信息啦
将端口号和IP地址一起转换的技术叫做网络地址和端口转换(NAPT)
实际应用中的NAT路由器基本上都具有NAPT功能。
NAT转换表由人工静态配置的,叫做静态NAT,这样内网地址与外网地址的转换是固定的;NAT路由器动态建立内外网地址转换关系的方法被称为动态NAT。如果不加以说明,NAT通常指动态NAT

 

posted on 2026-05-26 23:01  绝情世家  阅读(23)  评论(0)    收藏  举报