网络协议栈和os的关系(网络协议栈和计算机体系结构图相结合),用户如何从网络获取数据+本质,简述网络通信的本质

目录

网络协议栈和os的关系

思考联系

实际

用户从网络获取数据的过程

本质

如何获取 -- 系统调用

图示 

不同的os

网络通信的本质

两台主机通信流程


网络协议栈和os的关系

思考联系

网络协议栈涵盖了硬件和软件,而os正是管理软硬件资源的中枢

os是计算机体系结构的一部分,计算机体系结构中也囊括了软硬件:

如果我们将网络协议栈和体系结构图对比着一起看

  • 硬件层正好和底层硬件中的网卡相匹配
  • 而数据链路层正好是软硬件的分界线,它必然和驱动程序有着异曲同工之妙
  • 恰好,再上两层(运输层,网络层)被写在了os中,是os的一部分
  • 到了最上层的应用层,也与用户部分匹配,用户看到的正是经过应用层处理过的数据

实际

而实际上的情况也和我们的想法一致

  • 用户从网络上获取数据,都是通过网卡这个硬件设备得到的
  • 数据链路层属于网卡驱动的一部分
  • 传输层和网络层是真正在os中实现的模块,是os的一部分(所以学习了文件管理/进程管理,其实也就学习了这两层是如何运作的,原理都大差不差)

当然,网络协议栈里不只有这些与计算机体系结构相对应 

用户从网络获取数据的过程

本质

用户从网络上获取数据,都通过网卡这个硬件设备 (网卡将用户请求传输给远端服务器,再将返回的数据上传到本地主机)

  • 所以,[用户从网络上获取数据]的过程,本质就是在访问硬件(是一种基于网络的输入/输出操作)
  • 之前我们梳理过的,使用printf函数实际是在访问显示器,使用文件操作接口实际是访问硬盘,这些操作本质上都是一样的

如何获取 -- 系统调用

由于用户无法直接操作硬件,硬件是由os管理的,但os不允许用户直接访问其内部(安全性问题)

  • 所以需要让用户给os发送请求,然后os进行相应操作
  • 既然用户有了需求,那么os自然要为我们提供服务
  • 用户需要向os发送请求,怎么发送呢? -- 也就是os为我们提供系统调用接口
  • (这是不是就和之前学其他硬件是一样的?都需要系统调用这个中间介质)
  • 所以,网络协议栈中也会使用系统调用接口

然后开发者会基于这些系统调用,制定出非常多的应用层协议供用户使用

图示 

可以看出来,网络协议栈和操作系统密切相关

  • 网络协议栈是一组协议的层次结构,用于在计算机网络中进行通信
  • 而操作系统提供了网络协议栈的实现和支持

不同的os

从图中我们也可以看出来,两者虽然互相协作,但网络功能的实现并不关心实际计算机的结构如何实现

  • 比如,是否有独立线程结构/是否有图形界面
  • osi模型是一个标准,它既然已经定下了,肯定不是只适用于一种操作系统,对linux/windows等os都是一视同仁的
  • 无论他们内部是如何实现的,网络协议栈都必须是相同的,否则该操作系统无法联网

 

网络通信的本质

两台主机通信流程

基于上面的图,我们可以简述一下两台主机是如何通信的:

  • 两台主机在通信时,从一方主机的用户层开始向下传输数据,一直到网卡,然后网卡间通信,对方的网卡再将接收到的数据向上传输到用户层
  • 和打电话的例子相同 -- 在逻辑上,相同层之间都认为是在互相直接通信(因为相同层使用的协议是一样的,同层间可以正常通信,在逻辑上,不同层无法交流)
  • 而两台主机上遵守相同的网络协议栈,所以每一层都可以完美匹配
  • 所以,上面那一系列过程,都是可以正常完成的
  • 总结 -- 网络通信的本质就是贯穿协议栈的过程(只是方向有两个而已)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Centos 7 用户密码忘记解决办法

Centos 7 修改用户密码 重置密码 1、开机进入GRUB界面,在引导程序菜单上进行选择开机后进入以下界面,然后按Esc或者E键编辑选项: 2.用上下箭头翻到最后,编辑修改两处:ro改为rw,在LANGen_US.UFT-8后面添加init/bin/sh…

CleanMyMac X4.16.4介绍及下载安装图文详细步骤教程

一、简介 近年来,随着电脑使用的广泛,我们也越来越依赖电脑来完成日常工作、学习和娱乐。然而,使用电脑长时间后,我们会发现电脑运行缓慢,存储空间不足等问题。这时候,清理电脑就变得非常必要。 CleanMyMac…

基于Python3的数据结构与算法 - 09 希尔排序

一、引入 希尔排序是一种分组插入排序的算法。 二、排序思路 首先取一个整数d1 n/2,将元素分为d1个组,每组相邻量取元素距离为d1,在各组内直接进行插入排序;取第二个整数d2 d1/2, 重复上述分组排序过程&#xff0…

本地快速部署谷歌开放模型Gemma教程(基于WasmEdge)

本地快速部署谷歌开放模型Gemma教程(基于WasmEdge) 一、介绍 Gemma二、部署 Gemma2.1 部署工具2.1 部署步骤 三、构建超轻量级 AI 代理四、总结 一、介绍 Gemma Gemma是一系列轻量级、最先进的开放式模型,采用与创建Gemini模型相同的研究和技…

用node或者vscode开启一个简单的本地server服务器,加载html网页

