【Linux】网络基础(一)

【Linux】网络基础(一)

文章目录

网络发展

起初计算机是用在军事上的
独立模式: 计算机之间相互独立

在这里插入图片描述

网络互联:多台计算机连接在一起实现网络互联

在这里插入图片描述


局域网LAN:计算机数量越来越多了,通过交换机和路由器连接在一起


广域网WAN:将远隔千里之外的的计算机连接在一起

在这里插入图片描述


所谓局域网广域网是相对概念,我们家庭路由器就可以看作局域网,把家家户户连接的社区就是广域网。社区看作局域网,把社区连接的就是广域网,中国网络看作局域网,连接世界就是广域网

认识协议

协议是一种约定

在这里插入图片描述


计算机之间通过光信号电信号交流,通过频率强弱来代表0和1,要想传递不同信息,就要约定好数据格式,比如000代表什么信息

要想多台计算机之间相互通信,就要约定共同的标准,这就是网络协议

🚩网络协议

🚩协议分层

在这里插入图片描述

打电话的例子,语言层汉语有协议,通信设备层也有协议

在这里插入图片描述


英语之间交流,我们只需在语言层变更,不必改电话协议
改成无线电协议,不必改汉语协议。

所以,分层最大的好处是封装
这个例子我们只有两层,实际上的网络协议层数更多,更复杂

OSI七层协议

该协议将网络从逻辑上分为7层,概念清楚,理论完整,
应用层
表示层
会话层
传输层
网络层
数据链路层
物理层

🚩TCP/IP五层(四层)协议

我们学习时,会将上三层合称应用层,
TCP/IP五层协议,又因为物理层不重点学习,也叫做,TCP/IP四层协议,
为什么是TCP/IP协议?,因为他俩分别代表传输层,网络层,我们重点学习传输层网络层

每层都要有自己的协议

应用层:处理发来的数据(https http ftp smtp)
tcp协议:长距离传输丢失数据问题
ip协议:如何定位主机
数据链路层:保证数据准确到达下一个设备

🚩网络传输基本流程

网络协议栈与OS关系

在这里插入图片描述


在这里插入图片描述


网络通信的本质就是贯穿协议栈的过程

🚩数据包的封装和解包

用户层拿到了有效载荷,会添加报头再传给传输层,传输层会再添加报头传给网络层,网络层再添加报头传给数据链路层,通过物理层将数据传到另一台主机后,数据链路层会解包属于自己的报头,向上传输,网络层解包自己的报头,传输层解包自己的报头,应用层解包自己的报头,最后拿到数据

在这里插入图片描述


扩展

  • 每一层协议都要提供一种能力,分离报头和有效载荷的能力
  • 每一层协议,都要在报头提供,决定将有效载荷提供上一层协议的能力

MAC地址

MAC地址用来识别数据链路层的相连的节点
MAC48位,6字节,用十六进制加:表示, 08:00:27:03:fb:19
MAC在网卡出厂就设置了,MAC地址通常唯一

在这里插入图片描述

局域网,多台主机共同向其中发数据,主机H1发送数据会被其他所有主机接收,数据内容包含M1发出M10接收(假如),H2主机接收后发现自己是M2,不是M10,直接丢弃,就不再向上层传输,主机H10接收发现自己就是M10,向上层传输

其中,同一时间,只能有一台主机向局域网发送数据,所以主机发送数据前,要执行避免碰撞的算法

交换机:核心工作:划分碰撞域,当左侧主机交换数据时,数据不会传到右侧,当右侧发生碰撞时,碰撞也不会干扰到左侧

Read more

Linux:socket套接字编程的基础概念

一、Socket 编程是什么 Socket(套接字)是网络通信的编程接口,是应用层与 TCP/IP 协议族通信的中间软件抽象层,简单来说,它是两个网络程序之间实现数据传输的 “桥梁”。无论是 TCP 还是 UDP 协议,都可以通过 Socket 接口实现跨主机、跨网络的进程间通信,也是实现网络编程的基础核心 Socket 编程主要分为TCP Socket和UDP Socket两类: * TCP Socket:基于面向连接的 TCP 协议,提供可靠、有序、字节流的传输,适用于文件传输、登录认证等对数据可靠性要求高的场景 * UDP Socket:基于无连接的 UDP 协议,提供无可靠保证、面向数据报的传输,传输速度快、开销小,适用于聊天、音视频传输、广播等对实时性要求高的场景 本文重点讲解UDP

