计网程序猿阵线联盟-汇总各类技术干货将来跳槽用

IP 协议相关技术(六)

2017-10-29  本文已影响112人  ZhengYaWei

TCP/IP 系列文章

网络基础知识(一)
TCP/IP基础知识(二)
物理层(三)
数据链路层(四)
IP 协议(五)
IP 协议相关技术(六)
TCP与UDP(七)

这篇文章主要简单介绍一下 IP 协议中的 DNSARPRARPNATNAPT等。

一、DNS

专业的说DNS是域名系统 (Domain Name System)的简称,也是IT人士常说的域名解析系统。主要是让用户在互联网上通过域名找到域名对应的IP地址,因为IP地址都是一串数字(例如:192.168.0.1)不方便记忆,便诞生了域名,将域名和IP地址捆绑在一起,人们在访问域名的同时等于访问了该域名对应的IP地址了。

举一个简单的例子,域名相当于门牌号,而IP地址相当于具体的地理位置。像景安网络所在的位置用IP地址来说是郑州市花园路144号,域名是信息大厦,很显然信息大厦更方便人们记忆,在交谈中也是说信息大厦而不是说花园路144号。

大家都知道,我们在上网的时候都是输入:host.zzidc.com这样的域名访问网站的。其实我们访问的是和域名绑定在一起的那个IP上的内容,DNS域名解析系统是用来捆绑IP地址和域名从而方便人们记忆和访问的。

域名是分层的,每层都有自己的 DNS 服务器用于处理 DNS 解析的请求。这种分层结构看起来像是一个倒挂的数。顶点是树的根,底下是树的各层枝叶。如下图顶点的下一层是第一层域名,包括 jp(日本)、uk(英国)等。


域名的分层

域名分层的好处在于每层的服务器不用关注过多的信息,它只要知道自己这一层下的域名服务器信息即可。以解析域名: www.ietf.org为例,具体流程讲解请看图片中的文字,要注意各个域的分层上都设有各自的域名服务器。

域名解析过程

二、ARP 和 RARP

2.1 ARP

ARP 协议(Address Resolution Protocol)主要用于通过目标 IP 地址,定位下一个接收数据包的网络设备的 MAC 地址。如果目标主机处在同一个数据链路上,那么可以直接得到目标主机的 MAC 地址,否则会得到下一条路由器的 MAC 地址。

ARP 主要是借助 ARP 请求 与 ARP 响应两种类型的包确定 MAC 地址。具体流程如下图。


ARP获取MAC地址机制

2.2 RARP

RARP 是将 ARP 反过来,从 MAC 地址定位 IP 地址的一种协议。

通常可以通过个人电脑设置 IP 地址。但是对于嵌入式设备,会遇到没有任何输入接口或无法通过 DHCP 动态获取 IP 地址的情况。这种情况下,就可以通过使用 RARP 解决 IP 问题。如将打印机服务器等小型嵌入式设备接入到网络时机会经常用到。

RARP机制流程

三、IP 和 MAC 缺一不可

MAC 地址 和 IP 地址虽然看上去功能类似(都是用于唯一区分主机),但是两者缺一不可。

如果只有 IP 地址,虽然可以跳过 ARP,直接在数据链路上发一个广播,获取到直接连接设备的 Mac 地址,但是这仅适用于通信双方处于同一个数据链路下的情况。如果双方处于不同的数据链路,数据报无法穿透中间的路由器。如下图A和C不处于同一数据链路,假设A发送 IP 数据报给主机B时,必须要经过路由器C。即使知道了主机B的Mac地址,由于路由器C会隔断两个网络,还是无法实现直接从主机A发送数据报给主机B。此时,主机A必须得先将数据报发送个路由器C的Mac地址C1。


如果只有 MAC 地址,人们无法知道这台计算机处在网络中的位置。这就好比你只知道这人的身份证号,然后根据身份证号满大街去找此人。如果全世界的设备都使用 MAC 地址相连,那么网桥在习的之前就要像全世界发送包,这样该需要多大的流量。另外,网桥也需要维护一张巨大的表格来维护学到的所有 MAC 地址。显然基于以上两点,只有 MAC 地址时不现实的。

为了更深刻的理解这个问题,这里可以举一个例子。一人计划去很远的地方陆行,且先后乘坐飞机、火车、公交到达目的地。谓词,绝度那个先去旅行社买机票和火车票。旅行社不仅为他预定了机票和火车票,甚至还制定了一个详细的行程表。每一截区间路程就相当于数据链路,机票或火车票就相当于Mac地址,每到一区间,就找下一区间的Mac地址。而整个全程的行程表就相当于网络层。


四、NAT 和 NAPT

NAT是用于在本地网络中使用私有地址,在连接网络时转而使用全局 IP 地址的技术。NAPT 技术主要是用来转换 TCP、UDP 的端口号。借助这两个技术可以实现一个全局 IP 地址与多个主机的通信。

在连接上无线路由器的时候,如果检查一下设备的 IP 地址,你可能会发现类似于 192.168.1.1 这样的局域网 IP 地址。那不同网段中,IP 地址都是 192.168.1.1 的主机改如何通信呢?


上图中,局域网中 IP 地址为 10.0.0.10 的主机向全局 IP 地址 163.221.120.9 发送数据。NAT 路由器将数据包的源地址修改成全局 IP 地址 202.244.174.37。接收数据时,NAT 路由器把目标地址 202.244.174.37 修改成内网地址 10.0.0.10 。实际上 之所以能完成这种一来一回的对应修改,主要是因为在 NAT 路由器的内部缓存有一张用来转换 IP 的表。

当私有网络内的多台机器同事要与外部进行通信的时候,仅仅转换 IP 地址,人们不免担心全局 IP 地址不够使用。这是就采用 IP 地址中包含端口号一起进行转换的方式(即 NAPT 技术)解决这个问题,如下图所示。这里既然说到端口号就顺带提一下,通常认为只有在目标地址、原地址、目标端口号、源端口号以及协议类型(TCP 还是 UDP)这五项内容都一致的时候才被认为是同一个通信连接。


上一篇下一篇

猜你喜欢

热点阅读