【Linux】网络基础(一)

news2024/11/25 18:44:02

文章目录

  • 一、计算机网络背景
    • 1. 网络发展
    • 2. 认识“协议”
  • 二、网络协议初识
    • 1. 协议分层
    • 2. OSI七层模型
    • 3. TCP/IP五层(或四层)模型
  • 三、网络传输基本流程
    • 1. 同局域网的两台主机通信
      • 数据包封装和分用
        • 封装
        • 分用
    • 2. 跨网络的两台主机通信
  • 四、网络中的地址管理
    • 1. 认识IP地址
    • 2. 认识MAC地址

网络基础:

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

一、计算机网络背景

1. 网络发展

独立模式:计算机之间相互独立

请添加图片描述

在早期的时候,计算机之间是相互独立的,此时如果多个计算机要协同完成某种业务,那么就只能等一台计算机处理完后再将数据传递给下一台计算机,然后下一台计算机再进行相应的业务处理,效率非常低下。


网络互联:多台计算机连接在一起,完成数据共享

请添加图片描述

这时就有人设法将这些计算机连接在一起,当某个业务需要多台计算机协同完成时,就可以将共享的数据放到服务器中进行集中管理,此时各个计算机就都能获取到这些共享的数据,所以各个业务在处理就能随时进行切换了。


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

后来这样的网络雏形逐渐发展,连入这个网络中的机器变得越来越多,于是就出现了局域网的概念。

在局域网中有一种设备叫做交换机,交换机主要完成局域网内数据的转发工作,也就是在局域网内将数据从一台主机转发给另一台主机。各个局域网之间通过路由器连接起来,路由器主要完成数据的路由转发工作。

请添加图片描述


广域网WAN:将远隔千里的计算机都连在一起

各个局域网之间通过路由器相互连接在一起,便组成了一个更大的网络结构,我们将其称之为广域网。实际局域网和广域网是一种相对的概念,我们也可以将广域网看作一个比较大的局域网。

请添加图片描述


2. 认识“协议”

因为通信距离边长了,所以存在以下问题需要解决:

  1. 丢包了怎么办
  2. 目标机器的定位问题
  3. 如何把我们的报文,在经历了无数个设备之后,还能把数据推送给远端机器
    所以需要协议

二、网络协议初识

1. 协议分层

网络协议栈设计成层状结构,其目的就是为了将层与层之间进行解耦,保证代码的可维护性和可扩展性。

比如在打电话的时候,站在工程师的角度实际这两个人并不是直接进行沟通的,而是甲的电话将甲说的话记录下来,经过一系列编码转码后,通过通信网络将信息从甲的电话传递到了乙的电话,然后信息在乙的电话中再经过对应的编码转码,最后乙才通过话筒听到了甲所说的话。

其中,人与人之间通信使用的是汉语,我们可以将其称为语言层;而电话和电话之间通信使用的是电话系统相关的一些接口,我们可以将其称之为通信设备层。

  • 在这个例子中, 我们的协议只有两层
  • 但是实际的网络通信会更加复杂, 需要分更多的层次.
  • 分层最大的好处在于 “封装” ,在分层情况下,将某层的协议进行替换后,通信双方之间是不会受到影响的请添加图片描述

从上述例子我们还可以看出,虽然在打电话时我们并不是直接进行沟通的,但是我们可以认为我们是在直接进行沟通,并且这两台电话也不是直接在进行沟通的,数据经过电话后,还需要各种基站,各种电信网络来进行数据转发,但是这两台电话依旧可以认为是直接在和对方电话进行通信的。

因此对于网络协议我们需要有一个基本的认识:关于通信,同层协议可以认为自己在和对方层直接进行通信,从而达到简化对于网络协议栈的理解。
请添加图片描述

也就是说,在网络协议栈中我们可以认为通信双方的应用层之间直接在进行通信,也可以认为通信双方的传输层之间直接在进行通信,对于网络层和数据链路层也同样如此。

2. OSI七层模型

