【Linux网络】Linux网络基础入门:初识网络,理解网络协议

📝个人主页🌹:Eternity._
⏩收录专栏⏪:Linux “ 登神长阶 ”
🌹🌹期待您的关注 🌹🌹

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

❀Linux网络

  • 📒1. 计算机网络背景
    • 发展历程
    • "协议"
  • 📜2. 网络协议初识
    • 网络协议的分层结构
  • 📝3. 网络传输基本流程
    • 网络传输流程图
    • 数据包封装和分用
  • 📚4. 网络中的地址管理
    • 认识IP地址
    • 认识MAC地址
  • 📖5. 总结


🔍前言:在浩瀚的数字宇宙中,信息如同繁星点点,通过网络协议这一无形的纽带紧密相连。Linux,作为开源社区的璀璨明珠,其网络协议栈的强大与灵活性,为信息的传输与管理提供了坚实的基础。无论你是对网络技术充满好奇的初学者,还是希望深化Linux网络知识的专业人士,了解并掌握Linux网络协议,都是通往更深层次技术探索的必经之路

本文,正是为了引领你踏入Linux网络协议的神秘殿堂而精心准备。在这里,我们将从网络协议的基本概念出发,逐步揭开Linux网络协议栈的面纱,带你领略TCP/IP协议族的博大精深,以及Linux如何优雅地实现这些协议,确保信息的准确、高效传输

网络协议的学习之路或许充满挑战,但正是这些挑战,塑造了技术人的坚韧与智慧。因此,在本文中,我们力求以简洁明了的语言,结合生动的实例和直观的图表,将复杂的网络协议知识转化为易于理解的精华,助你轻松跨越学习障碍

让我们携手并进,共同揭开Linux网络协议的神秘面纱,领略其背后的技术之美!


📒1. 计算机网络背景

发展历程

计算机网络的发展可以追溯到20世纪60年代。当时,美国国防部的高级研究计划署(ARPA)启动了一个名为ARPANET的研究项目,旨在将分布在全美的计算机连接起来,实现资源共享和信息交流。ARPANET于1969年建成,成为了世界上第一个计算机网络

在随后的几十年里,计算机网络经历了从军用到民用、从局域网到广域网的快速发展。20世纪70年代,随着计算机和网络技术的不断进步,计算机网络开始向商业化和民用化方向发展。1974年,ARPANET采用了TCP/IP协议,这成为了今天互联网的基础。到了80年代,局域网(LAN)和广域网(WAN)开始普及,TCP/IP协议也成为互联网的标准协议,标志着互联网的正式建立


独立模式:计算机之间相互独立
在这里插入图片描述


网络互联:多台计算机连接在一起, 完成数据共享
在这里插入图片描述


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

在这里插入图片描述


广域网WAN:将远隔千里的计算机都连在一起
在这里插入图片描述


重要性:计算机网络在现代社会中发挥着举足轻重的作用。它打破了数据的孤立状态,使得不同计算机之间能够高效地交换信息和共享资源。无论是工作、学习还是生活,计算机网络都已经成为人们不可或缺的一部分。它让人们能够随时随地访问互联网,获取各种信息和服务,极大地提高了工作效率和生活质量


“协议”

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

在这里插入图片描述

关于计算机,计算机操作系统,硬件设备都是有很多不同的厂家一起生产的,但是要在不同厂家生产的计算机能够,畅通无阻的进行信息交流,这个时候就需要共同来制定一个标准,所有厂商都遵守这个标准,这就是网络协议


📜2. 网络协议初识

网络协议,简称为协议,是网络通信(即网络数据传输)经过的所有网络设备都必须共同遵从的一组约定、规则。这些规则详细规定了如何建立连接、如何互相识别、如何发送和接收数据等

为什么要有协议呢?

  • 在网络传输中,距离是越来越长的,在传输过程中可能发生丢包
  • 目标机器的定位问题
  • 如何让我们的报文,在经历无数个设备之后,还能准确的将数据推送到远端机器
  • 送到数据后,还要解决如何使用数据的问题

