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

news2024/10/3 20:31:44

目录

  • 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的原理和工作流程

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何给远程服务器配置代理

目录 前言 正文 更换镜像源 开始之前 安装过程 遇到的问题 尾声 🔭 Hi,I’m Pleasure1234🌱 I’m currently learning Vue.js,SpringBoot,Computer Security and so on.👯 I’m studying in University of Nottingham Ningbo China&#x1f4…

使用Git管理github的代码库-上

1、下载安装Git https://download.csdn.net/download/notfindjob/11451730?spm1001.2014.3001.5503 2、注册一个github的账号(已经注册的,可略过这一步) 3、打开git命令行,配置github账号 git config --global user.name &quo…

CCleaner系统优化与隐私保护工具,中文绿色便携版 v6.23.11010

01 软件介绍 CCleaner 是一款高级的系统优化工具,其设计宗旨在于彻底清理 Windows 操作系统中积累的无用文件和冗余的注册表项。此举旨在显著提升计算机的运行效率并回收磁盘空间。该软件拥有高效的能力,可以清除包括临时文件、浏览器缓存及其历史记录在…

Java入门——继承和多态(中)

组合 和继承类似, 组合也是一种表达类之间关系的方式, 也是能够达到代码重用的效果. public class Student { ... } public class Teacher { ... } public class School { public Student[] students; public Teacher[] teachers; } 组合并没有涉及到特殊的语法(诸如 ex…

如何通过香港站群服务器高效实现网站内容的快速更新?

如何通过香港站群服务器高效实现网站内容的快速更新? 在当今激烈的数字市场竞争中,网站内容的快速更新对于吸引用户和保持竞争优势至关重要。而利用香港站群服务器实现这一目标,则具备诸多优势。下面将详细探讨如何通过香港站群服务器高效实现网站内容…

【CSP CCF记录】数组推导

题目 过程 思路 每次输入一个Bi即可确定一个Ai值,用temp记录1~B[i-1],的最大值分为两种情况: 当temp不等于Bi时,则说明Bi值之前未出现过,Ai必须等于Bi才能满足Bi是Ai前缀最大的定义。当temp等于Bi时,则说…

树莓派nmap扫描

debian系统安装nmap: sudo apt install nmap安装nmap完成后,输入 ip route 来查看当前Wi-Fi路由器的ip地址。 第一行的default via后显示的便是网关地址,也就是路由器地址。 获取到路由器ip地址后,在终端中输入: …

【产品经理必会知识点】马斯洛需求理论

马斯洛需求理论👓从7个层次洞察人心 ❓你是否常在挑选晚餐时感到纠结,不知道到底想吃什么? ❓你是否在购物时被某些商品深深吸引,明明没那么需要却难以抗拒? ❓你是否常常感到迷失于用户五花八门的需求之中不得要领…

5. 分布式链路追踪TracingFilter改造增强设计

前言 在4. 分布式链路追踪客户端工具包Starter设计一文中,我们实现了基础的Starter包,里面提供了我们自己定义的Servlet过滤器和RestTemplate拦截器,其中Servlet过滤器叫做HoneyTracingFilter,仅提供了提取SpanContext&#xff0…

瞬息全宇宙——穿越之旅终极教程,手把手教你做出百万点赞视频

最近一种叫“瞬息全宇宙”的视频火了,抖音一期视频百万赞,各个博主视频都在带瞬息全宇宙这个标签,于是就有很多朋友催我出教程了,在琢磨了几天之后,终于整出来了 教程包含了插件的安装,界面的讲解&#xff…

MySQL——创建存储过程函数_createProcedure_name(in p1;p2)_call

DDL CREATE TABLE student (id int(11) NOT NULL AUTO_INCREMENT COMMENT 学号,createDate datetime DEFAULT NULL,userName varchar(20) DEFAULT NULL,pwd varchar(36) DEFAULT NULL,phone varchar(11) DEFAULT NULL,age tinyint(3) unsigned DEFAULT NULL,sex char(2) DEFAU…

【静态分析】软件分析课程实验A2-常量传播和Worklist求解器

Tai-e官网: 概述 | Tai-e 参考: https://www.cnblogs.com/gonghr/p/17979609 -------------------------------------------------------- 1 作业导览 为 Java 实现常量传播算法。实现一个通用的 worklist 求解器,并用它来解决一些数据…

CCF-GESP青少年编程考级报名流程及照片要求的处理方法

随着编程教育的普及,越来越多的青少年开始接触并学习编程。中国计算机学会(CCF)推出的GESP(Grade Examination of Software Programming)认证,为青少年提供了一个专业的编程能力认证平台。以下是关于GESP认…

python微信小程序 uniapp高校打印店预约服务系统

本系统是针对校园自助打印开发的工作管理系统,包括到所有的工作内容。可以使自助打印的工作合理化和流程化。本系统包括手机端设计和电脑端设计,有界面和数据库。本系统的使用角色分为管理员和用户、店长三个身份。管理员可以管理系统里的所有信息。店长…

ICode国际青少年编程竞赛- Python-5级训练场-综合练习7

ICode国际青少年编程竞赛- Python-5级训练场-综合练习7 1、 for i in range(6):while not Flyer[i].disappear():wait()Spaceship.step(2 2 * i)Spaceship.turnRight()2、 def get(a, b, c, d):for i in (a, b, c, d):Dev.step(i)if i ! 0:Dev.turnRight() get(3, 3, 5, -4)…

数据结构-树概念基础知识

根结点:非空树中无前驱节点的结点 结点度:结点拥有的子树数或子节点数或后继节点数 树的度:树内各结点的度的最大值 叶子:终端节点,度为0 祖先:从根到该节点所经分支上的所有结点 子孙:以某结点…

蓝牙小车的具体实现

title: 蓝牙小车开发时的一些细节 cover: >- https://tse1-mm.cn.bing.net/th/id/OIP-C.BrSgB91U1MPHGyaaZEqcbwHaEo?w273&h180&c7&r0&o5&dpr1.3&pid1.7 abbrlink: 842d5faf date: tags: #小车基本运动之最重要的—PWM ##1.PWM(Pulse …

关于Acrel-1000DP光伏监控系统的案例分析-安科瑞 蒋静

摘要:随着全球对可再生能源的需求不断增长,太阳能作为一种清洁、可持续的能源技术,得到了越来越广泛的应用。本项目通过在屋顶安装光伏组件,将太阳能转化为电能,然后通过逆变器将直流电转换为交流电,将电能…

振弦式表面应变计怎么安装

振弦式表面应变计是一种用于测量结构表面应变的高精度传感器,广泛应用于工程和科研领域。正确安装振弦式表面应变计对于确保测量结果的准确性至关重要。以下是安装振弦式表面应变计的步骤和注意事项: 1. 准备工作 在开始安装前,需要准备以下工…

【Linux】磁盘文件

思维导图 学习目标 了解磁盘的物理结构和存储结构,并将其存储结构进行抽象!! 一、了解一下磁盘及其物理结构 1.1 计算机只认识二进制 什么是二进制??0,1是被规定出来的,在计算机里面我们用高低…