Linux网络:网络基础

news2024/9/21 22:51:12

Linux网络:网络基础

  • 一、网络诞生背景及产生的诸多问题
    • 1. 1 网络诞生背景
    • 1.2 网络诞生面临的困境
  • 二、网络协议栈(OSI七层模型、CP/IP五层模型)
    • 2.1 TCP/IP五层(或四层)模型
  • 三、网络和系统关系
  • 四、网络传输流程
    • 4.1 同一个局域网中的两台主机进行文件传输
      • 1)两台主机通信原理
      • 2)两台主机通信过程
    • 4.2 跨网段的主机的文件传输
  • 五、数据包封装和分用
    • 1) 数据封装的过程
    • 2) 数据分用的过程
  • 六 网络地址:ip VS MAC
    • 6.1 MAC地址

一、网络诞生背景及产生的诸多问题

1. 1 网络诞生背景

 计算机最初一定是相互独立的。但我们由很多工作需要相关协作完成,当时的解决办法是用某些硬件将数据进行拷贝交给其他人。但该过程中设计到人力,一旦设计到人力必然导致效率下降。这也为网络的诞生埋下伏笔!
在这里插入图片描述

 后来网络的诞生,让多台计算机连接在一起,数据共享,实现网络互联。随着计算机的数量越来越多,我们通过交换机和路由器将众多的计算机全部链接起来,构成了局域网LAN。但随着局域网的产生,我们来需要将相隔千里的计算机链接起来,比如将中国和美国的一些计算机连接起来,由此广域网的概念诞生!

1.2 网络诞生面临的困境

 网络的诞生本质上还是用于不同的主机间的相互通信。而在每台计算机内部,硬件之间的数据拷贝交换本身就是一种通信行为,而每台计算机中硬件的个数是有限的,并且由OS管控!而不同机器间通信,就是不同机器上的网卡间的相关通信。两者也是硬件间的通信,根本在于后者通信的距离变长,并且中间会经过其他众多设备!

在这里插入图片描述
 距离变长,经过众多设备比如会导致如下问题:

  1. 如何保证数据准确的由一跳交给下一跳?
  2. 在转发过程中,如何查找路径,定位目标主机?
  3. 如果转发过程中发生数据丢包,如何解决?
  4. 向目标设备发送数据成功后,目标设备如何使用接收到的数据?即如何处理接收到的数据?(即接收到的信息很杂,如何分辨处理这些信息)

二、网络协议栈(OSI七层模型、CP/IP五层模型)

 为了解决上述问题,OSI(Open System Interconnection,开放系统互连)定义出了相关协议 —— 网络协议栈!而协议本质上就是一种约定,每一种约定对于上述一种问题的解决办法!软件上,绝大部分优秀的软件都是分成的,这不仅可以完成不同软件间的解耦合,未来也非常方便对软件进行维护、更新、替换和优化等!每一层协议解决不同问题,从而将网络进行分层。网络从逻辑上分为了7层. 每一层都有相关、相对应的物理设备!

 OSI定义成了七层,但实践一般分为5层!
在这里插入图片描述

  1. OSI 七层模型是一种框架性的设计方法,其最主要的功能使就是帮助不同类型的主机实现数据传输,它的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整!
  2. 但实际过程中,应用层、表示层、会话层三层很难单独分开,因此将这三层统称为应用层。即右边CP/IP五层模型!!

 每一层协议解决的问题如下:

在这里插入图片描述

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

 由于TCP/IP在OS中,处于核心地位,因此我们将TCP/IP作为一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。TCP/IP中,各层功能如下:

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

三、网络和系统关系

 对于一台主机,网络部分核心物理设备为网卡,数据链路层工作在网卡的驱动程序中。在往上,网络层和传输层则是工作在操作系统中!再网上就到了用户层!

 所以对于一个合格的OS,不仅要实现内存管理、进程管理、文件管理以及驱动管理等工作,还需实现网络协议栈中的两层:网络层和传输层!当用户需要进行网络通信时,不能直接访问网卡设备,而需要贯穿操作系统;而贯穿操作系统本质就是在贯穿网络协议栈。而网络最核心的网络层和应用层是在OS中实现的,所以用户需要使用协议栈,本质就是在使用操作系统!所以OS要基于tcp/ip为我们提供网络对应的系统调用接口!

 不同的操作系统的内核实现可能差别很大,但对于网络协议的实现是基本一样的,尤其是传输层和网络层!相当于每台计算机都遵循相同的协议,相关的约定,从而保证所有计算机之间都能顺利通信,使得不同操作系统的主机能够进行可靠的通信!

在这里插入图片描述

四、网络传输流程

 在实际生活中,我们收到的快递除了物品本身外,还包含快递单。快递单中回填从相关信息:有谁发的,从哪里发给哪里…这些数据收和发两者都知道认识,更多的是给物流体系知道,指导快递的发送!所以长距离运输,快递 = 内容 + 快递单。而快递单本身就是一种约定,为接收双发知道,是一种协议,我们将之称为报头!

 收快递的过程中,实际收到的要比期望收到的东西要多,多出来的部分称为报文。而在计算机通常是由一个结构化字段表征,这个结构化字段定义的对象称为协议报头!
