网络基础篇:网络模型

目录

一、初识网络

二、网络的分层

OSI七层模型

TCP/IP四层模型

网络与系统的关系

网络传输基本流程

 数据包封装和分用

三、IP地址与MAC地址

认识IP地址

认识MAC地址

IP与MAC的关系


一、初识网络

        同一台设备上的进程间通信有很多种方式 :

  1. 管道(Pipe):用于父子进程之间的通信。
  2. 命名管道(Named Pipe):也称为FIFO(First In First Out),可以在不相关的进程之间通信。
  3. 消息队列(Message Queue):允许进程之间通过发送和接收消息来通信。
  4. 信号(Signal):用于通知接收进程某个事件的发生。
  5. 共享内存(Shared Memory):多个进程可以访问同一块内存区域,从而进行通信。
  6. 信号量(Semaphore):用于同步不同进程之间的访问共享资源。

 当我们考虑进程间通信时,我们实际上是在考虑如何在不同的实体(进程)之间交换信息。然而,当这些实体跨越不同的设备或系统时,我们就需要引入更高级别的通信机制,即网络

网络是一种允许设备(如计算机、服务器、移动设备等)通过某种形式的连接(如电线、光纤、无线电波等)进行通信的系统。网络的主要目的是使这些设备能够共享资源、传输数据、协调操作等。

而跨网络通信同时也会引出一系列的问题:

1、如何保证将数据交给下一跳主机。

2、如何进行路径选择,怎样知晓下一跳去哪。

3、如何使用收到的数据。

4、如果发生了丢包和错误应该怎么处理。

.......

要解决上述问题,那么就需要制定一系列的协议来规范,而不同协议的划分其实也就是实现若干个软件层,网络结构分层是计算机网络设计中的一个重要概念,它将复杂的网络通信过程划分为若干个独立的、相对简单的层次,每个层次都有其特定的功能和协议。这样做的目的是为了简化网络设计和实现,提高网络的可维护性和可扩展性。

二、网络的分层

        在软件上,大部分的解决方案都是层状的,完成了解耦合,便于维护。

OSI七层模型

OSIOpen System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范;
  1. 物理层:传输比特流,提供物理连接。

  2. 数据链路层:在物理层上建立逻辑连接,进行帧同步、差错控制等。

  3. 网络层:负责路由和转发数据包,实现不同网络之间的通信。

  4. 传输层:提供端到端的可靠传输服务,如TCP或不可靠的数据报服务,如UDP。

  5. 会话层:建立、管理和终止会话。

  6. 表示层:确保数据在不同系统间的兼容性,如数据格式转换、加密解密等。

  7. 应用层:提供网络服务给应用程序,如HTTP、FTP、SMTP等。

OSI 七层模型是一种框架性的设计方法,其最主要的功能使就是帮助不同类型的主机实现数据传输,但是根据实用性来看,只用四层模型也可以解决问题,所以我们接下来来看 TCP/IP四层模型

TCP/IP四层模型

TCP/IP四层模型是计算机网络中广泛使用的一种分层模型,它简化了网络通信的过程,并使得不同系统之间的互操作性更加容易。

  • 应用层:HTTP、FTP、SMTP、DNS
  • 传输层:TCP\UDP
  • 网络层:IP、IGMP、ICMP
  • 数据链路层:ARP
数据链路层 : 负责设备之间的数据帧的传送和识别 . 例如网卡设备的驱动、帧同步 ( 就是说从网线上检测到什么信号算作新帧的开始) 、冲突检测 ( 如果检测到冲突就自动重发 ) 、数据差错校验等工作 . 有以太网、令牌环网, 无线 LAN 等标准 . 交换机 (Switch) 工作在数据链路层 .
网络层 : 负责地址管理和路由选择 . 例如在 IP 协议中 , 通过 IP 地址来标识一台主机 , 并通过路由表的方式规划出两台主机之间的数据传输的线路( 路由 ). 路由器 (Router) 工作在网路层 .
传输层 : 负责两台主机之间的数据传输 . 如传输控制协议 (TCP), 能够确保数据可靠的从源主机发送到目标主机.
应用层 : 负责应用程序间沟通,如简单电子邮件传输( SMTP )、文件传输协议( FTP )、网络远程访问协议(Telnet )等 . 我们的网络编程主要就是针对应用层

