网络原理3 IP地址

网络原理3 IP地址


网络层中主要做的事情是在两点之间规划出一个合理的路径,同时也要对主机所处的位置进行定义

其实网络层主要就是做两件事:

  1. 地址管理
  2. 路由选择

在网络层中最重要的是IP协议

IP协议的报文格式

此处只是对IP协议的简单了解

4位版本: 其实取值只有两种,也就是4和6

IPv4 IPv6,现在一般来说指的都是IPv4

4位首部长度: 和TCP类似,首部是变长的,也是报头中带有选项

8位服务类型: 说是8位,其实只有4位,这4位表达的是当前IP协议的不同的工作模式,这4位中只有一位可以是1,不能同时多位是1,这4种状态是最小超时 最大吞吐量 最高可靠性 最小成本

16位总长度: 描述的是IP数据报的报文长度是多少,IP总长度 - IP报头长苏 = TCP报文长度

image-20221215110951895

8位生存时间(TTL)

TTL的单位是“次数”,是一个整数,初始值一般是32 64 128这样的数字

数据报传输的时候,每经过一个路由器转发,TTL就会-1, 要是TTL减到0了,此时就会把数据报丢弃了,正常情况下,数据报能在很短的次数内,传输到世界上的任何一台主机上

image-20221215111321375

ping 一下百度,就会发现TTL是50,说明一开始的TTL初始值很可能是64,中间转发过14次,最后到达的时候TTL变成了50

为什么只要转发十几次就能传输到呢?

这里是基于一个社会科学上的理论–六度空间理论

解释: 最多通过6个中间人你就能够认识任何一个陌生人

在计算机中,每个路由器也有与之相邻的路由器,这样子延展开来,就能访问到很远的路由器,所以传输的次数很少就能到达

8位协议: 主要做的就是将收到的IP数据报,进行分用,也就是决定数据报该由传输层的哪个协议来解析

image-20221215112459938

Ip地址本质上是一个32位的整数,4个字节,由于有32位,不方便看,所以常常将写作“点分十进制”的方式

所谓的点分十进制就是使用3个点,将IP地址分为4个部分,每个部分1个字节,每个字节的取值范围是0-255

IP地址的具体规则

IP地址的组成

IP地址可以分为2个部分,网络号和主机号

网络号:标识网络,保证相互连接的两个网段具有不同的标识

主机号: 标识主机,同一个局域网中,主机之间具有相同的网络号,但是主机号一定是不一样的

在两个相邻的局域网中,网络号是不一样的

子网掩码

但是怎么知道在一个IP地址中到哪里是网络号,哪里是主机号呢?

此时就有了子网掩码用来划分出哪里是网络号,哪里是主机号

子网掩码也是32位,左半边都是1,右半边都是0,不会01混合

左半边有多少个1就表示IP地址左侧的多少位是网络号,后面就是主机号

image-20221215162905419

首先看子网掩码,255–>0xFF–>11111111(八个1)

一共有3个255,说明一共有24个1,也就是说IP地址的前24位都是网络号,也就是说192.168.0是网络号,102是主机号

要是IP地址是255.255.254.0

此时就是11111111 11111111 11111110 00000000,此时就是后面9位是主机号

特殊的IP地址

如果一个IP地址的主机号为0,表示这个IP地址是网络号

如果一个IP地址的主机号为1,此时这个IP地址往往表示这个局域网的网关,常常是路由器的IP(并不是强制要求,只是习惯用法,可以手动改)

网关一般就是路由器,把守着当前局域网与其他的局域网之间的出入口

如果一个IP地址的主机号全是1,表示这个IP是广播IP

如果IP地址的开头是127,说明了该IP是环回IP

IP地址短缺的解决方法

IP地址是用来区分网络上的唯一主机

一个IP地址是4个字节,32个bit位,能表示的范围是0 – 2^32,也就是0–42亿9千万

一个IP地址就是一个主机设备,也就是说最多只能有42亿9千万多台电子设备,很明显,这是严重不够用的

所以必须要想办法应对越来越多的电子设备对IP地址的需求

现在主要有3种方法

动态分配IP地址

当有设备上网的时候才分配IP地址,不上网的时候就回收IP地址,给别人用

这种方案只能说是提高了IP地址的利用率,但是治标不治本

NAT机制[主流机制]

不响动态分配IP地址那样,NAT机制保证每个设备都有独立的IP地址

将IP地址分为两大类

  1. 外网IP / 共网IP

  2. 内网IP/私网IP/局域网IP

约定10.* 、172.16-172.31.* 、192.168.* 都是局域网/内网IP

在一个局域网中,IP地址不能重复,但是在不同的局域网中,可以存在一样的IP地址

假设A在自己家的局域网中的IP地址是192.168.0.213,B在自己家中的局域网中的IP地址也可以是192.168.0.213

当我们想要将流量发送到公网(广域网)上时,目标IP地址必须是公网IP,一个局域网中有一个公网IP,所有在局域网中的电子设备都是通过这一个公网IP来与外界通信,这样子就大大减少了外网IP的数量

路由器本身也是一个NAT设备

现在最主流的方案就是NAT+动态地址分配

就算我告诉了别人我主机的IP地址,别人也不能访问到,因为NAT机制,我的IP只能在我现在的局域网中使用,我可以通过NAT设备访问到外网的IP,但是我无法访问到其他内网中的设备

总结来说,所谓的NAT机制就是将IP分成了内网和外网,只要求外网IP不能重复,内网IP在不同的局域网中是运行重复的,这样子只要用一个外网IP就能代表一大堆的内网IP了

IPv6

使用IPv6才能彻底解决IP地址不够用的问题

IPv4是4个字节,32个bit位, 所以IP地址的个数是2^32

IPv6是16个字节,128个bit位, 所以IP地址的个数是2^128,这是在是一个巨大是数字

既然IPv6这么好,为什么动态分配+ NAT才是现在的主流呢?

这里最主要的原因就是IPv6和IPv4不兼容

也就是说,原本的IPv4的路由器不支持IPv6,要想使用IPv6就要换路由器,就要花钱,所以IPv6的普及率并不是很好(但是很多的应用程序已经支持IPv6了)

路由选择

在IP数据报中,包含了目的IP,网络数据报到达路由器之后,路由器自身有一个路由表的数据结构(路由表就是这个路由器认识的路),一个路由器无法认识到网络的全貌,但是能认识附近的一部分网络

所谓的路由选择其实就相当于是问路

如果当前的目的IP 路由器认识,它就会给出一个明确的路线

要是当前的目的IP不认识,路由器就会把数据报转发给一个更“见多识广的”路由器,这在路由表中有一个默认的选项,叫做下一跳

要是问了一大圈,也没找到目的IP的路,就有可能是这个IP根本就不存在

路由选择不仅仅是找一条路,也是要筛选出一个更好的路

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值