上面我们说的是TCP/IP四层协议,而实际当初那个站出来的人定的协议叫做OSI七层协议:

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

请添加图片描述

OSI七层模型如下:

分层名称功能每层功能概览
7应用层针对特定应用之间的协议请添加图片描述
6表示层设备固有数据格式和网络标准数据格式的转换请添加图片描述
5会话层通信管理、负责建立和断开通信连接(数据流动的逻辑通路)、管理传输层以下的分层请添加图片描述
4传输层管理两个节点之间的数据传输、负责可靠性传输(确保数据被可靠地传送到目标地址)请添加图片描述
3网络层地址管理与路由选择请添加图片描述
2数据链路层互联设备之间传送和识别数据帧请添加图片描述
1物理层以0/1代表电压的高低以及灯光的闪灭、界定连接器和网线的规格请添加图片描述

3. TCP/IP五层(或四层)模型

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

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

请添加图片描述

物理层我们考虑的比较少. 因此很多时候也可以称为 TCP/IP四层模型。

一般而言:

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

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

三、网络传输基本流程

1. 同局域网的两台主机通信

同局域网下的两台计算机通过TCP/IP协议通讯的过程如下:

  1. 应用层:通信的起点通常是在应用层。在这一层,用户程序(如浏览器、电子邮件客户端等)会生成需要传输的数据,并将其传递给下一层。

  2. 传输层:在传输层,数据被封装成传输层协议的数据包,例如TCP或UDP数据包。TCP提供可靠的、面向连接的通信服务,而UDP则提供不可靠的、无连接的通信服务。封装完成后,数据包被传递给网络层。

  3. 网络层:在网络层,数据包被封装成IP数据包。IP数据包包含了源主机和目标主机的IP地址,以及用于路由选择的其他信息。网络层还负责处理路由选择和分组转发。

  4. 数据链路层:数据链路层将IP数据包封装成数据帧,并添加物理地址(如MAC地址)和其他控制信息。然后,数据帧被传递给物理层。

  5. 物理层:物理层负责将数据帧转换为电信号或光信号,以便在物理介质(如网线或光纤)上传输。

当信号到达目标主机时,整个过程会在目标主机上以相反的顺序进行,从物理层开始,逐层向上,直到应用层。每一层都负责去除其添加的头部信息,并将数据传递给上一层,最终将数据交付给目标应用程序。

请添加图片描述

数据包封装和分用

封装

关于封装:

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

下图为数据封装的过程:请添加图片描述

封装的本质是数据从应用层到物理层逐层添加头部和尾部信息的过程:

  • 应用层:数据从应用层生成,可能是文本、图片、视频等。
  • 传输层:在传输层,数据被封装成TCP或UDP数据包,并添加源端口和目标端口信息。
  • 网络层:在网络层,数据被封装成IP数据包,并添加源IP地址和目标IP地址。
  • 数据链路层:在数据链路层,数据被封装成数据帧,并添加源MAC地址和目标MAC地址。
  • 物理层:物理层将数据帧转换为适合在物理介质上传输的信号。
分用

下图为数据分用的过程:
请添加图片描述

分用的本质是数据从物理层到应用层逐层去除头部和尾部信息,并将数据传递给上一层的过程:

  • 物理层:物理层接收到信号后,将其转换为数据帧。
  • 数据链路层:数据链路层去除数据帧的头部和尾部,将数据传递给网络层。
  • 网络层:网络层去除IP数据包的头部,将数据传递给传输层。
  • 传输层:传输层去除TCP或UDP数据包的头部,将数据传递给应用层。
  • 应用层:应用层最终接收到数据,并进行相应的处理。

通过封装和分用过程,两台主机能够确保数据在复杂的网络环境中准确、可靠地传输。每一层都负责处理其特定的任务,从而实现了网络通信的层次化和模块化。

[!Important] 封装的时候,一定要考虑后面解包的过程:

  1. 如何将报文中,报头和有效载荷进行分离 - 约定
  2. 任何协议,都要解决如何将自己的有效载荷交付给上层的那个协议

