【网络原理】数据链路层 和 应用层 重点协议

news2024/11/29 11:49:00

请添加图片描述

✨个人主页:bit me👇
✨当前专栏:Java EE初阶👇

目 录

  • 🍀一. 以太网协议(数据链路层)
  • 🌻二. DNS (应用层)
  • 🌿三. 网络原理知识面试总结

🍀一. 以太网协议(数据链路层)

以太网就是平时我们插网线的协议,平时插的网线也叫做 “以太网线”

  • 以太网帧格式:

在这里插入图片描述

  • 这里的 目的地址 源地址 是 mac 地址(物理地址)不是 IP 地址
  • 6 个字节的 mac 地址要比 IP 地址多很多!42亿9千万 * 65535,mac 地址还可以做到唯一的(网卡出厂的时候就被写死在网卡上了)
  • 第二行就是载荷,载荷就是数据报。46 - 1500 其中 1500 就是表示以太网数据帧的长度上限 1500,不同的数据链路层协议的最大长度不相同的,把这个最大长度称为 MTU。(如果一个以太网数据帧是一辆卡车,MTU 就是载重量,如果达到了这个量,就会触发 IP 的分包操作!1500其实非常小,也就 1 KB 多点,IP 分包不是因为数据长度达到了 64KB,主要是受到了 MTU 的限制。其中 1500 的大小是和硬件介质相关)
  • CRC :校验和,放在末尾了

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

IP 数据报记录的是最初的起点和最终的终点,而以太网数据帧记录的是相邻节点的转发
 

  • ARP 效果是根据 IP 地址找到对应的 mac 地址
  • RARP 效果是根据 mac 地址找到对应的 IP 地址

 
路由器进行这种相邻节点转发的过程中,需要能够建立好一套转发的规则(转发表)
使用 ARP 和 RARP 主要是用来在转发之前,把转发表构造好,毕竟网络环境经常发生变化


🌻二. DNS (应用层)

DNS :域名解析(域名:网址)

例如 www.xxx.com 这就是域名,IP 地址,虽然写成了点分十进制,更方便人来理解了,但是仍然不是特别的直观!为了进一步简化人对 IP 的理解,方便传播,就引入了 “域名”。域名可以通过 DNS 系统自动转换成对应的 IP 地址,如果未来的 IP 地址有变化(机器迁移了)

最早的 DNS 系统是一个文件,称为 hosts 文件
在这里插入图片描述
在这里插入图片描述

这个方式比较原始,现在基本不用了,现在的成千上万的网站不能够把所有的映射关系都写到文件中,因此,更科学的办法就是使用专门的 DNS 服务器来保存这个文件,使用服务器把这些映射关系都储存好,哪个电脑需要 DNS 解析,就访问这个 DNS 服务器即可!

全世界要上网的设备非常多,每个设备都要请求 DNS 服务器?DNS 服务器扛得住这么大的访问量吗?(每个服务器在给客户端提供服务的时候,都需要消耗一定的硬件资源,如 CPU,内存,网络带宽…,并且每个服务器能提供的硬件资源是有限的)如何解决 DNS 服务器访问量太高的问题呢?

  1. 主机在请求 DNS 之后,会对映射关系在本地进行储存 (域名 - > IP 这个映射关系,虽然会变短,但是频率比较低),这就可以大大减少客户端访问 DNS 服务器请求的数量。
  2. 在全世界,架设很多的 DNS 镜像服务器。最初的 DNS 服务器,称为 “根服务器”,其他的 DNS 服务器,从服务器上同步数据 “镜像服务器”。(“镜像服务器” 非常多,一般各种大的网络运营商都会在自己业务的各个片区里面去部署镜像服务器)

DNS 既是一个协议,也是一套系统(分布式的服务器系统)


🌿三. 网络原理知识面试总结

经典面试题(高频面试题):

  • 从浏览器中输入 URL 开始,到最终看到页面位置,中间都发生了哪些事情?
  1. 浏览器是客户端,从这里输入 URL,就会访问对应的服务器。
    应用层角度:1.DNS 解析 2. 构造 HTTP 请求

  2. 传输层角度:对应到 TCP 协议
    1.对应三次握手,建立连接 2. 传输数据(确认应答,超时重传,滑动窗口,流量控制,拥塞控制…)

  3. 网络层的角度:网络数据报转发过程,一跳一跳的方式来转发。(路由表,路由表匹配规则,下一条相关内容)

  4. 数据链路层的角度:以太网数据帧,mac 地址,mac 在转发过程中如何变化,MTU,MTU 影响到的 IP 分包。

  5. 物理层的角度:上述数据会转成"光信号""电信号"进行编码,传输~~

  6. 总结:发送的过程中,涉及到从上到下,封装.接收方,涉及到从下到上的分用~~

