网络原理->DNS协议和NAT协议解

前言
大家好我是小帅,今天我们来了解应用层的DNS协议和NAT技术
个人主页:再无B~U~G


文章目录

  • 1.重要应⽤层协议DNS(Domain Name System)
    • 1.1 DNS背景
  • 2. NAT技术
  • 3. 总结


1.重要应⽤层协议DNS(Domain Name System)

DNS是⼀整套从域名映射到IP的系统,也就是域名解析系统。


1.1 DNS背景

TCP/IP中使⽤IP地址和端⼝号来确定⽹络上的⼀台主机的⼀个程序. 但是IP地址不⽅便记忆.

于是⼈们发明了⼀种叫主机名的东西, 是⼀个字符串, 并且使⽤hosts⽂件来描述主机名和IP地址的关系.
使用域名代替IP地址,比如说使用域名访问百度:
在这里插入图片描述
使用IP地址访问百度:
在这里插入图片描述

DNS域名解析系统作用
主要了解1,2点

  1. 域名解析:当用户在浏览器中输入一个网址时,计算机会向DNS服务器发送请求来获取与该域名相对应的IP地址。一旦获得正确的IP地址,计算机就可以直接与目标网站的服务器通信。
  2. 反向解析:除了从域名到IP地址的正向解析外,DNS也支持从IP地址到域名的反向解析。这主要用于安全验证和其他网络管理目的。
  3. 负载均衡:大型网站可能有多个服务器分布在全球不同的位置。DNS可以通过返回不同服务器的IP地址来帮助分散流量,实现负载均衡,提高访问速度和可用性。
  4. 缓存:为了提高性能并减少对权威DNS服务器的查询次数,本地DNS服务器会缓存之前查询的结果。这意味着如果同一域名近期已经被解析过,那么后续的查询可以快速地从缓存中得到结果。

过程:

在网上建立了DNS服务器,把-hosts文件放到DNS服务器里面,当主机需要域名解析,就访问DNS服务器,全世界有很多DNS的镜像服务器,每个主机都会就近的访问DNS镜像服务器,如果是查询镜像服务器不用访问根DNS服务器,如果是针对修改/变更需要访问根DNS服务器。

注意点:

  1. DNS是应⽤层协议
  2. DNS底层使⽤UDP进⾏解析
  3. 浏览器会缓存DNS结果

2. NAT技术

技术并不是应用层的技术,而是工作在网络层(在OSI模型中是第3层)和传输层(在OSI模型中是第4层)之间的技术。NAT主要用于在私有网络和公共网络之间进行IP地址的转换。

NAT的主要功能包括:

  1. IP地址转换:==NAT允许一个私有网络中的多台设备共享一个或几个公网IP地址。当内部设备需要与外部网络通信时,NAT会将内部设备的私有IP地址转换为公网IP地址,反之亦然。
  2. 端口转发:通过端口映射或端口转发,NAT可以将来自公网的特定服务请求重定向到内部网络中的某个设备上。
  3. 防火墙功能:NAT提供了一定程度的安全性,因为它隐藏了内部网络的真实IP地址,使得外部网络难以直接访问内部网络的设备。
  4. 负载均衡:在一些高级的NAT实现中,可以通过不同的策略来分配流量到多个服务器,从而达到负载均衡的效果。

NAT技术背景:

之前我们讨论了, IPv4协议中, IP地址数量不充⾜的问题
NAT技术解决当前IP地址不够⽤的主要⼿段, 是路由器的⼀个重要功能;

NAT IP转换过程:
在这里插入图片描述

  1. NAT路由器将源地址从10.0.0.10替换成全局的IP 202.244.174.37;
  2. NAT路由器收到外部的数据时, ⼜会把⽬标IP从202.244.174.37替换回10.0.0.10;
  3. 在NAT路由器内部, 有⼀张⾃动⽣成的, ⽤于地址转换的表;
  4. 当 10.0.0.10 第⼀次向 163.221.120.9 发送数据时就会⽣成表中的映射关系;

那么问题来了, 如果局域⽹内, 有多个主机都访问同⼀个外⽹服务器, 那么对于服务器返回的数据中, ⽬的IP都是相同的. 那么NAT路由器如何判定将这个数据包转发给哪个局域⽹的主机?

这时候NAPT来解决这个问题了. 使⽤IP+port来建⽴这个关联关系。
在这里插入图片描述

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

NAT 技术的优缺点:

由于NAT依赖这个转换表, 所以有诸多限制:

  1. ⽆法从NAT外部向内部服务器建⽴连接;
  2. 装换表的⽣成和销毁都需要额外开销;
  3. 通信过程中⼀旦NAT设备异常, 即使存在热备, 所有的TCP连接也都会断开;

