【网络】其他重要协议和技术 {DNS域名系统;DHCP动态主机配置协议;ICMP互联网控制消息协议;NAT网络地址转换技术:NAPT端口转换,内网穿透;代理服务器;隧道技术}

一、域名系统(DNS)

由于IP地址是一串难以记忆的数字(如192.0.2.1),人们设计了域名系统(DNS, Domain Name System)来将域名和IP地址相互映射,以便更方便地访问互联网资源。域名解析(Domain Name Resolution)是将域名转换为IP地址的过程。

在这里插入图片描述

1.1 DNS的背景

  • TCP/IP中使用IP地址和端口号来确定网络上的一台主机的一个程序. 但是IP地址不方便记忆.
  • 于是人们发明了一种叫主机名的东西, 是一个字符串, 并且使用hosts文件来组织管理主机名和IP地址的关系.
  • 最初是通过互连网信息中心(SRI-NIC)来管理这个hosts文件的。如果一个新计算机要接入网络, 或者某个计算机IP变更, 都需要到信息中心申请变更hosts文件。其他计算机也需要定期下载更新hosts文件才能正常上网。这样就太麻烦了, 于是产生了DNS系统.

DNS(Domain Name System)是一个用于将域名解析为对应IP地址的分布式系统。DNS是互联网基础设施的重要组成部分,充当了类似电话簿的功能,使用户可以通过易于记忆的域名访问互联网上各种服务和资源。

  • DNS服务器分布在全球各地,由互联网管理机构或网络服务提供商进行管理,服务器维护系统内的每个主机IP和域名的对应关系。

  • 如果新计算机接入网络并要申请域名, 就将这个信息注册到数据库中;用户输入域名的时候, 会自动查询DNS服务器, 由DNS服务器检索数据库, 得到对应的IP地址.

虽然现在有了更加方便地DNS服务,但是我们的计算机上仍然保留了hosts文件. 在域名解析的过程中仍然会优先查找hosts文件的内容.

提示:使用 cat /etc/hosts 命令查看hosts文件的内容


1.2 域名的组成

域名是用来识别主机名和主机所属机构的一种分层结构的名称。由多个部分组成,包括数字和字母,但每个标号(即用点分隔的每一部分)不超过63个字符,且除了连字符(-)外不能使用其他标点符号。级别最低的域名写在最左边,而级别最高的域名写在最右边。例如:

www.baidu.com
  • com: 一级域名,表示这是一个企业域名. 同级的还有 “net”(网络提供商), “org”(非盈利组织) 等.
  • baidu: 二级域名,公司名.
  • www: 主机名,用来表示主机支持的协议或提供的服务. 例如:www默认的主机名,表示万维网,是互联网上用来展示网页内容的一种服务;ftp主机名,用来指代FTP(File Transfer Protocol)服务,即文件传输协议服务。FTP是一种用于在网络之间传输文件的标准协议,允许用户上传和下载文件到或从远程服务器上。

注意:主机名只是一种习惯的用法,并不是访问所有网站都需要使用它,有些网站在访问时可以省略主机名,如访问baidu.com时会将域名直接重新定向到www子域。


1.3 域名解析的过程

当用户输入一个域名(如www.example.com)并尝试访问时,浏览器会向DNS服务器(位于运营商数据中心)发送一个查询请求。DNS服务器会查找该域名对应的IP地址,并将其返回给浏览器。浏览器随后使用该IP地址与对应的服务器建立连接,从而访问所需的资源。

  1. 查询:用户在浏览器中输入域名,浏览器向DNS服务器发送查询请求。
  2. 解析:DNS服务器查找域名对应的IP地址,并将其返回给浏览器。
  3. 连接:浏览器使用返回的IP地址与服务器建立连接,访问所需资源。

总之,域名和域名解析是互联网中不可或缺的部分,它们共同构成了网络世界的基石,使得人们能够方便地访问和共享各种网络资源。


二、动态主机配置协议(DHCP)

