1.什么是网络划分,网络划分的目的是为了什么?
在回答这两个问题之前,我们需要知道ip地址的概念,ip地址一共有32比特位,它由两部分构成,网络号和主机号。
两个部分组合在一起就构成了一台主机的地址,这个ip地址有什么用?
通过名字就可以看出ip地址类似门牌号,网络号就保证相互连接的两个网段具有不同的标识,主机号:同一网段内,主机之间有相同的网络号当不能有相同的主机号。
有相同的网络号的主机构成了子网,不同的子网又有路由器连接起来传递数据报文。
32比特位中关于网络号和主机号的划分就达到了网络的划分。
网络划分的目的之一是为了效率。
可能有童鞋会问,为什么这么麻烦,把主机分成多个子网,再传递数据报文,这和把数据报文从A主机发到B主机,和效率的提高有什么关系?
假如你在学校捡到一个钱包,里面有失主的学生证和学号,作为一个新世纪的青年,当然要找到施主本人,把钱包还给他,这个时候就有两种策略
IP地址 140.252.20.68
子网掩码 255.255.255.240
网络号 140.252.20.64
范围 140.252.20.64到140.252.20.79
为什么范围会不一样?因为他们的网络号不一样,网络号可以由ip地址与子网掩码按位与算出来,主机号从全零到全1就是子网范围。
如果主机号为全0就是网络地址,全1就是主机地址。127.*的IP地址用于本机环回
通常是127.0.0.1
3.IP地址的数量
从上面看出无论是哪种方法ip的大小表示都是332个比特位,大概42亿9千万,那么是不是理论上一共可以有43亿左右的主机能够联网?实际上抛去一些特殊的ip地址,有些网卡可能会有多个IP地址,这会导致ip地址不够用。
为了解决这个问题,就有了治标和治本的方法。
1.动态分配ip地址:只给接入网络的设备分配ip地址,所以对于同一个mac地址的主机来说,每次分配的ip地址不一定一样。
2.NAT技术
3.CIDR技术
4.DHCP技术
5.IPV6技术
前四个是治标的方法,而ipv6是治本的方法,ipv6的特点是用128个比特位表示地址,允许有2^128个主机。
**4.私有IP地址和公网IP地址 **
如果一个组织内部组建局域网,IP地址只用于局域网内的通信,而不直接连到Internet上,理论上 使用任意的IP地址都 可以,但是RFC 1918规定了用于组建局域网的私有IP地址
10. ,前8位是网络号,共16,777,216个地址
172.16.到172.31.11. .,前12位是网络号,共1,048,576个地址
192.168.*,前16位是网络号,共65,536个地址
包含在这个范围中的, 都成为私有IP, 其余的则称为全局IP(或公网IP)
路由器作用就像是一个学生会里传递老师和同学间的消息的部长,既有学生的职责又有部长的职责。
一个路由器可以配置两个IP地址, 一个是WAN口I
P, 一个是LAN口IP(子网IP).
路由器LAN口连接的主机, 都从属于当前这个路由器的子网中.
不同的路由器, 子网IP其实都是一样的(通常都是192.168.1.1).
子网内的主机IP地址不能重复. 但是子网之 间的IP地址就可以重复了. 每一个家用路由器, 其实又作为运营商路由器的子网中的一个节点. 这样的运营商路由器可能会有很多级, 外层的运营商路由器, WAN口IP就是一个公网IP了.
子网内的主机需要和外网进行通信时, 路由器将IP首部中的IP地址进行替换(替换成WAN口IP), 这样逐级 替换, 终数据包中的IP地址成为一个公网IP.
这种技术称为NAT(Network Address Translation,网络地 址转换).
如果希望我们自己实现的服务器程序, 能够在公网上被访问到, 就需要把程序部署在一台具有外网IP的服 务器上. 这样的服务器可以在阿里云/腾讯云上进行购买.
5.路由
在网络中找一条通向目标主机的路。
假如A主机发送一个数据报文目标主机为B主机。
A发送的IP报文首先到路由器中,路由器会根据ip地址和路由表来确定这个报文发送的方向。
反复如此直到发送到目标主机,或者耗费完生存时间丢弃。
在linux系统中输入route命令得到当前系统的路由表
路由表的Destination是目的网络地址,Genmask是子网掩码,Gateway是下一跳地址
Iface是发送接 口,Flags中的U标志表示此条目有效(可以禁用某些 条目),G标志表示此条目的下一跳地址是某个路由器的 地址,没有G标志的条目表示目的网络地址是与本机接口直接相连的网络,不必经路由器转发;
假设发送的数据报是192.168.142.6
先与255.255.255.0相与得到192.168.142.0和第二行的目标地址相同,由enss33发送出去。
假设发送的数据报是192.168.465.7
先与255.255.255.0相与得到192.168.456.0和第二行的目标地址不相同,执行第一行default的enss33发送出去,再由下一个路由器的路由表确定该数据报文发送路线。
常见的路由表生成算法有Dijkstra算法,链路向量选路算法,距离向量算法等。