[Linux]----初始网络

news2024/10/6 4:06:58

文章目录

  • 前言
  • 一、计算机网络的背景
    • 重新看待计算机结构
    • 网络发展
    • 认识"协议"
  • 二、网络协议初始
    • 软件分层
    • 协议分层
    • OSI七层模型
    • TCP/IP五层(四层)模型
  • 三、网络传输的基本流程
    • 网络和操作系统之间的关系
    • 局域网通信的原理
  • 四、数据包的封装和分用
  • 五、网络中的地址管理
    • 认识IP地址
    • 认识MAC地址
  • 总结


前言

  • 了解网络发展背景,对局域网/广域网的概念有基本的认识。
  • 了解网络协议的意义,重点理解TCP/IP五层结构模型。
  • 学习网络传输的基本流程,理解封装和分用。

正文开始!

一、计算机网络的背景

重新看待计算机结构

理解计算机通过网络互联的可能性!
在这里插入图片描述

多主机连接,本质上其实也是通过"线"连接起来的。

在这里插入图片描述
主机内,"线"比较短,就可能出现信号干扰的问题。
跨主机,"线"比较长,就可能会导致可靠性,效率和如何寻找到对方的问题。

网络的本质就是"线"变长了。

网络发展

独立模式:计算机之间相互独立。
在这里插入图片描述
网络互联:多台计算机连接在一起,实现数据的共享。

在这里插入图片描述

局域网:计算机数量更多了,通过交换机。

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

在这里插入图片描述
所谓"局域网"和"广域网"只是一个相对的概念。

认识"协议"

"协议"就是一个约定。

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

那么只要通信的两台主机,约定好协议就可以了吗?---->当然不是!!!

  • 计算机生产厂商有很多。
  • 计算机操作系统也有很多。
  • 计算机网络硬件设备还是有很多。
  • 如何让这些不同的厂商之间生产的计算机能够相互顺畅的通信?就需要有人站出来,约定一个共同的标准,大家都来遵守,这就是网络协议。

二、网络协议初始

软件分层

之前我们写C语言代码的时候,我们需要实现一个功能,通常把这些代码都会写在main函数中,但是随着我们的学习,我们可以把要实现的功能封装成为一个函数,方便我们调试和解决问题。

所以软件是可以分层的!

为什么要分层呢?

  1. 软件在分层的同事,也把问题归类了。
  2. 分层的本质,软件上进行解耦
  3. 便于工程师进行软件维护。

网络本身的代码就是层状结构!

协议分层

举个栗子:在这里插入图片描述
层状结构下的网络协议,我们认为,同层协议都可以认为自己在和对方直接通信,忽略底层的协议。
所以同层之间,一定都要有自己的协议!

在这个例子中,我们的协议只有两层;但是实际的网络通信会更加复杂,需要分更多的层次。
分层的最大好处在于"封装"。

OSI七层模型

  • OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范。
  • 把网络从逻辑上分为了七层,每一层都有相关,相对应的物理设备,比如路由器,交换机;
  • OSI七层模型是一种框架性的设计方法,其最主要的功能就是帮助不同类型的主机实现数据传输;
  • 他的最大优点是将服务,接口和协议这三个概念明确的区分开来,概念清楚,理论也比较完成,通过七个层次话的结构模型是不同的系统不同的网络之间实现可靠的通讯。
  • 但是,它既复杂又不实用;所以我们按照TCP/IP四层模型来讲解。

在这里插入图片描述

TCP/IP五层(四层)模型

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

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

在这里插入图片描述
物理层考虑的比较少,因此很多时候也可以称为TCP/IP四层模型。

一般而言

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

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

三、网络传输的基本流程

网络和操作系统之间的关系

在这里插入图片描述
在这里插入图片描述
所以就要求每一层都要有自己的协议!

那么以计算机的视角,如何看待协议呢?

体现在代码逻辑和数据上面!

类似于买快递的样子,你只是买了个物品,但是快递员送给你的是一个包裹!多给了我一些东西—>快递单!—>快递单上面的数据可以理解位快递公司和快递点,快递小哥之间的协议!—》为维护协议,一定要在被传输的数据上,新增其他数据(协议数据)。

