前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一文理清 以太网,因特网 中的 概念术语

一文理清 以太网,因特网 中的 概念术语

原创
作者头像
北洋
修改2024-01-23 15:57:06
2180
修改2024-01-23 15:57:06

学习是一个循序渐进的过程,因为任何不以循序渐进的方式进行的学习,都将出现盲目探索和不成系统的情况,最终学习到的也大都是相对零散的知识,并不能建立起一个系统的知识结构。非循序渐进的学习,也达不到循序渐进学习所能达到的深度,因为后者是步步深入的,每一步都以前一步为基础。

在学习计算机网络的过程中,有很多基础概念并不了解,比如以太网是如何发展为因特网的,这中间出现了什么问题有什么样的解决方案......。因此,本文主要目的是为读者快速扫盲在学习计算机网络中的基础概念,并尽可能的阐述清楚这些概念发展背后的问题背景及原因,在简单易懂的前提下尽量保证概念的深入理解。

同时计算机网络的发展太过于悠久,因此在之后的文章中会介绍无线网,移动蜂窝的概念。

LAN & WAN

lan叫做局域网,wan叫做广域网。

lan可以理解为是一块区域内的计算机通过网线进行连接的网络,也可以理解为是一个企业里面的计算机网络

公司里的计算机通过网线连接到一个集线器上(通过 冲突检测实现多路复用 ,多个设备交换数据通过一个线进行 就是多路复用,因此 同一时间只能有一个设备交换电信号,其他要发送的设备会等待一段时间后在发送 如果 还是等不到,等待的时间会慢慢变大 )集线器链接路由器 ,路由器 会连接到其他设备厂商的路由器(其他路由器下面也是一个lan)上

wan就是通过一个个的lan链接起来的网络

mac地址:以太网协议

首先 每块网卡都有一个mac地址且在物理世界中是唯一的(mac地址通过-分割多个十六进制数,前面的数字代表了这块网卡是那个厂商做的 **)

计算机如果想要介入互联网进行数据传输就需要有网卡,网卡是最终发送数据的设备也是 最开始接触数据的设备**

以太网原型:网线

以太网最初是通过一根网线连接的,还有一个收发器设备是用来连接不同网线之间信号的。这时的以太网发送的网络包都会被这条网线上的设备接受到,通过携带mac头部也就是地址,计算机会判断是不是属于自己的网络包(判断max头部发送方mac是不是自己的发送方发送的数据)如果不是就丢弃这个包,否则进行处理。

以太网的基本性质

包发送到MAC头部的接收方MAC地址代表的目的地用发送方MAC地址识别发送方,用以太类型识别包的内容。因此,可以认为具备这3个性质的网络就是以太网

ip地址:因特网协议

由于设备的 mac地址 没有规律 ,所以企业 无法对这些 计算机进行有效统一的分组管理 (因为数据很乱,需要像邮政编码那样的数字可以进行分类就很好管理),在这个情况下 出现了ip地址

ip地址通过四个8位的二进制数 来表示 (由于是四个所以也叫ipv4):IP地址是一个32比特的整数,每8比特为一组,组间用“.”分隔,分成4段表示。8比特所表示的整数换算成十进制后范围是0~255,因此可用作IP地址的整数是0.0.0.0~255.255.255.255,共计4294967296个。

其中 前三个二进制数代表着网络号 (也就是 lan 这个局域网络的标识 )最后一位代表着 主机号 (也就是 在这个网络里面的具体哪个设备 )。

一个企业里面的计算机ip地址的前三位是一样的,标识的用的同一个网络 在一个网络下,最后一位是代表这个网络下面的计算机唯一标识),这样 通过IP地址就可以轻松地对计算机进行分组管理了。

比如用IP地址中第1段到第3段的数值代表公司,用第4段的数值代表公司内部的计算机。例如,在AAA.BBB.CCC这个公司内,如果有一台计算机的编号是×××,那么它的IP地址就是AAA.BBB.CCC.XXX。而看到了AAA.BBB.CCC.YYY这样一个IP地址,就能知道它是这个公司内的另一台计算机。通常把IP地址中表示分组(即LAN)的部分称作“网络地址”、表示各台计算机(即主机)的部分称为“主机地址”。在本例中,AAA.BBB.CCC这一部分是网络地址,而XXX或YYY的部分是主机地址

