『 Linux 』网络基础

news2025/1/23 7:11:05

文章目录

    • 协议分层
    • OSI 七层模型
    • TCP/IP 四层(五层)模型
    • 网络协议栈与操作系统的联系
    • 报文
    • TCP/IP 通讯过程
    • 以太网通信的过程
      • 以太网的数据碰撞


协议分层

请添加图片描述

协议分层是计算机网络中奖网络协议进行组织和管理的方法;

通过将网络通信过程分成多个层次,每个层次负责特定的功能从而简化网络设计和实现;

常见的协议分层模型包括OSI模型和TCP/IP模型;

协议分层使得同层之间可以直接交换信息,而不需要上层或下层进行中介从而提高效率;

其优点为如下:

  • 简化设计

    将复杂的网络通信过程分解为多个简单的层次,每个层只需关注特定的功能从而降低了系统的复杂性;

  • 模块化

    每一层可以独立开发和维护,便于更新换代某一层的协议而不影响其它层;

  • 标准化

    通过定义每一层的功能和接口从而促进不同设备和技术之间的互操作性;

  • 故障隔离

    当出现问题时可以更容易定位到具体的层从而提高故障排查和修复的效率;

  • 灵活性

    不同的网络技术可以在同一层上工作使得新技术可以被集成到现有网络中二不需要全面重构;

  • 可拓展性

    协议分层允许在未来进行扩展或引入新的协议以适应技术的发展变化;

在这个例子中AB使用同一种语言进行沟通,在宏观上AB直接进行沟通,但实际上为A将语言以特定的形式发给座机,座机与座机之间进行通信,而后座机将信息处理完毕后重新使B接收从而达到一个通过不同层协议的封装与解包后宏观上AB直接通信的效果;

由于协议进行分层,AB都无需关心座机协议如何处理;

当某层协议进行更换时其他层也无需了解,从而降低了维护成本;


OSI 七层模型

请添加图片描述

OSI模型将网络通信过程分为七个层次为一个协议栈,每一层都有其特定的功能和协议;

  • 应用层

    为用户提供网络服务,支持各种应用程序的运行;

    通常的协议有HTTP(超文本传输协议),FTP(文件传输协议),SMTP(简单邮件传输协议),DNS(域名系统)等;

  • 表示层

    负责数据的格式转换,加密解密,以及数据压缩和解压缩以确保不同系统间的数据能够被理解;

    通常协议有JPEG,MPEG,ASCII,TLS(传输层安全)等;

  • 会话层

    用于管理用户会话,控制会话的建立,维护和终止,同时还负责会话的恢复和同步;

    通常协议有RPC(远程过程调用),NetBIOS等;

  • 传输层

    用于提供端到端的数据传输服务,确保数据完整性和可靠性,包括流量控制和错误检查;

    通常协议有TCP(传输控制协议),UDP(用户数据报协议)等;

  • 网络层

    负责数据包在不同网络间的传输,处理路由器选择和逻辑地址(如IP地址)的分配;

    通常协议有IP(互联网协议),ICMP(互联网控制消息协议),IGMP(互联网组管协议互联网组管协议)等;

  • 数据链路层

    负责物理地址(如MAC地址)的处理,确保在同一网络内数的数据帧传输,提供错误检测和纠正功能;

    通常协议有Ethernet(以太网),PPP点对点协议,HDLC(高级数据链路控制)等;

  • 物理层

    用于负责实际的物理连接和信号传输,包括电缆,接头,信号电压和数据传输速率等;

    通常的协议有USB,RS-232,IEEE 802.3(以太网标准)等;

而实际上在一般实际的网络实现中传输层,网络层,和数据链路层被视为同一层;