在这里插入图片描述

4.1 同一个局域网中的两台主机进行文件传输

1)两台主机通信原理

在同一个作用域中,两台主机是可以直接发消息的!每台主机都存在一个网卡设备,在全球中每台计算机的网卡Mac地址都是唯一的。主机A向主机B发送消息"你好"时,除了内容本身,还包含相关协议。而协议中包含接收主机的Mac地址和发送主机的Mac地址。

 当主机A将数据发到局域网中时,当前局域网中的所有主机网卡设备都会收到该消息。但其他网卡收到消息后,发现接收方的Mac地址不是自己后会直接丢弃!但某一时刻,可能多台主机同时向局域网中发送消息,此时数据会发送碰撞,导致数据失效,而此时的局域网也被称为碰撞域。此时发送方会执行碰撞监测算法(在随机时间后重新发送)。即要正确的发送数据,任何时刻局域网中只允许一台主机在局域网中发送消息!

在这里插入图片描述

  • 这种基于碰撞域、碰撞监测、碰撞避免的通信方式,并且碰撞是概率的。我们将这种局域网称为以太网!
  • 碰撞域本身就是一个临界资源,而碰撞监测、避免和重发完成的就是互斥访问临界资源!

2)两台主机通信过程

 两台主机通信发送消息“你好”时,是通过网卡设备通过以太网推送给另一台主机的网卡设备的。所以需要贯穿网络协议栈,然后从上往下依次添加对应层的协议报头。当目标主机网卡接收到消息后,会从下往上依次解析,将报头和有效载荷进行分离,将有效载荷逐次传给上一层进行分用。
在这里插入图片描述

  1. 报文 = 报头 + 有效载荷。应用层报文称为request&response;传输层报文称为数据段;网络层报文称为数据报;数据链路层报文称为数据帧

4.2 跨网段的主机的文件传输

在这里插入图片描述

五、数据包封装和分用

 不同的协议层对数据包有不同的称谓,在应用层报文称为request&response;在传输层报文称为数据段;在网络层报文称为数据报;在数据链路层报文称为数据帧

 应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装!疯转一定要考虑后续解包过程:①如何将报文中有效载荷和报头分开②如何将自己的有效载荷交给上一层那个协议。所以首部信息中包含了一些类似于首部有多长, 载荷(payload)有多长, 上层协议是什么等信息。

 数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部, 根据首部中的 “上层协议字段” 将数据交给对应的上层协议处理!

1) 数据封装的过程

在这里插入图片描述

2) 数据分用的过程

在这里插入图片描述

六 网络地址:ip VS MAC

6.1 MAC地址

 Mac地址一般是唯一的(虚拟机中的mac地址不是真实的mac地址, 可能会冲突; 也有些网卡支持用户配置mac地址),用来识别数据链路层中相连的节点,知道数据局域网中如何从一跳到下一跳!

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

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

相关文章

idea调试启动项目控制台日志卡住不动的解决方案

报错 可能是你有debug没有清除,导致的启动卡住,给清楚掉即可

开学季有哪些必备的好物?学生家长请收下这份清单

随着新学期的脚步日益临近,每位学生和家长都在积极准备迎接新的挑战与机遇。为了帮助孩子们更好地适应校园生活,营造一个健康、高效的学习环境,我们精心挑选了一系列实用且能够提升学习体验的产品。从舒适的护眼台灯到高效的智能学习工具&…

mysql面试题(一)

附件:对mysql知识点描述比较全的博客 https://blog.csdn.net/laodanqiu/article/details/131563200 原题 为方便表达,将创建两个表 mysql> select * from customer; ----------------------------------------------------- | customer_id | custo…

用于目标说话人提取的统一视听线索

第二章 目标说话人提取之《Unified Audio Visual Cues for Target Speaker Extraction 》 文章目录 前言一、任务二、动机三、挑战四、方法1.总体架构2.tes网络3. 融合网络4.损失函数 五、实验评价1.数据集2.消融实验3.客观评价4.主观评价 六、结论七、知识小结 前言 语音新手…

航空制造领域中三维工艺技术的应用

飞机制造企业可以通过三维数字化技术的应用有效提升了工艺设计水平,解决了在航空产品数字化工艺设计、制造方面的标准统一和系统整合等问题,保证了业务应用系统基础数据的一致性和规范性。本文是对航空制造领域中三维工艺技术的应用的介绍。 随着信息化技…

冒泡排序详细说明(内含动态演示图)

冒泡排序 冒泡排序的核⼼思想就是:两两相邻的元素进行比较。冒泡排序是⼀种最基础的交换排序。 之所以叫做冒泡排序,因为每⼀个元素都可以像小⽓泡⼀样,根据⾃⾝⼤⼩⼀点⼀点向数组的⼀侧移动。 //⽅法1 void bubble_sort(int arr[], int…

