Linux网络:网络与操作系统1
本文是介绍网络的基本结构,以及和OS之间有什么关系
OSI七层模型
引入
使用网络是为了解决信息的长距离传送,那就需要解决四个问题:
- 接收方如何使用数据
- 传输的可靠性
- 主机如何定位
- 数据包在局域网如何转发
人们选择用网络协议(tcp/ip协议)来解决。协议就是计算机之间通用的一套规则,为了减少通信成本。
为了使协议可扩展并且方便维护,就将网络协议划分为层状结构,这样层和层之间就是松耦合的。
结构
OSI(Open System Interconnection)
就是国际标准组织设计的第一套互联网标准,用于规范互联网。有如下七层:
| 分层 | 功能 |
|---|---|
| 应用层 | 提供网络服务给应用程序,处理特定应用的网络协议 |
| 表示层 | 数据表示格式的转换和加密、解密,确保数据格式兼容性 |
| 会话层 | 管理会话(连接)的建立、维护和终止 |
| 传输层 | 管理端到端的数据传输,确保数据完整传输 |
| 网络层 | 负责路径选择和逻辑地址管理,实现跨网络的数据传输 |
| 数据链路层 | 负责节点到节点之间的数据传输和错误检测 |
| 物理层 | 处理物理介质上的比特流传输,将数据转化为电信号或光信号 |
TCP/IP模型
TCP/IP模型在OSI基础上进行合并,将应用层、表示层、会话层合并为应用层。因为这三层由程序员根据不同的需求来实现,其余三层软件层由操作系统给出实现。
除去物理层(网卡)我们不做过多关注,其余四层是很重要的。
TCP/IP模型与OS一一对应
这是操作系统的基本结构
他与模型是一对应的:

