✨感谢您阅读本篇文章,文章内容是个人学习笔记的整理,如果哪里有误的话还请您指正噢✨
✨ 个人主页:余辉zmh–CSDN博客
✨ 文章所属专栏:Linux篇–CSDN博客
文章目录
- 其他重要协议或技术
- 1.DNS
- 2.ICMP协议
- 3.NAT技术
- 4.代理服务器
其他重要协议或技术
1.DNS
什么是DNS?
DNS(域名解析系统)是互联网的“电话簿”。它的作用是将人们易于记忆的域名(比如www.baidu.com)转换为计算机可以识别的IP地址,从而实现网络通信。
DNS的工作原理
-
用户输入域名
用户在浏览器中输入一个网址(如 www.baidu.com)。
-
本地DNS缓存查询
操作系统会先检查本地是否有该域名的IP地址缓存。如果有,直接返回IP地址。
-
递归查询
如果本地没有缓存,系统会向本地DNS服务器(通常由网络运营商提供)发起查询请求。
-
本地DNS服务器查询
- 本地DNS服务器先查找自己的缓存。
- 如果没有,再向根DNS服务器发起请求。
-
根DNS服务器
根服务器告诉本地DNS服务器,负责该顶级域(如.com、.cn)的顶级域名服务器(TLD)的地址。
-
顶级域名服务器(TLD)
TLD服务器告诉本地DNS服务器,负责该具体域名(如baidu.com)的权威DNS服务器的地址。
-
权威DNS服务器
权威DNS服务器返回该域名对应的IP地址。
-
返回结果
本地DNS服务器将IP地址返回给用户的电脑,电脑再与目标服务器建立连接。
DNS解析的类型
- 正向解析:域名->IP地址(最常见);
- 反向解析:IP地址->域名;
DNS的层级结构
- 根域(Root):全球只有13组根服务器,负责顶级域的管理;
- 顶级域(TLD):比如.com,.net,.cn等;
- 二级域:比如baidu.com中的baidu;
- 子域:比如www.baidu.com中的www;
2.ICMP协议
ICMP是一个网络层协议
一个新搭建好的网络,往往需要先进行一个简单的测试,来验证网络是否通畅;但是IP协议并不提供可靠传输;如果丢包了,IP协议并不能通知传输层是否丢包以及丢包的原因。
而ICMP正是提供这种功能的协议;ICMP主要功能包括:
- 确认IP包是否成功达到目标地址;
- 通知在发送过程中IP包被丢弃的原因;
- ICMP也是基于IP协议工作的,但是他并不是传输层的功能,因此人们仍然把它归结为网络层协议;
- ICMP只能搭配IPv4使用,如果是IPv6的请求下,需要使用ICMPv6;
ping命令
基于ICMP协议实现的,可以验证网络的连通性。
- 注意,此处ping的是域名,而不是URL,一个域名可以通过DNS解析成IP地址;
- ping命令不光能验证网络的连通性,同时也会统计响应时间和TTL(IP包的生存周期);
- ping命令会发送一个
ICMP Echo Request
给对端;- 对端接收到之后,会返回一个
ICMP Echo Reply
;
问题:telnet的端口号是23,ssh的端口号是22,那ping的端口号是多少?
ping没有端口号;因为端口号是TCP或UDP协议用来区分上层的不同应用进程的,属于传输层协议的概念,telnet和ssh都是基于TCP协议的应用层服务,所以有端口号;而ping命令是基于网络层的ICMP协议实现的,并不使用端口号,它实际上是向目标主机发送回显请求报文(
ICMP Echo Request
),对方收到之后回复回显应答报文(ICMP Echo Reply
)。ping命令无法指定端口号,只能测试目标主机的网络连通性,而不能测试某个具体服务是否可用。
traceroute命令
也是基于ICMP协议实现,能够打印出可执行程序主机,一直到目标主机之前经历多少路由器。
3.NAT技术
1.NAT技术背景
之前讲解网络层时提到过IPv4协议中,IP地址数量不充足的问题;而NAT技术是当前解决IP地址不够用的主要手段,是路由器的一个重要功能。
NAT能够讲私有IP对外通信时转换为公网IP,也就是一种将私有IP和公网IP相互转换的技术方法;
很多学校,家庭,公司内部采用每个终端设置私用IP,而在路由器或必要的服务器上设置公网IP;
公网IP要求唯一性,但是私有IP只在同一局域网中要求唯一性,在不同的局域网中出现相同的私有IP是完全不影响的。
2.NAT IP转换过程
- NAT路由器将源地址从
10.0.0.10
替换成公网IP202.244.174.27
;- NAT路由器收到外部的数据时,又会把目标IP从
202.244.174.47
替换成10.0.010
;- 在NAT路由器内部,有一张自动生成,用于地址转换的表;
- 当
10.0.0.0
第一次向163.221.120.9
发送数据时就会生成表中的映射关系;
3.NAPT
但是这里就有个疑问了:
假设局域网中有3台主机,IP分别为A,B,C;他们通过同一个路由器(NAT设备)访问同一个公网服务器;路由器只有一个公网IP;所以服务器的应答包返回时,都是先发给这个公网IP对应的路由器,那路由器如何知道这些应答包应该转发给A,B,C中的哪一个呢?
所以这里要讲解一个关键点:
NAT设备不仅仅转化IP地址,还会转化端口号,这就是端口地址转化技术,也叫NAPT。
具体过程如下
内网主机发起连接
- A主机
10.0.0.10:1025
->服务器163.221.120.9:80
- B主机
10.0.0.11:1025
->服务器163.221.120.9:80
- C主机
10.0.0.12:1025
->服务器163.221.120.9:80
NAT设备转化内
路由器将每个连接的源IP和源端口号,转换为自己的公网IP和唯一的端口号,并建立映射表。
10.0.0.10:1025
—>202.244.174.37:1025
10.0.0.11:1025
—>202.244.174.37:1026
10.0.0.12:1025
—>202.244.174.37:1027
服务器应答
- 服务器收到请求后,回复数据包到路由器
NAT设备查表转发
路由器收到应答包后,根据端口号查找映射表:
202.244.174.37:1025
—>10.0.0.10:1025
202.244.174.37:1026
—>10.0.0.11:1025
202.244.174.37:1027
—>10.0.0.12:1025
然后将数据包转发给对应的内网主机;
一个注意点:
路由器收到来自内网主机的数据包时,会为每个连接分配一个唯一的公网端口号;这个公网端口号不是用来区分路由器上的不同应用进程的(端口号在主机上的作用),而是用来在NAT转换表中区分不同的连接,即区分不同的内网主机和它们的会话,(端口号在路由器上的作用)。
4.代理服务器
1.什么是代理服务器?
代理服务器是一种位于客户端和目标服务器之间的中间服务器。客户端通过代理服务器访问目标资源,代理服务器会转发请求并返回结果。
代理服务器的作用包括:隐藏真实IP,访问受限资源,缓存加速,负载均衡,安全防护。
2.正向代理
- 定义:
正向代理是指客户端知道目标服务器的地址,但不能直接访问,需要通过代理服务器“代为”访问。
代理服务器位于客户端和目标服务器之间,代表客户端向外部发起请求。
- 典型应用场景
- 访问被屏蔽的网站(比如翻墙);
- 隐藏客户端真实IP;
- 突破内网访问限制;
- 例子:学校里的正向代理服务器
场景描述:
学校内部网络处于安全或管理原因,禁止学生电脑直接访问外网。学校部署了一台代理服务器,所有学生上网时,必须先把请求发给这台代理服务器,由它去访问外网,再把结果返回给学生。
说明:
- 学生电脑配置了代理服务器的地址;
- 代理服务器收到请求后,代表学生去访问外网;
- 外网服务器看到的请求来源是学校代理服务器的IP,而不是学生的真实IP;
3.反向代理
- 定义
反向代理是指客户端并不知道目标服务器的真实地址,只知道代理服务器的地址。
代理服务器位于外部网络和内部服务器之间,代表内部服务器接收外部请求,并将请求转发到后端服务器。
-
典型应用场景
- 负载均衡(分布请求到多台后端服务器);
- 安全防护(隐藏真实服务器IP,防止攻击);
- 缓存加速(代理服务器缓存静态资源);
-
例子:公司里的负载均衡反向代理服务器
场景描述:
公司有多个Web服务器对外提供服务,如果公司里所有用户都只访问某些个服务器,就会导致其余服务器一直处于闲置状态,分布不均衡;所以为了提升性能和可靠新,公司在外网部署了一台负载均衡服务器,所有用户访问公司网站时,先访问负载均衡服务器,由它根据负载情况把请求分布到后端的某一台服务器上。
说明:
- 用户只知道负载均衡服务器的IP,不知道后端Web服务器的真实IP;
- 负载均衡服务器根据策略把请求转发到不同的Web服务器;
- 后端服务器的安全性和可用性都得到了提升;
以上就是关于网络中其他重要的协议和技术的讲解,如果哪里有错的话,可以在评论区指正,也欢迎大家一起讨论学习,如果对你的学习有帮助的话,点点赞关注支持一下吧!!!