在这里插入图片描述

这图上的每一步,都需要协议来解决

这个时候我们就需要用到协议,而协议就是一种约定!


网络协议的分层结构

大部分的解决方案都是层状的,完成软件的解耦合,方便未来进行软件的维护
在这里插入图片描述

为了减少协议设计的复杂性,网络设计者通常将复杂的通信问题划分为许多个子问题,并为每个子问题设计一个单独的协议。这些协议按照功能的不同被划分为不同的层次,形成了分层的网络体系结构。常见的网络协议分层结构有OSI七层模型和TCP/IP四层(或五层)模型


OSI七层模型:

OSI七层模型:从高到低依次为应用层、表示层、会话层、传输层、网络层、数据链路层和物理层。每一层都为其上一层提供服务,并接受其下一层的服务

在这里插入图片描述
在这里插入图片描述


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

TCP/IP四层(或五层)模型:将OSI七层模型中的表示层、会话层合并为应用层,从而形成了四层(或五层)结构。从高到低依次为应用层、传输层、网络层、数据链路层和物理层(五层模型还包括一个会话层)。TCP/IP协议簇就是基于这种分层结构设计的

在这里插入图片描述

TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇
TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求

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

在这里插入图片描述
在这里插入图片描述
在不同的系统中,网络的系统调用接口大同小异


报头:在协议中,报头(Header)通常指的是数据包或帧的开头部分,其中包含了关于该数据包或帧的元信息。这些信息对于协议的正确路由和处理数据包/帧至关重要,确保成功地将它从发送方传递到接收方

报头的重要性:报头在协议中扮演着至关重要的角色。它是数据包或帧的“身份证”,包含了必要的元信息和控制信息,以确保数据包能够正确、高效地传输到目标地址。同时,报头也是协议实现和调试的重要工具,通过分析报头信息,可以了解数据包在网络中的传输情况,诊断和解决网络故障


局域网:
在这里插入图片描述


📝3. 网络传输基本流程

网络传输流程图

在这里插入图片描述


跨网段的主机的文件传输,数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器

在这里插入图片描述


数据包封装和分用

  • 不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报 (datagram),在链路层叫做帧(frame)
  • 应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装
    (Encapsulation)
  • 首部信息中包含了一些类似于首部有多长, 载荷(payload)有多长, 上层协议是什么等信息
  • 数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部, 根据首部中的 “上层协议字段” 将数据交给对应的上层协议处理

在这里插入图片描述
封装的时候,一定要考虑后面的解包过程:

  • 如何将报文中的报头和有效载荷进行分离 —> 约定
  • 任何协议都要解决如何将自己的有效载荷交付给上一层的协议 —> 共性
  • 每层协议都要解决这两个问题

封装:
在这里插入图片描述
解包:
在这里插入图片描述


📚4. 网络中的地址管理

认识IP地址

指令:ip -a 可以查看当前的ip地址

  • IP地址是在IP协议中, 用来标识网络中不同主机的地址
  • 对于IPv4来说, IP地址是一个4字节, 32位的整数
  • 我们通常也使用 “点分十进制” 的字符串表示IP地址, 例如 192.168.0.1 ; 用点分割的每一个数字表示一字节, 范围是 0 - 255

IP地址的意义是:路径选择 —> 从哪里来,到哪里去,IP地址是永远不变的


认识MAC地址

  • MAC地址用来识别数据链路层中相连的节点
  • 长度为48位, 及6个字节. 一般用16进制数字加上冒号的形式来表示(例如: 08:00:27:03:fb:19)
  • 在网卡出厂时就确定了, 不能修改. mac地址通常是唯一的(虚拟机中的mac地址不是真实的mac地址, 可能会冲突; 也有些网卡支持用户配置mac地址)

MAC地址:上一站从哪里来,下一站到哪里去 —> 当下目标,MAC地址一直在变


令牌环:

令牌环网络中,所有的计算机或工作站被连接成一个逻辑或物理的环形拓扑结构,网络中数据的传输是通过一个特殊的控制信号,即“令牌”来管理的

