【网络原理】数据链路层 及 DNS域名系统

news2024/9/20 22:26:20

系列文章目录

【网络通信基础】网络中的常见基本概念

【网络编程】网络编程中的基本概念及Java实现UDP、TCP客户端服务器程序(万字博文)

【网络原理】UDP协议的报文结构 及 校验和字段的错误检测机制(CRC算法、MD5算法)

【网络原理】TCP协议的相关机制(确认应答、超时重传)

【网络原理】TCP协议的连接管理机制(三次握手和四次挥手)

【网络原理】IP协议的地址管理和路由选择


目录

系列文章目录

一、数据链路层

认识以太网

以太网帧格式 

二、DNS 域名解析系统 


一、数据链路层

认识以太网

  • 以太网是一种计算机局域网(LAN)技术,用于在局域网中进行数据通信。
  • 以太网技术横跨了数据链路层和物理层,在数据链路层,负责处理数据帧的传输、碰撞检测等功能;而以太网使用的物理传输介质,如双绞线、光纤等,以及物理信号传输介质则属于物理层的范畴。
  • 以太网是当前最常见和最广泛使用的局域网技术之一。

以太网帧格式 

以太网帧格式如下图所示:

首先是目的地址和源地址两个字段,这两个字段和前面传输层和网络层协议,使用的IP地址就不一样了。数据链路层,引入了另外一套地址体系,即6个字节的“MAC地址”,也叫物理地址。

认识MAC地址: 

  • MAC地址是数据链路层的地址,长度为48位,即6个字节。一般使用16进制数字加上“:”或“ - ” 的形式来表示(例如:08:00:27:03:fb:19;00-FF-23-A9-D8-68)
  • MAC地址是静态分配的,在网卡出厂时就已经确定了,不能修改。且MAC地址能表示的范围比IP地址大很多,因此MAC地址通常是唯一的(虚拟机中的MAC地址不是真实的)。

 MAC地址和IP地址是两套独立的地址体系。对比理解MAC地址和IP地址:

  • IP地址描述的是路途总体的 起点 和 终点;
  • MAC地址描述的是路途上的每一个区间的 起点 和 终点。

举一个例子,假设我要从厦门到北京,我的路线是 厦门=>南京=>石家庄=>北京(不考虑NAT机制,即公网到公网的情况):

第一步:厦门=>南京

  • 源IP:厦门;目的IP:北京
  • 源MAC:厦门;目的MAC:南京

第二步:南京=>石家庄

  • 源IP:厦门;目的IP:北京
  • 源MAC:南京;目的MAC:石家庄

第三步:石家庄=>北京

  • 源IP:厦门;目的IP:北京
  • 源MAC:石家庄;目的MAC:北京

再到类型和数据这两个字段:

类型字段用于表示数据字段中所携带的数据的类型。如以下三种(IP,ARP,RARP):

 数据字段则表示数据部分的长度范围在 46 ~ 1500 字节 之间。最短46字节,是因为ARP是46字节;最长1500字节,则是硬件的限制了,这个最大值1500称为以太网的最大传输单元(MTU),不同的网络类型有不同的MTU。

前面介绍,IP数据包的拆包是在数据链路层有限制,这往往就是因为这个MTU导致的,而不是达到了IP数据包自身的64KB的限制。

  • 如果类型字段表示,数据是IPv4类型,此时意味着该以太网帧是一个能够携带业务数据的报文(即携带IP数据包)
  • 如果类型字段表示,数据是ARP类型(ARP和RARP可以认为是两个横跨了网络层和数据链路层的协议),它会将目标IP地址解析为对应的MAC地址,即 IP=>MAC.
  • 而 RARP 的请求和响应被包含在 ARP 类型的帧中,它与ARP正好相反,它用于将MAC地址解析为对应的IP地址,即MAC=>IP.

二、DNS 域名解析系统 

DNS(Domain Name System)是一个重要的应用层协议,可以被称为域名解析系统。它的主要功能之一就是将人类可读的域名解析为计算机可理解的IP地址。通过DNS,用户可以使用易记的域名来访问互联网上的各种资源,而不需要记住复杂的IP地址。

DNS使用TCP和UDP端口53,并对域名长度进行了限制,每一级域名长度不能超过63个字符,而域名总长度不能超过253个字符

  • 最早的时候,人们使用hosts文件来描述域名和IP地址的关系,即文件中存储域名和IP地址的映射关系(行文本,每一行都有IP和域名)。这样做的好处是可以在本地进行域名解析,加快访问速度并且可以防止访问特定网站。
  • 随着主机和服务器越来越多了,此时维护hosts文件,就非常麻烦了。
  • 于是,大佬们就搭建了一组服务器,来提供域名解析服务(hosts内容放到服务器了,同时删除hosts文件中的所有自定义映射。这样,计算机将不再依赖于Hosts文件进行域名解析,而是通过DNS服务器来获取域名解析信息)
  • 当某个主机想要访问某个域名,就先查询一下,域名解析服务器(DNS服务器)。查到的结果,就是域名对应的IP,计算机就可以通过这个IP进行访问。

