【Linux网络】网络协议基础

网络基础

计算机网络背景

  • 独立模式:计算机之间相互独立
    在这里插入图片描述
  • 网络互联:多台计算机连接在一起,完成数据共享
    在这里插入图片描述
  • 局域网LAN:计算机数量更多了,通过交换机和路由器连接在一起
    在这里插入图片描述
  • 广域网WAN:将远隔千里的计算机都连在一起
    在这里插入图片描述
    所谓"局域网"和"广域网"只是一个相对的概念.比如,我们有"天朝特色"的广域网,也可以看做一个比较大的局域网

初识协议

  • "协议"是一种约定.
  • 打电话约定电话铃响的次数的约定
    在这里插入图片描述

计算机之间的传输媒介是光信号和电信号.通过"频率"和"强弱"来表示0和1这样的信息.要想传递各种不同的信息,就需要约定好双方的数据格式.

思考:只要通信的两台主机,约定好协议就可以了么?

定好协议,但是你用频率表示01,我用强弱表示01,就好比我用中国话,你用葡萄牙语一样,虽然大家可能遵守的一套通信规则,但是语言不同,即是订好了基本的协议,也是无法正常通信的

所以,完善的协议,需要更多更细致的规定,并让参与的人都要遵守。

  • 计算机生产厂商有很多;
  • 计算机操作系统,也有很多
  • 计算机网络硬件设备,还是有很多;

如何让这些不同厂商之间生产的计算机能够相互顺畅的通信?就需要有人站出来, 约定一个共同的标准,大家都来遵守,这就是网络协议;

协议分层

  • 协议本质也是软件,在设计上为了更好的进行模块化,解耦合,也是被设计成为层状结构的.
  • 软件分层的好处:分层可以实现解耦合,让软件维护的成本更低(分层是解耦合的有效方式)
  • 小白视角来看,同层协议直接通信
  • 工程师角度:同层协议,没有直接通信,而是各自使用下层提供的结构能力实现的函数

OSI 七层模型

  • OSI(OpenSystemInterconnection,开放系统互连)七层网络模型,称为开放式系统互联参考模型,是一个逻辑上的定义和规范;

  • 把网络从逻辑上分为了7层.每一层都有相关、相对应的物理设备,比如路由器,交换机;

  • OSI七层模型是一种框架性的设计方法,其最主要的功能使就是帮助不同类型的主机实现数据传输;

  • 它的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整.通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯;

  • 但是,它既复杂又不实用;所以我们按照TCP/IP四层模型来讲解
    在这里插入图片描述

  • 其实在网络角度,OSI定的协议7层模型其实非常完善,但是在实际操作的过程中,会话层、表示层是不可能接入到操作系统中的,所以在工程实践中,最终落地的是5层协议。

应用层:数据处理业务
表示层:自定义协议并添加相应报头
IO基本层

TCP/IP 五层(或四层)模型

TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇.

TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求.

  • 物理层:负责光/电信号的传递方式.
    • 比如现在以太网通用的网线(双绞线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤,现在的wifi无线网使用电磁波等都属于物理层的概念。
    • 物理层的能力决定了最大传输速率、传输距离、抗干扰性等.
    • 集线器(Hub)工作在物理层.
  • 数据链路层:负责设备之间的数据帧的传送和识别.例如网卡设备的驱动、帧同步(从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作.
    • 有以太网、令牌环网,无线LAN等标准.交换机(Switch)工作在数据链路层.
  • 网络层:负责地址管理和路由选择.
    • 例如在IP协议中,通过IP地址来标识一台主机,并通过路由表的方式规划出两台主机之间的数据传输的线路(路由).
    • 路由器(Router)工作在网路层.
  • 传输层:负责两台主机之间的数据传输.如传输控制协议(TCP),能够确保数据可靠的从源主机发送到目标主机.
  • 应用层:负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等.
    • 我们的网络编程主要就是针对应用层.

在这里插入图片描述
物理层我们考虑的比较少,我们只考虑软件相关的内容.因此很多时候我们直接称为TCP/IP四层模型.

一般而言:

  • 对于一台主机,它的操作系统内核实现了从传输层到物理层的内容;
  • 对于一台路由器,它实现了从网络层到物理层;
  • 对于一台交换机,它实现了从数据链路层到物理层;
  • 对于集线器,它只实现了物理层;

但是并不绝对.很多交换机也实现了网络层的转发;很多路由器也实现了部分传输层的内容(比如端口转发)

协议详解

为什么要有TCP/IP协议?

首先,即便是单机,你的计算机内部,其实都是存在协议的,

比如:其他设备和内存通信,会有内存协议。其他设备和磁盘通信,会有磁盘相关的协议,比如:SATA,IDE,SCSI等。只不过我们感知不到罢了。

而且这些协议都在本地主机各自的硬件中,通信的成本、问题比较少。

其次,网络通信最大的特点就是主机之间变远了。任何通信特征的变化,一定会带来新的问题,有问题就得解决问题,所以需要新的协议。

在这里插入图片描述

什么是TCP/IP协议?

  • TCP/IP协议的本质是一种解决方案
  • TCP/IP协议能分层,前提是因为问题们本身能分层

在这里插入图片描述

  • 传输层最著名的协议为TCP协议
  • 网络层最著名的协议为IP协议

所以究竟什么是协议?

在这里插入图片描述
问题:主机B能识别data,并且准确提取a=10,b=20,c=30吗?
回答:答案是肯定的!因为双方都有同样的结构体类型structprotocol。也就是说,用同样的代码实现协议,用同样的自定义数据类型,天然就具有”共识“,能够识别对方发来的数据,这不就是约定吗?

关于协议的朴素理解:所谓协议,就是通信双方都认识的结构化的数据类型

因为协议栈是分层的,所以,每层都有双方都有协议,同层之间,互相可以认识对方的协议。

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

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

相关文章

LabVIEW表面粗糙度测量及算法解析

在制造业和科研领域,表面粗糙度测量对保障产品质量、推动材料研究意义重大。表面粗糙度作为衡量工件表面加工质量的关键指标,直接影响着工件诸如磨损、密封、疲劳等机械性能。随着技术的发展,LabVIEW 在表面粗糙度测量及数据处理中发挥着不可…

深入探索 JavaScript 中的模块对象

引言 在现代 JavaScript 开发中,模块化编程是一项至关重要的技术。它允许开发者将代码拆分成多个独立的模块,每个模块专注于单一功能,从而提高代码的可维护性、可测试性和复用性。而模块对象则是模块化编程中的核心概念之一,它为…

Linux——Mysql数据库

目录 一,数据库简介 二,数据库的基本概念 1,数据 2,数据库和数据库表 3,数据库管理系统和数据库系统 三,主流数据库介绍 四,数据库的两大类型 1,关系型数据库 主键 外键 2…

73页最佳实践PPT《DeepSeek自学手册-从理论模型训练到实践模型应用》

这份文档是一份关于 DeepSeek 自学手册的详细指南,涵盖了 DeepSeek V3 和 R1 模型的架构、训练方法、性能表现以及使用技巧等内容。它介绍了 DeepSeek V3 作为强大的 MoE 语言模型在数学、代码等任务上的出色表现以及其训练过程中的创新架构如多头潜在注意力和多 To…

LabVIEW 2019 与 NI VISA 20.0 安装及报错处理

在使用 Windows 11 操作系统的电脑上,同时安装了 LabVIEW 2019 32 位和 64 位版本的软件。此前安装的 NI VISA 2024 Q1 版,该版本与 LabVIEW 2019 32 位和 64 位不兼容,之后重新安装了 NI VISA 20.0。从说明书来看,NI VISA 20.0 …

基于Centos7的DHCP服务器搭建

一、准备实验环境: 克隆两台虚拟机 一台作服务器:DHCP Server 一台作客户端:DHCP Clinet 二、部署服务器 在网络模式为NAT下使用yum下载DHCP 需要管理员用户权限才能下载,下载好后关闭客户端,改NAT模式为仅主机模式…

最全盘点,赶紧收藏:2025 年全网最全的 Java 技术栈内容梳理(持续更新中)

大家好,我是栗筝i,是一个拥有 5 年经验的 Java 开发工程师和技术博主,曾有多年在国内某大厂工作的经历。从 2022 年 10 月份开始,我将持续梳理出全面的 Java 技术栈内容,一方面是对自己学习内容进行整合梳理&#xff0…

【项目实践】boost 搜索引擎

1. 项目展示 boost搜索引擎具体讲解视频 2. 项目背景 对于boost库,官方是没有提供搜索功能的,我们这个项目就是来为它添加一个站内搜索的功能。 3. 项目环境与技术栈 • 项目环境: ubuntu22.04、vscode • 技术栈: C/C、C11、S…

一个简单的MCP测试与debug

最近MCP挺火,我也跟着网上教程试试,参考如下,感谢原博主分享: https://zhuanlan.zhihu.com/p/1891227835722606201https://zhuanlan.zhihu.com/p/1891227835722606201 MCP是啥?技术原理是什么?一个视频搞…

深度学习系统学习系列【7】之卷积神经网络(CNN)

文章目录 说明卷积神经网络概述(Convolutional Neural Network,CNN)卷积神经网络的应用图像分类与识别图像着色自然语言处理NLP卷积神经网络的结构卷积神经网络中的数据流动 CNN与ANN的关系 卷积操作Padding 操作滑动窗口卷积操作网络卷积层操作矩阵快速卷积Im2col算法GEMM算法…

事务隔离(MySQL)

事务隔离 —— 为什么你改了我还看不见? 在数据库中,事务(Transaction) 用于保证一组数据库操作要么全部成功,要么全部失败,这是一种原子性的操作机制。在 MySQL 中,事务的支持由存储引擎层实现…

华为昇腾910B通过vllm部署InternVL3-8B教程

前言 本文主要借鉴:VLLM部署deepseek,结合自身进行整理 下载模型 from modelscope import snapshot_download model_dir snapshot_download(OpenGVLab/InternVL3-8B, local_dir"xxx/OpenGVLab/InternVL2_5-1B")环境配置 auto-dl上选择单卡…

Spring Boot 3 + Undertow 服务器优化配置

优化背景 当你的application需要支持瞬时高并发的时候,tomcat已经不在是最优的选择,我们可以改为Undertow,并对其进行优化。 Undertow 是一个轻量级的、高性能的Java Web 服务器,由JBoss 开发并开源。它是基于非阻塞(…

利用 Python pyttsx3实现文字转语音(TTS)

今天,我想跟大家分享如何利用 Python 编程语言,来实现文字转换为语音的功能,也就是我们常说的 Text-to-Speech (TTS) 技术。 你可能会好奇,为什么学习这个?想象一下,如果你想把书本、文章、杂志的内容转换…

vue修改了node_modules中的包,打补丁

1、安装patch npm i patch-package 安装完成后,会在package.json中显示版本号 2、在package.json的scripts中增加配置 "postinstall": "patch-package" 3、执行命令 npx patch-package 修改的node_modules中的包的名称 像这样 npx patch-packag…

Vue3快速入门/Vue3基础速通

Vue3 渐进式的javascript框架&#xff0c;我们可以逐步引入vue的功能 官方文档 Vue.js中文手册 你可以借助 script 标签直接通过 CDN 来使用 Vue&#xff1a; <script src"https://unpkg.com/vue3/dist/vue.global.js"></script>通过 CDN 使用 Vue 时…

[人机交互]理解界面对用户的影响

零.重点 – 什么是情感因素 – 富有表现力的界面 – 用户的挫败感 – 拟人化在交互设计中的应用 – 虚拟人物&#xff1a;代理 一.什么是情感方面 情感是指某事物对心理造成的一种状态 二.计算机科学中存在的两个相关的研究领域 2.1情感计算 机器如何能感知其他代理的情感&…

Ubuntu22.04及以上版本buildroot SIGSTKSZ 报错问题

本文提供一种解决 Buildroot SIGSTKSZ 报错途径 解决途径来源参考&#xff1a;Buildroot error when building with Ubuntu 21.10 其出现原因在于 GNU C Library 2.34 release announcement&#xff1a; Add _SC_MINSIGSTKSZ and _SC_SIGSTKSZ. When _DYNAMIC_STACK_SIZE_SOU…

Spark处理过程-案例数据清洗

&#xff08;一&#xff09;需求说明 准备十条符合包含用户信息的文本文件&#xff0c;每行格式为 姓名,年龄,性别&#xff0c;需要清洗掉年龄为空或者非数字的行。 例如&#xff1a; 张三,25,男 李四,,女 王五,30,男 赵六,a,女 孙七,35,男 周八,40,女 吴九,abc,男 郑十,45,女…

多模态大语言模型arxiv论文略读(六十五)

VS-Assistant: Versatile Surgery Assistant on the Demand of Surgeons ➡️ 论文标题&#xff1a;VS-Assistant: Versatile Surgery Assistant on the Demand of Surgeons ➡️ 论文作者&#xff1a;Zhen Chen, Xingjian Luo, Jinlin Wu, Danny T. M. Chan, Zhen Lei, Jinqi…