Linux:网络基础1

文章目录

  • 前言
  • 1. 协议
    • 1.1 为什么要有协议?
    • 1.2 什么是协议?
  • 2. 网络
    • 2.1 网络通信的问题
    • 2.2 网络的解决方案——网络的层状结构
    • 2.3 网络和系统的关系
    • 2.4 网络传输基本流程
    • 2.5 简单理解IP地址
    • 2.6 跨网络传输
  • 总结

前言

  在早期的计算机发展中,一开始其实是一个个独立的设备,通俗来说就是电脑和电脑之间不是像现在这样可以互相传输数据的,只能通过,比如将这个电脑上的数据通过软盘拷贝下来,再到另一台电脑下载。而有人的参数,效率定然是低下的,因此就有了网络,通过网络来实现不同设备之间的数据传输。

1. 协议

1.1 为什么要有协议?

  我们上面说了,网络可以使不同的设备之间互相传输数据,那么此时就有问题了。比如丢包了怎么办,我们知道一台设备可能会给另一个距离十分远的设备传输数据,距离变长的,那么如何能确定这个数据一定能送到呢?再比如网络中一定是有很多个设备在传输数据,那么如何定位你的目标机器呢?

1.2 什么是协议?

  协议本质就是一种约定。举个浅显的例子,时间线拨回20世纪初,电话刚刚兴起的时候,每次打电话都是要收费的,对普通人来说是一笔不小的费用,所以一个大学生就与家里人作了一个约定,如果我打电话,电话响了一声我就挂了,那么就意味着没有生活费了,如果电话响了两声我就挂了,意味着我在大学里的生活状况一切良好,不用担心我,而两声以上的话就说明我需要和你们进行通话了,此时你们再接电话。而这就是一种约定,也就是一种协议。

2. 网络

  我们知道电脑是有很多厂商的,如果每个厂商所定下的协议不一样的话,那么设备和设备之间是无法进行通信的,因此就需要有一套完整的网络协议来进行规范,所以的厂商都需要遵守这个协议。
  网络一定要能保证各个不同的机器都能无障碍的连入互联网,所以要定制全年的协议,不仅仅要定义010信号是什么意思,还需要规定其底层是以光电信号的频率还是强弱来识别010。

2.1 网络通信的问题

在这里插入图片描述
  一台主机转发数据可能要经过多个路由器转发才能最终到达另一台主机,那么就会有问题:

  1. 怎么保证把数据交给了下一跳。
  2. 在转发中,如何进行路径选择,目标主机定位的问题。
  3. 如果报文中间出现错误,或者丢失该怎么办。
  4. 对于送达的数据,如何进行处理。

  这些问题都需要由协议来解决。

2.2 网络的解决方案——网络的层状结构

  左边的是一开始约定的协议模型,右边的是后来工程实现(编码实现)的时候完成的协议模型。
在这里插入图片描述
  OSI:

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

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

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

2.3 网络和系统的关系

在这里插入图片描述
  因此对于网络的编程,实际上与我们之前的编程并没有什么太大的区别,都是通过调用系统调用接口来进行的。也就是说在操作系统中它还会实现TCP/IP协议!!!

2.4 网络传输基本流程

  那么我们再来理解一下数据是如何转发的呢?也就是主机之间是如何进行通信的呢?
  我们先以我们熟悉的事物来类比,比如快递,到达我们手上的快递实际上并不仅仅只要快递,还有快递单,上面写了收件人、地址、电话等待内容,我们知道这些东西我们其实是不需要的,那么带上它干什么呢?这并不难理解,这是为了给快递员指明要将这个快递送到什么地方,为其指明一个方向。也即是说,快递 = 快递单 + 我们所买的物品。
  在计算机传输数据时也是一样的,它并不仅仅只是传输了数据,还需要将目的主机的的信息等等一系列内容都发过去,在这里,这些数据就是对应上面所说的快递单,而我们需要的数据,比如说你发送了个你好,这个你好就对应我们所买的物品。
  那么在计算机中用C语言要如何表示呢?那么肯定就先描述了,使用struct xxx{} 结构体来表示。在计算机种,协议通常用结构体字段来表征的,而结构体字段定义出来的对象,我们称为协议报头。
在这里插入图片描述

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

  上面是主机一向主机二发送你好的大概流程,最后从主机一发出的数据实际上是报头 + 有效载荷,也就是你发的真实数据。那么就有问题了:

  1. 如何将报文中的报头和有效载荷进行分离呢?
  2. 任何协议中,如何将自己的有效载荷,交付给上层的那一个协议呢?

  上面的两个问题是每一个协议都要解决的问题,是任何的共性!!!所以要好好理解!!

2.5 简单理解IP地址

