【Hello Network】DNS协议 NAT技术 代理服务器

本文涉及的产品
公网NAT网关,每月750个小时 15CU
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: 【Hello Network】DNS协议 NAT技术 代理服务器

DNS

DNS是一整套从域名映射到IP的系统

DNS背景

为什么要有域名

其实作为我们程序员来说 使用域名还是IP地址是无所谓的

但是站在商业公司和用户的角度就不这么认为了

商业公司希望用户能够快速的记住自己公司的网址 而用户也希望自己喜欢网站的网址好记一点 方便访问

这个时候域名的作用就显现出来了 它能够让ip地址变得更好记

DNS介绍

它是怎么工作的

b90b8c27ef574e2d85be10453fdf52cc.png

我们在浏览器中输入网址之后 该网址就会首先发送给域名解析服务器

在解析完毕之后 域名解析服务器就会返回给我们一个ip地址

之后我们就可以用这个ip地址访问真正的服务器了

域名服务器的重要性

有的同学可能会认为域名服务器所做的工作十分简单 可有可无

但是实际上域名服务器是一种十分重要的网络技术

有人可能会说 我们不是可以直接用ip地址访问吗

对 是可以这样子做 这是因为我们是程序员 或多或少有一定的知识储备 事实上让全体国民都放弃使用域名而使用ip不现实

就比如在伊拉克战争期间 美国关停了域名服务器对于伊拉克的服务 导致伊拉克的互联网企业造成了毁灭性的打击

为什么有时候我们能够正常使用qq正常打游戏但是不能使用浏览器访问网页

此时极有可能是我们浏览器内置的DNS解析服务器挂掉了

DNS总结

  • DNS是应用层的协议
  • DNS底层使用的是UDP协议
  • 浏览器会缓存DNS结果

域名简介

主域名是用来识别主机名称和主机所属的组织机构的一种分层结构的名称

  • com: 一级域名. 表示这是一个企业域名. 同级的还有 “net”(网络提供商), “org”(非盈利组织) 等
  • baidu: 二级域名, 公司名
  • www: 只是一种习惯用法. 之前人们在使用域名时, 往往命名成类似于ftp.xxx.xxx/www.xxx.xxx这样的格式, 来表示主机支持的协议

NAT技术

NAT技术背景

之前我们讨论了 IPv4协议中 IP地址数量不充足的问题NAT技术当前解决IP地址不够用的主要手段 是路由器的一个重要功能

  • NAT能够将私有IP对外通信时转为全局IP. 也就是就是一种将私有IP和全局IP相互转化的技术方法
  • 很多学校, 家庭 公司内部采用每个终端设置私有IP 而在路由器或必要的服务器上设置全局IP
  • 全局IP要求唯一 但是私有IP不需要 在不同的局域网中出现相同的私有IP是完全不影响的

NAT IP转换过程

IP转换过程如下图

