前言
大家好我是小帅,今天我们来了解应用层的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点
- 域名解析:当用户在浏览器中输入一个网址时,计算机会向DNS服务器发送请求来获取与该域名相对应的IP地址。一旦获得正确的IP地址,计算机就可以直接与目标网站的服务器通信。
- 反向解析:除了从域名到IP地址的正向解析外,DNS也支持从IP地址到域名的反向解析。这主要用于安全验证和其他网络管理目的。
- 负载均衡:大型网站可能有多个服务器分布在全球不同的位置。DNS可以通过返回不同服务器的IP地址来帮助分散流量,实现负载均衡,提高访问速度和可用性。
- 缓存:为了提高性能并减少对权威DNS服务器的查询次数,本地DNS服务器会缓存之前查询的结果。这意味着如果同一域名近期已经被解析过,那么后续的查询可以快速地从缓存中得到结果。
过程:
在网上建立了DNS服务器,把-hosts文件放到DNS服务器里面,当主机需要域名解析,就访问DNS服务器,全世界有很多DNS的镜像服务器,每个主机都会就近的访问DNS镜像服务器,如果是查询镜像服务器不用访问根DNS服务器,如果是针对修改/变更需要访问根DNS服务器。
注意点:
- DNS是应⽤层协议
- DNS底层使⽤UDP进⾏解析
- 浏览器会缓存DNS结果
2. NAT技术
技术并不是应用层的技术,而是工作在网络层(在OSI模型中是第3层)和传输层(在OSI模型中是第4层)之间的技术。NAT主要用于在私有网络和公共网络之间进行IP地址的转换。
NAT的主要功能包括:
- IP地址转换:==NAT允许一个私有网络中的多台设备共享一个或几个公网IP地址。当内部设备需要与外部网络通信时,NAT会将内部设备的私有IP地址转换为公网IP地址,反之亦然。
- 端口转发:通过端口映射或端口转发,NAT可以将来自公网的特定服务请求重定向到内部网络中的某个设备上。
- 防火墙功能:NAT提供了一定程度的安全性,因为它隐藏了内部网络的真实IP地址,使得外部网络难以直接访问内部网络的设备。
- 负载均衡:在一些高级的NAT实现中,可以通过不同的策略来分配流量到多个服务器,从而达到负载均衡的效果。
NAT技术背景:
之前我们讨论了, IPv4协议中, IP地址数量不充⾜的问题
NAT技术解决当前IP地址不够⽤的主要⼿段, 是路由器的⼀个重要功能;
NAT IP转换过程:
- NAT路由器将源地址从10.0.0.10替换成全局的IP 202.244.174.37;
- NAT路由器收到外部的数据时, ⼜会把⽬标IP从202.244.174.37替换回10.0.0.10;
- 在NAT路由器内部, 有⼀张⾃动⽣成的, ⽤于地址转换的表;
- 当 10.0.0.10 第⼀次向 163.221.120.9 发送数据时就会⽣成表中的映射关系;
那么问题来了, 如果局域⽹内, 有多个主机都访问同⼀个外⽹服务器, 那么对于服务器返回的数据中, ⽬的IP都是相同的. 那么NAT路由器如何判定将这个数据包转发给哪个局域⽹的主机?
这时候NAPT来解决这个问题了. 使⽤IP+port来建⽴这个关联关系。
这种关联关系也是由NAT路由器⾃动维护的. 例如在TCP的情况下, 建⽴连接时, 就会⽣成这个表项; 在断开连接后, 就会删除这个表项
NAT 技术的优缺点:
由于NAT依赖这个转换表, 所以有诸多限制:
- ⽆法从NAT外部向内部服务器建⽴连接;
- 装换表的⽣成和销毁都需要额外开销;
- 通信过程中⼀旦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的原理和⼯作流程.
今天就到这里了感谢观看。