在这里插入图片描述
  上面圈起来的就是ip地址,它是一个点分十进制的形式,以[0~255]. [0~255]. [0~255]. [0~255] 的形式展示的。
  如果在发送的报文中以这样的形式进行发送,那么占据的内存是相当大的,因为这些就是一个个的字符,一个字符是一字节,这么多是非常浪费内存的,而它的没有数字的范围都是0~255,所以我们可以用一个字节(8个比特位)来表示。
在这里插入图片描述
  ip大概分为两类,一类是公网ip,一种是内网ip,它们加起来就是所有的ip地址。IP地址是用来表示互联网中唯一的一台主机。
  IP地址的意义:进行路径选择,为了到达目的主机,帮助我们该如何选择路径,从而将数据送到目的主机。

  IP协议有两个版本,IPv4和IPv6。我们整个的课程,凡是提到IP协议,没有特殊说明的,默认都是指IPv4。

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

  MAC地址:

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

2.6 跨网络传输

在这里插入图片描述
  上述就是一个简单的跨网络传输,在其中,保存的IP地址是不会发生变化的,但是保存的mac地址是会被不断改变的,它保存的是上一个经过的主机/路由器的mac地址,和下一个要去的主机/路由器的mac地址。
  其中令牌环可以看作一个共享资源,在同一时间只允许一个软件使用,它的作用可以理解成就是用来传递数据的,并且会进行封装报头。
在这里插入图片描述
  在跨多个网络中,就是以这样的方式来不断传输数据的。

总结

  经过对网络的简单讲解,相信大家已经对于网络如何传输数据有了大概的理解,那么接下来我将会深入讲解关于每一层都在干什么等内容,也希望能与大家公共进步。
  如果大家发现有什么错误的地方,可以私信或者评论区指出喔。我会继续深入学习Linux,希望能与大家共同进步,那么本期就到此结束,让我们下期再见!!觉得不错可以点个赞以示鼓励!!

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

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

相关文章

免费翻译API及使用指南——百度、腾讯