在这里插入图片描述


📖5. 总结

回顾这段学习历程,我们一同探讨了网络协议的基本概念,深入了解了TCP/IP协议族的构成与运作机制,领略了Linux网络协议栈的优雅与强大。通过生动的实例和直观的图表,我们成功地将复杂的网络协议知识转化为易于理解的精华,让你在轻松愉快的氛围中掌握了Linux网络协议的核心要点

然而,这仅仅是学习Linux网络协议的起点。前方,还有更多未知与挑战等待我们去探索与征服。在未来的日子里,你将有机会深入学习更高级的网络协议,掌握更复杂的网络架构设计与管理技能,甚至参与到开源社区的贡献中,与全球的Linux爱好者共同推动技术的革新与进步

愿你们在Linux网络协议的广阔天地中,继续书写属于自己的精彩篇章,成就更加辉煌的技术人生!

在这里插入图片描述

希望本文能够为你提供有益的参考和启示,让我们一起在编程的道路上不断前行!
谢谢大家支持本篇到这里就结束了,祝大家天天开心!

在这里插入图片描述

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

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

相关文章

UML外卖系统报告(包含具体需求分析)

1、系统背景 随着互联网技术的快速发展,外卖订餐服务逐渐成为人们生活中的一部分。传统的电话订餐方式面临诸多不便和限制,而基于互联网的外卖订餐系统则提供了更加便捷、快速和高效的订餐服务。这种系统通过将餐厅、顾客和配送人员连接起来&#xff0c…

Sentinel详解

参考博客: SpringCloud Sentinel集成到微服务项目中(保姆级教程) 什么是Sentinel Sentinel 是面向分布式服务架构的轻量级流量控制产品,主要以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度来保护服务…

Vue学习记录之二十五 Vue3中Web Componets的使用

一、webcomponets介绍 在Vue 3中使用Web Components可以通过多种方式实现。Web Components是一组允许你创建可重用、封装良好的自定义元素的标准技术。它们包括Custom Elements、Shadow DOM、HTML Templates等。 Vue3 支持原生模式,可以让单个文件的js,css,html以h…

移植rv1106SDK的ipcweb到ubuntu

移植minilogger 在sdk中找到minilogger,复制到任意的文件夹,执行 cmake ./ make make install把minilogger 安装到系统 修改Makefile 在上次那个基础上,修改Makefile #* 这里原来要包含../Makefile.param,但含有sdk的很多参数…

w003基于Springboot的图书个性化推荐系统的设计与实现

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

Mysql(十) --- 用户权限和管理

文章目录 前言1. 应用场景2.用户2.1. 查看用户2.2. 创建用户2.2.1 语法2.2.2. 注意事项 2.2.3.示例2.3. 修改密码2.3.1. 语法2.3.2. 示例 2.4.删除用户2.4.1.语法2.4.2.示例 3. 权限和授权MySQL内置支持的权限列表3.1.给用户授权3.1.1.语法3.1.2. 示例 3.2.回收权限3.2.1.语法3…

Golang Agent 可观测性的全面升级与新特性介绍

作者:张海彬(古琦) 背景 自 2024 年 6 月 26 日,ARMS 发布了针对 Golang 应用的可观测性监控功能以来,阿里云 ARMS 团队与程序语言与编译器团队一直致力于不断优化和提升该系统的各项功能,旨在为开发者提…

基于SpringBoot的中药材进存销管理系统设计与实现

摘要 中药材进存销管理系统是为了满足中药材生产和销售企业的高效管理需求,涵盖了药材采购、库存管理和销售跟踪等主要功能。本系统采用Spring Boot框架进行开发,结合了前端和数据库设计,构建了一个实用的中药材管理平台,为企业提…

游戏服务器被攻击有办法防护吗

游戏服务器受到攻击时比较常见的。就算是刚上线的游戏,都会有被攻击的时候。游戏服务器受到攻击的原因以及解决方案有哪些呢? 游戏服务器被攻击的原因有哪些呢? 1、常见的攻击,大部分来自于同行之间的恶意竞争,你的游…

