[Linux][网络][协议技术][DNS][ICMP][ping][traceroute][NAT]详细讲解

目录

  • 1.DNS
    • 1.DNS背景
    • 2.域名简介
  • 2.ICMP协议
    • 1.ICMP功能
    • 2.ICMP两类报文
  • 3.ping命令
  • 4.traceroute
  • 5.NAT技术
    • 1.NAT技术背景
    • 2.NAT IP转换过程
    • 3.静态地址NAT && 动态地址NAT
    • 4.网络地址端口转换NAPT
    • 5.NAT技术的缺陷
    • 6.NAT和代理服务器
  • 6.总结
    • 1.数据链路层
    • 2.网络层
    • 3.传输层
    • 4.应用层


1.DNS

  • DNS(Domain Name System)(是一整套从域名映射到IP的系统)
  • DNS 的默认端口:53
  • DNS协议规范使用UDP进行传输

1.DNS背景

  • TCP/IP中使用IP地址和端口号来确定网络上的一台主机的一个程序
  • 但是IP地址不方便记忆,于是人们发明了一种叫主机名的东西,是一个字符串,并且使用hosts文件来描述主机名和IP地址的关系
  • 最初,通过互连网信息中心(SRI-NIC)来管理这个hosts文件
    • 如果一个新计算机要接入网络,或者某个计算机IP变更,都需要到信息中心申请变更hosts文件
    • 其他计算机也需要定期下载更新新版本的hosts文件才能正确上网
  • 这样就太麻烦了,于是产生了DNS系统
    • 一个组织的系统管理机构,维护系统内的每个主机的IP和主机名的对应关系
    • 如果新计算机接入网络,将这个信息注册到数据库中
    • 用户输入域名的时候,会自动查询DNS服务器,由DNS服务器检索数据库,得到对应的IP地址
  • 至今,我们的计算机上仍然保留了hosts文件,在域名解析的过程中仍然会优先查找hosts文件的内容

2.域名简介

  • 域名组成:主机名.结构名.网络名.最高层域名
  • 主域名是用来识别主机名称和主机所属的组织机构的一种分层结构的名称
    • 如:www.baidu.com
  • 域名使用 . 连接
    • com:一级域名,表示这是一个企业域名,同级的还有"net"(网络提供商),“org”(非盈利组织)等
    • baidu:二级域名,公司名
    • www:只是一种习惯用法,之前人们在使用域名时,往往命名成类似于ftp.xxx.xxx/www.xxx.xxx这样的格式,来表示主机支持的协议

2.ICMP协议

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

1.ICMP功能

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

2.ICMP两类报文

  • 一类是通知出错原因
  • 一类是用于诊断查询
    请添加图片描述

3.ping命令

  • 注意,此处ping的是域名,而不是url,一个域名可以通过DNS解析成IP地址

  • ping命令不光能验证网络的连通性,同时也会统计响应时间和TTL(IP包中的Time To Live,生存周期)

  • ping命令会先发送一个ICMP Echo Request给对端,对端接收到之后,会返回一个ICMP Echo Reply
    ![[Pasted image 20240225085550.png]]

  • 一个值得注意的坑

    • 有些面试官可能会问:telnet是23端口,ssh是22端口,那么ping是什么端口?
    • 千万注意,这是面试官的圈套
    • ping命令基于ICMP,是在网络层,而端口号是传输层的内容,在ICMP中根本就不关注端口号这样的信息

4.traceroute

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

5.NAT技术

1.NAT技术背景

  • 之前我们讨论了,IPv4协议中,IP地址数量不充足的问题
  • NAT技术是当前解决IP地址不够用的主要手段,是路由器的一个重要功能
    • NAT能够将私有IP对外通信时转为全局IP,也就是就是一种将私有IP和全局IP相互转化的技术方法
    • 很多学校,家庭,公司内部采用每个终端设置私有IP,而在路由器或必要的服务器上设置全局IP
    • 全局IP要求唯一,但是私有IP不需要,在不同的局域网中出现相同的私有IP是完全不影响的

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 发送数据时就会生成表中的映射关系
    请添加图片描述