上述过程是客户端给服务器发送请求的过程,后面服务器还需要根据请求计算响应,把响应按照类似的流程转发给客户端。(根据请求计算响应取决于业务代码了,后面慢慢更新此处的神秘面纱)

与此同时,上述回答,也是站在 “后端开发” 的角度来看待问题,站在前端开发的角度,网络工程师的角度,回答的方式就不一样了。

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

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

相关文章

【深入浅出Spring原理及实战】「夯实基础系列」360全方位渗透和探究SpringMVC的核心原理和运作机制(总体框架原理篇)

全方位渗透和探究SpringMVC的核心原理和运作机制 SpringMVC简介Spring Web MVC是什么Spring Web MVC的工作模式Spring Web MVC能帮我们做什么SpringMVC的底层依赖 SpringMVC工作流程SpringMVC中的组件DispatcherServlet前端控制器DispatcherServlet的职责和作用 HandlerMapping…

chatgpt赋能python:Python如何发送手机短信:实现方法解析和应用场景介绍

Python如何发送手机短信:实现方法解析和应用场景介绍 随着移动 App 的兴起,手机短信已成为现代人日常生活中不可或缺的一部分。在有些场景下需要编写 Python 程序去自动化发送短信,例如企业营销活动、警报系统等。本文将介绍 Python 发送短信…

chatgpt赋能python:Python可以搜集网上资料吗?

Python 可以搜集网上资料吗? Python 是一种非常流行的编程语言,它广泛应用于数据科学、机器学习、人工智能等领域。作为一名 Python 工程师,我们经常需要在互联网上搜集资料来解决开发中的问题,但是有些人会问:Python…

设计模式B站学习(一)(java)

这里写目录标题 一、设计模式概述1.1 软件设计模式的产生背景1.2 软件设计模式的概念1.3 学习设计模式的必要性1.4 设计模式分类 二、UML图2.1 类图概述2.2 类图的作用2.3 类图表示法2.3.1 类图表示方法2.3.2 类与类之间关系的表示方法2.3.2.1 关联关系2.3.2.2 聚合关系2.3.2.3…

C语言,指针详解

1. 指针是什么&#xff1f; 1. 指针是内存中一个最小单元的编号 2. 口头上的“指针”&#xff0c;指的是指针变量 #include<stdio.h>int main() {int a10;int * pa&a;// pa 是一个指针变量,用来存放 a 的地址//int ——> pa 所指向对象的类型//* 代表 pa是个指针…

【ros/ros2】ros2 humble镜像制作过程中碰到的问题记录

文章目录 序言1. 避免手动设置时区2. docker build中间某一步失败了3. sudo apt install ros-humble-desktop安装报错 E: Unable to locate package ros-humble-desktop4. 编译ros2 humnble时报错5. sudo rosdep init失败6. 下载依赖时失败&#xff1a;rosdep install --from-p…

局域网技术

共享信道的分配技术是局域网的核心技术&#xff0c;而这一技术又与网络的拓扑结构和传输介质有关。 拓扑结构&#xff1a; 1.总线型拓扑&#xff1a; 总线一种多点广播介质&#xff0c;所有的站点通过接口硬件连接到总线上。 传输介质主要是同轴电缆&#xff08;基带和宽带…

chatgpt赋能python:Python取消空格:如何优化代码和改善SEO?

Python取消空格&#xff1a;如何优化代码和改善SEO&#xff1f; 如果你是一位有10年python编程经验的工程师&#xff0c;那么你一定深刻体会到代码的质量对软件应用的重要性。而在今天&#xff0c;随着搜索引擎优化&#xff08;SEO&#xff09;的发展和对网页排名的更高要求&a…

FastBup:计算机视觉大型图像数据集分析工具

0.简介 官方github网址项目目的&#xff1a;当前大规模图像数据集一团糟&#xff0c;数据量巨大但质量堪忧&#xff0c;有时候训练集、验证集、测试集会有重复数据造成数据泄露。FastBup可以识别重复项、近似重复项、异常图像、错误标注、异常值&#xff0c;在cpu上就可以处理…