动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)是一种网络协议,用于自动分配IP地址、子网掩码、网关和其他网络参数给连接到网络的设备。

DHCP协议工作原理如下:

在这里插入图片描述

  1. 当客户端设备(如计算机、手机、网络打印机等)连接到网络时,它会向网络中的DHCP服务器发送一个“DHCP请求”。
  2. DHCP服务器收到请求后,会分配一个可用的IP地址给客户端,并返回一个“DHCP响应”包含IP地址、子网掩码、网关、DNS服务器等网络配置信息。
  3. 客户端接收到DHCP响应后,将配置信息应用到自己的网络连接上,从而能够与网络中的其他设备进行通信。

通过DHCP,网络管理员可以更轻松地管理大量设备的网络配置,避免了手动分配IP地址和配置网络参数的繁琐操作。DHCP还支持IP地址的动态分配(即客户端每次连接网络时可能分配到不同的IP地址),提高了网络资源的利用率。

提示:现在的家用路由器一般都集成DHCP服务,因此我们每次连接家里或学校的WIFI,IP地址都有可能不同,这就是DHCP的动态IP分配。


三、互联网控制消息协议(ICMP)

ICMP协议是一个网络层协议。

一个新搭建好的网络, 往往需要先进行一个简单的测试, 来验证网络是否畅通; 但是IP协议并不提供可靠传输. 如果丢包了, IP协议并不能通知传输层是否丢包以及丢包的原因.

ICMP(Internet Control Message Protocol)是互联网控制消息协议,是TCP/IP协议族的一部分,在网络通信中扮演重要的角色。ICMP主要用于传递有关网络情况和错误信息,以及网络设备之间的通信和故障排查。

3.1 主要特点和功能

在这里插入图片描述

以下是ICMP协议的一些主要特点和功能:

  1. 回显请求和应答:ICMP通过回显请求和回显应答用于测试目标主机是否可以正常通信,即常说的“PING”操作,可以检测网络连接和延迟情况。(确认IP包是否成功到达目标地址)
  2. 错误报文传递:ICMP可以向发送方通知包括目标不可达、超时、路由环路等错误信息,帮助网络设备快速响应并处理异常情况。(通知在发送过程中IP包丢失的原因)
  3. 路由发现:ICMP可以发送路由请求和应答消息,用于发现和确认网络链路中的路由信息,帮助确定数据包的最佳路径。
  4. MTU发现:ICMP可以帮助确定最大传输单元(MTU),即能够在网络中传输的最大数据包大小,避免数据包被分片导致传输效率降低。
  5. 时间戳请求和应答:ICMP支持时间戳请求和应答,用于计算网络数据包的往返时间和延迟情况,帮助优化网络性能。

ICMP和IP协议的关系

  • ICMP是IP协议的一个补充协议:ICMP是建立在IP协议之上,用于传递控制消息和错误信息的协议。ICMP消息被封装在IP数据包中,通过IP协议传输,并使用IP头来确定数据包的源和目的地址。
  • ICMP和IP的关系就类似于ARP和以太网协议的关系,所以ICMP被归于网络层,而ARP被归于链路层。
  • ICMP只能搭配IPv4使用。如果是IPv6的情况下,需要使用ICMPv6。

3.2 基于ICMP协议的网络工具

3.2.1 ping工具(网络诊断)

在这里插入图片描述

Ping是一种网络工具,用于测试主机之间是否能够通信,以及在网络上的传输速度。通过发送一个ICMP数据包到目标主机,然后等待目标主机返回该数据包,从而确定两者之间的网络连接状态。Ping工具通常用于诊断网络或服务器的连接问题,查找网络故障以及测试网络带宽。Ping工具在几乎所有操作系统中都有内置,通过命令行方式来使用。Ping命令通常如下:ping [目标主机或IP地址]。Ping工具可以帮助用户快速定位网络连接问题并进行排查。

