一篇理解网络分层原理

一、网络分层的必要性。

在这里插入图片描述
如图是一个数据的传输过程,在这个途中会有很多的原因导致数据丢失,网络分层就要可以很大程度的避免这个现象。
网络分层的必要性体现在以下几个方面:

  • 抽象复杂度:网络分层将网络功能按照不同的层次进行分解和抽象,每个层次负责特定的网络功能。这种抽象能够使得网络变得简单易懂,便于设计、实现和维护。
  • 提高互操作性:网络分层可以使得不同的设备和系统之间进行互操作。通过定义好每个层次之间的接口和协议,不同的设备和系统可以使用相同的方法来进行数据交换。
  • 促进标准化:网络分层有助于制定和推广通用标准,以便于不同厂商和组织之间的合作和协作。例如,TCP/IP和OSI参考模型定义了通用的网络分层结构和协议,为网络通信提供了通用标准,促进了网络技术的发展和应用。
  • 改善网络性能:网络分层可以优化网络性能。例如,物理层可以选择合适的物理介质和传输方式,网络层可以选择合适的路由算法和IP地址,传输层可以选择合适的传输协议等。这些选择可以使得网络更加高效和可靠。

二、两种网络分层。

在这里插入图片描述
常用的是五层网络分层:

  • 应用层(Application Layer):应用层是最高层,为用户提供各种网络应用服务。它包括HTTP、FTP、SMTP、DNS等协议,用于实现Web浏览、文件传输、电子邮件和域名解析等功能。
  • 传输层(Transport Layer):传输层负责提供端到端的可靠数据传输,并将数据分割成适合下层传输的数据单元。它使用TCP协议来提供可靠的连接导向的传输服务,或使用UDP协议来提供无连接的传输服务。
  • 网络层(Network Layer):网络层负责进行数据的路径选择和路由,以便将数据从源主机发送到目标主机。它使用IP协议进行寻址和路由选择,通过建立和维护路由表来进行数据转发。
  • 数据链路层(Data Link Layer):数据链路层负责将数据分割成帧(Frame),并在物理链路上传输。它通过错误检测和纠正机制来确保数据的可靠传输,并进行数据的成帧、流量控制和访问控制。
  • 物理层(Physical Layer):物理层是最底层的一层,负责传输比特流,将数据从一个节点传输到另一个节点。它处理物理介质、电缆的连接方式、编码和解码等细节。

三、通过一个http请求了解网络分层工作原理。

在这里插入图片描述
浏览器首先会将输入的URL进行解析,提取出其中的协议(例如HTTP、HTTPS)、主机名(例如www.example.com)和路径等信息。现在需要通过域名确定IP地址,就会进行DNS解析。
DNS解析的基本过程是:

  • 客户端向本地DNS服务器(通常由互联网服务提供商(ISP)提供)发送DNS查询请求。本地DNS服务器查看其缓存,如果找到与该域名相关的IP地址,则直接返回响应给客户端。如果本地DNS服务器的缓存中没有找到对应的IP地址,则它会作为一个DNS递归解析器,向根域名服务器发送DNS查询请求。根域名服务器返回下一级顶级域名服务器的IP地址给本地DNS服务器。本地DNS服务器向下一级顶级域名服务器发送DNS查询请求。这个查询过程会依次向下进行,直到找到负责管理目标域名的授权域名服务器。授权域名服务器将域名所对应的IP地址返回给本地DNS服务器。本地DNS服务器将该IP地址保存在缓存中,并将响应返回给客户端,同时将该记录在本地缓存中以备将来使用。

  • 在DNS查询的过程中,通常使用UDP协议进行传输。这是因为DNS查询通常是简短的请求和响应,并且需要快速完成。UDP相对于TCP具有较低的延迟和较小的开销,适合用于实时性要求较高的应用场景。

  • DNS服务器是什么?