子网掩码

从上面可以看到:

  1. 一个局域网Lan里面的主机数 是有限的(主机数是4个八位的二进制数) **,而且还需要除去头尾和路由器(路由器也是一个计算机,只不过他接受到ip地址以后是做转发其他路由器和分发该网络下的计算机的)**
  2. 而且出于安全的考虑 直接暴露ip地址中的网络号和主机号有风险 ,同一网络中的计算机可以互相通信 没有进行隔离

因此出现了子网掩码,通过掩码可以把一个LAN划分成多个Lan,并且可以对多个Lan进行隔离实现更精细对主机的控制。原理是通过 把掩码转换为二进制,和ip地址对照,其中值都为1的部分代表网络号,否则就是主机号。

所以子网掩码的作用是 标识出在32比特的IP地址中,从哪一位到哪一位是网络地址,从哪一位到哪一位是主机地址

把255.255.255.240用二进制表示的话,结果如下所示:11111111.11111111.11111111.11110000,因此255.255.255.240这个子网掩码就表示,其所对应的IP地址前28比特是网络地址,后4比特是主机地址。

dhcp服务器动态分配ip地址:

DHCP的全称是Dynamic Host Configuration Protocol(动态主机设置协议),DHCP服务器上记录着可以被分配到LAN内计算机的IP地址范围和子网掩码的值。

ip地址并 不是固定不变的。 当新的计算机连接到服务器上的时候,会向 DHCP客户端计算机申请一个 ip地址(dhcp内部管理着所有可以用 也就是未分配的网络号和主机号 也就是ip地址 和 子网掩码)。

在网络设置里面可以进行手动设置ip地址和子网掩码,不过大多数情况下选择的还是“自动获得IP地址”这个选项。这个选项使得 *计算机在启动时会去从DHCP服务器获取IP地址和子网掩码,并自动地配置它们,这也是为什么每次启动路由器和计算机 ip地址都不一样(如果你不用就别占着这个地址和掩码)

arp机制和协议:建立ip地址和mac地址的映射

当路由器收到的 ip地址 如果 不是该Lan下面的就会继续转发给上层的路由器 ;如果 是该lan下面的 (通过判断里面的网络号和路由器的网络号是否一致),就 不会通知其他路由器,而是通过广播arp的机制 向该网络号下的(也就是该路由器下面连接的计算机)发送广播。

****

链接的计算机会判断这个ip地址是不是自己,如果 不是自己就忽略 ;如果 是自己就会进行响应,把自己的mac地址告诉给路由器,路由器内部有一个arp缓存表,记录的就是ip地址和mac地址的对应关系

这样下次如果还是这个计算机,就不需要广播了,直接去arp表里面找到对应的mac地址发送给他。

路由表 :发送给其他路由器直到找到最终的计算机

路由器 内部除了arp表还有一个路由表,要知道路由器 的概念, 路由路由 就是说可以记录 传输数据经过的路由器 ,在 路由器出厂的时候 会内置一些固定路由器的地址用来接入互联网

