Socket编程:网络地址的基本概念

2019-08-22  本文已影响0人  itfitness

目录

互联网地址的版本

互联网地址由二进制数字组成,有两种型式,分别对应了两个版本的标准互联网协议。现在最常用的版本是版本4,即IPv4,另一个版本是刚开始开发的版本6,即IPv6。
●IPv4
长度:32位
表示形式:点分十进制(如:10.1.2.3),其中四个数代表互联网地址的4个字节,每个数字的范围是0~255。
●IPv6
长度:128位
表示形式:由几组16进制数字表示,它们之间用分号隔开(如:2000:fdb8:0000:0000:0001:00ab:853c:39al),每组数字代表了互联网地址中的两个字节,并且每组开头的0可以省略(如第5、6组可以写为:1:ab)。甚至,只包含0的连续组可以全部省略(但在一个地址中只能这样做一次)。因此,该例子的完整地址可以表示为2000:fdb8::1:00ab:853c:39al。

网络接口

每个互联网地址代表了一台主机与底层的通信信道的连接,换句话说,也就是一个网络接口(network interface)。主机可以有多个接口,例如一台主机同时连接了有线以太网(Ethernet)和无线网(WiFi),我的电脑由于安装了VMware虚拟机因此还有虚拟网络接口。由于每个这样的连接都属于唯一的一台主机,所以只要它连接到网络,一个互联网地址就能定位这条主机。但是反过来,一台主机并不对应一个互联网地址。因为每台主机可以有多个接口,每个接口又可以有多个地址。(实际上一个接口可以同时拥有IPv4地址和IPv6地址)。

特殊的地址

●回环地址
该地址总是被分配个一个特殊的回环接口(loopback interface)。回环接口是一种虚拟设备,它的功能只是简单地将发送给它的报文直接回发给发送者。回环接口在测试中非常有用,因为发送给这个地址的报文能够立即返回到目标地址。而且每台主机上都有回环接口,即使当这台计算机没有其他接口(也就是说没有连接到网络),回环接口也能使用。IPv4的回环地址是127.0.0.1,IPv6的回环地址是0:0:0:0:0:0:0:1。
●私有地址
这类地址(在IPv6中没有相应的这类地址)最初是为了在私有网络中使用而设计的,不属于公共互联网的一部分。现在这类地址通常被用在家庭或小型办公室中,这些地方通过NAT(Network Address Translation,网络地址转换)设备连接到互联网。NAT设备的功能就像一个路由器,转发分组报文时将转换(重写)报文中的地址和端口。更准确地说,它将一个接口中报文的私有地址端口对(private address,port pairs)映射成另一个接口中的公有地址端口对(public address,port pairs)。这就使一小组主机(如家庭网络)能够有效地共享同一个IP地址。重要的是这些内部地址不能从公共互联网访问。
它们的范围是:
10.0.0.0~10.255.255.255
172.16.0.0~172.31.255.255
192.168.0.0~192.168.255.255
●多播地址
普通的IP地址(有时也称为“单播”地址)只与唯一一个目的地址相关联,而多播地址可能与任意数量的目的地址关联。IPv4中的多播地址在点分格式中,第一个数字在224~239之间。IPv6中,多播地址由FF开始。

端口

所谓的端口,就好像是门牌号一样,客户端可以通过ip地址找到对应的服务器端,但是服务器端是有很多端口的,每个应用程序对应一个端口号,通过类似门牌号的端口号,客户端才能真正的访问到该服务器。为了对端口进行区分,将每个端口进行了编号,这就是端口号。端口是通过端口号来标记的,端口号只有整数,范围是从0 到65535。

主机名与网络地址

我们访问服务器的时候为了方便一般都喜欢用主机名来访问(如:www.baidu.com),然而,互联网协议只能处理二进制的网络地址,而不是主机名。那么为什么我们可以通过主机名来访问呢?原因就在于当使用名字来定位一个通信终端时,系统将做一些额外的工作把名字解析成地址。这种解析的方式主要有两种,分别是域名系统(DNS)和本地配置数据库。DNS是一种分布式数据库,它将像www.baidu.com这样的域名映射到真实的互联网地址和其他信息上。DNS协议允许连接到互联网的主机通过TCP或UDP协议从DNS数据库中获取信息。本地配置数据库通常是一种与具体操作系统相关的机制,用来实现本地名称与互联网地址的映射。

上一篇下一篇

猜你喜欢

热点阅读