@TOC
一: 网段划分
同一个局域网的主机,要按一定的规则分配IP地址
把一个IP地址分为两部分:
- 前半部分 ,网络号 ==>用来表示局域网
- 后半部分,主机号 => 用来区分同一个局域网中的不同主机
同一个局域网内部,主机之间的IP , 网络号相同,主机号不同。
局域网之间,网络号可以相同,但两个相邻的局域网(同一个路由器,wan口和lan口处于两个不同局域网)网络号不能相同.
一旦相邻的局域网网络号相同了,就没法上网了.
1.2 子网掩码
是一个32位的整数,但它的前半部分全是1, 后半部分全是0,不会出现01相间的情况
为1的位置,就是网络号,为0 的部分就是主机号.
子网掩码 . . . . . . . . . . . . : 255.255.0.0
这里255 转换成二进制就是11111111
所以当前我的IP地址前16位就是网络号,后16位就是主机号,和我在同一个局域网中的设备.前16位就是相同的.
二 : 路由选择
举个栗子:
高德地图导航,可以详细的给出原地址和目的地址之间的路径
地图软件的导航,是基于全局的数据,给你得到一个"最优解"(按照不同的角度,得到的最优解往往不同)
在网络中,路由器的寻路,则无法做到"最优解",只能做到"较优解",因为每一台路由器,无法知道整个网络的"全貌",但是可以知道它附近的设备是咋样的.
对于路由器来说,在进行转发数据的时候,很可能是无法一下就知道,目的IP所对应的设备该如何到达,而是只能 通过"启发式" 方式,逐渐找到最终的目标.
每个路由器,虽然无法感知到整个网络结构的全貌,但是可以通过认识到它周围的网络设备.
路由器中,会维护一个数据结构,路由表,记录了一个路由器周围的设备都是什么样的.
当路由器收到数据的时候,就会根据目的IP,查询路由表,看看路由表中是否存在,如果存在,直接按照目标 的位置继续转发即可.
如果不存在,就会从周围的设备中,挑选一个"最神通广大"的设备,吧这个数据交给这个最神通广大的设备,这个最神通广大的设备就会查找自己的路由表中是否存在目的IP,如果存在,直接转发即可,如果不存在,则把数据交给他周围设备中"最神通广大"的设备…以此类推直到找到目的IP.
三: DNS: 域名解析系统
IP地址 : 点分十进制表示的,非常抽象,难记,如果要访问一个服务器,十一IP地址去访问,就十分麻烦.
域名,就是一串单词,通过这一串单词,来表示某个/某组IP地址了.
如果要访问域名,就可以通过DNS 服务器的方式,查询到对应的IP地址了.
越来越多的设备都需要 上网,都要使用DNS服务器,那DNS服务器忙的过来吗?
- 客户端缓存
当你的电脑尝试访问某个域名,得了IP后,就把它记住了,下一次在访问同一个域名的时候,就不会重新查询DNS服务器了. - 分布式的方式
全世界各个地方,建设了很多DNS镜像服务器,世界上有很多电信运营商(国内的联通,电信,移动…)他们也会搭建DNS镜像服务器,当访问DNS服务器,只需要访问你附近的镜像服务器即可.
所有的镜像服务器中存储的域名和IP的映射关系都是一样的.