此时就有一个问题,全世界这么多人上网,大家都去访问这个DNS服务器,它扛得住这么大的请求量吗?

  • 实际上,DNS服务器并非只有一个,虽然经常提到只有13个根DNS服务器(顶层服务器,管理互联网的顶级域名(如.com、.org、.net)),但这只是一个符号性的表示方式,用于方便表示这些根服务器的名称。
  • 各个国家的网络运营商,还会根据根域名服务器的内容,搭建出“镜像服务器”。国民上网的时候,一般就会就近的访问到附近运行商的镜像DNS服务器。
  • 同时,DNS服务器还有很多种类型。比如:
  1. 权威DNS服务器:这些服务器存储特定域名的DNS记录,管理域名的解析。每个域名都有至少一个权威DNS服务器,通常由域名注册商或域名持有者运营。这些服务器遍布全球,以确保互联网的稳定和可靠。
  2. 公共DNS服务器:这些服务器由一些大型技术公司或组织提供,旨在为全球用户提供免费和快速的DNS服务。著名的公共DNS服务器包括谷歌的8.8.8.8和8.8.4.4、Cloudflare的1.1.1.1和1.0.0.1、OpenDNS的208.67.222.222和208.67.220.220等。

  3. 递归DNS服务器:当用户设备需要访问某个域名时,递归DNS服务器会向权威DNS服务器发送查询请求,并将返回的IP地址解析结果返回给用户设备。

域名采用了分层次的结构,域名的级别没有固定的数量限制。具体的分级数量和命名规则可以因不同的域名注册机构和组织而有所不同。例如:域名可以包括顶级域名、二级域名、三级域名和四级域名。域名实际上也就是我们常见的网址。

  1. 顶级域名:如 `.cn` 表示中国,`.uk` 表示英国,`.us` 表示美国等。此外,还有通用顶级域名,如 `.com`、`.net`、`.org` 等。还有一种特殊的顶级域名是 `arpa`,它用于反向域名解析,将IP地址反向解析为域名。
  2. 二级域名:通常用于表示网站所属的行业或组织类型,例如 `edu` 表示这个网站属于教育机构。
  3. 三级域名:通常用于表示组织或公司的名称,例如 `jxnu` 可能表示江西师大。
  4. 四级域名:通常用于表示特定的服务或应用,例如 `www` 通常表示万维网服务。

除了常见的域名级别外,实际上还存在更多级别的域名,如四级、五级域名等。这些更高级别的域名通常用于满足特定的需求或进行更细致的划分。

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

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

相关文章

为什么使用ZigBee技术开发智能家居产品?

随着智能家居市场的蓬勃发展,各种智能设备层出不穷,其中Zigbee技术因其独特的优势在这些智能设备中得到了广泛应用。那么,zigbee技术究竟具备哪些令人瞩目的优势,为什么能够得到如此广泛的应用呢? 什么是Zigbee协议&am…

Docker 容器操作

容器创建 就是将镜像加载到容器的过程。 新创建的容器默认处于停止状态,不运行任何程序,需要在其中发起一个进程来启动容器。 格式:docker create [选项] 镜像 常用选项: -i:让容器开启标准输入 -t:让…

电商架构:系统设计+表设计

如有不对,请指正 欢迎评论区交流 需要哪些系统 商品系统、订单系统、权限系统、审核系统等。 商品系统 订单系统 审核系统 权限系统 参考 基于电商中台架构-商品系统设计(一) 附件

APQC是美国生产力与质量中心

APQC简介 APQC是美国生产力与质量中心( American Productivity and Quality Center)的简称。该中心自1991年开始研究开发流程分类框架(简称PCF),1992年发布PCF1.0。PCF将运营与管理等流程汇总成12项企业级流程类别,每个流程类别包…

win10安装pytorch + cuda

1:下载cuda工具cuda-toolkit 地址:https://developer.nvidia.com/cuda-toolkit-archive 2:一路向下:安装 3:配置环境变量 path 环境变量中添加: 4:验证cuda是否安装成功: nvcc -…

计算机网络——初识网络

一、局域网与广域网 1.局域网(LAN) 局域网:即Local Area Network,简称LAN。Local即标识了局域⽹是本地,局部组建的⼀种私有⽹络。局域⽹内的主机之间能⽅便的进⾏⽹络通信,⼜称为内⽹;局域⽹和…