主要原因为:

  • 相互依赖

    这三层在功能上存在很大的依赖关系,网络层负责选择数据包的路由,而传输层则确保这些数据包的可靠传输,数据链路层则处理物理地址和局部网络的传输;

  • 协议栈的简化

    在许多现代网络协议栈(TCP/IP模型)中,网络层和传输层的功能往往会在同一设备或软件中实现;

    如路由器和交换机通常同时处理IP数据包和TCP/UDP数据段;

    结合使得设备的设计和维护变得更加简单和高效;

通常情况下OSI模型为一个标准或者参考框架,而类似于TCP/IP模型则是这一标准在实际应用中的具体实现;


TCP/IP 四层(五层)模型

请添加图片描述

TCP/IP四层模型是互联网协议套件的基础,通常被描述为四层模型,每一层都有其特定的功能和协议;

  • 应用层

    用于负责为用户提供网络服务,支持各种应用程序的运行,处理用户界面和应用程序之间的交互;

    通常协议有HTTP(超文本传输协议),FTP(文件传输协议),SMTP(简单邮件传输协议),DNS(域名系统)等;

  • 传输层

    负责在网络中提供端到端的通信,确保数据的完整和可靠性,处理数据的分段,传输和重组;

    通常协议有TCP(传输控制协议),UDP(用户数据报协议)等;

  • 网络层

    负责数据包的路由选择和传输,处理逻辑地址(如IP地址)的分配,确保数据包能够在不同网络之间传输;

    通常协议有:

    • IP(互联网协议)

      负责数据包的寻址和路由;

    • ICMP(互联网控制消息协议)

      用于发送错误消息和操作信息;

    • ARP(地址解析协议)

      用于将IP地址映射到物理地址(MAC地址);

  • 链路层

    链路层负责在同一网络内的数据帧传输,处理物理地址(MAC地址)和数据的封装与解封装,以确保数据在物理媒介上的传输;

    协议通常有:

    • Ethernet(以太网)

      最常用的局域网技术;

    • Wi-Fi

      无限局域网技术;

    • PPP(点对点协议)

      用于点对点连接;

  • 物理层


网络协议栈与操作系统的联系

请添加图片描述

网络协议栈和操作系统之间的联系在于操作系统负责实现和管理网络协议栈的各个层次以便支持网络通信;

以Linux为例;

操作系统是计算机系统的核心,负责管理硬件和软件资源,包括网络通信;

Linux操作系统通过内核实现网络协议栈从而提供网络功能的基础;

Linux的网络协议栈通常遵循TCP/IP模型;

该图为网络协议栈与操作系统的相关联系;

其中数据链路层与物理层对应操作系统的设备和驱动部分;

传输层与网络层对应操作系统中的系统层,这意味着通常传输层与网络层将由操作系统实现,其中将为上层提供对应的系统调用接口;

应用层对应操作系统的系统层;

当存在两台主机,即主机A与主机B,主机A向主机B通过网络发送数据时将层层封装,数据到达主机B时将被层层解包最后再交由用户;


报文

请添加图片描述

报文是网络通信过程中,由发送方生成并发送给接收方的一组数据;

报文通常包含了控制信息和用户数据两部分,用于实现不同的通信功能;

报文一般由头部,有效载荷,尾部(可选)组成;

  • 头部

    头部一般包含控制信息,用于知道网络设备如何处理报文;

    头部通常包括发送的原地址,目的地址,序列号,协议类型,校验和等信息;

    不同的协议有不同的头部格式,如IP报文头部和TCP报文头的格式是不同的;

  • 有效载荷

    有效载荷为实际传输的数据内容,即下一层关心的信息;

    有效载荷的大小可根据协议和应用的需求而变化;

  • 尾部(可选)

    在某些协议中,报文的尾部可能包含一些额外的信息,如错误检测码或结束标识;

在网络协议栈中,报文的概念可以在不同层次上体现:

  • 应用层报文

    在应用层,报文通常指应用程序之间交换的信息,如HTTP请求和响应;

  • 传输层报文

    在传输层中报文可以指TCP段或UDP数据包;

  • 网络层报文

    在网络层中报文通常被称为IP数据包,其包含IP地址,目的IP地址以及其他路由信息;

  • 链路层报文

    在链路层中,报文被称为帧,一个帧中包含MAC地址等硬件相关信息;