3.静态地址NAT && 动态地址NAT

  • 静态地址NAT
    • 将内部网络的私有的IP地址转换为公有IP地址,IP地址是一对一的,是一直不变的
    • 实现固定私网主机地址到公网地址的一对一转换,适用于上网用户少,且同时上网用户数量与公网地址数量相同的场景
  • 动态地址NAT
    • 将内部网络的私有的IP地址转换为公有IP地址时,IP地址时不确定,随机的
    • 私网主机地址与公网地址的动态转换,并没有固定映射关系

4.网络地址端口转换NAPT

  • 那么问题来了,如果局域网内,有多个主机都访问同一个外网服务器,那么对于服务器返回的数据中,目的IP都是相同的,那么NAT路由器如何判定将这个数据包转发给哪个局域网的主机?
    • 这时候NAPT来解决这个问题了,使用IP+Port来建立这个关联关系
      • 在进行源地址转换的过程中,不一定只替换源IP,必要的时候,源端口也要被替换
      • 路由器在NAT转换的过程中,除了单纯的替换,还会为用户根据报文请求的四元组,构建一个映射关系
      • 无论从内向外,还是从外向内,都能在各自的网络中表示唯一性,所以,这个映射关系是互为KEY值
  • 这种关联关系也是由NAT路由器自动维护的
    • **例如:**在TCP的情况下,建立连接时,就会生成这个表项,在断开连接后,就会删除这个表项
      请添加图片描述

5.NAT技术的缺陷

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

6.NAT和代理服务器

  • 路由器往往都具备NAT设备的功能,通过NAT设备进行中转,完成子网设备和其他子网设备的通信过程
  • 代理服务器看起来和NAT设备有一点像,客户端向代理服务器发送请求,代理服务器将请求转发给真正要请求的服务器,服务器返回结果后,代理服务器又把结果回传给客户端
  • 那么NAT和代理服务器的区别有哪些呢?
    • 从应用上讲
      • NAT设备是网络基础设备之一,解决的是IP不足的问题
      • 代理服务器则是更贴近具体应用
        • 通过代理服务器进行翻墙,
        • 另外像网易UU这样的加速器,也是使用代理服务器
    • 从底层实现上讲
      • NAT是工作在网络层,直接对IP地址进行替换
      • 代理服务器往往工作在应用层
    • 从使用范围上讲
      • NAT一般在局域网的出口部署
      • 代理服务器可以在局域网做,也可以在广域网做,也可以跨网
  • 从部署位置上看
    • NAT一般集成在防火墙,路由器等硬件设备上
    • 代理服务器则是一个软件程序,需要部署在服务器上
  • 代理服务器是一种应用比较广的技术
    • 翻墙:广域网中的代理 – 正向代理
    • 负载均衡:局域网中的代理 – 反向代理
  • 代理服务器又分为正向代理和反向代理
    • 正向代理用于请求的转发
    • 反向代理往往作为一个缓存

6.总结

1.数据链路层

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

2.网络层

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

3.传输层

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

4.应用层

  • 应用层的作用:满足日常需求的网络程序,都是在应用层
  • 能够根据自己的需求,设计应用层协议
  • 了解HTTP协议
  • 理解DNS的原理和工作流程

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

APP未上架应用市场,微信商户如何快速开通APP支付

在移动互联网时代,APP作为企业服务用户的重要窗口,其支付功能的完善性直接关系到用户体验和企业的营收。然而,对于许多未上架应用市场的APP来说,如何快速开通微信APP支付功能成为了一个亟待解决的问题。本文将为您详细介绍在APP未…

AI大模型探索之路-训练篇22: ChatGLM3微调实战-从原理到应用的LoRA技术全解