但是 NAT 有⼀个最⼤的优点: 不需要更新硬件设备, 只更新软件, 就可以解决 IP 地址不够⽤的问题!

3. 总结

学习复习路:

数据链路层

• 数据链路层的作⽤: 两个设备(同⼀种数据链路节点)之间进⾏传递数据
• 以太⽹是⼀种技术标准; 既包含了数据链路层的内容, 也包含了⼀些物理层的内容. 例如: 规定了⽹络拓扑结构, 访问控制⽅式, 传输速率等;
• 以太⽹帧格式
• 理解mac地址
• 理解arp协议
• 理解MTU


⽹络层

• ⽹络层的作⽤: 在复杂的⽹络环境中确定⼀个合适的路径.
• 理解IP地址, 理解IP地址和MAC地址的区别.
• 理解IP协议格式.
• 了解⽹段划分⽅法
• 理解如何解决IP数⽬不⾜的问题, 掌握⽹段划分的两种⽅案. 理解私有IP和公⽹IP
• 理解⽹络层的IP地址路由过程. 理解⼀个数据包如何跨越⽹段到达最终⽬的地.
• 理解IP数据包分包的原因.
• 了解NAT设备的⼯作原理.


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


应⽤层

• 应⽤层的作⽤: 满⾜我们⽇常需求的⽹络程序, 都是在应⽤层
• 能够根据⾃⼰的需求, 设计应⽤层协议.
• 理解DNS的原理和⼯作流程.

今天就到这里了感谢观看。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/480167.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

虚拟机ubuntu-20.04.6-live-server搭建OpenStack:Victoria(一:工具、环境准备-controller node)

文章目录 一、软件准备A. 下载ubuntu-live-server:B. 下载并安装Xshell: 二、安装Ubuntu(控制节点主机)A. 开启服务B. 先预安装C. 虚拟机设置D. 安装系统 三、连接XshellA. 配置网络接口B. 连接 Xshell 一、软件准备 温馨提示&…

面试——HashMap的并发问题

HashMap是线程不安全,在并发使用HashMap时会发生下列问题: 数据丢失 HashMap底层数据结构为数组,之后如果发送了哈希冲突,那么数据会以列表的形式保存在这个下标下,当数据长度大于8时,则会转为红黑树。 存…

Vue+Elementui el-tree树只能选择子节点并且支持检索

效果&#xff1a; 只能选择子节点 添加配置添加检索代码 源码&#xff1a; <template><div><el-button size"small" type"primary" clearable :disabled"disabled" click"showSign">危险点评估</el-button>…

Pod 动态分配存储空间实现持久化存储

配置 Pod 以使用 PersistentVolume 作为存储 ​ 关于持久卷的介绍&#xff0c;可以看官方文档 https://kubernetes.io/zh-cn/docs/concepts/storage/persistent-volumes/ ​ 持久卷根据存储位置&#xff0c;可以使用本地存储和云存储&#xff0c;如果有云服务平台&#xff0c…

AIGC引领金融大模型革命:未来已来

文章目录 金融大模型的应用场景1. **金融风险管理**2. **量化交易**3. **个性化投资建议**4. **金融欺诈检测和预防**5. **智能客户服务** 金融大模型开发面临的挑战应对策略《金融大模型开发基础与实践》亮点内容简介作者简介获取方式 在AIGC&#xff08;Artificial Intellige…

数据库(MySQL黑马)

基础篇 MySQL概述 数据库概述 数据库相关概念 主流的关系型数据库管理系统 MySQL数据库的安装与启动 下载&#xff1a;MySQL :: MySQL Community Downloads 安装步骤 MySQL―8.0.40超详细保姆级安装教程_mysql8.0.40安装教程-CSDN博客文章浏览阅读1k次。_mysql8.0.40安装教…

MySQL8 CTE解决不定层级树形迭代问题

MySQL Common Table Expressions&#xff08;CTE&#xff0c;公用表表达式&#xff09;是在MySQL 8.0及更高版本中引入的一种高级SQL构造&#xff0c;它允许用户定义一个临时的结果集&#xff0c;这个结果集可以在同一个查询中被多次引用&#xff0c;从而简化复杂的查询逻辑和提…

第六届国际科技创新学术交流大会暨信息技术与计算机应用学术会议(ITCA 2024)

重要信息 会议官网&#xff1a;itca2024.iaecst.org 会议时间&#xff1a;2024年12月06-08日 会议地点&#xff1a;中国-广州&#xff08;越秀国际会议中心&#xff09; 会议简介 第六届信息技术与计算机应用学术会议(ITCA 2024) 依旧作为第六届国际科技创新学术交流大会…

详解MVC架构与三层架构以及DO、VO、DTO、BO、PO | SpringBoot基础概念