TCP/IP 通讯过程

请添加图片描述

当一个主机接收到一个报文时将会只处理属于该层协议的报头,而剩下部分则会被当做有效载荷并传给下一层;

这表示对于每一层协议而言其报头与有效载荷都是不同的;

通常报文在网络传输的过程中一般为:

  • 发送方应用程序生成报文并将其传递给操作系统的网络栈;
  • 操作系统在传输层,网络层和链路层对报文进行封装,为其添加响应头部信息;
  • 经过各层封装后的报文通过网络接口发送到目标设备;
  • 接收方的网络栈收到报文后逐层解包,即处理属于该层的报头并将有效载荷传递给上一层;
  • 最终接收方的应用程序处理有效载荷中的数据;

其中一个数据从用户经网络栈为其添加报头的过程被称为封装;

对应的一个数据被网络栈进行接收逐层处理最终交给用户的过程被称为解包;

本质上通信的过程就是对报文不断的封装和解包的过程;

  • 几乎任何协议都必须提供一种将报头和有效载荷分离的能力
  • 几乎任何协议都必须提供一种将有效载荷正确交付给对应上一层的能力

以太网通信的过程

请添加图片描述

以太网是一种广泛使用的局域网(LAN)技术,主要用于计算机和网络设备之间的传输数据;

在以太网的通信中一般数据通常由应用程序生成,经过操作系统的网络协议栈进行处理;

  • 应用层

    创建要发送的数据(文件,消息等);

  • 传输层

    数据被封装成传输层报文(如TCP段或UDP数据包),包含源端口和目的端口等信息;

  • 网络层

    传输层报文被进一步封装为IP数据包,并添加源IP与目标IP的地址;

  • 链路层

    IP数据包将被封装为以太网帧,添加源MAC地址和目的MAC地址等信息;

以太网主要支持两种传输方式,分为单播和广播:

  • 单播

    当一个设备发送数据包给特定目标时,这种通信成为单播;

    在单播中,所有连接到同一局域网(LAN)的设备都能够接收到发送的数据包,这是因为该以太网在物理介质中传播,所有连接到同一交换机或共享网络的设备都会接收到这个帧;

    每个接收设备的网卡将会检查收到的以太网帧的目标MAC地址;

    • 如果相同

      该设备将接收并处理这个数据包,解析有效载荷并将其传递给上层协议栈;

    • 如果不同

      该设备将丢弃这个帧,通常不会进行任何处理也不会向上层传递任何信息;

  • 广播

    当一个设备向该网络中的所有设备发送数据时这种通信成为广播;

    在这种情况下发送方的以太网帧中目标MAC地址将被设置为广播地址(FF:FF:FF:FF:FF:FF);

    所有连接在同一局域网的设备都会接收到这个广播帧并对其进行处理;


以太网的数据碰撞

请添加图片描述

在以太网中数据碰撞是指两个或以上的设备在同一时间尝试通过共享传输介质发送数据从而导致这些数据相互干扰;

本质原因是以太网是通过光电信号进行传输的,当多个设备同时进行传输时可能会导致数据碰撞从而发生数据碰撞的问题;

以太网属于是多个设备的共享资源,当一个设备准备发送数据时它首先会监听信道以确保没有其他设备在发送数据,如果信道空闲设备会开始发送数据;

在发送过程中,设备会继续监听信道,如果检测到信号强度的变化(由其他设备也在发送数据)则会发生碰撞;

当数据发生碰撞后可能会导致以下问题:

  • 数据损坏

    发生碰撞后,两个设备发送的数据包将会相互干扰导致数据内容被破坏;

  • 重发

    由于数据未能成功传输,发送设备需要根据碰撞检测机制重新发送数据,从而增加了网络的延迟和负载;