系列篇章💥 AI大模型探索之路-训练篇1:大语言模型微调基础认知 AI大模型探索之路-训练篇2:大语言模型预训练基础认知 AI大模型探索之路-训练篇3:大语言模型全景解读 AI大模型探索之路-训练篇4:大语言模型训练数据集概…

Java | Leetcode Java题解之第79题单词搜索

题目&#xff1a; 题解&#xff1a; class Solution {public boolean exist(char[][] board, String word) {char[] words word.toCharArray();for(int i 0; i < board.length; i) {for(int j 0; j < board[0].length; j) {if (dfs(board, words, i, j, 0)) return t…

数据中心--AI时代的“炼油厂”

数据中心正在成为AI时代的“炼油厂”&#xff01; 众所周知&#xff0c;AI的高歌猛进催生了对数据的海量处理需求。为了满足蓬勃的算力需求&#xff0c;全球开启了新一轮的数据中心建设热潮&#xff0c;数据中心业务正在以指数级的速度疯狂扩张。 此番情景&#xff0c;和第二…

图书馆APP开发解决方案

uni-app框架&#xff1a;使用Vue.js开发跨平台应用的前端框架&#xff0c;编写一套代码&#xff0c;可编译到Android、小程序等平台。 框架支持:springboot/Ssm/thinkphp/django/flask/express均支持 前端开发:vue.js 可选语言&#xff1a;pythonjavanode.jsphp均支持 运行软件…

摸鱼大数据——Linux搭建大数据环境——安装无界面虚拟机

前期准备工作基础环境配置 提前安装好vmware软件,准备好连接虚拟机的&#xff08;Final shell、WindTerm、CRT皆可&#xff09; 安装CentOS纯净版&#xff08;无界面版&#xff09; 1.文件 -> 创建新的虚拟机 -> 典型(推荐) -> 稍后安装操作系统 2.客户机操作系统 : …

pytorch常用内置loss函数与正则化技术(补充小细节)