如果两台主机,处于同一个局域网,这两台主机,能够直接通信吗?—>可以的

局域网通信的原理

以太网:一种局域网的标准。

一般每一台都要有唯一的标识,该主机对应的MAC地址!

任何一台主机在任何时刻都可以随时发信息---->碰撞域------>无法准确的听到对应的消息----->识别发生了碰撞(碰撞检测)—碰撞避免—再发送数据

站在系统的角度:以太网就是临界资源

查看MAC地址

ifconfig

在这里插入图片描述
MAC地址:用来在局域网中标定主机的唯一性

IP地址:用来在广域网(公网),标定唯一性!

在这里插入图片描述

四、数据包的封装和分用

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

下图为数据封装的过程
在这里插入图片描述
数据报添加报头的时候,也要考虑未来解包的时候,将自己的有效载荷交付给上层的哪一个协议。

下图为数据分用的过程

在这里插入图片描述
结论:

  1. 一般而言,任何报头属性里面,一定要存在的一些字段支持我们进行封装和解包。
  2. 一般而言,任何报头属性里面,一定要存在的一些字段支持我们进行分用!

五、网络中的地址管理

认识IP地址

IP协议有两个版本,IPV4和IPV6,我给大家讲解默认以IPV4。

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

认识MAC地址

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

总结

(本章完!)

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

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

相关文章

2004-2020年全国30省工业污染治理完成投资数据

2004-2020年全国30省工业污染治理完成投资数据 1、时间:2004-2020年 2、范围:包括全国30个省,不含西藏 3、来源:国家统计J 4、缺失情况说明:无缺失 5、指标说明: 目前虽然采取了一系列环境规制相关政…