在这里插入图片描述

  • 注意, 此处 ping 的是域名, 而不是url! 一个域名可以通过DNS解析成IP地址.
  • ping命令不光能验证网络的连通性, 同时也会统计响应时间和TTL(IP包中的Time To Live, 生存周期).
  • ping命令会先发送一个 ICMP Echo Request给对端;
  • 对端接收到之后, 会返回一个ICMP Echo Reply;

有些面试官可能会问: telnet是23端口, ssh是22端口, 那么ping是什么端口?
千万注意!!! 这是面试官的圈套。ping命令基于ICMP, 是在网络层. 而端口号, 是传输层的内容. 在ICMP中根本就不关注端口号这样的信息.


3.2.2 traceroute/mtr工具(数据包跟踪)

在这里插入图片描述

Traceroute和MTR(My TraceRoute)是两种网络工具,用于诊断网络中数据包传输的路径和延迟。

Traceroute工具通过发送一系列的ICMP数据包到目标主机,然后记录数据包经过的每个中间节点的IP地址,从而获取完整的数据包传输路径。Traceroute还能显示每个节点的延迟时间,帮助用户了解数据包在网络中的传输状况。Traceroute通常使用命令行:traceroute [目标主机或IP地址]

MTR是通过结合ping和traceroute的功能,提供更加全面的网络诊断信息。MTR工具会持续不断地发送ICMP数据包到目标主机,并同时显示每个中间节点的延迟时间,从而实时监测网络路径的延迟情况。MTR可以通过终端命令行:mtr [目标主机或IP地址]来进行使用。

总的来说,Traceroute和MTR工具都是用于帮助用户诊断网络连接问题、检测网络中的延迟、确认数据包传输路径等方面提供有用信息的网络工具。


四、网络地址转换(NAT)

NAT(Network Address Translation,网络地址转换)技术是一种将私有网络地址(如局域网内部地址)转换成公共网络地址(如互联网地址)的技术。这种技术通常被部署在连接私有网络与公共网络之间的路由器或防火墙上,以实现多台计算机共用一个公网IP地址上网。

4.1 NAT的基本原理

NAT技术的基本原理在于对IP数据报文中的IP地址进行转换。

在这里插入图片描述

  • 对于从私有网络发往公共网络的数据包,NAT设备会将其源IP地址(私有地址)转换为公共网络上的有效IP地址(公网地址),并记录这一映射关系。
  • 当公共网络上的响应数据包返回时,NAT设备会根据之前记录的映射关系,将目标IP地址(公网地址)转换回原始的私有IP地址,以确保数据包能够正确地送达私有网络内的目标设备。
  • 路由器可以提供网络地址转换的功能(NAT),其实就是将源IP地址(私有IP)转换为WAN口IP,并记录这一映射关系。
  • 在NAT路由器内部, 有一张自动生成的, 用于地址转换的路由表。当内网设备首次访问外网时就会生成表中的映射关系并保存一段时间(隧道打开),如果一段时间内再没有通过该映射的数据包转发则会将表中的映射关系清除(隧道关闭);

提示:

  • 当然,如果想从外部直接访问私有网络内的设备是不行的。因为从内向外目标是唯一的公网IP,而反过来从外向内目标却是私网IP是不唯一的。
  • NAT技术虽然最终能将私网IP转换为公网IP,但是如果局域网内, 有多个主机都访问同一个外网服务器, 那么对于服务器返回的数据中, 目的IP都是相同的. 那么NAT路由器如何判定将这个数据包转发给哪个局域网主机? 这就要用到NAPT技术了。

4.2 NAPT端口转换

NAPT(Network Address and Port Translation),网络地址和端口转换,是一种网络地址转换技术,用于在私有网络内部与公共网络之间进行IP地址转换和端口映射。NAPT通常用于家庭网络或企业内部网络,以便让多台设备共享一个公共IP地址。

NAPT通过将内部网络中的设备的私有IP地址和端口号映射到公共IP地址的不同端口上,实现内部网络中多个设备通过一个公共IP地址与外部网络通信。

简单来说NAT在替换的时候,不仅会替换IP,还会替换port。

在这里插入图片描述