| 网络层次 | 系统层次 | 关系 |
|---|---|---|
| 应用层 | 用户 | 应用层协议由用户自己实现 |
| 运输层 | 操作系统 | TCP / UDP 协议在操作系统内部实现 |
| 网络层 | 操作系统 | IP协议在操作系统内部实现 |
| 数据链路层 | 驱动程序 | 数据链路层协议在网卡的驱动程序实现 |
| 物理层 | 底层硬件 | 物理层基于操作系统的硬件设备网卡 |
讨论:OS为什么用c/c++实现,与网络有什么关系?
大部分操作系统都是c写的,作为OS的一部分网络也是c写的。而如果新的OS不是用c写的,他解析不了网络协议的结构体,就无法入网。
所以想要联网,OS就要遵守网络协议,进而使用c/c++实现内核
补充:
协议是用结构体实现的,是结构化的数据类型。
只有不同的主机利用相同的规则(哪些bit位对应哪些信息),才能正确的解读信息
小结
分为两篇来写,下半篇介绍三个基础指令、局域网内部和跨局域网的主机如何通信
相关文章:
Linux网络:网络与操作系统1
本文是介绍网络的基本结构,以及和OS之间有什么关系 OSI七层模型 引入 使用网络是为了解决信息的长距离传送,那就需要解决四个问题: 接收方如何使用数据传输的可靠性主机如何定位数据包在局域网如何转发 人们选择用网络协议(t…...
Manus(一种AI代理或自动化工具)与DeepSeek(一种强大的语言模型或AI能力)结合使用任务自动化和智能决策
一、Manus与DeepSeek差异 十分好奇DeepSeek和Manus究竟谁更厉害些,DeepSeek是知识型大脑,Manus则是全能型执行者。即DeepSeek专注于语言处理、知识整合与专业文本生成。其核心优势在于海量参数支持的深度学习和知识推理能力,例如撰写论文、润…...
Python个人学习笔记(14):函数(匿名函数、内置函数(下)、三元表达式)
九、匿名函数 lambda表达式 语法规则: 变量 lambda 参数1,参数2,…:返回值 例:用lambda简化下述操作 def func(a,b):return ab ret func(1, 2) print(ret)代码: fn lambda a,b:ab print(fn) print(fn(12,13))结果: <fun…...
姚安娜新剧瘦了一圈,《仁心俱乐部》急诊医生顾诗宜在线上岗
《仁心俱乐部》在芒果 TV 播出,湖南卫视金鹰独播剧场也随之播出,这一剧集受到了不少观众的关注。姚安娜在剧中饰演的急诊科医生顾诗宜,她为患者检查身体时动作娴熟,与患者沟通时展现出的耐心和专注,都展现出很高的专业…...
【PyCharm】Python和PyCharm的相互关系和使用联动介绍
李升伟 整理 Python 是一种广泛使用的编程语言,而 PyCharm 是 JetBrains 开发的专门用于 Python 开发的集成开发环境(IDE)。以下是它们的相互关系和使用联动的介绍: 1. Python 和 PyCharm 的关系 Python:一种解释型、…...
【ES6】基础特性总结
概述 仅个人使用,复习ES6的笔记,比较粗糙,仅适用于浏览器端。 数据类型 ES6(ECMAScript 2015)引入了一些新的数据类型和对现有数据类型的扩展。以下是ES6中数据类型的一个简要总结表格: 数据类型描述Nu…...
串口数据记录仪DIY,体积小,全开源
作用 产品到客户现场出现异常情况,这个时候就需要一个日志记录仪、黑匣子,可以记录产品的工作情况,当出现异常时,可以搜集到上下文的数据,从而判断问题原因。 之前从网上买过,但是出现过丢数据的情况耽误…...
无障碍阅读(Web Accessibility)NVDA打开朗读查看器后,enter键不生效的原因
用NVDA测试Web Accessibility时,打开朗读查看器,enter键会无效,而不打开测试器,就没有问题,很大原因是被应用的元素不是可聚焦的,解决方法尝试: 将标签改为可聚焦的语义化标签,如 b…...
基于docker+python+paddleocr构建自己本地化ocr服务
1、使用FastAPI创建服务实例 1.1、正常程序 from fastapi import FastAPI, UploadFile, File, HTTPException from typing import List from paddleocr import PaddleOCR import numpy as np from PIL import Image import io import loggingapp FastAPI(title"游戏截图…...
【视频】V4L2、ffmpeg、OpenCV中对YUV的定义
1、常见的YUV格式 1.1 YUV420 每像素16位 IMC1:YYYYYYYY VV-- UU– IMC3:YYYYYYYY UU-- VV– 每像素12位 I420: YYYYYYYY UU VV =>YUV420P YV12: YYYYYYYY VV UU =>YUV420P NV12: YYYYYYYY UV UV =>YUV420SP(最受欢迎格式) NV21: YYYYYYYY VU VU =>YUV420SP…...
歌词相关实现
歌词相关 歌词数据模型: // Lyric.swift class Lyric: BaseModel {/// 是否是精确到字的歌词var isAccurate:Bool false/// 所有的歌词var datum:Array<LyricLine>! }// LyricLine.swift class LyricLine: BaseModel {/// 整行歌词var data:String!/// 开始…...
51单片机Proteus仿真速成教程——P1-软件与配置+Proteus绘制51单片机最小系统+新建程序模版
前言:本文主要围绕 51 单片机最小系统的绘制及程序模板创建展开。首先介绍了使用 Proteus 绘制 51 单片机最小系统的详细步骤,包括软件安装获取途径、工程创建、器件添加(如单片机 AT89C51、晶振、电容、电阻、按键等)、外围电路&…...
使用 pytesseract 进行 OCR 识别:以固定区域经纬度提取为例
引言 在智能交通、地图定位等应用场景中,经常会遇到需要从图像中提取经纬度信息的需求。本篇文章将介绍如何利用 Python 的 pytesseract 库结合 PIL 对图像进行预处理,通过固定区域裁剪,来有效地识别出图像上显示的经纬度信息。 1. OCR 与 …...
【18】单片机编程核心技巧:变量赋值与高位填充机制
【18】单片机编程核心技巧:变量赋值与高位填充机制 七律 变量赋值探秘 单字赋多字疑云开,高位零填自天来。 清零保守虽稳妥,强制转换更悠哉。 实验验证真章显,编译器间无异态。 嵌入式海行舟稳,类型分明避坑台。 注释…...
网络安全系统集成
随着信息技术的迅猛发展,网络安全问题变得越来越突出。为了应对这一挑战,软考网络安全系统集成应运而生,成为众多企业和机构的重要需求。软考网络安全系统集成旨在培养具备网络安全系统设计、实施和维护能力的专业人才,以满足国家…...
【51单片机】程序实验15.DS18B20温度传感器
主要参考学习资料:B站【普中官方】51单片机手把手教学视频 开发资料下载链接:http://www.prechin.cn/gongsixinwen/208.html 单片机套装:普中STC51单片机开发板A4标准版套餐7 目录 DS18B20介绍主要特性内部结构控制时序初始化时序写时序读时序…...
Vue项目上传到GitHub,vscode拉取vue项目更新后推送到GitHub上
1、新建Vue项目 2、在GitHub新建仓库 3、留意建立好仓库后提示的命令 4、进入vue项目目录,在空白处点击鼠标右键选择git bash here 5、输入命令 git init git add . git commit -m "注释内容" 输入之前创建GitHub仓库后记下的代码的第一句 git remote…...
数字孪生技术在工业制造中的应用探索
一、数字孪生:工业4.0的虚实纽带 1.1 技术定义与发展脉络 数字孪生(Digital Twin)通过实时数据映射,在虚拟空间构建物理实体的动态镜像。其演进历程: 概念萌芽(2002年):NASA首次提…...
# linux有哪些桌面环境?有哪些显示服务器协议及显示服务器?有哪些用于开发图形用户界面的工具包?
linux有哪些桌面环境?有哪些显示服务器协议及显示服务器?有哪些用于开发图形用户界面的工具包? 文章目录 linux有哪些桌面环境?有哪些显示服务器协议及显示服务器?有哪些用于开发图形用户界面的工具包?1 显…...
【心理课堂】学习软件的道路上若感到了困难和迷茫怎么办
在科技飞速发展的今天,软件领域以其广阔的发展前景和丰厚的薪资待遇吸引着众多人投身其中。然而,学习软件并非一帆风顺,在这个过程中,我们难免会遇到困难和迷茫。那么,当我们在学习软件的道路上感到力不从心时…...
【Docker项目实战】使用Docker与Caddy部署BanBan任务管理工具
【Docker项目实战】使用Docker部署BanBan任务管理工具 一、BanBan介绍1.1 BanBan简介1.2 主要特点1.3 使用场景二、本次实践规划2.1 本地环境规划2.2 本次实践介绍三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本四、下载BanBan镜像五、…...
InternVL:论文阅读 -- 多模态大模型(视觉语言模型)
更多内容:XiaoJ的知识星球 文章目录 InternVL: 扩展视觉基础模型与通用视觉语言任务对齐1.概述2.InternVL整体架构1)大型视觉编码器:InternViT-6B2)语言中间件:QLLaMA。3)训练策略(1)…...
【BUG】类文件具有错误的版本 61.0, 应为 52.0,请删除该文件或确保该文件位于正确的类路径子目录中。
报错: [ERROR] 类文件具有错误的版本 61.0, 应为 52.0 [ERROR] 请删除该文件或确保该文件位于正确的类路径子目录中。 报错截图: 原因:Java 版本和 Spring 不兼容,显示 Spring 版本过高 解决方法 1. 使用更高版本的 J…...
康谋应用 | 基于多传感器融合的海洋数据采集系统
在海洋监测领域,基于无人艇能够实现高效、实时、自动化的海洋数据采集,从而为海洋环境保护、资源开发等提供有力支持。其中,无人艇的控制算法训练往往需要大量高质量的数据支持。然而,海洋数据采集也面临数据噪声和误差、数据融合…...
双周报Vol.67: 模式匹配支持守卫、LLVM 后端发布、支持 Attribute 语法...多项核心技术更新!
2025-03-10 语言更新 模式匹配支持守卫(Pattern Guard) 模式守卫可以通过在模式后追加 if ... 的语法结构来指定。有模式守卫的分支只有在被模式匹配的值满足对应模式,并且模式守卫为真的情况下才会执行。如果模式守卫为假,则会…...
深入探索 Java Stream
目录 引言一、Java Stream 基础二、Java Stream 常用操作的语法结构及示例三、Java Stream 的应用场景四、总结 引言 在 Java 编程领域,随着数据量的不断增长以及对高效数据处理需求的日益迫切,Java 8 引入的 Stream API 成为了开发者们的得力助手。Str…...
搜广推校招面经四十六
Minimax llm&广告推荐算法 一、反向梯度下降的数学推导(以逻辑回归为例) 1.1. 模型定义 假设模型为逻辑回归,输入特征为 x ∈ R d \mathbf{x} \in \mathbb{R}^d x∈Rd,权重参数为 w ∈ R d \mathbf{w} \in \mathbb{R}^d …...
【Java 和 Scala】-- Java 与 Scala 的 Assert 断言对比
目录 Java 与 Scala 的 Assert 断言对比 1. 什么是 Assert(断言)? 2. 断言的使用场景 3. Java 断言示例 3.1 Java 断言的基本用法 3.2 Java 启用断言 4. Scala 断言示例 4.1 Scala 断言的基本用法 4.2 Scala 断言默认行为 5. Java 与…...
嵌入式软件测试的东方智慧:WinAMS工具的技术哲学与实践启示——一名汽车电子工程师的七年工具演进观察
引言:在丰田精益生产线上诞生的测试哲学 2017年参与某日系车企的ECU(电子控制单元)联合开发时,我第一次在名古屋工厂见到产线旁部署的WinAMS测试站。不同于欧美工具强调的“全流程覆盖”,这个诞生于日本制造业精益文化…...
MCP-代码解读TypeScript版本
MCP-代码解读TypeScript版本 文章目录 MCP-代码解读TypeScript版本1-参考网址2-TypeScript代码3-代码解读1-[非重点]定义函数2-[非重点]定义工具说明3-[重点]运行MCP服务 1-参考网址 B站视频参考 2-TypeScript代码 import { McpServer } from "modelcontextprotocol/sd…...