[附源码]Python计算机毕业设计SSM基于Web学术会议投稿管理系统(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

二元灰狼优化(BGWO)应用于特征选择任务(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 特征选择是当前信息领域,尤其是模式识别领域的研究热点。该代码演示了BGWO如何使用基准数据集Main解决特征选择问题。 &#…

python国际化课程capstone(ML预测ACM队员获奖概率)

目录 前言 原始数据集 爬虫部分 爬取每个队员在buct做题数量 爬取每个队员codeforces的最高分,注册时间,解题数量 爬取每个队员有效做题时间 数据处理部分 模型部分 Linear Regression XGBregressiongridsearchCV调参 Random Forset 前言 刚…

Redis框架(九):大众点评项目 缓存工具封装

大众点评项目 缓存工具封装需求:缓存工具封装业务实现代码总览总结SpringCloud章节复习已经过去,新的章节Redis开始了,这个章节中将会回顾Redis实战项目 大众点评 主要依照以下几个原则 基础实战的Demo和Coding上传到我的代码仓库在原有基础…

视频直播技术干货:一文读懂主流视频直播系统的推拉流架构、传输协议等

1、引言 随着移动网络网速的提升与资费的降低,视频直播作为一个新的娱乐方式已经被越来越多的用户逐渐接受。特别是最近这几年,视频直播已经不仅仅被运用在传统的秀场、游戏类板块,更是作为电商的一种新模式得到迅速成长。 本文将通过介绍实时…

爆火Chatgpt注册完全指南

1 chatgpt 简介 ChatGPT是一种语言模型,它被训练来对对话进行建模。它能够通过学习和理解人类语言来进行对话,并能够生成适当的响应。ChatGPT使用了一种叫做Transformer的神经网络架构,这是一种用于处理序列数据的模型,能够在输入…

第33篇 网络(三)FTP(一)

导语 上一节我们讲述了HTTP的编程,这一节讲述与其及其相似的FTP的编程。FTP即FileTransfer Protocol,也就是文件传输协议。FTP的主要作用,就是让用户连接上一个远程计算机,查看远程计算机有哪些文件,然后把文件从远程…

STM32F4 | STM32CubeMX 图形配置工具

文章目录一、STM32CubeMX 简介二、STM32CubeMX 运行环境搭建1.Java环境安装2.STM32CubeMX 图形化工具安装三、使用 STM32CubeMX 工具配置工程模板1.工程初步建立和保存2.RCC 设置3.时钟系统(时钟树)配置4.GPIO 功能引脚配置5.生成工程源码6.编写用户程序…

汽车行业:充分借力数据价值,推动数字化营销链路闭环

当下,汽车行业已慢慢由曾经的增量市场逐步转变为存量市场。更年轻的消费群体偏好、更精准智能的营销投放策略和强势入局的新能源汽车等因素都在推动着汽车行业的不断发展。对于汽车厂商和垂域媒体来说,进行丰富的人群洞察与用户分层,能挖掘更…

陪诊服务系统源码,可以在线预约陪诊师的软件平台

随着生活方式受互联网的影响,我们的各方面都变得更加便利,也伴随着我国人口老龄化,大部分年轻人都选择了外出打工,背井离乡,从而没有办法待在父母身边照顾,陪诊师就是在这个大背景下诞生了,陪诊…

班级校园网页设计作业 静态HTML我的班级网页 DW班级网站模板下载 大学生简单班级网页作品代码 我的大学网页制作 学生班级网页设计作业

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

LeetCode刷题复盘笔记—一文搞懂动态规划之121. 买卖股票的最佳时机问题(动态规划系列第二十篇)

今日主要总结一下动态规划的一道题目,121. 买卖股票的最佳时机 题目:121. 买卖股票的最佳时机 Leetcode题目地址 题目描述: 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一…

QML入门教程:QML和QtQuick简介以及QML实例

从 Qt 4.7 开始,Qt 引入了一种声明式脚本语言,称为 QML(Qt Meta Language 或者 Qt Modeling Language),作为 C 语言的一种替代。而 Qt Quick 就是使用 QML 构建的一套类库。 QML 是一种基于 JavaScript 的声明式语言。…

激光焊接3系铝合金的工艺分析

随着汽车行业的不断壮大,纯电动汽车和燃料电池汽车将共同主导中国新能源汽车市场的未来发展。电动车轻量化和燃料电池的大量使用,必然涉及到越来越多的铝合金焊接工艺。铝合金具有良好的物理、化学和机械性能,是工业生产中一种重要的轻金属材…

搜索引擎搜索特定网站的方法 :site

前言 从13开始的贴吧时代,还记得当时在贴吧里要搜索某些特定的帖子或者关键字的时候,用的都是“吧内搜索”,但用过的人都知道,这个所谓的吧内搜索其实很难用,大家都是用关键字空格贴吧之类的办法去搜索相关的内容。我…

2025年350万辆市场空间!舱驾一体「抢」行泊/舱泊风头

过去三年是汽车智能化「细分作战」阶段,无论是智能驾驶还是智能座舱,由于品牌、车型定位不同,导致在不同价位区间、不同品牌、不同车型,舱内舱外智能化功能组合并不一致。 而随着跨域融合、中央计算平台带动汽车行业进入新的增长…

《树莓派项目实战》第九节 使用PCF8591模块和光敏电阻传感器测量光照强度

目录 8.1 PCF8691模块引脚介绍 8.2 工作原理 8.3 开启I2C接口 8.4 连接到树莓派 8.5 编写代码测量光照强度 在上一节我们使用光敏电阻传感器检测了环境中的光照是否达到了设定的阈值。在本节,我们将使用PCF8591模块和光敏电阻度传感器测量环境中光照强度的具体…

Continua CI捆绑的PostgreSQL数据库服务

Continua CI捆绑的PostgreSQL数据库服务 捆绑的PostgreSQL数据库服务已升级到15.1版。 现在可以使用表达式和变量在“配置存储库分支映射”对话框中为每个存储库指定默认分支。 在“停止”操作中添加了“将失败视为错误”选项。如果选中此项并且该操作位于“Try”块内&#xff…

Qt 模型视图编程之可编辑数据模型

背景 Qt 模型视图编程中模型定义了标准接口对数据进行访问,可根据需求继承对应的抽象模型类来实现自定义的数据模型。一个基本的数据模型至少要实现以下虚函数: ①.rowCount:行数,返回要显示多少行; ②&…