如上图:

  • 客户端A,B同时向同一服务器(IP端口号相同)发送数据,且他们的端口号相同都是1025。
  • 此时NAT路由器会在地址转换的过程中将两客户端的IP和端口号映射到映射到公网IP地址的不同端口上(随机、闲置的),一个1025,一个1026。
  • 这样一来虽然经过转换二者的公网IP相同,但是端口号不同。来自服务端的响应数据抵达路由器后,路由器会根据不同的端口号查找对应不同的映射关系,从而确定不同的私有IP。(公网IP+port任然是唯一的,通过地址转换对应私网内的唯一一个主机的应用程序)

提示:这种关联关系也是由NAT路由器自动维护的. 例如在TCP的情况下, 建立连接时, 就会生成这个表项; 在断开连接后, 就会删除这个表项


4.3 NAT技术的优缺点

NAT的优缺点

优点

  1. 节省公网IP地址资源:通过NAT技术,多个内部设备可以共享一个公网IP地址,从而有效地缓解了IPv4地址短缺的问题。
  2. 增强网络隐蔽性:由于NAT技术的存在,外部网络无法直接看到内部网络的拓扑结构和设备信息,从而增强了网络的隐蔽性。
  3. 提高网络安全性:NAT技术隐藏了内部网络的真实IP地址,减少了外部网络对内部网络的直接访问和攻击的可能性。

缺点

  1. 无法从外部直接访问私有网络中的设备:只能直接访问公网IP,不能直接访问私网IP
  2. 增加网络延迟:NAT技术需要对数据包进行地址转换和端口转换、还包括路由表项的生成等操作,这可能会增加数据包的传输延迟和网络的响应速度。
  3. 限制某些应用:NAT技术可能会限制一些需要直接P2P通信的应用程序(如某些在线游戏和文件共享软件)的带宽和性能。
  4. 配置复杂:在某些情况下,NAT技术的配置可能相对复杂,需要管理员具备一定的网络知识和技能。

NAT的典型应用场景

NAT技术广泛应用于各种私有网络(如园区网、家庭网)与公共网络(如互联网)之间的互联互通。通过NAT技术,私有网络内部的主机可以使用私有地址与互联网上的主机进行通信,而无需为每个主机分配一个独立的公网IP地址。这不仅节省了公网IP地址资源,还提高了网络的安全性和隐蔽性。


4.4 内网穿透

内网穿透技术是一种重要的网络技术,它允许网络用户通过公共网络(如互联网)访问私有网络(如局域网)中的资源。

内网穿透,也被称为NAT穿透,其核心原理在于利用中间服务器(通常称为“跳板机”或“中继服务器”)作为桥梁,将来自公共网络的连接请求转发到私有网络中的特定设备或应用。由于私有网络通常被防火墙或NAT(网络地址转换)设备保护,外部网络无法直接访问内部资源,因此需要通过内网穿透技术来实现通信。

内网穿透技术在多个领域都有广泛的应用,包括:远程办公、智能家居、游戏联机、服务器部署等等。

实现方法

内网穿透技术有多种实现方法,以下是几种常见的方法:

  1. 端口映射:通过配置NAT设备(如路由器),将外部网络的特定端口映射到内部网络设备的某个端口上。这样,外部网络就可以通过访问NAT设备的公共IP地址和映射端口来访问内部设备。(需要在所有上层网络的NAT设备中增加转换规则,在我国的大内网环境中基本不太可能)
  2. 反向代理:通过在公共网络上部署一个代理服务器,将外部连接请求转发到私有网络中的目标设备。这种方法需要目标设备能够主动连接到代理服务器,并在代理服务器上注册其地址和端口信息。(通信受代理服务器的带宽限制和监控)
  3. VPN(虚拟专用网络):VPN通过在公共网络上建立加密通道,实现私有网络资源的远程访问。用户设备上安装客户端软件后,可以通过VPN服务器连接到私有网络,从而实现对内部资源的访问。(其原理类似于代理服务器,但还具有加密数据、保证数据完整、身份认证等职责,更安全更私密)
  4. 穿透技术:这些技术通过隧道协议在公共网络上建立加密通道,实现私有网络资源的远程访问。它们通常不需要目标设备具有公网IP地址,只需在目标设备上运行穿透客户端软件即可。穿透技术分为udp穿透和tcp穿透两种。(与代理服务器不同,其公网服务器不作为通信过程的中间设备,只为通信双方提供一个交换NAT设备的公网IP+port的平台,隧道打通后位于私有网络的通信双方可以直接互传数据)