By Ne0inhk
Flutter 组件 sw 的适配 鸿蒙Harmony 实战 - 驾驭高性能微服务路由架构、实现鸿蒙端 HTTP 流量语义分发与逻辑守卫方案

Flutter 组件 sw 的适配 鸿蒙Harmony 实战 - 驾驭高性能微服务路由架构、实现鸿蒙端 HTTP 流量语义分发与逻辑守卫方案

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 sw 的适配 鸿蒙Harmony 实战 - 驾驭高性能微服务路由架构、实现鸿蒙端 HTTP 流量语义分发与逻辑守卫方案 前言 在鸿蒙(OpenHarmony)生态的分布式业务网关、多端协同数据中转站以及需要实现极端细粒度接口管控的各种后端闭环应用开发中,“请求路由的执行效率与逻辑灵活性”是决定系统能否支撑起高并发访问请求的命门所在。面对包含上百个动态参数的 RESTful API 契约、需要针对鸿蒙手机、自研设备等不同终端执行差异化鉴权的复杂路由逻辑。如果仅仅依靠原始的 if-else 显式判定或性能低下的线性字符串匹配。不仅会导致路由分发的延迟随着接口数量增加而呈指数级上升,更会因为缺乏一套工业级的“语义化(Semantic)”路由映射规范。引发严重的服务逻辑归属混乱与权限越界风险。 我们需要一种“语义分发、匹配自洽”的路由艺术。 sw(在 Shelf 生态中常指高效的 Switch/Router 增强件)是一套专注于实现极致性能与

By Ne0inhk
Flutter 组件 random_color 的适配 鸿蒙Harmony 实战 - 驾驭视觉美学随机化、实现鸿蒙端高阶灵动 UI 调色盘与动态主题生成方案

Flutter 组件 random_color 的适配 鸿蒙Harmony 实战 - 驾驭视觉美学随机化、实现鸿蒙端高阶灵动 UI 调色盘与动态主题生成方案

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 random_color 的适配 鸿蒙Harmony 实战 - 驾驭视觉美学随机化、实现鸿蒙端高阶灵动 UI 调色盘与动态主题生成方案 前言 在鸿蒙(OpenHarmony)应用开发中,尤其是在涉及内容创作、个性化看板或动态标签系统时,我们经常需要生成一些“丰富多彩但又不显杂乱”的颜色。如果你仅仅依赖 Random().nextInt(0xFFFFFF),那么生成的色彩极易出现灰暗、过度饱和或者是对比度极低的“色块灾难”。 一个具备极致审美的鸿蒙应用,应当学会在随机中寻找平衡。 random_color 是一套基于色彩理论的高阶生成引擎。它不仅能产生随机色,更能根据“色相(Hue)”、“明度(Luminosity)”和“饱和度”进行定向搜索。适配到鸿蒙平台后,它不仅能支撑起灵动的 UI

By Ne0inhk
Linux 进程间通信之 System V 共享内存:IPC 的原理与实战

Linux 进程间通信之 System V 共享内存:IPC 的原理与实战

🔥草莓熊Lotso:个人主页 ❄️个人专栏: 《C++知识分享》《Linux 入门到实践:零基础也能懂》 ✨生活是默默的坚持,毅力是永久的享受! 🎬 博主简介: 文章目录 * 前言: * 一. 共享内存核心原理:为什么它最快? * 1.1 核心设计思想 * 1.2 通信流程与地址空间示意图 * 1.3 核心特性 * 二. System V 共享内存核心 API 与内核数据结构 * 2.1 内核管理数据结构 * 2.2 核心 API 详解 * 2.2.1 ftok:生成唯一 Key(共享内存的 “身份证”) * 2.2.2

By Ne0inhk