以上两个问题是每层网络协议的共性,每层协议都要解决这两个问题!

2. 跨网络的两台主机通信

跨网段的主机的文件传输,数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器。
请添加图片描述

四、网络中的地址管理

1. 认识IP地址

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

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

2. 认识MAC地址

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

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

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

相关文章

应该如何进行POC测试?—【DBA从入门到实践】第三期

在数据库选型过程中,为确保能够灵活应对数据规模的不断扩大和处理需求的日益复杂化,企业和技术人员会借助POC测试来评估不同数据库系统的性能。在测试过程中,性能、并发处理能力、存储成本以及高可用性等核心要素通常会成为大家关注的焦点&am…

KNN分类算法的MATLAB实现以及可视化

一、KNN简介 KNN算法,即K-Nearest Neighbors,是一种常用的监督学习算法,可以用于分类问题,并且在实际应用中取得了广泛的成功。 二、KNN算法的基本原理 对于给定的测试样本,KNN算法首先计算它与训练集中所有样本的距…

电子元器件线上交易商城搭建的价值和必要性-加速度jsudo

随着科技的飞速发展,电子元器件行业正迎来前所未有的变革。为了满足市场对于电子元器件采购的便捷性、高效性和多样性的需求,电子元器件商城的开发显得尤为重要。本文将探讨电子元器件商城开发的重要性、主要功能以及它如何助力行业发展。 电子元器件商城…

Open CASCADE学习|BrepOffsetAPI_ThruSections无法放样成Solid

目录 1、边界线(TopoDS_Wire)不在一个平面上时,无法生成Solid 2、边界线(TopoDS_Wire)在一个平面上时,可以生成Solid 3、边界线(TopoDS_Wire)不在一个平面上时,添加To…

每日OJ题_01背包①_牛客DP41 【模板】01背包(滚动数组优化)

目录 牛客DP41 【模板】01背包 问题一解析 问题二解析 解析代码 滚动数组优化代码 牛客DP41 【模板】01背包 【模板】01背包_牛客题霸_牛客网 #include <iostream> using namespace std;int main() {int a, b;while (cin >> a >> b) { // 注意 while 处…

力扣刷题 二叉树层序遍历相关题目II

NO.116 填充每个节点的下一个右侧节点指针 给定一个 完美二叉树 &#xff0c;其所有叶子节点都在同一层&#xff0c;每个父节点都有两个子节点。二叉树定义如下&#xff1a; struct Node {int val;Node *left;Node *right;Node *next; } 填充它的每个 next 指针&#xff0c;…

《疯狂java讲义》Java AWT图形化编程中文显示

《疯狂java讲义》第六版第十一章AWT中文没有办法显示问题解决 VM Options设置为-Dfile.encodinggbk 需要增加变量 或者这边直接设置gbk 此外如果用swing 就不会产生这个问题了。

视频中会动的进度条

视频中会动的进度条 1.成果展示&#xff1a;2.步骤&#xff1a; 1.成果展示&#xff1a; 2.步骤&#xff1a;

In Memoriam Fabrizio Flacco

一、背景 最近在看人机协作相关的论文&#xff0c;其中有一篇是Arash Ajoudani于2018发表在Autonomous Robots题为Progress and prospects of the human–robot collaboration的综述。当看到最后Acknowledgements部分&#xff0c;有一句话是The authors would like to thank a…

【React】React18+Typescript+craco配置最小化批量引入Svg并应用的组件