网络与系统的关系

应用层也就是用户层,对应shell外壳,软件。

传输层和网络层对应系统调用接口,操作系统,在操作系统内核中。

数据链路层对应驱动程序。

物理层比如网卡,底层硬件。

网络结构与系统间的对应关系体现在它们如何通过层次化的方式协同工作,以实现信息的有效传输和处理。每一层都有其特定的功能和协议,这些功能和协议共同支持了网络结构的整体功能。同时,系统的层次结构也反映了网络结构的不同层次,使得网络与系统之间的交互更加清晰和高效。

网络传输基本流程

由于每一层使用的是一样的协议,所以每一层所看到的数据内容其实是一样的,也就相当于每一层的间接通信。

 数据包封装和分用

不同的协议层对数据包有不同的称谓 , 在传输层叫做段 (segment), 在网络层叫做数据报 , 在链路层叫做帧(frame).
应用层数据通过协议栈发到网络上时 , 每层协议都要加上一个数据首部 (header), 称为封装(Encapsulation).
首部信息中包含了一些类似于首部有多长 , 载荷 (payload) 有多长 , 上层协议是什么等信息 .
数据封装成帧后发到传输介质上 , 到达目的主机后每层协议再剥掉相应的首部 , 根据首部中的 " 上层协议字段" 将数据交给对应的上层协议处理

每个协议都必须解决两个问题:

1、将报头和有效载荷分离。

2、如何将自己的有效载荷交付给上层的协议。 

如下图所示:

三、IP地址与MAC地址

认识IP地址

IP地址(Internet Protocol Address)是指互联网协议地址,用于唯一标识网络中的终端。每个连接到互联网的计算机或设备都会被分配一个或多个IP地址。

IP 协议有两个版本 , IPv4 IPv6,IPv4是最常用的,IPv6还未完全推广。
IP地址是在IP协议中, 用来标识网络中不同主机的地址;
对于IPv4来说, IP地址是一个4字节, 32位的整数;
我们通常也使用 "点分十进制" 的字符串表示IP地址, 例如 192.168.0.1 ; 用点分割的每一个数字表示一个字节, 范围是 0 - 255;

认识MAC地址

MAC地址(Media Access Control Address)也称为局域网地址或物理地址,用于唯一标识网络设备(如网卡)的物理位置。

MAC地址用来识别数据链路层中相连的节点;
长度为48位, 及6个字节. 一般用16进制数字加上冒号的形式来表示(例如: 08:00:27:03:fb:19)
在网卡出厂时就确定了, 不能修改. mac地址通常是唯一的(虚拟机中的mac地址不是真实的mac地址, 可能会冲突; 也有些网卡支持用户配置mac地址).

IP地址和MAC地址在网络通信中各自承担着不同的角色,它们共同确保了数据在网络中的准确、高效传输。

IP与MAC的关系

IP地址和MAC地址分别在网络层和数据链路层工作,它们共同协作以确保数据包在网络中的正确路由和最终交付。

IP地址负责跨网络的寻址,而MAC地址则用于同一网络内的直接通信。ARP协议充当了这两者之间的桥梁,实现了从IP到MAC的地址转换。

IP就是当前主机到目标的起点与终点,而MAC地址就是在路程中下一跳的地址。

通俗一点来说,IP相当于你从一个地方到另一个地方的导航,而MAC则是你在途中所需要乘坐的交通工具。

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

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

相关文章