8f019443cfbe4730b83fd3a48b0bb51d.png

  • 首先我们准备发送一个消息 目标地址是 163.221.120.9 源地址是 10.0.0.10 (私有ip)
  • 这个消息经过NAT路由器之后我们原本的源IP被转化为了路由器的wanIP 202.244.174.37
  • 当NAT路由器收到外部数据的时候又会把IP从202.244.174.37 转化为 10.0.0.10 (私有ip
  • 在NAT路由器内部 有一张自动生成的 用于地址转换的表
  • 10.0.0.10 第一次向 163.221.120.9发送数据时就会生成表中的映射关系

NAPT

那么问题来了 如果局域网内 有多个主机都访问同一个外网服务器, 那么对于服务器返回的数据中 目的IP都是相同的

那么NAT路由器如何判定将这个数据包转发给哪个局域网的主机呢

这个时候我们回顾之前学过的知识 我们可以通过IP+PORT唯一的确定网络中的一个程序

但是经过我们的NAT技术转换之后 我们的IP都统一了 假如说局域网中两台主机使用的端口号再一致 那么在数据返回的时候我们就无法确定 这是局域网中哪台主机发送的数据了

2e852240ae1c48b0b3eaf13c1ad97242.png而在NAPT技术中 我们会制作一张地址转换表 表的两边互为key值

加入在局域网中有两个端口号相同的程序 那么在这张表中 NAT路由器会自动更改其中一个程序的端口来保证一一对应

NAT技术缺陷

  • 无法从NAT外部向内部服务器建立连接 (其实是可以使用内网穿透技术实现的)
  • 装换表的生成和销毁都需要额外开销
  • 通信过程中一旦NAT设备异常 即使存在热备 所有的TCP连接也都会断开


NAT和代理服务器

路由器往往都具备NAT设备的功能, 通过NAT设备进行中转 完成子网设备和其他子网设备的通信过程

代理服务器看起来和NAT设备有一点像

客户端向代理服务器发送请求 代理服务器将请求转发给真正要请求的服务器 服务器返回结果后 代理服务器又把结果回传给客户端

正向代理

我们客户端向服务器请求数据的时候并不直接将请求发送给服务器 而是发送给代理服务器

代理服务器帮助我们访问一些我们不能访问的网站

反向代理

我们客户端在请求数据的时候并不直接发送给服务器 而是发送给反向代理服务器

反向代理服务器接收到请求之后分配给服务器 之后服务器构建响应并且转给反向代理服务器

之后由反向代理服务器转给客户端

NAT和代理服务器的区别

  • 从应用上讲, NAT设备是网络基础设备之一, 解决的是IP不足的问题. 代理服务器则是更贴近具体应用, 比如通过代理服务器进行翻墙, 另外像迅游这样的加速器, 也是使用代理服务器
  • 从底层实现上讲 NAT是工作在网络层 直接对IP地址进行替换 代理服务器往往工作在应用层
  • 从使用范围上讲 NAT一般在局域网的出口部署 代理服务器可以在局域网做 也可以在广域网做 也可以跨网

正向代理和反向代理的区别

  • 正向代理主要服务于客户端 反向代理主要服务于服务器
  • 在正向代理中 服务器不知道真正的客户端是谁 在反向代理中 客户端不知道真正的服务器是谁

网络协议总结

应用层

  • 应用层的作用: 满足我们日常需求的网络程序, 都是在应用层
  • 能够根据自己的需求, 设计应用层协议.
  • 理解HTTP协议
  • 了解DNS协议原理和工作流程

传输层

  • 传输层的作用: 负责数据能够从发送端传输接收端.
  • 理解端口号的概念.
  • 认识UDP协议, 了解UDP协议的特点
  • 认识TCP协议, 理解TCP协议的可靠性. 理解TCP协议的状态转化.
  • 掌握TCP的连接管理, 确认应答, 超时重传, 滑动窗口, 流量控制, 拥塞控制, 延迟应答, 捎带应答特性.
  • 能够基于UDP实现可靠传输.
  • 理解MTU对UDP/TCP的影响.

网络层

  • 网络层的作用:在复杂的网络环境中确定一条合适的路径。
  • 理解IP地址,理解IP地址和MAC地址的区别。
  • 理解IP协议格式
  • 理解如何解决IP数目不足的问题,掌握网段划分的两种方案,理解私有IP和公网IP
  • 理解网络层的IP地址路由过程,理解一个数据包如何跨网段到达最终目的地
  • 理解IP数据包分片的原因
  • 了解NAT设备的工作原理

数据链路层

  • 数据链路层的作用: 两个设备(同一种数据链路节点)之间进行传递数据
  • 以太网是一种技术标准; 既包含了数据链路层的内容, 也包含了一些物理层的内容. 例如: 规定了网络拓扑结构, 访问控制方式, 传输速率等
  • 以太网帧格式
  • 理解mac地址
  • 理解arp协议
  • 理解MTU
相关文章
|
7天前
|
数据库 索引
深入探索数据库索引技术:回表与索引下推解析
【10月更文挑战第15天】在数据库查询优化的领域中,回表和索引下推是两个核心概念,它们对于提高查询性能至关重要。本文将详细解释这两个术语,并探讨它们在数据库操作中的作用和影响。
29 3
|
12天前
|
人工智能 数据可视化 前端开发
简化开发流程 低代码技术优势全解析
低代码开发通过可视化界面、预建模板和拖放操作简化开发流程,加速企业数字化转型。Zoho Creator等平台提供丰富模板、自动化工作流和第三方集成,降低开发成本,提高效率,成为未来应用开发趋势。
24 1
|
1天前
|
机器学习/深度学习 人工智能 自然语言处理
思通数科AI平台在尽职调查中的技术解析与应用
思通数科AI多模态能力平台结合OCR、NLP和深度学习技术,为IPO尽职调查、融资等重要交易环节提供智能化解决方案。平台自动识别、提取并分类海量文档,实现高效数据核验与合规性检查,显著提升审查速度和精准度,同时保障敏感信息管理和数据安全。
27 11
|
1天前
|
机器学习/深度学习 人工智能 自然语言处理
医疗行业的语音识别技术解析:AI多模态能力平台的应用与架构
AI多模态能力平台通过语音识别技术,实现实时转录医患对话,自动生成结构化数据,提高医疗效率。平台具备强大的环境降噪、语音分离及自然语言处理能力,支持与医院系统无缝集成,广泛应用于门诊记录、多学科会诊和急诊场景,显著提升工作效率和数据准确性。
|
4天前
|
监控 Cloud Native 持续交付
云原生技术深度解析:重塑现代应用开发与部署范式####
本文深入探讨了云原生技术的核心概念、关键技术组件及其在现代软件开发中的重要性。通过剖析容器化、微服务架构、持续集成/持续部署(CI/CD)等关键技术,本文旨在揭示云原生技术如何促进应用的敏捷性、可扩展性和高可用性,进而推动企业数字化转型进程。不同于传统摘要仅概述内容要点,本部分将融入具体案例分析,直观展示云原生技术在实际应用中的显著成效与挑战应对策略,为读者提供更加丰富、立体的理解视角。 ####
|
4天前
|
算法 Java 数据库连接
Java连接池技术,从基础概念出发,解析了连接池的工作原理及其重要性
本文详细介绍了Java连接池技术,从基础概念出发,解析了连接池的工作原理及其重要性。连接池通过复用数据库连接,显著提升了应用的性能和稳定性。文章还展示了使用HikariCP连接池的示例代码,帮助读者更好地理解和应用这一技术。
15 1
|
5天前
|
安全 测试技术 数据安全/隐私保护
原生鸿蒙应用市场开发者服务的技术解析:从集成到应用发布的完整体验
原生鸿蒙应用市场开发者服务的技术解析:从集成到应用发布的完整体验
|
7天前
|
监控 安全 Serverless
"揭秘D2终端大会热点技术:Serverless架构最佳实践全解析,让你的开发效率翻倍,迈向技术新高峰!"
【10月更文挑战第23天】D2终端大会汇聚了众多前沿技术,其中Serverless架构备受瞩目。它让开发者无需关注服务器管理,专注于业务逻辑,提高开发效率。本文介绍了选择合适平台、设计合理函数架构、优化性能及安全监控的最佳实践,助力开发者充分挖掘Serverless潜力,推动技术发展。
19 1
|
11天前
|
监控 网络协议 安全
DNS服务器故障不容小觑,从应急视角谈DNS架构
DNS服务器故障不容小觑,从应急视角谈DNS架构
33 4
|
11天前
|
人工智能 Cloud Native Java
云原生技术深度解析:从IO优化到AI处理
【10月更文挑战第24天】在当今数字化时代,云计算已经成为企业IT架构的核心。云原生作为云计算的最新演进形态,旨在通过一系列先进的技术和实践,帮助企业构建高效、弹性、可观测的应用系统。本文将从IO优化、key问题解决、多线程意义以及AI处理等多个维度,深入探讨云原生技术的内涵与外延,并结合Java和AI技术给出相应的示例。
53 1

推荐镜像

更多