网络层是 TCP/IP 的心脏,主要负责终端节点之间的通信,把网络包从源主机发送到目标主机,所以这种通信也叫点对点的通信。这一层主要包含两个协议:IP 协议和 ICMP 协议,我们先来介绍 IP 协议。
网络层的作用
我们上一篇介绍的数据链路层只能在同一种数据链路上的节点之间进行通信,而一旦跨越多种数据链路,就需要借助网络层才能通信,网络层可以跨越不同的数据链路,实现两个节点之间的数据包传递,而这些不同的数据链路通常通过路由器来连接:
或者简单来说,在局域网内部需要数据链路层进行通信,而不同的局域网之间(互联网其实就是将多个不同的局域网连接起来实现互联)需要借助网络层才能通信,完整的计算机网络需要借助这两个分层才能最终完成通信。
IP地址
在计算机网络通信中,为了识别通信对端,需要一个类似于地址的识别码对节点进行标识,就好比找一个人需要门牌号一样,MAC 地址用于标识同一链路上的不同计算机,而网络层用于表示地址信息的是 IP 地址。
IP 地址用于在连接到网络的所有主机中识别出进行通信的目标地址,因此,在 TCP/IP 中所有主机或路由器必须设定自己的 IP 地址。IP 地址是 TCP/IP 通信的基石。
公网IP与私有IP
起初,互联网中任何一台主机和路由器都必须配置一个唯一的 IP 地址,然而,随着互联网的发展,IP 地址不足的问题日趋显著,于是就有了一种新技术,它要求不为每一台主机或路由器分配一个固定的 IP 地址,而是在必要的时候只为相应数量的设备分配唯一的 IP 地址。
尤其对那些没有连接到互联网的独立网络中的主机,只要保证在这个网络内地址唯一,可以不用考虑互联网即可配置相应的 IP 地址。不过,即使两个独立网络各自随意设置 IP 地址,也可能会出问题,比如两个独立网络互连时地址冲突,或者由于某种原因,需要连接到互联网,于是又出现了私有网络的 IP 地址,它的范围如下:
包含在这个范围内的 IP 地址都属于私有 IP,而在此之外的 IP 地址称为全局 IP,也叫公网 IP。
私有 IP 最早没有准备连接互联网,而只用于互联网之外的独立网络,不过当一种能够互换私有 IP 与公网 IP 的 NAT 技术诞生以后,配有私有地址的主机与配有全局地址的互联网主机实现了通信。
现在,每个学校、公司、家庭内部采用的正是在每个终端设置私有 IP 地址,在路由器或必要的服务器上设置公网 IP 地址,配置私有 IP 地址的主机连网时,通过 NAT 进行通信。
公网 IP 地址基本要在整个互联网内保持唯一,但私有 IP 地址不需要,只要在同一个域内保持唯一即可。在不同的域内出现相同的私有 IP 地址不影响使用。
宽带上网实现思路
有了上面的知识储备,想必你已经对我们平时公司、学校、家庭如何实现宽带上网有些眉目了,下面就来给大家捋一下。
在世界范围内,全局 IP 地址由 ICANN(互联网名称与数字地址配置机构)管理,在中国,由其下属 CNNIC 这个机构负责分配国内的公网 IP 地址分配。
在互联网广泛商用之前,用户需要直接向 CNNIC 申请公网 IP 地址才能上网,随着 ISP(互联网服务提供商,比如电信、联通、移动、华数)的出现,在向 ISP 申请接入互联网的同时还会申请公网 IP 地址,这种情况下,ISP 其实充当了用户与 CNNIC 之间的代理。
对于 FTTH(光纤到户) 和 ADSL 宽带服务(目前比较常见的两种宽带服务),网络服务提供商会直接给用户分配公网 IP 地址,并且每次用户重新连接互联网时,该 IP 地址都可能发生变化,这时的 IP 地址由提供商维护,不需要用户自行申请。当然这个公网 IP 地址是分配到路由器上的。
而我们通过有线或无线方式连接到路由器的计算机和手机的 IP 地址,则是由 DHCP 动态分配的私有 IP 地址。关于 DHCP 动态分配 IP 地址我们后面会单独介绍。
现在,一般只有在需要固定 IP 的情况下才需要申请公网 IP 地址,比如服务器、云主机等托管网站的主机节点。
小结
好了,有了上面的介绍,想必你应该对笔记本、台式机等计算机终端以及手机如何通过 IP 地址连接上互联网进行通信有了比较清楚的了解了吧,当然,这还只是一个比较感性的了解,下一篇开始我们将从技术层面来理性分析基于 IP 协议的网络层通信是如何实现的。