文章目录 前言一、常用损失函数(后面用到了新的会一一补充)1.1 回归中的损失函数1.1.1 nn.MSELoss()示例1:向量-向量示例2:矩阵--矩阵(维度必须一致才行)1.2 分类中的损失函数1.2.1 二分类(1)nn.BCELoss --- 二分类交叉熵损失函数示例1:向量-向量示例2:矩阵--矩阵(维…

FileZilla一款免费开源的FTP软件,中文正式版 v3.67.0

01 软件介绍 FileZilla 客户端是一个高效且可信的跨平台应用程序&#xff0c;支持 FTP、 FTPS 和 SFTP 协议&#xff0c;其设计宗旨在于为用户提供一个功能丰富且直观的图形界面。此客户端的核心特性包括一个站点管理器&#xff0c;该管理器能有效地存储和管理用户连接详情及登…

webpack5以下的项目,前端引入node的path模块需要额外配置

webpack5以下的项目&#xff0c;前端import * as path from path时需要额外配置&#xff0c;这里以vue.config.js为例 刚开始引入时报错 其实就是在打包前端项目的时候&#xff0c;将path模块替换成 path-browserify 模块&#xff0c;所以还需要安装 path-browserfify 模块 …

【全网玩家注意】Gamma 模拟器上架AppStore,让初代 PlayStation 游戏登陆 iPhone

5 月 11 日&#xff0c;索尼 PlayStation 的免费模拟器 Gamma 上架 iOS 和 iPad应用商店。Gamma 与开发商 Riley Testut 的Delta 模拟器相似&#xff0c;尤其是在界面方面。与 Delta 一样&#xff0c;它允许自定义屏幕控制器皮肤&#xff0c;并支持蓝牙控制器和有线键盘。 它支…

银发经济背后百万亿市场,解析冷门暴利的中老年AI赚钱项目!

最近“银发经济”这个词频繁出现&#xff0c;如果你注意到了抖音被封号的“秀才”以及仍在活跃的“一笑倾城”这两个账号&#xff0c;你就会明白中老年赛道的前景是多么广阔。 《银发经济蓝皮书》数据显示&#xff0c;到目前为止&#xff0c;我国60岁及以上的老年人口已超过2.8…

GNSS地表位移监测仪的工作原理

TH-WY1GNSS地表位移监测仪是一种用于实时监测地表位移变化的仪器设备。它主要利用全球导航卫星系统(GNSS)或全球定位系统(GPS)技术&#xff0c;通过接收卫星信号来测量地表点位的移动变化&#xff0c;从而获取地表点位的精确坐标信息&#xff0c;进而监测地表的水平和垂直位移情…

【软考】UML中的图之活动图

目录 1. 说明2. 图示3. 特性4. 使用方式4.1 对工作流建模4.2 对操作建模 1. 说明 1.Activity Diagram。2.活动图是一种特殊的状态图&#xff0c;它展现了在系统内从一个活动到另一个活动的流程。3.活动图专注于系统的动态视图&#xff0c;它对于系统的功能建模特别重要&#x…

重新定义社交:Facebook的未来愿景与颠覆力量

在当今数字化社会中&#xff0c;Facebook作为全球最大的社交媒体平台&#xff0c;其未来愿景和颠覆力量备受关注。本文将深入探讨Facebook如何重新定义社交&#xff0c;以及其未来发展中的新趋势和影响。 1. 智能化社交体验 Facebook致力于利用人工智能技术提供更智能、个性化…

通配符证书260元

通配符SSL证书是一种特殊的数字证书&#xff0c;可以保护域名以及该域名下的所有子域名。不论是个人开发者还是企业开发者&#xff0c;只需要购买一个通配符SSL证书&#xff0c;就可以为多个子域名提供传输数据加密服务&#xff0c;降低了多子域名网站开发者购买SSL证书的成本。…

基于R语言绘图 | 转录代谢趋势图绘制教程

原文链接&#xff1a;基于R语言绘图 | 转录代谢趋势图绘制教程 本期教程 小杜的生信笔记&#xff0c;自2021年11月开始做的知识分享&#xff0c;主要内容是R语言绘图教程、转录组上游分析、转录组下游分析等内容。凡事在社群同学&#xff0c;可免费获得自2021年11月份至今全部…

css backdrop-filter 实现背景滤镜

官方给出的定义是&#xff1a;backdrop-filter属性允许您将图形效果&#xff08;如模糊或颜色偏移&#xff09;应用于元素后面的区域。因为它适用于元素后面的所有内容&#xff0c;所以要查看元素或其背景的效果&#xff0c;需要透明或部分透明。 大致分为以下10种&#xff1a…

高效管理文件技巧:一键利用文件大小,轻松移动到指定文件夹

在日常生活和工作中&#xff0c;我们经常需要管理大量的文件&#xff0c;包括文档、图片、视频等各种类型。然而&#xff0c;手动分类和移动这些文件往往是一项繁琐且耗时的任务。为了提高文件管理的效率&#xff0c;我们可以采用一些高效的管理技巧&#xff0c;比如利用文件大…

海外青云私有云产品种类介绍

青云(QingCloud)是一家领先的云计算服务提供商&#xff0c;其私有云产品系列在海外市场上也备受关注。以下是对海外青云私有云产品种类的科普介绍。 在海外市场中&#xff0c;青云的私有云产品以其高度的灵活性、可扩展性和安全性而著称。这些产品能够满足不同行业、不同规模企…

C++——缺省参数与重载函数

目录 ​前言 一.缺省参数 1.1缺省参数概念 1.2缺省参数分类 注意事项&#xff1a; 二.函数重载 2.1函数重载概念 2.2c支持函数重载原理——命名修饰 前言 本篇文章主要讲述c中有关于缺少参数与函数重载的相关概念与实例&#xff0c;以下是本人拙见&#xff0c;如有错误…