• 计算机网络(十)——其他重要协议



    一、DNS(Domain Name System)

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

    1.1 DNS的产生

    TCP/IP中使用IP地址和端口号来确定网络上的一台主机的一个程序. 但是IP地址不方便记忆.
    于是人们发明了一种叫主机名的东西,是一个字符串,并且使用hosts文件(/etc/hosts)来描述主机名和IP地址的关系。
    在这里插入图片描述

    • 最初, 通过互连网信息中心(SRI-NIC)来管理这个hosts文件的.
    • 如果一个新计算机要接入网络,或者某个计算机IP变更,都需要到信息中心申请变更hosts文件.
    • 其他计算机也需要定期下载更新新版本的hosts文件才能正确上网。

    1.2 DNS系统

    这样就太麻烦了, 于是产生了DNS系统.

    • 一个组织的系统管理机构, 维护系统内的每个主机的IP和主机名的对应关系。
    • 如果新计算机接入网络,将这个信息注册到数据库中;
    • 用户输入域名的时候,会自动查询DNS服务器,由DNS服务器检索数据库, 得到对应的IP地址.

    1.3 域名

    域名是指为了识别主机名称和组织机构名称的一种具有分层的名称。

    其实就是由 “ . ” 分割的字符串的集合,分割出来的字符串表示公司的名称或者性质的字符串。

    域名的分层:

    一级域名:.com、.cn、.gov、.us,表示这是一个企业域名。 同级的还有 “net”(网络提供商), “org”(非盈利组织) 等
    二级域名:baidu.com、jd.com、taobao.com。
    三级域名:baike.baidu.com。

    www: 只是一种习惯用法. 之前人们在使用域名时,往往命名成类似于ftp.xxx.xxx/www.xxx.xxx这样的格式,来表示主机支持的协议。

    二、ICMP协议

    ICMP协议是一个 网络层协议
    一个新搭建好的网络,往往需要先进行一个简单的测试,来验证网络是否畅通;
    但是IP协议并不提供可靠传输,如果丢包了,IP协议并不能通知传输层是否丢包以及丢包的原因。
    ICMP正是提供这种功能的协议。

    2.1 ICMP功能

    ICMP主要功能包括:

    • 确认IP包是否成功到达目标地址。
    • 通知在发送过程中IP包被丢弃的原因。
    • ICMP也是基于IP协议工作的。 但是它并不是传输层的功能,因此人们仍然把它归结为网络层协议。
    • ICMP只能搭配IPv4使用。 如果是IPv6的情况下, 需要是用ICMPv6。

    三、ping命令

    在这里插入图片描述

    • 注意, 此处 ping 的是域名,而不是url! 一个域名可以通过DNS解析成IP地址。
    • ping命令不光能验证网络的连通性,同时也会统计响应时间和TTL(IP包中的Time To Live, 生存周期)。
    • ping命令会先发送一个 ICMP Echo Request给对端;
    • 对端接收到之后,会返回一个ICMP Echo Reply;

    telnet是23端口,ssh是22端口。
    注意:ping命令基于ICMP,是网络层的。而端口号是传输层的概念,因此ICMP不关注端口号

    四、traceroute命令

    也是基于ICMP协议实现, 能够打印出可执行程序主机,一直到目标主机之前经历多少路由器。

    在这里插入图片描述

    五、NAT技术

    5.1 NAT技术背景

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

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

    5.2 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 发送数据时就会生成表中的映射关系;

    5.3 NAPT

    那么问题来了, 如果局域网内, 有多个主机都访问同一个外网服务器, 那么对于服务器返回的数据中, 目的IP都是相同
    的。 那么NAT路由器如何判定将这个数据包转发给哪个局域网的主机?
    这时候NAPT来解决这个问题了。 使用IP+port来建立这个关联关系

    在IP从全局和局域的转换过程中,路由器内部会建立一张转换表,建立对应关系。

    • 局域网中对应的目的IP、目的端口号、源IP、源端口号
    • 全局中对应的目的IP、目的端口号、新源IP、新源端口号

    在往外传输的过程,源IP地址和端口一直在改变,因为局部的在全局可能重复。进出路由器直接查表即可。
    在这里插入图片描述

    5.4 NAT技术的缺陷

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

    • 无法从NAT外部向内部服务器建立连接;
    • 装换表的生成和销毁都需要额外开销;
    • 通信过程中一旦NAT设备异常, 即使存在热备, 所有的TCP连接也都会断开;

    5.5 NAT和代理服务器

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

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

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

    那么NAT和代理服务器的区别有哪些呢?

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

    一般学校,企业等机构也会设置代理,有什么好处呢?

    1. 身份认证
    2. 加速内网服务(局域网通信更快)
    3. 可以对访问内网的请求进行筛查(保护)

    这是一种正向代理,是体现在客户端上。
    还有一种反向代理,是服务端的代理服务器,可以将作业负载均衡的转发的后端服务器。

    正向代理用于请求的转发(例如借助代理绕过反爬虫)。
    反向代理往往作为一个缓存。

    代理服务器是一种应用比较广的技术.

    • 翻墙: 广域网中的代理。
    • 负载均衡: 局域网中的代理。

    当你在浏览器地址栏输入一个URL后回车,将会发生的事情?

  • 相关阅读:
    服务器之间传递数据脚本
    4D毫米波雷达和3D雷达、激光雷达全面对比
    任正非“苹果是华为的老师”;音频编解码标准 L2HC 发布;GNU 和自由软件运动四十周年丨RTE开发者日报 Vol.53
    Spark Streaming(二)
    JAVA代码视频转GIF(亲测有效)
    电脑开机密码忘了怎么办
    优先发展非化石能源
    HBase 基础结构
    微机保护装置智能操控及无线测温等产品在某助剂厂新建项目的应用
    大数计算:e^1000/300!
  • 原文地址:https://blog.csdn.net/qq_52145272/article/details/126877794