5 网络层----IP协议相关技术

5.1 DNS(域名解析协议)

5.1.1 域名服务器

域名是分层结构,域名服务器也是对应的层级结构。
有了域名结构,还需要有一个东西去解析域名,域名需要由遍及全世界的域名服务器去解析,域名服务器实际上就是装有域名系统的主机。

由高向低进行层次划分,可分为以下几大类:

5 网络层----IP协议相关技术

注:一个域名服务器所负责的范围,或者说有管理权限的范围,就称为区
我们需要注意的是:
1. 每个层的域名上都有自己的域名服务器,最顶层的是根域名服务器
2. 每一级域名服务器都知道下级域名服务器的IP地址
3. 为了容灾, 每一级至少设置两个或以上的域名服务器


5.1.2 域名解析过程

(1) 输入域名后, 先查找自己主机对应的域名服务器,域名服务器先查找自己的数据库中的数据.
(2) 如果没有, 就向上级域名服务器进行查找, 依次类推
(3) 最多回溯到根域名服务器, 肯定能找到这个域名的IP地址
(4) 域名服务器自身也会进行一些缓存, 把曾经访问过的域名和对应的IP地址缓存起来, 可以加速查找过程
5 网络层----IP协议相关技术

5.2 ARP(地址解析协议)

网络层实现主机之间的通信,而链路层实现具体每段链路之间的通信。因此在通信过程中,IP 数据报的源地址和目的地址始终不变,而 MAC 地址随着链路的改变而改变。

ARP 实现由 IP 地址得到 MAC 地址。

5 网络层----IP协议相关技术

每个主机都有一个 ARP 高速缓存,里面有本局域网上的各主机和路由器的 IP 地址到 MAC 地址的映射表。

如果主机 A 知道主机 B 的 IP 地址,但是 ARP 高速缓存中没有该 IP 地址到 MAC 地址的映射,此时主机 A 通过广播的方式发送 ARP 请求分组,主机 B 收到该请求后会发送 ARP 响应分组给主机 A 告知其 MAC 地址,随后主机 A 向其高速缓存中写入主机 B 的 IP 地址到 MAC 地址的映射。

5 网络层----IP协议相关技术

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

5.3 ICMP(网际控制报文协议)

ICMP的主要功能包括,确认IP包是否成功送达目标地址,通知在发送的过程中IP包被遗弃的具体原因,改善网络设置等。有了这些功能后,就可以获得网络是否正常、设置是够有误以及设备有何异常等信息,从而便于进行网络上的问题诊断。

ICMP 报文分为差错报告报文和询问报文。

5 网络层----IP协议相关技术

Ping:

Ping 是 ICMP 的一个重要应用,主要用来测试两台主机之间的连通性。

Ping 的原理是通过向目的主机发送 ICMP Echo 请求报文,目的主机收到之后会发送 Echo 回答报文。Ping 会根据时间和成功响应的次数估算出数据包往返时间以及丢包率。

Traceroute :

Traceroute 是 ICMP 的另一个应用,用来跟踪一个分组从源点到终点经历多少路由器。

Traceroute 发送的 IP 数据报封装的是无法交付的 UDP 用户数据报,并由目的主机发送终点不可达差错报告报文。

  • 源主机向目的主机发送一连串的 IP 数据报。第一个数据报 P1 的生存时间 TTL 设置为 1,当 P1 到达路径上的第一个路由器 R1 时,R1 收下它并把 TTL 减 1,此时 TTL 等于 0,R1 就把 P1 丢弃,并向源主机发送一个 ICMP 时间超过差错报告报文;
  • 源主机接着发送第二个数据报 P2,并把 TTL 设置为 2。P2 先到达 R1,R1 收下后把 TTL 减 1 再转发给 R2,R2 收下后也把 TTL 减 1,由于此时 TTL 等于 0,R2 就丢弃 P2,并向源主机发送一个 ICMP 时间超过差错报文。
  • 不断执行这样的步骤,直到最后一个数据报刚刚到达目的主机,主机不转发数据报,也不把 TTL 值减 1。但是因为数据报封装的是无法交付的 UDP,因此目的主机要向源主机发送 ICMP 终点不可达差错报告报文。
  • 之后源主机知道了到达目的主机所经过的路由器 IP 地址以及到达每个路由器的往返时间。

5.4 DHCP(动态主机设置协议)

使用DHCP之前,首先要架设一台DHCP服务器。然后将DHCP所要分配的IP地址设置到服务器上。此外还要将相应的子网掩码、路由控制信息以及DNS副武器的地址等设置到服务器上。

从DHCP中获取IP地址的流程,主要分为两个阶段

5 网络层----IP协议相关技术

 5.5 NAT(网络地址转换)

专用网内部的主机使用本地 IP 地址又想和互联网上的主机通信时,可以使用 NAT 来将本地 IP 转换为全局 IP。

5 网络层----IP协议相关技术

上图是一个以10.0.0.10 的主机与163.221.120.9 的主机进行通信的例子。途中的NAT路由器将发送源地址从10.0.0.10 转换为全局的IP地址(202.244.174.37)再发送数据,反之,当包从地址163.221.120.9发过来时,目的地址(202.244.174.37)先被转换为私有IP地址10.0.0.10 以后再被转发。

 在以前,NAT 将本地 IP 和全局 IP 一一对应,这种方式下拥有 n 个全局IP 地址的专用网内最多只可以同时有 n 台主机接入互联网。为了更有效地利用全局IP 地址,现在常用的 NAT 转换表把传输层的端口号也用上了,使得多个专用网内部的主机共用一个全局IP 地址。使用端口号的 NAT 也叫做网络地址与端口转换 NAPT。

 5 网络层----IP协议相关技术

在上图中,主机163.221.120.9 的端口号是80,LAN中有两个客户端10.0.0.10和10.0.0.11 同时进行通信,并且这两个客户端的本地端口都是1025 。此时,仅仅转换IP地址为某个全局地址202.244.174.37,会令转换后的所有数字完全一致。为此,只要将10.0.0.11的端口号转换为1026就可以解决问题。生成一个NAPT路由器的转换表,就可以正确的转换地址跟端口的组合,令客户端A、B能同时与服务器之间进行通信。