【QT】Qt窗口(上)

个人主页~ Qt窗口 一、菜单栏二、工具栏三、状态栏四、浮动窗口 Qt窗口是通过QMainWindow类来实现的,我们之前的学习是通过QWidget类实现的 QMainWindow包含一个菜单栏Menu Bar②,多个工具栏Tool Bars③,多个浮动窗口Dock Widgets&#xff0c…

OpenRTP 传输增加OpenRTPServer

开源地址 最近增加了OpenRTPServer, 已经修改完成一版放在了目录下,window和linux下编译都成功了,不过由于修改代码CMakefile 需要修改,先放放 OpenRTP开源地址 vlc得纠错传输方式 我发现我代码写错以后,vlc 依然能…

大数据Azkaban(二):Azkaban简单介绍

文章目录 Azkaban简单介绍 一、Azkaban特点 二、Azkaban组成结构 三、Azkaban部署模式 1、solo-server ode(独立服务器模式) 2、two server mode(双服务器模式) 3、distributed multiple-executor mode(分布式多…

【Rust】环境搭建

▒ 目录 ▒ 🛫 导读需求 1️⃣ 安装Chocolatey安装依赖 2️⃣ 安装RustRover安装toolchain(rustup、VS)重启配置生效设置安装插件 📖 参考资料 🛫 导读 需求 重装系统,记录下环境搭建遇到的问题。 1️⃣ …

【最全基础知识2】机器视觉系统硬件组成之工业相机镜头篇--51camera

机器视觉系统中,工业镜头作为必备的器件之一,须和工业相机搭配。工业镜头是机器视觉系统中不可或缺的重要组成部分,其质量和性能直接影响到整个系统的成像质量和检测精度。 目录 一、基本功能和作用 二、分类 1、按成像方式分 2、按焦距分 3、按接口类型分 4、按应用…

如何制定有效的学习计划

文章目录 第一章:目标设定1.1 目标的重要性1.2 SMART原则1.3 目标设定公式 第二章:时间管理2.1 时间的重要性2.2 制定时间表2.3 时间管理公式2.4 番茄工作法2.5 时间分配公式 第三章:学习策略3.1 学习方法3.2 学习材料的选择3.3 学习效果公式…

量子计算突破:下一个科技革命的风口浪尖在哪里?

内容概要 在当今科技飞速发展的时代,量子计算如同一颗璀璨的明珠,正闪烁着无尽的可能性。它不仅是解决科学难题的钥匙,更是即将引领科技革命的先锋。如今,随着技术的不断突破,量子计算已经步入了一个崭新的阶段。想象…

【ZZULI】数据库第二次实验

【ZZULI】数据库第二次实验 创建学生信息管理系统的数据库通过T-SQL语句创建学生表、课程表、选课表创建学生表创建课程表创建选课表 修改表结构。为SC表添加写的列,列名为备注修改备注列的数据长度。删除SC表的备注列。 通过T-SQL语句对表的列添加约束,…

iOS静态库(.a)及资源文件的生成与使用详解(OC版本)

引言 iOS静态库(.a)及资源文件的生成与使用详解(Swift版本)_xcode 合并 .a文件-CSDN博客 在前面的博客中我们已经介绍了关于iOS静态库的生成步骤以及关于资源文件的处理,在本篇博客中我们将会以Objective-C为基础语言…

实验:使用Oxygen发布大型手册到Word格式

此前,我曾发表过一篇文章《结构化文档发布的故事和性能调优》,文中讨论了在将大型DITA手册转换为PDF格式时可能遇到的性能挑战及相应的优化策略。 近日,有朋友咨询,若将同样的大型手册输出为MS Word格式,是否也会面临…

从0到1,用Rust轻松制作电子书

我之前简单提到过用 Rust 做电子书,今天分享下如何用Rust做电子书。制作电子书其实用途广泛,不仅可以用于技术文档(对技术人来说非常方便),也可以制作用户手册、笔记、教程等,还可以应用于文学创作。 如果…