前端开发学习Docker记录01镜像操作

Docker相关命令 Demo安装nginx 先搜索然后拉取,然后查看images列表是不是拉取成功 docker search nginxdocker pull nginx特定某个版本,镜像名:版本号 docker images

这个神奇的网站提供各种图的R代码供您参考!

点击去每一个都有代码和数据 ggplot2高效实用指南 (可视化脚本、工具、套路、配色) 50个ggplot2可视化案例

国产游戏技术能否引领全球

目录 1.概述 1.1.面临的挑战 1.2.机遇 1.3.IT技术创新如何推动行业发展 2.技术解析 2.1.图形渲染技术 2.2.物理引擎 2.3.人工智能 (AI) 3.行业影响 3.1.对国内游戏开发行业的影响 3.2.IT人才需求变化 3.3.技术发展方向 4.未来展望 4.1. 发展前景 4.2. IT技术人员…

根据Scrum 敏捷开发过程开发一个基于 Web 的 Scrum 项目管理系统

目录 案例 【题目】 【问题 1】(10 分) 【问题 2】(6 分) 【问题 3】(9 分) 【答案】 【问题 1】解析 【问题 2】解析 【问题 3】解析 相关推荐 案例 阅读以下关于 Scrum 敏捷开发过程的叙述,在答题纸上回答问题 1 至问题 3。 【题目】 Scrum 是一个增量…

【使用 Python 进行截图】

如何使用 Python 进行截图? Python 是一种广泛使用的通用编程语言。它可以执行各种任务。其中之一就是进行截图。它提供了一个名为“pyautogui”的模块,可以用于截图。“pyautogui”截取的图片是 PIL(Python 图像库)格式&#xf…

2024中国国际大数据博览会:引领数字变革,共创未来辉煌

2024年中国国际大数据产业博览会,作为全球瞩目的数据领域盛事,再次汇聚全球目光于中国贵阳。 在这场以“数智共生:开创数字经济高质量发展新未来”为主题的盛会上,国家数据局与贵阳市政府共同携手,开启了一段旨在深化…

Java Web实战教程:如何一步步开发美容美发管理系统

✍✍计算机毕业编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java、…

全钢防静电地板和硫酸钙防静电地板的区别

全钢防静电地板和硫酸钙防静电地板都是机房装修会用到的地面材料,那么全钢防静电地板和硫酸钙防静电地板有什么区别呢? 就基材而言,全钢防静电地板底板采用深级拉伸钢板,面板采用硬质SPCC钢板,上下钢板冲压、点焊成型…

软考攻略/超详细/系统集成项目管理工程师/基础知识分享05

2.1.3 存储与数据库(掌握) 1、存储技术 存储分类根据服务器类型分为:封闭系统的存储和开放系统的存储 封闭系统主要指大型机等服务器;开放系统指基于包括麒麟、欧拉、UNIX、Linux等操作系统的服务器 开放存储的系统分为&#xff…

安科瑞ADW300系列4G电表可托管平台

徐赟杰 ADW300系列是利用物联网技术实现智能化计量和管理的智能仪表。 主要用于计量低压网络的三相有功电能,具有体积小、精度高、功能丰富等优点,并 且可选通讯方式多,可支持 RS485 通讯和 Lora、NB、4G、wifi 等无线通讯方式,增…

《python》poetry install下载缓慢,网络问题断开连接--poetry换源镜像下载+国内镜像

在使用打包工具poetry进行打包的是出现了一个问题就是,在使用poetry进行打包的时候出现了,连接断开这样的问题,这个问题是可以通过换源,通过国内的镜像来解决这个问题就可以了。 找到项目中的pyoroject。toml文件这个文件中写了一…

iptables笔记汇总

iptables笔记汇总 一、基础概念 iptables其实不是真正的防火墙,我们可以把它理解成一个客户端代理,用户通过iptables这个代理,将用户的安全设定执行到对应的”安全框架”中,这个”安全框架”才是真正的防火墙,这个框架的名字叫netfilternetfilter才是防火墙真正的安全框…

2024年cad转图片最清晰的方法,看到就是赚到

在工程设计、建筑绘图等领域,CAD图纸的清晰度直接关系到项目沟通的效果与准确性。但如何将复杂的CAD文件转化为易于分享、查看的高清图片呢?给大家分享几种高效且清晰的转换方法,一起来了解下吧。 方法一:迅捷CAD转换器 这款CAD工…

PMP考试提分必杀技,高手都在用这种方法!

PMP(Project Management Professional 项目管理专业人士资格认证,由美国PMI发起,是全球最大的项目管理专业组织机构。它的目的是严格评估管理项目人员的知识技能,以确定其是否具备高品质的资格认证。今天我要分享一些关于PMP考试的…