IP协议详解

一 地址管理

每个网络上的设备,要能分配一个唯一地址

 IP地址本质上是一个32位的整数

通常,会把32位整数,转换成点分十进制的表示方式

三个点,把这个整数分成4个部分,每个部分,一个字节,每个部分的取值范围0-255

32位整数最多能表示约42亿9千万不同的地址

但全世界有很多的电脑,很多的服务器,很多的路由器,还有很多的手机

如何解决上述问题?

1.动态分配IP内存

设备上网才分配,不上网就不分配,此时就可以剩下一大批的IP地址了

这个操作并没有增加IP的数量,只能一定程度的缓解,不能彻底解决问题

2.NAT机制

退而求其次,把所有的IP地址分为两大类

内网IP: 包括10.*       172.16.* - 172.31.*    192.168.*这三种

外网IP:  剩下的IP

外网IP必须是唯一的

内网IP则可以重复出现(尤其是在不同局域网中)

内网设备如果要访问外网,会给他分配一个外网IP

但是这个外网IP 不是这个设备独占的,而是这个内网中所有的设备都公用这一个外网IP了

一个外网IP代表这一系列的设备了

比如在一个家庭的中,都会安置一个路由器,而路由器提供的wifi就可以视为一个内网

连上了这个wifi的设备就视为在这个内网中了,路由器会给你的设备提供一个内网IP

而这个路由器的IP就是外网IP,你所有连了这个WIFI的设备都公用这一个设备

而外网设备是无法直接访问内网设备的

而在NAT的背景下如何通信?

外网设备->外网设备:不需要NAT,直接就能通信

内网设备->其他内网设备,不允许

外网设备->内网设备->不允许

内网设备->外网设备:对应的内网设备的路由器,触发NAT机制进行ip替换,此时就会给这个网络数据报的源ip替换成路由器自己的外网ip

3.IPV6协议

这个协议从根本上解决了IP不够用的问题

IPv4是传统的IP协议,使用4个字节,32位来表示ip地址

IPv6是更写一些的IP协议,使用16个字节,128位来表示ip地址

16个字节代表的数目就是非常恐怖的了,在以后很长的一段时间里根本不用担心不够用的问题

而当前上网仍是以IPv4为主,IPv6真正被用到的非常少的

因为IPv6和IPv4并不兼容

二 路由选择

从A->B怎么走,具体路线怎么走?

互联网存在大量的冗余,从A->B直接的路线存在很多种不同的路线,具体就走哪条路?

路由选择要做的事情就是这个

听起来就像我们用导航去找路,导航就会担任其路由选择的功能,会为你在众多路线中找到路程最短,时间最少得路程

但在网络上,就没有这么容易了,网络的环境更加复杂

路由器是无法把整个网络环境都记录下来的,路由器只能够记录周围的情况

路由器内部使用路由表这样的数据结构来记录邻居的信息

而实际的转发过程,是渐进式的,类似与"问路一样"的方式来逐渐接近最终目标:

IP数据报,在进行网络转发的过程,就是一个逐渐问路的过程

每个路由器只能认识周围的情况,很可能问的目标,并不知道(也就是在这个路由器的ip路由表中没有匹配的结果)

此时路由器就会给你指出一条默认的路径(把咱得数据报引向更上一级的路由器,而越上一级的路由器,路由表更大)

三 IP地址的组成

IP地址分两个部分:网络号和主机号

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

主机号(标识一个局域网内部的主机):标识主机,同一网段内,主机之间具有相同的网络号,但是必须有

不同的主机号

路由器有一个作用就是把两个局域网连起来:

路由器有两个ip,WAN口ip和LAN口ip

我的电脑主机号就是:192.168.0

网络号:200

电视的主机号是:192.168.1

网络号:11

但是一个IP地址中,前三个字节一定是网络号嘛?

不一定的

对于主机号的划分,主要有两种分类方式:

1.IP地址分类(ABCDE)

这个是早就在历史长河中被淹没了

但在教科书中经常会出现,有些笔试面试题还可能会考

 前缀,用来区分类别

每个类别下,网络号和主机号长度都是固定的

有一个问题就是AB类的主机号太长了,实际很少有这么大的局域网

2.子网掩码

 这才是真实的划分方式

 子网掩码也是一个32位的整数,左侧都是1,右侧都是0,不会有0101这种混合出现的情况

因此左侧有几个1,意思是ip地址的哪些位就是网络号

这里的ip地址前24位是网络号,剩下的8位是主机号

家用网络,子网掩码一般都是255.255.255.0,但是对于一些大型网络就不一定了

特殊的IP地址

假设子网掩码是255.255.255.0

1.主机号为0的ip:192.168.0.0

就是网络号,局域网中不应该存在某个主机号为0的主机

2.主机号为全1:192.168.0.255

广播地址,往这个地址上发送udp数据报,此时这个数据报就会被转发给整个局域网中的所有主机

(TCP不支持广播)

3.ip为127开头的称为环回ip :127.*

127.0.0.1(最常用的),127.1.1.1    127.1.1.10  ......都是环回ip

环回ip对应特殊的虚拟网卡lo.

通过环回ip传输的数据,走这个虚拟网卡(这个过程没有IO操作,纯内存操作)

要比一般的这种普通ip的数据传输要快

4.主机号为1:192.168.1

一般作为"网关IP",大部分情况下,只是习惯用法,不是强制约定

网关就是局域网的出入口

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值