&#x1f64b;大家好&#xff01;我是毛毛张! &#x1f308;个人首页&#xff1a; 神马都会亿点点的毛毛张 今天毛毛张分享的是SpeingBoot框架学习中的一些基础概念性的东西&#xff1a;MVC结构、三层架构、POJO、Entity、PO、VO、DO、BO、DTO、DAO 文章目录 1.架构1.1 基本…

golang debug调试

1. 本地调试 1&#xff1a;Add Configurations 添加配置文件&#xff08;Run kind &#xff1a;Directory&#xff09; 2&#xff1a;进入run运行窗口 3&#xff1a;debug断点调试模式 1. Resume Program (继续运行) 图标: ▶️ 或 ► 快捷键: F9&#xff08;Windows/Linux&a…

单点登录深入详解之技术方案总结

技术方案之CAS认证 概述 CAS 是耶鲁大学的开源项目&#xff0c;宗旨是为 web 应用系统提供一种可靠的单点登录解决方案。 CAS 从安全性角度来考虑设计&#xff0c;用户在 CAS 输入用户名和密码之后通过ticket进行认证&#xff0c;能够有效防止密码泄露。 CAS 广泛使用于传统应…

redis大key和热key

redis中大key、热key 什么是大key大key可能产生的原因大key可能会造成什么影响如何检测大key如何优化删除大key时可能的问题删除大key的策略 热key热key可能导致的问题解决热key的方法 什么是大key 大key通常是指占用内存空间过大或包含大量元素的键值对。 数据量大&#xff…

vue3实现自定义导航菜单

一、创建项目 1. 打开HBuilder X 图1 2. 新建一个空项目 文件->新建->项目->uni-app 填写项目名称&#xff1a;vue3demo 选择项目存放目录&#xff1a;D:/HBuilderProjects 一定要注意vue的版本&#xff0c;当前选择的版本为vue3 图2 点击“创建”之后进入项目界面 图…

Windows Qtcreator不能debug 调试 qt5 程序

Windows下 Qt Creator 14.0.2 与Qt5.15.2 正常release打包都是没有问题的&#xff0c;就是不能debug&#xff0c;最后发现是两者不兼容导致的&#xff1b; 我使用的是 编译器是 MinGW8.1.0 &#xff0c;这个版本是有问题的&#xff0c;需要更新到最新&#xff0c;我更新的是Mi…

ubuntu20.04更换安装高版本CUDA以及多个CUDA版本管理

Ubuntu 20.04下多版本CUDA的安装与切换 CUDA安装配置环境变量软连接附上参考博客CUDA安装 cuda官方下载地址 因为我需要安装的是11.1版本的,所以这里按着11.1举例安装 安装命令如下: wget https://developer.download.nvidia.com/compute/cuda/11.1.0/local_installers/cu…

vue实现滚动条滑动到底部分页调取后端接口加载数据

一、案例效果 二、前提条件 接口返回数据 三、案例代码 子组件 const $emit defineEmits([cloneItem, updateList]);const props defineProps({rightList: {type: Array,},chartTableData: {type: Array as () > ChartListType[],},deleteChartInfo: {type: Object,}…

路面交通工具和个数识别,支持YOLO,COCO,VOC三种格式,带标注可识别自行车,摩的,公共汽车,装载机,面包车,卡车,轿车等

预处理 自动定向&#xff1a; 已应用 调整大小&#xff1a; 拉伸至 640x640 增强 每个训练示例的输出&#xff1a; 3 翻转&#xff1a; 水平 自行车 公交车

【05】Selenium+Python 两种文件上传方式(AutoIt)

上传文件的两种方式 一、input标签上传文件 可以用send_keys方法直接上传文件 示例代码 input标签上传文件import time from selenium import webdriver from chromedriver_py import binary_path # this will get you the path variable from selenium.webdriver.common.by i…

深入浅出剖析典型文生图产品Midjourney

2022年7月,一个小团队推出了公测的 Midjourney,打破了 AIGC 领域的大厂垄断。作为一个精调生成模型,以聊天机器人方式部署在 Discord,它创作的《太空歌剧院》作品,甚至获得了美国「数字艺术/数码摄影」竞赛单元一等奖。 这一事件展示了 AI 在绘画领域惊人的创造力,让人们…

[MRCTF2020]Transform

查壳&#xff0c;拖入64位IDA LOBYTE8位就是一个字节&#xff0c;在此处无意义&#xff0c;因为我们输入的本来就是按字节输入的 设 a byte_414040,bdword_40F040,cbyte_40F0E0,输入的字符串为flag; 从题目里得到 加密代码 a[i] flag[b[i]]; a[i] ^ b[i]; c a 即c[i] a[i…