在以太网中,可能发生碰撞的集合被称为碰撞域;

在传统的共享以太网中,整个网络都是一个碰撞域;

为了减少碰撞几率的发生可在以太网中使用交换机来减少(划分)碰撞域;

当一个设备需要发送信息给另一个设备时将会先发送给交换机,交换机将判断目标MAC地址的方向;

假设发出设备与接收设备都在交换机的同侧时,该数据将不会发送给交换机的另一侧从而减少数据碰撞的发生;

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

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

相关文章

打破视频生成难题,腾讯提出 MimicMotion引领AI模仿人体动作新纪元

该论文提出了一种可控的视频生成框架MimicMotion,能够生成高质量且任意长度的视频,模仿特定的运动指导。该研究引入信心感知姿势指导,确保视频帧的高质量和时间平滑性。同时,还引入了基于姿势信心的区域性损失放大策略&#xff0c…

hashmap底层原理(数据结构 put原理 get原理 remove原理)

目录 一、数据结构 二、put原理 进入put方法 第一步:通过 HashMap 自己提供的hash 算法算出当前 key 的hash 值 第二步: 进入putVal(hash(key), key, value, false, true) 第三步: resize 完整源码 putval resize 流程图​ 三、get原…

如何不需要通过试单(多单未成功)来关闭被禁用的PayPal账号

轮询自检系统 可以最大程度不浪费订单,当你的PayPal被禁止收单时,无需通过试单(多单不成功)功能来关闭你的账号,极大的保证订单的成功率。 除了在接单时候系统自检,我们还提供一个批量检测PayPal账号系统,可大批量的检…

【运维自动化-配置平台】平台管理功能如何使用

蓝鲸智云配置平台,以下简称配置平台 配置平台里的平台管理功能是管理员的一些操作,比如一些全局纬度的设置1、全局配置-业务通用 业务快照名称:通常不需要修改,保持平台搭建好默认业务(蓝鲸)即可 拓扑最大…

主从备份及安装准备

主从复制 学习内容 1. 备份的三种类型 1. 热备份 2. 逻辑备份 3. 物理备份 2. 情景 ⼊职企业,发现企业架构为⼀主多从,但是两台从服务器和主库不同 步,但是每天会全库北⽅主服务器上的数据到从服务器,由于数据量 不是很⼤&a…

C++校园线上点餐系统-计算机毕业设计源码82032

摘要 本论文旨在设计并实现一种基于C语言的校园线上点餐系统,以解决校园内学生和教职员工点餐的便利性问题。该系统采用C语言作为主要开发语言,结合文件操作、数据结构和用户界面设计等技术,实现了一个功能完善的点餐系统。 论文介绍了校园线…

【书生大模型实战营第三期 | 基础岛第2关-8G 显存玩转书生大模型 Demo】

学习心得:8G 显存玩转书生大模型 Demo 摘要 本文是对《8G 显存玩转书生大模型 Demo》文档的学习心得。通过阅读文档,我了解了如何在有限的硬件资源下部署和使用大型语言模型,包括InternLM2-Chat-1.8B、InternLM-XComposer2-VL-1.8B和Intern…

langchain实现大模型结构化输出

文章目录 前言大模型对话函数返回列表格式返回对象类型返回对象格式(信息抽取)返回json格式做选择题(在给定答案中选一个答案) 前言 这里大模型使用GLM4。 结构化输出的稳定性与大模型的能力挂钩 听话的就容易出 不听话的就容易报…

SQL布尔盲注

目录 1 布尔盲注 2布尔盲注流程 2.1输入id进行测试 2.2判断注入类型 2.3爆数据库名 2.4爆表名 2.5爆字段名 2.6查询数据 1 布尔盲注 布尔盲注就是在SQL注入过程中,SQL语句执行后,查询到的数据不能回显到前端页面,如果正确执行了构造的…

