【网络协议栈】TCP/IP协议栈中重要协议和技术(DNS、ICMP、NAT、代理服务器、以及内网穿透)

请添加图片描述
每日激励:“请给自己一个鼓励说:Jack我很棒!—Jack”

绪论​:
本章是TCP/IP网络协议层的完结篇,本章将主要去补充一些重要的协议和了解一些网络中常见的名词,具体如:DNS、ICMP、NAT、代理服务器、以及内网穿透。下面我将还会出一篇总结篇,所以本章其实也并不能完全算的完结篇 hh~,敬请期待吧!
————————
早关注不迷路,话不多说安全带系好,发车啦(建议电脑观看)。


1. DNS

  • 现在浏览器中我们使用的是域名(www.baidu.com)
  • 但浏览器并不是直接通过域名就能找到对应的网站的,而是通过这个域名去域名服务器转化成 ip 后才去访问的
  • DNS是应用层协议

域名使用: 通过 . 连接
以百度的域名www.baidu.com为例:

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

域名代替使用ip在url中使用
这样更加的见名之意且容易记住
具体转换如下图:
在这里插入图片描述

浏览器中输入url后,发生的事情分俩阶段来聊

  1. 粗力度的回答http请求和应答,必要的时候谈谈https
  2. 和面试官沟通是否需要谈更多的细节

2. ICMP

ICMP协议是一个网络层的协议
它的功能主要下面几点:

  1. 确认IP包是否成功到达目标地址
  2. 通知在发送过程中IP包被丢弃的原因
  3. 一个新搭建好的网络,往往需要先进行一个简单的测试,来验证网络是否畅通(也就是通过ICMP协议类似于ping)。
  4. ICMP也是基于IP协议工作的。但是它并不是传输层的功能,因此人们仍然把它归结为网络层协议;
  5. ICMP只能搭配IPv4使用。如果是IPv6的情况下, 需要是用ICMPv6;

大概工作流程如下:
在这里插入图片描述
在这里插入图片描述

ICMP的报文格式

在这里插入图片描述
其中就是通过类型来返回错误信息

类型:
在这里插入图片描述

ping命令底层就是通过原始套接字调用ICMP实现的
在这里插入图片描述
注意:

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

在这里插入图片描述
一个值得注意的坑:
有些面试官可能会问: telnet是23端口, ssh是22端口, 那么ping是什么端口
ping是没有端口号的,它是基于ICMP的在网络层。而端口号,是用于传输层的。在ICMP中根本就不关注端口号这样的信息,也不会交给一般的上层应用,仅在双方网络层相互交互。

3. NAT技术

之前已经进行过一定的阐述:

  1. 子网中的ip是不会出现在外网(公网)中的,因为为了解决ipv4不够用的情况所以在不同的子网中是允许出现相同的ip的。
  2. 所以源ip在出自己的子网后,会被替换成当前子网的路由器的WAN口IP
    出去在公网中使用

    在这里插入图片描述
    通过路由器把源地址替换再继续经过网络达到目的地址
    回来:
    在这里插入图片描述
    在出去的时候会记录一张转换表,最终回来的时候通过出去是记录的映射关系,就能找到对应的源地址转换回来。

注意:

  1. NAT路由器右侧不一定是公网,可能是运营商的子网(不影响继续转发即可,因为每次转发都有记录转换表就能找到回来的路径)
  2. NAT替换的过程,不仅仅是替换WLAN IP,必要时会替换端口(port冲突时生成一个随机端口然后建立映射)
  3. NAT路由器中可能会映射条目太多这样就会分为:家用路由器、企业级路由器

