【Hello Network】DNS协议 NAT技术 代理服务器
本篇博客简介:介绍DNS协议 NAT技术和代理服务器
网络各协议补充
- DNS
- DNS背景
- DNS介绍
- DNS总结
- 域名简介
- NAT技术
- NAT技术背景
- NAT IP转换过程
- NAPT
- NAT技术缺陷
- NAT和代理服务器
- 网络协议总结
- 应用层
- 传输层
- 网络层
- 数据链路层
DNS
DNS是一整套从域名映射到IP的系统
DNS背景
为什么要有域名
其实作为我们程序员来说 使用域名还是IP地址是无所谓的
但是站在商业公司和用户的角度就不这么认为了
商业公司希望用户能够快速的记住自己公司的网址 而用户也希望自己喜欢网站的网址好记一点 方便访问
这个时候域名的作用就显现出来了 它能够让ip地址变得更好记
DNS介绍
它是怎么工作的
我们在浏览器中输入网址之后 该网址就会首先发送给域名解析服务器
在解析完毕之后 域名解析服务器就会返回给我们一个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转换过程如下图
- 首先我们准备发送一个消息 目标地址是
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都统一了 假如说局域网中两台主机使用的端口号再一致 那么在数据返回的时候我们就无法确定 这是局域网中哪台主机发送的数据了
而在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
相关文章:
【Hello Network】DNS协议 NAT技术 代理服务器
本篇博客简介:介绍DNS协议 NAT技术和代理服务器 网络各协议补充 DNSDNS背景DNS介绍DNS总结域名简介 NAT技术NAT技术背景NAT IP转换过程NAPTNAT技术缺陷NAT和代理服务器 网络协议总结应用层传输层网络层数据链路层 DNS DNS是一整套从域名映射到IP的系统 DNS背景 为…...
Android 使用模拟器模拟Linux操作系统
1. 简介 在Android手机上使用模拟器模拟ubuntu等操作系统,便于测试 2. 软件准备 Termux:是一款 Android 终端模拟器和 Linux 环境应用程序,无需 root 或设置即可直接运行。虽然酷安和谷歌菜市场都能下载,但这些渠道都很久没更新…...
机器学习基础之《分类算法(5)—朴素贝叶斯算法原理》
一、朴素贝叶斯算法 1、什么是朴素贝叶斯分类方法 之前用KNN算法,分类完直接有个结果,但是朴素贝叶斯分完之后会出现一些概率值,比如: 这六个类别,它都有一定的可能性 再比如,对文章进行分类:…...
# Go学习-Day6
文章目录 Go学习-Day6封装继承接口 Go学习-Day6 个人博客:CSDN博客 封装 类似java的类的封装,这里我们利用大小写和工厂模式来实现封装的功能略过 继承 相似的类具有相似的方法,反复绑定相同的方法,代码冗余,所以引…...
分布式 - 服务器Nginx:一小时入门系列之 HTTPS协议配置
文章目录 1. HTTPS 协议2. 生成 SSL 证书和私钥文件3. 配置 SSL 证书和私钥文件4. HTTPS 协议优化 1. HTTPS 协议 HTTPS 是一种通过计算机网络进行安全通信的协议。它是HTTP的安全版本,通过使用 SSL 或 TLS 协议来加密和保护数据传输。HTTPS的主要目的是确保在客户…...
探秘Linux系统性能监控神器!Linux和Python技术持续学习者必看!
引言 作为Linux运维工程师,我们经常需要对服务器的性能进行监控和调优。而Python作为一门强大的脚本语言,可以帮助我们轻松实现各种系统性能监控任务。本文将介绍几个实用的Python库和工具,帮助我们监控Linux系统的CPU、内存、磁盘和网络等性…...
文心一言续写太监小说《名侦探世界的巫师》
《名侦探世界的巫师》是我的童年回忆,总是想着续写一下,但是又没有时间和文笔,文心一言出了,由于目前大模型貌似可以联网,可以尝试搞一波~ 目录 文章1【前六个故事还能看,后面就是在重复】故事2【辣眼睛】…...
Solidity 合约安全,常见漏洞(第三篇)
Solidity 合约安全,常见漏洞(第三篇) ERC20 代币问题 如果你只处理受信任的 ERC20 代币,这些问题大多不适用。然而,当与任意的或部分不受信任的 ERC20 代币交互时,就有一些需要注意的地方。 ERC20&#…...
Linux安装Redis数据库,无需公网IP实现远程连接
文章目录 1. Linux(centos8)安装redis数据库2. 配置redis数据库3. 内网穿透3.1 安装cpolar内网穿透3.2 创建隧道映射本地端口 4. 配置固定TCP端口地址4.1 保留一个固定tcp地址4.2 配置固定TCP地址4.3 使用固定的tcp地址连接 Redis作为一款高速缓存的key value键值对的数据库,在…...
智慧政务,长远布局——AIGC引领,加速推进数字化政府建设
在人工智能、虚拟现实等领域迅猛发展且日益成熟的背景下,AI行业正迈向蓬勃发展的全新阶段,市场规模持续扩张。与此同时,数字服务也正在蓬勃兴起,新一代信息技术为数字政府构建了坚实支撑,重塑了政务信息化管理、业务架…...
中央处理器(CPU):组成、指令周期、数据通路、控制方式、控制器、指令流水线,补充(多处理器系统、硬件多线程)
中央处理器(CPU,Central Processing Unit),计算机控制和运算的核心,是信息处理和程序运行的执行单元。 CPU主要功能:处理指令、执行操作、控制时间、处理中断、处理数据。 其中,处理指令、执行…...
开源微服务如何选型?Spring Cloud、Dubbo、gRPC、Istio 详细对比
作者:刘军 不论您是一名开发者、架构师、CTO, 如果您曾深度参与在微服务开发中,那么相信您一定有过开源微服务框架或体系选型的疑问:Apache Dubbo、Spring Cloud、gRPC 以及 Service Mesh 体系产品如 Istio,到底应该选…...
Nginx的HTTPS部署与安全性能优化
Nginx作为一款高性能的Web服务器和反向代理服务器,被广泛用于应用部署和负载均衡。在安全环保意识的逐渐提高下,HTTPS也成为现代Web应用中必不可少的一环。本篇文章将重点介绍Nginx的HTTPS部署和安全性能优化。 一、Nginx的HTTPS部署 证书申请 首先需要去…...
5.8. Trusted Board Boot
5.8. Trusted Board Boot启动 Trusted Board Boot(TBB) 功能通过验证所有固件镜像(包括正常世界引导加载程序)来防止恶意固件在平台上运行。它通过使用公钥加密标准 (PKCS) 建立信任链来实现这一点。 本文介绍了可信固件-A (TF-A) TBB 的设计,它是Trusted Board Boot(TBBR…...
微信小程序——van-field中的left-icon属性自定义
✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...
一文学会lua脚本
文章目录 0.前言背景应用 1. 学习大纲1. 学习基本语法:2. 理解函数和模块:3. 深入数据结构:4. 高级特性和技巧:5. 实践项目: 2. Lua脚本2.1 学习基本语法2.2 理解函数和模块2.3 深入数据结构2.4 高级特性和技巧 3. 高级…...
学习JAVA打卡第四十二天
正则表达式及字符串的替换与分解 ⑴正则表达式 正则表达式是string对象的字符序列,该字符序列中含有具有特殊意义的字符,这些特殊字符称作正则表达式的元字符。 注:由于“ ”代表任何一个字符,所以在正则表达式中如果想使用普…...
2023-8-25食物链
题目链接:食物链 #include <iostream>using namespace std;const int N 50010;int n, m; int p[N], d[N];int find(int x) {if(p[x] ! x){int t find(p[x]);d[x] d[p[x]];p[x] t;}return p[x]; }int main() {cin >> n >> m;for(int i 1; i…...
为什么要使用IP地址进行定位
IP地址定位是一种以互联网协议地址(IP地址)为基础的技术,它能够准确地确定一个设备在互联网上的位置。这种技术的应用范围非常广泛,从个人用户到企业机构甚至是国家安全和网络安全等领域都需要使用IP地址定位。 首先,I…...
CSS概念
1、CSS与HTML结合方式 1.1 第一种方式 内联/行内样式 就是在我们的HTML标签上通过style属性来引用CSS代码。 优点:简单方便 ; 缺点:只能对一个标签进行修饰。 1.2 第二种方式 内部样式 我们通过<style>标签来声明我们的CSS. 通常<style>标签我们推荐写在…...
淘宝API技术解析,实现关键词搜索淘宝商品(商品详情接口等)
淘宝提供了开放平台接口(API)来实现按图搜索淘宝商品的功能。您可以通过以下步骤来实现: 获取开放平台的访问权限:首先,您需要在淘宝开放平台创建一个应用,获取访问淘宝API的权限。具体的申请步骤和要求可以…...
Redis 7 教程 数据类型 基础篇
🌹 引导 Commands | Redishttps://redis.io/commands/Redis命令中心(Redis commands) -- Redis中国用户组(CRUG)Redis命令大全,显示全部已知的redis命令,redis集群相关命令,近期也会翻译过来,Redis命令参考,也可以直接输入命令进行命令检索。...
-bash: tree: command not found 的解决方法
在学习git操作时发现使用命令tree .git时显示错误 在网上查阅资料后,发现可能是没有安装生成tree的应用,所以我们使用命令安装应用即可 sudo yum install -y tree像这样就是安装成功了 我们再来试试 问题解决了,成功显示出树形结构...
SPI总线协议
简述 SPI协议是一种芯片与芯片之间的通讯,全称是Serial Peripheral Interface SPI通讯采用一主多从模式,产生时钟的一侧称为主机,另一侧称为从机。只有一个主机(一般来说可以是微控制器/MCU),但是可以有一…...
Ubuntu20.04配置mysql配置主从复制
ubuntu20.04:mysql主库 sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf # 修改完毕重启 sudo service mysql stop sudo service mysql start主库mysqld.cnf配置 [mysqld] ... # bind-address>->--- 127.0.0.1 # 注释掉,允许外部连接 # mysqlx-b…...
HTTP 服务器(基于go实现)
编写一个 HTTP 服务器,接收客户端 request,并将 request 中带的 header 写入 response header 解析HTTP请求头 import ("fmt""net/http" )func headers(w http.ResponseWriter, r *http.Request) {// 将request中的信息写入到 w中…...
【整数二分】
数的范围 #include<iostream> using namespace std; const int N 100000 11;int n; int q; int a[N];int key;int main(){cin>>n>>q;for(int i0;i<n;i)cin>>a[i];while(q--){cin>>key;//先去找左(大于等于)再去找右…...
开发一款AR导览导航小程序多少钱?ar地图微信小程序 ar导航 源码
随着科技的不断发展,增强现实(AR)技术在不同领域展现出了巨大的潜力。AR导览小程序作为其中的一种应用形式,为用户提供了全新的观赏和学习体验。然而,开发一款高质量的AR导览小程序需要投入大量的时间、人力和技术资源…...
Shell 编程快速入门 之 函数基础知识
目录 shell函数基础知识 函数定义 函数名 函数体 参数 返回值 return返回值的含义 return与echo返回值的区别 可变参数函数 自定义库函数 定义库函数 调用库函数 执行结果 递归函数 阶乘函数 斐波那契函数 shell函数基础知识 函数定义 函数名 Shell函数用…...
Flink流批一体计算(18):PyFlink DataStream API之计算和Sink
目录 1. 在上节数据流上执行转换操作,或者使用 sink 将数据写入外部系统。 2. File Sink File Sink Format Types Row-encoded Formats Bulk-encoded Formats 桶分配 滚动策略 3. 如何输出结果 Print 集合数据到客户端,execute_and_collect…...
做响应网站的素材网站有哪些/nba新闻最新消息
SLAM(Simultaneous Localization and Mapping)也称为CML(concurrent mapping and localization),即同时定位与地图构建。 机器人SLAM问题要解决的是:机器人在未知环境中从未知位置开始移动,在移…...
平面设计师需要学历/seo服务是什么
2019独角兽企业重金招聘Python工程师标准>>> 环境准备:以下所有部署操作都在vm虚拟机环境下进行实现,如果转为生产环境只需配置对应ip地址即可,linux下基础配置请参考文摘CentOs6.5基本环境配置(一):基本环境配置 http…...
肥城网站网站建设/seo专业培训需要多久
一、准备工作Spring cloud版b2b2c电子商务社交平台源码请加企鹅求求:一零三八七七四六二六。Eureka can be made even more resilient and available by running multiple instances and asking them to register with each other. In fact, this is the default be…...
大同市政府门户网站/识图搜索在线 照片识别
2019独角兽企业重金招聘Python工程师标准>>> 名称:骄阳HTTP模拟器绿色版 版本:1.0 软件大小:418KB 软件语言:简体中文 软件授权:免费版 应用平台:WinXP/Vista/Win8,9,10 该软件可以模拟浏览器客…...
php企业网站多少钱/百度竞价托管
内部类作为父类: //P206 //外部类Out //非静态内部类In //它的子类SubClass//In的对象需要有一个对Out对象的引用 //SubClass的对象里也需要有一个Out对象的引用 //当创建Subclass类的对象时,必须使用Out对象显示调用In的构造器public class Out {public…...
浙江宁波疫情最新消息/seo关键词优化推广报价表
一、心态 我说了php入门很容易,不错,但我不说php它很容易,php应用起来博大精深,如果你说做php很简单,那么我只能说你懂php懂得比较简单吧.在大学读书的时候大家一定要心态摆正,比如你想学什么语言,以后要做什么程序员,比如java,C,我讲一例子,比如你立志做java程序员,你首先在校…...