相关工具

  • ZeroTier:ZeroTier是一款利用 UDP 打洞来实现内网穿透的工具,相比其他工具成功率更高、部署更简单。其基本工作原理是组建一个虚拟局域网,各个设备(NAS、Linux、Windows、Mac、iOS、Android)安装了客户端、加入到这个虚拟局域网后,就会自动分配一个IP,从而实现局域网内各个设备及服务的相互访问。特点:部署简单、免费、不安全、连接不稳定。(ZeroTier的工作原理与使用
  • FRP (Fast Reverse Proxy) 是一个高性能的反向代理应用,它帮助你将本地网络服务暴露到公共互联网上。这对于没有公网IP或者处于复杂网络环境中的本地服务来说是非常有用的。(FRP的基本工作原理

参考文章


五、代理服务器

代理服务器可以接收客户端的请求,并代表客户端向服务器发起请求,然后将服务器返回的数据转发给客户端。其工作原理主要基于网络协议(如HTTP、HTTPS、FTP等)的转发机制。当客户端发起请求时,代理服务器会接收请求并解析出目标服务器的地址和端口,然后以自己的身份向目标服务器发起请求。目标服务器在接收到请求后,会将数据返回给代理服务器,代理服务器再将数据转发给客户端。

功能

  1. 隐私保护:代理服务器可以隐藏客户端的真实IP地址,使得客户端在访问网络时不易被追踪和识别。这有助于保护用户的隐私和安全。
  2. 内容过滤:代理服务器可以根据预定义的规则过滤内容,阻止访问不良网站或恶意内容,提高网络使用的安全性。
  3. 缓存机制:代理服务器可以缓存常访问的内容,提高访问速度,减少带宽消耗。这对于经常访问相同内容的用户来说,可以显著提高浏览速度和效率。
  4. 访问控制:企业、学校等机构可以利用代理服务器限制用户访问某些不适当的网站或服务,实现网络访问的管控。
  5. 负载均衡:在大型网络环境中,代理服务器可以将请求分发到多台目标服务器上,实现负载均衡,提高系统的可扩展性和可靠性。

正向代理和反向代理

在这里插入图片描述

正向代理:

  1. 客户端向正向代理发送请求,正向代理将请求转发给互联网上的目标服务器。
  2. 目标服务器将响应发送给正向代理,然后正向代理再将响应返回给客户端。
  3. 正向代理隐藏了客户端的IP地址,起到了代理和隐私保护的作用。

反向代理:

  1. 客户端发送请求到反向代理服务器,反向代理服务器根据配置将请求转发给内部网络中的多台服务器中的一台。
  2. 内部服务器处理请求并生成响应,然后将响应发送给反向代理服务器。
  3. 反向代理服务器再将内部服务器的响应返回给客户端,隐藏了内部服务器的实际IP地址。
  4. 反向代理常用于负载均衡、安全防护、缓存加速等,提高了网站的性能和可靠性。

相关工具

  • nginx:Nginx是一个高性能的开源Web服务器,同时也可以作为反向代理服务器、负载均衡器和HTTP缓存服务器。其采用事件驱动的异步架构,具有高性能、低资源消耗和高可靠性的特点,被广泛应用于互联网服务中。Nginx支持静态文件缓存、负载均衡、反向代理等功能,提高网站性能和可靠性,成为许多大型网站和服务的首选服务器。
  • frp:上面提到过

六、隧道技术

隧道技术通过封装运作,将一个数据包包装在另一个数据包中,从而实现在网络之间传输数据。这种封装使得数据可以穿越不兼容的网络,或者在不安全的网络上传递时提供安全路径。被封装的数据包在隧道的两个端点之间通过公共互联网络进行路由,一旦到达网络终点,数据将被解包并转发到最终目的地。

隧道技术的原理是通过使用一个逻辑上的通道(隧道),将数据封装在其他协议的数据包中,在网络中传输数据。这个通道实际上是在源和目的地之间创建了一个安全的、私密的连接,使得数据可以在这个连接上由源端传输到目的端。

下面是隧道技术的工作原理:

  1. 封装数据包: 首先,原始的数据包会被封装在隧道协议的数据包中。封装过程会在源端的数据包添加额外的首部信息,用于标记和识别这是一个隧道数据包。

  2. 传输数据包: 经过封装后的数据包通过公共网络传输,由隧道技术确保数据包的安全传输。通常会使用加密技术来保护数据隐私和完整性。

  3. 解析数据包: 在目的端,接收到的数据包被解析,去除隧道协议的首部信息,提取原始数据包,并将其传递给目的应用程序。

  4. 传输结束: 封装和解析过程使得原始数据包在网络中得以传输,保持了数据的保密性和完整性。一旦数据包在目的端被解析并传递给目的应用程序,隧道连接就可以释放。

总的来说,隧道技术的原理是在通信的两端之间创建一个逻辑上的安全通道,通过对数据包的封装和解析来实现安全、私密、可靠的数据传输。这种技术在 VPN、SSH、SSL 等网络安全领域广泛应用,为网络通信提供了更安全、更可靠的传输方式。

虚拟专用网络VPN

VPN(Virtual Private Network,虚拟私人网络)是一种通过公共网络(如互联网)在私人网络之间建立安全连接的技术。VPN可以创建一个加密的隧道,通过这个隧道传输数据,并提供安全性、隐私性和匿名性。

以下是 VPN 的一些主要特点和功能:

  1. 隐私保护: VPN 可以加密传输的数据,防止第三方窥探和截取信息,从而保护用户的隐私。

  2. 访问地理受限内容: VPN 可以通过连接到不同位置的服务器,帮助用户实现绕过地理位置限制,访问其他国家或地区的内容。

  3. 安全连接: VPN 提供端对端的加密连接,使得数据在传输过程中得到保护,确保数据的安全性。

  4. 匿名性: VPN 可以隐藏用户真实 IP 地址,提供匿名的网络访问,防止个人信息被追踪和监视。

  5. 远程访问: 公司可以通过 VPN 提供给员工远程访问公司网络资源的权限,确保远程办公时的数据安全性。

  6. 防火墙绕过: VPN 可以绕过网络防火墙限制,访问被封锁的网站和服务。

SOCKS5协议

SOCKS5(Socket Secure 5)是一种网络协议,用于在计算机网络上建立安全的隧道连接,允许客户端通过代理服务器访问远程服务器。以下是 SOCKS5 协议的一些主要特点和功能:

  1. 代理服务器: SOCKS5 协议允许客户端通过连接到代理服务器,代理服务器再转发请求到目标服务器。这种中间代理的方式可以帮助用户匿名地浏览网站,隐藏真实 IP 地址。

  2. 认证机制: SOCKS5 提供有多种认证方式,包括无需认证、用户名/密码认证和 GSS-API 认证。这有助于保护代理服务器免受未经授权的访问。

  3. 网络层支持: SOCKS5 不仅支持 TCP 连接,还支持 UDP 连接,这使得可以在更广泛的应用场景下使用,并实现更多种类的网络通信。

  4. 加密支持: SOCKS5 协议本身并不提供加密功能,但可以通过与其他加密协议(如 TLS 或 SSL)结合使用,实现数据的加密传输。

  5. 端口转发: SOCKS5 可以实现端口转发,使得可以通过代理服务器访问内部网络或其他受限制的资源。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

52Hertz_Echo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值