NAT技术的缺陷
由于NAT依赖这个转换表,所以会有诸多限制:

  1. 无法从NAT外部向内部服务器建立连接(外网服务器在没有提前被内网服务器访问时无法直接访问内网服务器,因为转换表由内网构建,当没有提前访问时就没有映射外网就无法通过转换表找到主机/服务器
  2. 转换表的生成和销毁是需要额外开销的
  3. 通信过程中一旦NAT设备异常,所有TCP连接也都会断开。

4. 代理服务器

代理服务器基本操作是:进行网络的转发,客户端将请求发送给代理服务器,代理服务器再将请求转发给目标服务器,并将目标服务器的响应返回给客户端。

4.1 正向代理服务器:

在代理服务器的基础上,正向代理服务器他会将报文进行缓存,并可以进行安全检查。
在这里插入图片描述

类似于:学校的校园网是学校通过安装自己的正向代理服务器来进行的,他内置了操作系统对学生的操作以及外部的操作进行一定的管理。

作用:

  1. 对用户的行为进行监控(禁止不正常的行为,有些学校会禁止ssh操作这样你就无法登录你的云服务器)
  2. 对外部网络无法访问学校内部资源,保护内网安全
  3. 对访问过的资源缓存,当再次访问相同资源时就能直接使用不用再去加载

4.2 反向代理服务器

功能:

同样在代理服务器响应功能的基础上,客户端将请求发送给反向代理服务器,反向代理服务器根据请求将其转发给适当的目标服务器(后端服务器),并将目标服务器的响应返回给客户端(对于客户端来说,反向代理服务器就是目标服务器)

其中反向代理服务器能应用于负载均衡模式:
在这里插入图片描述
功能:

  1. 合理的使用内网资源(实现负载均衡(也就是所有机器都忙闲一致))
  2. 保护内网
  3. 能添加各种安全防护

5. NAT vs 代理服务器

  1. 从应用上讲, NAT设备是网络基础设备之一, 解决的是IP不足的问题

  2. 代理服务器则是更贴近具体应用(用于转发), 比如通过代理服务器进行翻墙,另外像迅游这样的加速器, 也是使用代理服务器。在这里插入图片描述

  3. 从底层实现上讲,NAT是工作在网络层,直接对IP地址进行替换。代理服务器往往工作在应用层

  4. 从使用范围上讲,NAT一般在局域网的出口部署, 代理服务器可以在局域网做, 也可以在广域网做, 也可以跨网

  5. 从部署位置上看, NAT一般集成在防火墙, 路由器等硬件设备上, 代理服务器则是一个软件程序, 需要部署在服务器上

翻墙原理:

通过访问其他能访问外部资源的主机去访问外部资源,然后在通过这主机将资源返回给自己(中间先访问该主机是合理的,我们将数据进行加密,该主机收到后解密就知道自己要访问的是那了,然后访问后缓存起来加密的再发送回去,最终解密即可)
在这里插入图片描述

6. 内网穿透(打洞)

在这里插入图片描述
原理:

  1. 云服务器能从运营商中得到想要访问的对方主机的出口路由器的公网ip和端口
  2. 可以把运营商的出口路由器的公网IP和端口作为响应报文的正文,发回给请求方,这样主机就能知道对方公网的出口路由器的信息、同时就为出口路由器建立NAT转化表(为了能进行通信提前做,从而提高效率)。
  3. 所以假设两台主机执行上面操作
  4. 这样主机就能通过运营商得知另外一台主机的出口路由器的公网IP和port
  5. 直接让两台主机直接通信(就能一定的提高效率不再每次都经过广域网)

附:

  • 当多台主机时同样也是行的,当多台主机访问同一台主机的数据(如直播行业)
  • 可以通过frp工具实现(就不扩展了)

本章完。预知后事如何,暂听下回分解。

如果有任何问题欢迎讨论哈!

如果觉得这篇文章对你有所帮助的话点点赞吧!

持续更新大量计算机网络细致内容,早关注不迷路。

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

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

相关文章

服务器数据恢复—LINUX下各文件系统删除/格式化的数据恢复可行性分析

Linux操作系统是世界上流行的操作系统之一,被广泛用于服务器、个人电脑、移动设备和嵌入式系统。Linux系统下数据被误删除或者误格式化的问题非常普遍。下面北亚企安数据恢复工程师简单聊一下基于linux的文件系统(EXT2/EXT3/EXT4/Reiserfs/Xfs&#xff0…

因果推荐CIKM24 | 通过偏好感知因果干预和反事实数据增强来提升序列推荐

论文来源:CIKM 24 论文链接:PACIFIC: Enhancing Sequential Recommendation via Preference-aware Causal Intervention and Counterfactual Data Augmentation | Proceedings of the 33rd ACM International Conference on Information and Knowledge …

如何在 Odoo18 视图中添加关联数据看板按钮 | 免费开源ERP实施诀窍

文 / 开源智造 Odoo亚太金牌服务 引言 关联数据看板按钮乃是 Odoo 当中的一项强效功能,它容许用户顺遂地访问相关记录,或者直接从模型的表单视图施行特定操作。它们为用户给予了对重要信息的疾速访问途径,并简化了工作流程,由此…

提升网站流量的关键:AI在SEO关键词优化中的应用

内容概要 在当今数字时代,提升网站流量已成为每个网站管理员的首要任务。而人工智能的技术进步,为搜索引擎优化(SEO)提供了强有力的支持,尤其是在关键词优化方面。关键词是连接用户需求与网站内容的桥梁,其…

腾讯图标/百并发

腾讯新图标,识别速度7毫秒, 百并发无压力

python和C++中的逻辑与/或、位与/或

在 Python 和 C 中,“与”和“或”的实现逻辑相似,但符号和使用方式有区别。 1.Python 中的与、或 与(AND):and或(OR):or 1.1 逻辑与、或: 用于布尔值(Tr…

PR基本操作

将剪辑添加到序列 1.在项目面板中选择素材,右击插入或覆盖选项,添加的素材依指针所在位置为起点。 上图画框位置会影响素材插入的轨道。 2.直接拖动素材到对应的时间轴轨道即可 3.拖动素材到节目监视器 在此项前插入:在V1轨道当前指针所…

如何配置Github并在本地提交代码

前提: 可以流畅访问github, 需要一些上网技巧, 这就自行处理了 申请一个github账号 Github官网地址 首先就是邮箱注册啦, github没有对邮箱的限制, 只要是能收邮件的就ok, qq邮箱, 163等都可以使用. 然后和普通注册账号一样, 一路填写需要的信息, 验证邮箱即可. 如何新增代…

nacos服务注册流程

一、客户端自动注册实例流程 1.首先客户端需要引入服务发现包 <groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId><version>2.2.6.RELEASE</version>2. NacosServiceRegistryA…

qemu安装arm64架构银河麒麟

qemu虚拟化软件&#xff0c;可以在一个平台上模拟另一个硬件平台&#xff0c;可以支持多种处理器架构。 一、安装 安装教程&#xff1a;https://blog.csdn.net/qq_36035382/article/details/125308044 下载链接&#xff1a;https://qemu.weilnetz.de/w64/2024/ 我下载的是 …

小程序维护外包流程和费用

由于某些原因很多老板想要跟换掉小程序原来合作的开发公司&#xff0c;重新把小程序系统维护外包新的公司。小程序系统外包维护是一个涉及多个方面的过程&#xff0c;需要从需求明确、选择团队到持续优化等多个环节进行细致管理。以下就是小程序系统外包维护主要包括几个关键步…

C—指针初阶(2)

如果看完阁下满意的话&#xff0c;能否一键三连呢&#xff0c;我的动力就是大家的支持与肯定&#xff0c;冲&#xff01; 二级指针 我们先看概念以及作用&#xff1a;用来存放一级指针的地址的指针 先看例子&#xff0c;我们逐一分析 我们先分析上面那个“1” 标注那里&#x…

x64dbg 安装使用教程

x64dbg的安装与配置 x64dbg官网地址&#xff1a;https://x64dbg.com/#start x64dbg界面介绍 1.反汇编窗口 这个位置显示的是需要分析的程序的反汇编代码。在第一个区域的最左侧例如“7712EAA3”这一列就是内存地址区域&#xff0c;接着“E8 07”就是汇编指令的opcode&#xff…

视频推拉流EasyDSS无人机直播技术巡查焚烧、烟火情况

焚烧作为一种常见的废弃物处理方式&#xff0c;往往会对环境造成严重污染。因此&#xff0c;减少焚烧、推广绿色能源和循环经济成为重要措施。通过加强森林防灭火队伍能力建设与长效机制建立&#xff0c;各地努力减少因焚烧引发的森林火灾&#xff0c;保护生态环境。 巡察烟火…

禾赛激光雷达AT_128_P_A02激光时间同步配置

sudo apt update sudo apt-get install linuxptp ethtool sudo ethtool -T 网卡名字(ifconfig可以查看)网卡名即连接激光雷达之后配置的ip所对应的网卡名称 一般来说看到如下提示信息才正常&#xff1a; lzslzs-Precision-3591:~$ ethtool -T enp0s31f6 Time stamping paramet…

java项目部署相关记录

部署 简单部署(Windows) redis我使用小皮面板开的 mysql也是 maven打包 先打包,打包成功,找到对应jar包 在文件夹打开,然后再次目录上开cmd java -jar jplan-0.0.1-SNAPSHOT.jar需要注意的是,windows的java环境要和idea项目里边的java是一致的 运行成功! 属性配置方式…

v-for遍历多个el-popover;el-popover通过visible控制显隐;点击其他隐藏el-popover

场景:el-popover通过visible控制显隐;同时el-popover是遍历生成的多个。 原文档的使用visible后就不能点击其他地方使其隐藏;同时解决实现点击其他区域隐藏 <template><div><template v-for="(item,index) in arr" :key="index"><…

【Ubuntu】清理、压缩VirtualBox磁盘空间大小

1、说明 本人为虚拟机创建了两个硬盘:root.vdi 和 hoom.vdi,在创建虚拟机时,分别挂载在/root目录和/home目录下。 下面演示分别清理、压缩两个磁盘的空间。 2、清理空间 1)清理 root.vid sudo dd if=/dev/zero of=/EMPTY bs=1M;sudo rm -f /EMPTY输出信息中会提示,如…

微信小程序跳转其他小程序以及跳转网站

一、跳转其他小程序 1.1 知道appid和页面路径 wx.navigateToMiniProgram({appId: appid, // 替换为目标小程序 AppIDpath: pathWithParams, // 小程序路径envVersion: release, // 开发版、体验版或正式版success(res) {console.log("跳转到其他小程序成功&#xff01;&q…

在ensp中ACL路由控制实验

一、实验目的 掌握ACL路由控制管理 二、实验要求 要求&#xff1a; 配置路由策略&#xff0c;左右两边不公开区域对方不可达&#xff0c;其他区域可以互相ping通 设备&#xff1a; 1、三台路由器 2、四台交换机 3、四台电脑 4、四台服务器 使用ensp搭建实验环境,如图所…