需求虽小但是问题很多,浅谈JavaScript导出excel文件

最近我在进行一些前端小开发,遇到了一个小需求:我想要将数据导出到 Excel 文件,并希望能够封装成一个函数来实现。这个函数需要接收一个二维数组作为参数,数组的第一行是表头。在导出的过程中,要能够确保避免出现中文乱…

二叉树(数据结构篇)

数据结构之二叉树 二叉树 概念: 二叉树(binary tree)是一颗每个节点都不能多于两个子节点的树,左边的子树称为左子树,右边的子树称为右子树 性质: 二叉树实际上是图,二叉树相对于树更常用。 平衡二叉树的深度要比…

正版 navicat 下载

1. 打开浏览器访问 navicat 官网 Navicat | 下载 Navicat Premium 14 天免费 Windows、macOS 和 Linux 的试用版 windows 用户选择这三项其中一个就可以 2. 下载 点击之后等个几秒钟就会开始下载了 3. 双击打开 下载好的 .exe 程序 进入安装程序 (不影响之前已经安装过的) 可…

客户ITSS案例 — 江苏中友讯华信息科技有限公司

● 2019年12月17日至12月20日,中国电子工业标准化技术协会信息技术服务分会(以下称ITSS分会)组织召开了运行维护服务能力成熟度符合性评估专家评审会。在江苏新世纪信息科技有限公司的咨询辅导下,江苏中友讯华信息科技有限公司顺利…

猫头虎分享已解决Bug || **Mismatched Types**: `mismatched types`

🐯 猫头虎分享已解决Bug || Mismatched Types: mismatched types 🐯 关于猫头虎 大家好,我是猫头虎,别名猫头虎博主,擅长的技术领域包括云原生、前端、后端、运维和AI。我的博客主要分享技术教程、bug解决思路、开发…

ECharts 雷达图案例001-自定义节点动画

ECharts 雷达图案例001-自定义节点动画 引言 在数据可视化的领域中,ECharts 提供了一种强大的工具来展示多维数据。本文将介绍如何使用 ECharts 创建一个自定义节点样式的雷达图,让数据展示更加生动和个性化。 效果预览 通过自定义节点样式&#xff…

AI早班车2024.6.19

全球AI新闻速递 1.广东 / 山东警方破获两起“AI 换脸伪造不雅照”案。 2.腾讯混元、港科大、清华推出表情包框架:Follow Your Emoji。 3.抖音联合博纳影业推出首部 AIGC 科幻短剧集《三星堆:未来启示录》。 4.亚马逊:宣布向全球创企提供 …

【Java】BigDecimal类型——BigDecimal 为什么可以保证精度不丢失

目录 简介类介绍案例分析总结BigDecimal类型的使用场景MySQL中存储BigDecimal类型数据补充:BigDecimal类型使用时的注意事项BigDecimal类型的其他使用 简介 BigDecimal是Java中的一个类,用于处理大数运算。它提供了精确的数值计算,可以处理任…

真空玻璃可见光透射比检测 玻璃制品检测 玻璃器皿检测

建筑玻璃检测 防火玻璃、钢化玻璃、夹层玻璃、均质钢化玻璃、平板玻璃、中空玻璃、真空玻璃、镀膜玻璃夹丝玻璃、光栅玻璃、压花玻璃、建筑用U形玻璃、镶嵌玻璃、玻璃幕墙等 工业玻璃检测 钢化安全玻璃、电加温玻璃、玻璃、半钢化玻璃、视镜玻璃、汽车安全玻璃、汽车后窗电热…

Walrus:去中心化存储和DA协议,可以基于Sui构建L2和大型存储

Walrus是为区块链应用和自主代理提供的创新去中心化存储网络。Walrus存储系统今天以开发者预览版的形式发布,面向Sui开发者征求反馈意见,并预计很快会向其他Web3社区广泛推广。 通过采用纠删编码创新技术,Walrus能够快速且稳健地将非结构化数…