DNS服务器(Domain Name System Server)是一种特殊的服务器,用于解析域名和IP地址之间的映射关系。它的主要功能是将用户输入的域名转换为对应的IP地址,以便用户能够访问目标网站或服务。
在互联网中,每个设备都被分配了一个唯一的IP地址,例如如 “192.168.0.1”。然而,人们往往更容易记住具有可读性的域名(例如www.example.com)。这就需要通过DNS服务器来实现域名到IP地址的转换。
DNS服务器存储了一个大型的域名系统数据库,其中包含了许多域名及其对应的IP地址。当用户在浏览器中输入一个域名时,操作系统会向配置的DNS服务器发送一个查询请求,以获取该域名对应的IP地址。
DNS服务器进行查询处理时,会根据域名的层次结构,逐级向上进行查找。它首先查询本地缓存,如果找到了对应的IP地址,则直接返回给操作系统。如果缓存中没有找到,它会向顶级域名服务器(根域名服务器)发送查询请求,获取下一级的区域域名服务器的地址。
此后,DNS服务器会持续向下查询,直到找到负责管理这个域名的权威域名服务器。权威域名服务器会返回该域名对应的IP地址给DNS服务器,然后DNS服务器将此结果缓存,并将其返回给操作系统。操作系统最终将IP地址提供给应用程序或浏览器,以建立与目标主机的连接。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于Kylin的数据统计分析平台架构设计与实现

目录 1 前言 2 关键模块 2.1 数据仓库的搭建 2.2 ETL 2.3 Kylin数据分析系统 2.4 数据可视化系统 2.5 报表模块 3 最终成果 4 遇到问题 1 前言 这是在TP-LINK公司云平台部门做的一个项目,总体包括云上数据统计平台的架构设计和组件开发,在此只做…

C++ - C++11历史 - 统一列表初始化 - aotu - decltype - nullptr - C++11 之后 STL 的改变

目录 C的发展史了解 统一列表初始化 {}初始化 std::initializer_list 在 vector 的模拟实现当中加上 initializer_list 作为参数的构造函数 声明 aotu decltype nullptr C11 之后 STL 的一些变化 新容器 容器中的一些新方法 C的发展史了解 在2003年C标准委员会曾经提…

基于SSM的实验室考勤管理系统设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

CCF CSP认证 历年题目自练Day25

题目 试题编号: 201403-3 试题名称: 命令行选项 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述   请你写一个命令行分析程序,用以分析给定的命令行里包含哪些选项。每个命令行由若干个字符串组成,它们之间…

插入排序/折半插入排序