Apache Kafka - 流式处理

文章目录 概述什么是流式处理流式处理的一些概念时间状态流和表的二元性时间窗口 流式处理的设计模式单个事件处理使用本地状态多阶段处理和重分区使用外部查找——流和表的连接流与流的连接乱序的事件重新处理 概述 Kafka被广泛认为是一种强大的消息总线&#xff0c;可以可靠…

Zabbix(一)

介绍 zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。 功能组件 Server &#xff1a; Zabbix server是zabbix软件的核心组件 Zabbix agent向其报告可用性、系统完整性和统计信息 Zabbix server存储所有的配置信息、统计信息和操作信…

chatgpt赋能python:Python取出列表中的若干元素

Python取出列表中的若干元素 Python是一个功能强大且易于学习的编程语言&#xff0c;具有广泛的应用领域。在数据科学和机器学习中&#xff0c;Python是一个非常流行的语言&#xff0c;因为它具有许多用于处理数据和矩阵运算的库&#xff0c;例如NumPy和pandas。在Python的列表…

chatgpt赋能python:使用Python向微信发送信息的方法详解

使用Python向微信发送信息的方法详解 Python作为一种广泛应用于科学计算、数据处理等多个领域的编程语言&#xff0c;也可以用于自动化工作流程和自动发送微信消息等操作&#xff0c;大大提高了工作效率。如果你想在日常工作中用Python向微信群或个人发送自定义信息&#xff0…

linux网络设置

文章目录 一、查看网络配置1.查看网络接口信息——ifconfig1.1查看所有本机的网络的网络设备1.2设置网络接口参数1.3对指定的设备开启或关闭 2.查看主机名称——hostname2.1查看或临时设置当前主机名2.2永久设置主机名 3.查看路由表条目——route3.1查看当前主机路由表3.2添加路…

chatgpt赋能python:Python取消赋值:让你的代码更清晰简洁

Python取消赋值&#xff1a;让你的代码更清晰简洁 在Python编程中&#xff0c;我们经常需要使用赋值语句对变量进行赋值。但在某些情况下&#xff0c;我们也会发现需要取消赋值&#xff0c;即将已经赋过值的变量重新设为未赋值状态。这时&#xff0c;Python提供了一种特殊的语…

阿里云 Windows Server 2022 安装 Docker

阿里云Windows Server 2022 安装 Docker 文章目录 情景尝试正解 安装Docker管理工具安装Docker重启系统配置Docker系统路径配置Docker引擎(也许不用)启动Docker服务 情景 情景&#xff1a;最近一直在搞微服务&#xff0c;团队的服务器是阿里云的 Windows Server 2022&…

chatgpt赋能python:Python发展史:从诞生到井喷的开源之路

Python发展史&#xff1a;从诞生到井喷的开源之路 1. Python诞生的背景和历史 Python作为一种高级动态编程语言&#xff0c;在世界上得到了广泛应用&#xff0c;其诞生与发展也是有着自己的背景和历史的。20世纪90年代初期&#xff0c;著名的荷兰数学家Guido van Rossum开发了…

操作系统之文件管理

目录 认识文件管理 文件的逻辑结构 文件目录 文件的物理结构 文件存储空间管理 文件的基本操作 文件共享 文件保护 文件系统的全局结构 虚拟文件系统 内容摘自&#xff1a;4.1_1_初识文件管理_哔哩哔哩_bilibili 认识文件管理 文件——就是一组有意义的信息/数据集合…

chatgpt赋能python:Python可以用C语言吗?——一份详细解读

Python可以用C语言吗&#xff1f;——一份详细解读 Python和C语言是两种常见而重要的编程语言。Python被广泛应用于各种领域&#xff0c;从人工智能到数据科学&#xff0c;而C语言则是系统编程&#xff0c;操作系统和编译器方面最受欢迎的语言之一。许多人认为Python和C语言没…

pikachu靶场总结

目录 一.暴力破解 1.基于表单的暴力破解 2.验证码绕过&#xff08;on server&#xff09; 3.验证码绕过&#xff08;client&#xff09; 4.token防爆破 二.Cross-Site Scripting 1.先了解XSS 2.反射型xss&#xff08;get&#xff09; 3.反射型xss&#xff08;post&…