数据库选型实践:如何避开分库分表痛点 | OceanBase用户实践

随着企业业务的不断发展,数据量往往呈现出快速的增长趋势。使用MySQL的用户面对这种增长,普遍选择采用分库分表技术作为应对方案。然而,这一方案常在后期会遇到很多痛点。 分库分表的痛点 痛点 1:难以保证数据一致性。由于分库分…

CCNA 0基础入门

OSI & TCP/IP OSI参考模型 TCP/IP协议 应用层 ------↓表示层 ------>应用层会话层 ------↑传输层 ------>传输层网络层 ------>网络互联层链路层 ------>网络接口层物理层 ------>↑ 物理层 传输的信号以及网线以及接线 主要作用是产生并检测电…

高压电阻器支持牙科 X 射线成像的准确性

为了捕获患者牙齿和颌骨的足够图像,牙医依靠锥形束计算机断层扫描 (CBCT) 系统的先进 3D 成像。CBCT系统的输出对于准确诊断口腔健康问题和随后的治疗计划至关重要。为了确保这些图像的可靠性,CBCT系统制造商利用了Exxelia Ohmcra…

数据库 |试卷八试卷九试卷十

1.基数是指元组的个数 2.游标机制 3.触发器自动调用 4.count(*)统计所有行,不忽略空值null,但不但要全局扫描,也要对表的每个字段进行扫描; 5.eacherNO INT NOT NULL UNIQUE,为什么不能断定TeacherNO是主码&#xff…

Samtec制造理念系列一 | 差异变量的概念

【摘要/前言】 制造高端电子产品是非常复杂精密的过程。制作用于演示或原型的一次性样品可能具有挑战性,但真正的挑战在于如何以盈利的方式持续生产。 这就是Samtec风险投资研发工程总监Aaron Tucker在一次关于生产高密度微小型连接器的挑战的演讲中所强调的观点。…

Docker+MySQL:打造安全高效的远程数据库访问

在现代应用开发和部署中,数据库是关键组件之一。无论是开发环境还是生产环境,快速、可靠地部署和管理数据库都是开发人员和运维人员面临的常见挑战之一。 Docker是一种流行的容器化技术,它使得应用程序的部署和管理变得非常简单和高效。通过使…

电网铁塔安全:输电线路智能螺栓在线监测装置|远程了解螺栓异常情况

电网铁塔安全:输电线路智能螺栓在线监测装置|远程了解螺栓异常情况 在浩渺的天空下,银线如织,纵横交错,那是我们的输电线路,是点亮万家灯火的血脉。然而,这看似坚强的网络,实则也隐藏着许多不为…

C++ | Leetcode C++题解之第155题最小栈

题目&#xff1a; 题解&#xff1a; class MinStack {stack<int> x_stack;stack<int> min_stack; public:MinStack() {min_stack.push(INT_MAX);}void push(int x) {x_stack.push(x);min_stack.push(min(min_stack.top(), x));}void pop() {x_stack.pop();min_sta…

Flutter第十四弹 抽屉菜单效果

目标&#xff1a; 1.怎么构建抽屉菜单效果&#xff1f; 2.抽屉菜单怎么定制&#xff1f; 一、抽屉菜单 侧滑抽屉菜单效果 1.1 抽屉菜单入口 Flutter 的脚手架Scaffold&#xff0c;默认提供了抽屉菜单效果入口。 主页面采用一个简单的页面&#xff0c;侧滑菜单首先使用一个I…

适合营销的叙事可视化

背景 数据可视化与数据故事化的差异和相似点&#xff0c;以及它们如何协同工作&#xff0c;将你的数据转化为清晰、简洁、可操作的信息&#xff0c;以便您的组织使用。 什么是数据可视化&#xff1f; 数据可视化通过图像传达信息——这是你所收集数据的视觉表示。通过提供原…