React18Typescriptcraco配置最小化批量引入Svg并应用的组件 前言创建React Typescript项目通过require.context实现批量引入Svg安装[types/webpack-env](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/README.zh-Hans.md)解决类型报错安装[craco](https://…

如何免费搭建幻兽帕鲁服务器?

雨云是一家国内的云计算服务提供商&#xff0c;为了吸引用户推出了积分兑换云产品活动&#xff0c;只需要完成简单积分任务即可获得积分&#xff0c;积分可以兑换免费游戏云、对象存储或者虚拟主机。本文将给大家分享雨云免费游戏云领取及幻兽帕鲁开服教程。 第一步&#xff1a…

每日一题---OJ题: 合并两个有序链表

嗨!小伙伴们,好久不见啦! 今天我们来看看一道很有意思的一道题---合并两个有序链表 嗯,题目看上去好像不难,我们一起画图分析分析吧! 上图中,list1有3个结点,分别为1,2,3 ; list2中有3个结点,分别为1,3,4, 题目要求我们要将这两个链表合并到一起,并且是升序,最后将链表返回。 …

【JAVA基础篇教学】第六篇:Java异常处理

博主打算从0-1讲解下java基础教学&#xff0c;今天教学第五篇&#xff1a; Java异常处理。 异常处理是Java编程中重要的一部分&#xff0c;它允许开发人员在程序运行时检测和处理各种错误情况&#xff0c;以保证程序的稳定性和可靠性。在Java中&#xff0c;异常被表示为对象&am…

大型网站系统架构演化

大型网站质量属性优先级&#xff1a;高性能 高可用 可维护 应变 安全 一、单体架构 应用程序&#xff0c;数据库&#xff0c;文件等所有资源都在一台服务器上。 二、垂直架构 应用和数据分离&#xff0c;使用三台服务器&#xff1a;应用服务器、文件服务器、数据服务器 应用服…

TCM SRAM等五块内存的使用和动态分配

TCM SRAM等五块内存的使用和动态分配 配置sct文件内存使用动态内存分配rtx_lib.hrtx_memory.cmain.c 配置sct文件 LR_IROM1 0x08000000 0x00200000 { ; load region size_regionER_IROM1 0x08000000 0x00200000 { ; load address execution address*.o (RESET, First)*(InRoo…

1113. 红与黑--Flood Fill 算法

目录 1113. 红与黑--Flood Fill 算法---宽搜&#xff08;BFS&#xff09;或DFS&#xff09; 输入格式 输出格式 数据范围 输入样例&#xff1a; 输出样例&#xff1a; 思路&#xff1a; 1.BFS 思路&#xff1a; 2.DFS 思路 方法一&#xff1a;&#xff08;BFS&#x…

玉伯也创业了,曾经的互联网高P也慢慢的落幕了

玉伯是真创业还是被动创业&#xff1f;毕竟&#xff0c;在阿里的时候&#xff0c;他可是Ant Design和语雀的大佬&#xff0c;风光无限&#xff0c;谁都知道他的大名。但后来&#xff0c;他去了字节&#xff0c;待了不到一年就跑了&#xff0c;现在选择出来创业。是不是曾经的那…

文章分享:《二代测序临床报告解读指引》

&#xff3b;摘要&#xff3d; 二代测序&#xff08;next generation sequencing&#xff0c;NGS&#xff09;已成为中国临床肿瘤医生常用检测工具&#xff0c;而中国超 90%临床医生需要 NGS 报告解读支持。因此&#xff0c;为提升临床医生 NGS 报告解读能力&#xff0c;特编写…

ETL结合飞书快速实现业务信息同步

一、ETL工具介绍 ETLCloud数据集成平台是一款针对IT以及数据工程师推出的全域数据集成平台产品。它是集实时数据集成和离线数据集成以及API发布为一体的数据集成平台。与其他开源数据集成工具相比&#xff0c;系统采用轻量化架构、具有更快的部署速度、更快的数据传输速度、更…

宏景eHR customreport/tree SQL注入漏洞复现

0x01 产品简介 宏景eHR人力资源管理软件是一款人力资源管理与数字化应用相融合,满足动态化、协同化、流程化、战略化需求的软件。 0x02 漏洞概述 宏景eHR customreport/tree 接口处存在SQL注入漏洞,未经过身份认证的远程攻击者可利用此漏洞执行任意SQL指令,从而窃取数据库…