目录 一、百度翻译API 二、腾讯翻译API 一、百度翻译API 百度翻译API接口免费翻译额度:标准版(5万字符免费/每月)、高级版(100万字符免费/每月-需个人认证,基本都能通过)、尊享版(200万字符免…

Linux驱动开发实战宝典:设备模型、模块编程、I2C/SPI/USB外设精讲

摘要: 本文将带你走进 Linux 驱动开发的世界,从设备驱动模型、内核模块开发基础开始,逐步深入 I2C、SPI、USB 等常用外设的驱动编写,结合实际案例,助你掌握 Linux 驱动开发技能。 关键词: Linux 驱动,设备驱动模型,内核模块,I2C,SPI,USB 一、Linux 设备驱动模型 Li…

cesium 聚合

cesium 聚合(下面附有源码) 示例代码 <html lang="en"><head><!-- Use correct character set. -->

python系列30:各种爬虫技术总结

1. 使用requests获取网页内容 以巴鲁夫产品为例&#xff0c;可以用get请求获取内容&#xff1a; https://www.balluff.com.cn/zh-cn/products/BES02YF 对应的网页为&#xff1a; 使用简单方法进行解析即可 import requests r BES02YF res requests.get("https://www.…

JSON JOLT常用示例整理

JSON JOLT常用示例整理 1、什么是jolt Jolt是用Java编写的JSON到JSON转换库&#xff0c;其中指示如何转换的"specification"本身就是一个JSON文档。以下文档中&#xff0c;我统一以 Spec 代替如何转换的"specification"json文档。以LHS(left hand side)代…

云计算基础技术

网络类技术 网络的作用 网络是设备间、虚拟机之间通信的桥梁。因此&#xff0c;在ICT基础设施中&#xff0c;网络是必不可少的。 传统网络的基本概念 广播和单播&#xff1a;两个设备通信就好像是人们之间的对话一样。如果一个人对另外一个人说话&#xff0c;那么用网络技术的…

从零开始搭建spring boot多模块项目

一、搭建父级模块 1、打开idea,选择file–new–project 2、选择Spring Initializr,选择相关java版本,点击“Next” 3、填写父级模块信息 选择/填写group、artifact、type、language、packaging(后面需要修改)、java version(后面需要修改成和第2步中版本一致)。点击“…

容器内存

一、容器内存概述 容器本质上还是一个进程&#xff0c;是一个被隔离和限制的进程。因此容器内存和进程内存在表现形式上其实是一样的&#xff0c;这块主要涉及三部分内容&#xff1a;RSS&#xff0c;page cache和swap这三部分&#xff0c;容器基于memory Cgroup对内存进行限制…

HSRP热备份路由协议(VRRP虚拟路由冗余协议)配置以及实现负载均衡

1、相关原理 在网络中&#xff0c;如果一台作为默认网关的三层交换机或者路由器损坏&#xff0c;所有使用该网关为下一跳的主机通信必然中断&#xff0c;即使配置多个默认网关&#xff0c;在不重启终端的情况下&#xff0c;也不能彻底换到新网关。Cisco提出了HSRP热备份路由协…

Paragon NTFS与Tuxera NTFS有何区别 Mac NTFS 磁盘读写工具选哪个好

macOS系统虽然以稳定、安全系数高等优点著称&#xff0c;但因其封闭性&#xff0c;不能对NTFS格式磁盘写入数据常被人们诟病。优质的解决方案是使用磁盘管理软件Paragon NTFS for Mac&#xff08;点击获取激活码&#xff09;和Tuxera NTFS&#xff08;点击获取激活码&#xff0…

消防认证-防火卷帘

一、消防认证 消防认证是指消防产品符合国家相关技术要求和标准&#xff0c;且通过了国家认证认可监督管理委员会审批&#xff0c;获得消防认证资质的认证机构颁发的证书&#xff0c;消防产品具有完好的防火功能&#xff0c;是住房和城乡建设领域验收的重要指标。 二、认证依据…

springboot学习,如何用redission实现分布式锁

目录 一、springboot框架介绍二、redission是什么三、什么是分布式锁四、如何用redission实现分布式锁 一、springboot框架介绍 Spring Boot是一个开源的Java框架&#xff0c;由Pivotal团队&#xff08;现为VMware的一部分&#xff09;于2013年推出。它旨在简化Spring应用程序…

C# 警告 warning MSB3884: 无法找到规则集文件“MinimumRecommendedRules.ruleset”

警告 warning MSB3884: 无法找到规则集文件“MinimumRecommendedRules.ruleset” C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Current\Bin\amd64\Microsoft.CSharp.CurrentVersion.targets(129,9): warning MSB3884: 无法找到规则集文件“MinimumRe…

SpringMVC的基本使用

SpringMVC简介 SpringMVC是Spring提供的一套建立在Servlet基础上&#xff0c;基于MVC模式的web解决方案 SpringMVC核心组件 DispatcherServlet&#xff1a;前置控制器&#xff0c;来自客户端的所有请求都经由DispatcherServlet进行处理和分发Handler&#xff1a;处理器&…

【观察】戴尔科技+AMD:释放技术创新“乘数效应”,助力制造业打造“新质生产力”...

在今年的政府工作报告中&#xff0c;“人工智能”首次被写入报告&#xff0c;同时“大力推进现代化产业体系建设&#xff0c;加快发展新质生产力”也被列为2024年的首项政府工作任务&#xff0c;其重要性不言而喻。 尤其是最近几年&#xff0c;以人工智能、大模型、大数据、云计…

成人职场商务英语学习柯桥外语学校|邮件中的“备注”用英语怎么说?

在英语中&#xff0c;"备注"通常可以翻译为"Notes" 或 "Remarks"。 这两个词在邮件中都很常用。例如: 1. Notes Notes: 是最通用和最常见的表达&#xff0c;可以用在各种情况下&#xff0c;例如&#xff1a; 提供有关电子邮件内容的附加信息 列…

深入解析 androidx.databinding.Bindable 注解

在现代 Android 开发中&#xff0c;数据绑定 (Data Binding) 是一个非常重要的技术。它使得我们能够简化 UI 和业务逻辑之间的连接&#xff0c;从而提高代码的可读性和维护性。在数据绑定中&#xff0c;Bindable 注解是一个关键部分&#xff0c;它帮助我们实现双向数据绑定和自…

编写动态库

1.创建库.c .h文件 2.编写Makefile文件 3.make之后形成.so文件 4.make output,形成mylib 5.把mylib拷贝到test里面 mv mylib /test 6.编译 gcc main.c -I mylib/include -L mylib/lib -lmymethod形成a.out 但是直接执行会出现以下问题 很显然没有找到动态库 7.解决加载找不…

怎样在《语文世界》期刊上发表论文?

怎样在《语文世界》期刊上发表论文&#xff1f; 《语文世界》知网国家级 1.5-2版 2500字符左右 正常收25年4-6月版面 可加急24年内&#xff08;初中&#xff0c;高中&#xff0c;中职&#xff0c;高职&#xff0c;大学均可&#xff0c;操作周期2个月左右&#xff09; 《语文世…

MM-LLM:使用Llava类构建图文多模态大模型实践

多模态大模型的结构如上&#xff0c;llava是用两层MLP作为连接器。该模式也是后续很多工作的基础。 本文主要参考了https://github.com/yuanzhoulvpi2017/zero_nlp/tree/main/train_llava的工作&#xff0c;最初是在b站看到的&#xff0c;讲解的很细致。 基础模型 大语言模型…