idea No versioned directories to update were found

idea如何配置svn以及svn安装时需要注意什么 下载地址:https://112-28-188-82.pd1.123pan.cn:30443/download-cdn.123pan.cn/batch-download/123-820/3ec9445a/1626635-0/3ec9445a25ba365a23fc433ce0c16f34?v5&t1714358478&s171435847804276f7d9249382ba512…

RCE复习(ctfhub上)

一、rce漏洞概述 在Web应用开发中为了灵活性、简洁性等会让应用调用代码执行函数或系统命令执行函数处理,若应用对用户的输入过滤不严,容易产生远程代码执行漏洞或系统命令执行漏洞。 二、常见RCE漏洞函数 1.系统命令执行函数 system():能将…

LeetCode 94.二叉树的中序遍历

题目描述 给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。 示例 1: 输入:root [1,null,2,3] 输出:[1,3,2]示例 2: 输入:root [] 输出:[]示例 3: 输入:root [1] …

【c++】----STL简介string

目录 1. 什么是STL 2. STL的版本 3. STL的六大组件 4.STL的缺陷 5.string类 1. 为什么学习string类? 6.string类的常用接口说明(下面我们只讲解最常用的接口) 1.string 常见构造 2.string类的遍历 iterator 迭代器遍历 (…

uniapp制作安卓原生插件踩坑

top. fireEvent失效的问题 本来我项目跑的好好的,结果放到公司项目半天收不到回调 结果是因为vue3 方法 onTel会变成on-tel 全部改小写才行了 1.uniapp和Android工程互相引用讲解 uniapp原生Android插件开发入门教程 (最新版)_uniapp and…

Java设计模式 _创建型模式_工厂模式(普通工厂和抽象工厂)

一、工厂模式 属于Java设计模式创建者模式的一种。在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。 二、代码示例 场景:花店有不同的花,通过工厂模式来获取花。 1、普通工厂模式 逻辑步骤&#…

AnaTraf网络流量分析仪:实时监控、故障排除和性能优化的必备工具

AnaTraf网络流量分析仪是一款高性能的实时网络流量分析工具,用于全流量回溯分析、网络流量监控、网络性能分析、快速排除网络故障。本文将为您详细介绍AnaTraf的功能和优势,帮助您了解如何通过该设备进行网络流量监控、故障排除和性能优化。 一、AnaTraf…

修改CentOS ifcfg_ens33文件,提示 file read only/只读

没有用root用户去修改,需要切换到root用户: su root 输入root密码,切换到root用户修改。 另一个原因:打开文件的时候有临时文件存在,这个时候需要按E才能确认编辑,否则是默认以只读方式打开。 参考《vim编…

Gateway结合Nacos使用!!!

一、本地结合使用 1. 引入依赖 <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> 2. bootstarp.yml配置文件 如果Nacos中配置使用yaml格式&…

Python 0基础_变现_38岁_day 15(匿名函数)

匿名函数&#xff1a; 不用定义函数名&#xff0c;无需使用def关键字&#xff0c;使用lambda将函数写成一行&#xff1b;#使用匿名函数定义一个两个数字相加的函数add lambda x,y : xy #使用变量接收匿名函数的内容&#xff0c;且变量名作为调用函数的变量名&#xff1…

Linux软件包管理器——yum

文章目录 1.什么是软件包1.1安装与删除命令1.2注意事项1.3查看软件包1.3.1注意事项&#xff1a; 2.关于rzsz3.有趣的Linux下的指令 -sl 1.什么是软件包 在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序. 但是这样太麻烦了, 于是有些人把一…

Django之搭配内网穿透

一&#xff0c;安装coplar 二&#xff0c;开启8087的内网穿透 三&#xff0c;setting.py中加入如下配置&#xff1a; ALLOWED_HOSTS [*]CSRF_TRUSTED_ORIGINS ["https://localhost:8087", "http://localhost:8087"]四&#xff0c;启动项目 五&#xff…

rust疑难杂症解决

rust疑难杂症解决 边碰到边记录&#xff0c;后续可能会逐步增加&#xff0c;备查 cargo build时碰到 Blocking waiting for file lock on package cache 原因是Cargo 无法获取对包缓存的文件锁&#xff0c; 有时vscode中项目比较多&#xff0c;如果其中某些库应用有问题&…

Spring快速入门!(超详细)——工厂模式

GOF之工厂模式 设计模式&#xff1a;一种可以被重复利用的解决方案。GoF&#xff08;Gang of Four&#xff09;&#xff0c;中文名——四人组。《Design Patterns: Elements of Reusable Object-Oriented Software》&#xff08;即《设计模式》一书&#xff09;&#xff0c;19…