一 地址管理
每个网络上的设备,要能分配一个唯一地址
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",大部分情况下,只是习惯用法,不是强制约定
网关就是局域网的出入口