连接一切:Web3如何重塑物联网的未来

传统物联网的挑战 物联网(IoT)正在迅速改变我们的世界,通过将各种设备连接到互联网,它使得设备能够相互交流,提供智能化的服务和解决方案。然而,随着物联网的迅猛发展,安全性、隐私保护和设备互…

C++ primer plus 第17 章 输入、输出和文件:文件输入和输出05:文件模式:内核格式化

C primer plus 第17 章 输入、输出和文件:文件输入和输出05:文件模式:内核格式化 C primer plus 第17 章 输入、输出和文件:文件输入和输出05:文件模式:内核格式化 17.5 内核格式化 程序清单 17.21 strout.cpp 文章目录 C primer plus 第17 章 输入、输…

第41届CCF

第41届CCF中国数据库学术会议 NDBC2024中国乌鲁木齐 《电信领域数据库新需求与挑战》分论坛介绍 2024年08月09日上午09:00-12:30 电信领域进入算力网络时代,数据库国产化需求迫切,对数据库可用性、扩展性、一体化、多模、跨域传输和调度等提出新的要求。基于此,本论坛重点讨…

UE5 右键菜单缺少Generate Visual Studio project files

前言 在安装完毕 ue5 后,看到别人右键菜单有 多出来的三个选项 ,但是我却没有,如下图: 解决方式 1、在 “C:\Program Files (x86)\Epic Games\Launcher\Engine\Binaries\Win64” 路径下有 UnrealVersionSelector.exe 文件。 …

fme从json中提取位置到kml中

fme从json中提取位置到kml中 简单参考,我自己要用的,越弄越复杂。 概述-模板总体结构 数据就是官方提供的数据,模板的基本节结构是读模块+转换器+写模块,最近爬取一些json文件,用到了。 1.使用json读模块读取数据 首先检查一下源数据 使用文本打开数据集,可以看到非缩…

压电雨量传感器的工作原理

型号推荐:云境天合TH-Y1】压电动能式雨量计通过雨滴撞击传感器产生的微小形变,将机械能转化为电能。这种转化过程基于压电效应,即某些材料在受到压力作用时会产生电荷,从而产生电信号。雨滴撞击传感器时,传感器发生形变…

写给大模型新人的经验,刷到少走三年弯路!

这篇文章,我将结合自己在大模型领域的经验,给大家详细聊聊新人应该如何转行大模型赛道? 比如大模型都有哪些方向?各方向的能力要求和岗位匹配?新手转行大模型常踩的坑和常见的误区?以及入行大模型最顺滑的…

扩散模型系列笔记(一)——DDPM

直观理解 扩散模型分为前向过程(扩散过程,Data → \to →Noise)和后向过程(生成过程或逆扩散过程,Noise → \to →Data)。在前向过程中,对于每一个观测样本,不断向样本中添加少量噪…

智能编程新纪元:腾讯AI代码助手的高效编程体验

智能编程新纪元:腾讯AI代码助手的高效编程体验 智能编程新纪元:腾讯AI代码助手的高效编程体验引言一、配置开发环境二、AI助手实现高效编程2.1 AI助手自动补全2.2 AI助手实现编程思维2.3 AI助手高效注解2.4 AI助手打破语言壁垒 三、帮助和提升四、优化和…

【CSS入门】第一课 - CSS内容都可以写在哪里?

从这一小节开始,我们开始学习CSS的内容。之前都是学习的HTML标签,还用几节课的时间做了纯HTML标签的实战。 但是只用纯HTML标签做出来的东西呢,不是那么好看,而且你看那么多网站,没有哪个网站只用纯HTML标签做东西的&…

游戏加速器推荐

游戏加速器推荐,玩游戏用什么加速器!我得给你推荐一款我常用的。 首先呢,就是深度加速器,它针对目前手游网游的游戏加速效果特别棒,而且界面也很友好。 另外,还有深度加速器,这款加速器不仅支持…