路由表的组成:destnation表示服务器地址gateway代表要发送的下一个路由器的ip地址也叫网关interface代表使用哪个网卡发送方哪个ip地址 发送包到gateway如果gateway和interface一样,则代表是最终目的地

  • 首先通过目的地ip地址找到路由表中的network destination 找到对应的条目(如目的地ip为195.6.32那么找到的destination可能就是195.6,再然后发送到 对应记录的gateway网关ip地址
  • 如果gateway和interface一样,那么路由器直接发送到destnation接收方的ip地址即可

通过interface选择要使用的网卡ip地址发送包到gateway(下一个路由器)如果两个相同代表当前路由器就可以直接发送给接收方ip了不需要再接住下一个路由器转发了(也就是说处于同一个子网中)

对于同一个目的地地址 来说在路由表里面有多条记录 (经过不同的路由器,对应路由器的ip地址和掩码)代表着 不同路径,通过权重来用短的路径 发送给适应的 网关ip地址。

路由器也是一个计算机

路由器本质上也是一个计算机,也是通过ip地址和mac地址进行传输数据和通信的;且 路由器也是通过网线连接到一个更大的路由器上面,不断汇总形成一个巨大的广域网络。

每个路由器只会记录自己相邻路由器的信息 ,当路由器在自己的路由表里面找不到对应的路由信息时,就会转发给其他路由器寻找,直到找到。

也就是说 一个网络数据会经历多个不同的路由器才能到达目的地,这中间会 不断更换(ip数据包里面的ip地址和mac地址)

下一个路由器的ip地址和mac地址 到达最后一个路由器的时候 去arp里面找到对应ip的计算机,把ip地址替换成对应计算机对ip地址。

也就是说 通过ip地址的不断变更,数据不断发往其他路由器,最终给到目标计算机。

假如在互联网中只能使用MAC地址,那么会发生什么呢?

在接入互联网的数量众多的计算机中,仅仅是寻找信息的发送目的地就要花费大量的时间

DNS:中和IP和域名各自优缺点

IP:TCP/IP协议是通过IP地址通信的,但是人们很难记住IP地址,相反使用域名人们只要知道这个服务器网站的名字就可以,很方便也很好记忆。

域名:域名虽然相对好记,但是如果使用域名代替IP地址的话也是可以的(Windows网络原型PC-Networks就是使用域名代替的ip通信的);那么为什么这种方式不用了呢? 这是因为域名的长度不固定需要处理大量的字符,但是IP地址的话就是固定的4个字节的数据,路由器在中转传输的时候压力就会小很多。

结合各自优势来看的话,各有各的好处,但是也有缺点。域名相对于人来说更好记忆,相对路由器来说IP地址处理的效率会更高。那么就需要一个转换的机制来做映射,通过域名查找IP给路由器使用,这个转换器就是DNS服务器。

dns请求格式

先看下dns解析器生成的请求信息格式:

  • 域名

服务器名称

  • class

识别网络信息,目前只有互联网,该值永远为N

  • 记录类型

域名对应的查询类型,当该值为A代表对应的是通过域名查询ip地址,当为MX时代表查询的是邮件服务器名称

查询流程

dns服务器会从资源记录表中查找到请求信息对应的ip地址或邮件服务器名称

如何存储资源记录表

一个dns服务器所存储的资源是有限的,如何能够映射所有的资源?通过层级关系划分,将域名按照.进行分割,每个部分即是一个层次一个域, 最右边的域层次最高依次往左层次下降。

每个域只可以存在于一个dns服务器中,不能存储在多个服务器中;但是一个dns服务器可以存放多个域;可以在域下创建下级域

www.glass.com 其中 com是最大的域结构,接下来下一层去找glass域,那么如何知道存储glass域 ,com域的dns服务器ip地址呢?答案就是域的存储结构

域存储结构

下一层的域要注册到上层域中,这样上层域就可以找到存放下层域的dns服务器ip

从右至左查找,右边的服务器域名最大保管的是下一级的解析这个域名的dns服务器的ip地址,每个计算机dns客户端都会保存一些映射表,互联网里面所有的dns服务器里面就会保存最上层域的dns服务器ip

如果当前有对应的域名映射表就直接返回,如果没有就需要一层一层从上往下查找各个不同层级的dns的ip地址从而找到存储这个域名对应的ip地址dns服务器

还有一个跟域最容易被忽略,在com,cn等服务器的后面还可以在家一个点.代表跟域;跟域保存着com,cn等解析这些域名的dns服务器地址

大致流程:

DNS缓存

每次都从根域进行查找太浪费时间了,因此DNS有缓存功能,缓存最近访问过的域名IP映射信息;但是缓存的信息可能会更改比如域名更换了,因此缓存会设置一个有效期,到期之后会进行清除

客户端在收到对应IP的时候也会有相应的表示此次结果是缓存命中还是所属DNS服务器返回的。

我正在参与2024腾讯技术创作特训营第五期有奖征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • LAN & WAN
  • mac地址:以太网协议
    • 以太网原型:网线
      • 以太网的基本性质
      • ip地址:因特网协议
      • 子网掩码
      • dhcp服务器动态分配ip地址:
      • arp机制和协议:建立ip地址和mac地址的映射
      • 路由表 :发送给其他路由器直到找到最终的计算机
      • 路由器也是一个计算机
      • DNS:中和IP和域名各自优缺点
      • dns请求格式
        • 查询流程
          • 如何存储资源记录表
            • 域存储结构
              • DNS缓存
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档