使用Live Server 想要加载本地html页面可以快速能让它在你本地浏览器中打开,可以有好多种方式,如果你有使用vscode,可以安装一个插件:Live Server,然后直接在vscode中直接右键就可以开启这个服务: 安装好之…

Redis持久化+Redis内存管理和优化+Redis三大缓存问题

Redis持久化Redis内存管理和优化Redis三大缓存问题一、Redis高可用二、Redis持久化1、RDB持久化1.1 触发条件(1) 手动触发(2) 自动触发(3) 其他自动触发机制 1.2 执行流程1.3 启动时加载 2、AOF持久化2.1 开启AOF2.2 执行流程(1) 命令追加(append)(2) 文件写入(write)和文件同步…

Tomcat部署及多实例

一、Tomcat简介 1、简介 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。 当在一台机器上配置好Apache 服务器&#xff0c…

ARK:《BIG IDEAS 2024》

Cathie Wood所带领的方舟投资(ARK)发布了年度重磅研究报告《BIG IDEAS 2024》,该报告指出人工智能、公共区块链、多组学测序、能源存储和机器人技术这五大板块的融合将带来全球经济活动的改变。 这五个创新平台正在融合并定义这个技术时代&am…

全部免费!抖音,牛逼了!

相比于百度文心、清华智谱和讯飞星火这些在国内有一定市场知名度的AI工具,字节跳动多少显得有点低调了。 国内的AI工具用了不少,但要是说哪家最有前景,那最看好的还是字节跳动。 倒不是说字节的云雀大模型比上面这几个更牛逼,而…

【计算机网络】TCP 如何实现可靠传输

TCP通过三次握手建立连接,四次挥手释放连接,确保连接建立和连接释放的可靠。 序列号、检验和、确认应答信号、重发机制、连接管理、窗口控制、流量控制、拥塞控制 标准回答 可靠传输就是通过TCP连接传送的数据是没有差错、不会丢失、不重复并且按序到达的…

77-组合(回溯算法)

题目 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。 示例 1: 输入:n 4, k 2 输出: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4], ] 示例 2: 输入:n …

【MySQL】复合查询(重点)-- 详解

一、基本查询练习回顾 1、查询工资高于 500 或岗位为 MANAGER 的雇员,同时还要满足他们的姓名首字母为大写的 J 2、按照部门号升序而雇员的工资降序排序 3、使用年薪进行降序排序 4、显示工资最高的员工的名字和工作岗位 5、显示工资高于平均工资的员工信息 6、显…

关于DisableIEToEdge插件闪退问题的解决方案

关于DisableIEToEdge插件闪退问题.今天终于测试找到最佳解决方案了! 1.管理员权限运行Windows powershell. 2.执行一下两条命令修复系统环境 DISM.exe /Online /Cleanup-image /Restorehealth sfc /scannow 3.关闭Windows安全中心的所有安全选项。 4.管理员权限运行…

Docker 常用操作命令备忘

Docker 一旦设置好了环境,日常就只要使用简单命令就可以运行和停止。 于是,我每次用的时候,都想不起来一些关键性的命令到底怎么用,特此记录。 一、镜像管理 从公有仓库拉取镜像 (对于使用苹果电脑 M1/M2/M3 芯片的 …

店匠科技颁布 Shoplazza Awards:品牌出海迎历史性机遇,赋能品牌腾飞

在全球化的今天,中国品牌在全球市场的地位日益显著,品牌意识的提升推动了企业出海战略的全新转型。以全球电商市场发展为例,根据 ecommerceBD 数据,2023 年全球零售电子商务销售额预计 6.3 万亿美元,到 2026 年&#x…

腾讯云优惠券领取的三个渠道,一个比一个优惠!

腾讯云代金券领取渠道有哪些?腾讯云官网可以领取、官方媒体账号可以领取代金券、完成任务可以领取代金券,大家也可以在腾讯云百科蹲守代金券,因为腾讯云代金券领取渠道比较分散,腾讯云百科txybk.com专注汇总优惠代金券领取页面&am…

在VMware上创建kali并改成中文

一.下载VMware 打开官网,获取下载链接 Download VMware Workstation Pro 创建新的虚拟机 之所以选这个是因为kali就是基于debian深度开发 一般窝萌不放在c盘 接下来是三种网络连接类型,我之前做过他们的区别的博客 简单来说就是一般是桥接&#xff0…

【蓝桥杯省赛真题31】python连续正整数之和 中小学青少年组蓝桥杯比赛python编程省赛真题解析

目录 python连续正整数之和 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 七、 推荐资料 1、蓝桥杯比赛 2、考级资料 3、其它资料 python连续正整数之和 第十二届蓝桥杯青少年组python比赛省赛真题 …

【数据结构】线性表 顺序表(动态、静态分配,插入删除查找基本操作)解析+完整代码

1.线性表的基本概念 定义 线性表(Linear List)是具有相同数据类型的n个数据元素的有限序列。 n为表长,n0时线性表是个空表 前驱、后继 前驱:其中一个数据元素的前一个元素。第一个元素没有前驱。后继:其中一个数据元素…

chalk库的使用

这篇文章主要是对chalk库官方文档的中文翻译以及我自己的一些理解。chalk的官方文档可以看这里。 首先说下chalk库的作用:美化终端输出的文本,例如添加不同的字体颜色、不同颜色的背景、粗体以及添加下划线等等,看下图: 优点 富…