插入排序/折半插入排序 插入排序 插入排序(英语:Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常…

光伏储能直流系统MATLAB仿真(PV光伏阵列+Boost DCDC变换器+负载+双向DCDC变换器+锂离子电池系统)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

前端 | AjaxAxios模块

文章目录 1. Ajax1.1 Ajax介绍1.2 Ajax作用1.3 同步异步1.4 原生Ajax 2. Axios2.1 Axios下载2.2 Axios基本使用2.3 Axios方法 1. Ajax 1.1 Ajax介绍 Ajax: 全称(Asynchronous JavaScript And XML),异步的JavaScript和XML。 1.2 Ajax作用 …

javaee SpringMVC中json的使用

jsp <%--Created by IntelliJ IDEA.User: 呆萌老师:QQ:2398779723Date: 2019/12/6Time: 15:55To change this template use File | Settings | File Templates. --%> <% page contentType"text/html;charsetUTF-8" language"java" %> <%St…

蓝桥杯每日一题2023.10.7

跑步锻炼 - 蓝桥云课 (lanqiao.cn) 题目描述 题目分析 简单枚举&#xff0c;对于2的情况特判即可 #include<bits/stdc.h> using namespace std; int num, ans, flag; int m[13] {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; bool is_ren(int n) {if((n %…

《C++ Primer》第5章 语句

参考资料&#xff1a; 《C Primer》第5版《C Primer 习题集》第5版 5.1 简单语句&#xff08;P154&#xff09; 在一个表达式的末尾加上 ; 就构成了表达式语句&#xff0c;其作用是执行表达式并丢弃结果。 空语句 由单独的 ; 构成的语句为空语句。空语句常用于语法上需要一…

【网络】路由器和交换机的区别

&#x1f341; 博主 "开着拖拉机回家"带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——&#x1f390;开着拖拉机回家_Linux,大数据运维-CSDN博客 &#x1f390;✨&#x1f341; &#x1fa81;&#x1f341; 希望本文能够给您带来一定的帮助&#x1…

6.MySql连接SqlYog

MySql连接SqlYog SqlYog和navicat均是数据可视化工具&#xff0c;熟悉其一即可 SqlYog下载安装 连接&#xff0c;密码和端口号一定要正确&#xff01;&#xff01;&#xff01; 2.保存到数据库 创建数据库&表 创建数据库 创建成功 创建表 点击保存 查看表数据的…

jira 浏览器插件在问题列表页快速编辑问题标题

jira-issueTable-quicker 这是一个可以帮助我们在问题表格页快速编辑问题的浏览器插件 github 地址 功能介绍 jira 不可否认是一个可以帮助有效提高工作效率的工具&#xff0c;但是我们在使用 jira 时使用问题表格可以让我们看到跟多的内容而不用关注细节&#xff0c;但是目…

vulnhub靶场 Kioptrix-level-1

简介&#xff1a; vulnhub是一个提供靶场环境的平台。而Kioptrix-level-1就是一个对新手比较友好的靶场。初学渗透的同学可以做做试试看&#xff0c;项目地址如下。 项目地址&#xff1a;Kioptrix: Level 1 (#1) ~ VulnHub 信息收集 查看本机IP&#xff0c;靶机跟kali都是使用…

常用的分布式ID解决方案原理解析

目录 前言 一&#xff1a;分布式ID的使用场景 二&#xff1a;分布式ID设计的技术指标 三&#xff1a;常见的分布式ID生成策略 3.1 UUID 3.2 数据库生成 3.3 数据库的多主模式 3.4 号段模式 3.5 雪花算法 前言 分布式ID的生成是分布式系统中非常核心的基础性模块&#…

4.方法操作实例变量 对象的行为

4.1 操作对象状态的方法 同一类型的每个对象能够有不同的方法行为&#xff0c;任一类的每个实例都带有相同的方法&#xff0c;但是方法可以根据实例变量的值来表现不同的行为。 play()会播放title值表示的歌曲&#xff0c;调用某个实例的play()可能会播放“Politik”而另一个会…

【重拾C语言】七、指针(一)指针与变量、指针操作、指向指针的指针

目录 前言 七、指针 7.1 指针与变量 7.1.1 指针类型和指针变量 7.1.2 指针所指变量 7.1.3 空指针、无效指针 7.2 指针操作 7.2.1 指针的算术运算 7.2.2 指针的比较 7.2.3 指针的递增和递减 7.3 指向指针的指针 前言 指针是C语言中一个重要的概念正确灵活运用指针 可…

Android原生实现控件圆角方案(API28及以上)

Android控件的圆角效果的实现方式有很多种&#xff0c;这里介绍一下另一种Android原生的圆角实现方案&#xff08;API28及以上&#xff09;。 我们利用ShapeAppearanceModel、MaterialShapeDrawable来实现一个圆角/切角的Button。 实现效果如下图 我们在为控件添加阴影的基础上…

波奇学C++:用红黑树模拟实现map和set

用同一个树的类模板封装map(key/value)和set(key) 红黑树的Node template<class T> struct RBTreeNode {RBTreeNode<T>* _left;RBTreeNode<T>* _right;RBTreeNode<T>* _parent;T _data;Colour _col;RBTreeNode(const T& data):_left(nullptr),_r…

kafka日志文件详解及生产常见问题总结

一、kafka的log日志梳理 日志文件是kafka根目录下的config/server.properties文件&#xff0c;配置log.dirs/usr/local/kafka/kafka-logs&#xff0c;kafka一部分数据包含当前Broker节点的消息数据(在Kafka中称为Log日志)&#xff0c;称为无状态数据&#xff0c;另外一部分存在…