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

news/2024/5/17 23:18:17 标签: 网络, java, 开发语言

请添加图片描述

✨个人主页: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.niftyadmin.cn/n/393613.html

相关文章

恒容容器放气的瞬时流量的计算与合金氢化物放氢流量曲线的计算

有时候,你会遇到一个问题,该问题的描述如下: 你有一个已知体积的容器,设容器体积为V,里面装有一定压力(初始压力)的气体,如空气或氢气等,设初始压力为1MPa,容器出口连接着一个阀门开…

JDBC java数据库连接

JDBC java数据库连接 Java DataBase Connectivity * JDBC是java官方提供的一套结构,用于连接DBMS并进行相关操作。 * 核心的接口: * Connection 表示数据库连接 * Statement 用来执行SQL语句的语句对象 * PreparedStatement …

ClassLoader源码

介绍 ClassLoader 顾名思义就是类加载器 ClassLoader 是一个抽象类 没有父类 作用 1.负责将 Class 加载到 JVM 中 2.审查每个类由谁加载(父优先的等级加载机制) 3.将 Class 字节码重新解析成 JVM 统一要求的对象格式 常量&变量 //注册本地方法…

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

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

idea部署Tomcat

创建Web项目 我们首先使用IDEA创建一个普通的java项目 创建好后的项目结构如上图,我创建的项目名称为tomcat,这个项目现在还是一个普通的java项目,想要开发web程序,我们还要做一下操作,首先我们先给项目添加依赖 首先…

Vmware虚拟机实例配置静态IP

最近在给虚拟机配置静态IP的时候,出了一些小问题,本文主要描述操作过程中一些小问题的解决。 主要参考资料: How to set up Linux in VMWare Workstation with static IP (IPv4) 个人配置信息: VMware Workstation Debian 记录一下虚拟机的网卡信息 …

Java 实现在顺序表指定位置插入一个元素

一、思路 1.定义一个pos变量来记录要插入的位置. 2.定义一个usedSize变量来记录元素个数. 3.定义一个data变量来记录要插入的元素值. 4.要保证pos位置合法,也就是不是负数,因为是要保证pos位置前是要有元素,因此也不能大于元素个数. 5.也需要…

打电话用什么耳机好,推荐几款性能表现高的骨传导耳机

近几年有一种新型传播方式的耳机,将声音转化为振动,从而让我们的听觉神经感知到。这种声音传播方式叫做"骨传导",所以叫做骨传导耳机。因为它不需要通过耳膜进行传播声音,所以可以让耳朵在不接触外界的情况下听到声音。…