【Linux】初识网络

这篇具有很好参考价值的文章主要介绍了【Linux】初识网络。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

背景

协议

什么是协议

协议分层

OSI七层模型

TCP/IP模型

网络协议栈与 OS 的关系

网络传输

局域网中直接通信

数据的封装与分用

局域网通信原理

数据碰撞

跨路由器进行远端通信

IP的介绍

传输演示


背景

🧊一开始,计算机都是一台台独立存在的,跨不同主机的业务处理都需要使用拷贝的方式进行,效率低下

【Linux】初识网络,网络,Linux,网络

🧊后来,人们将各个计算机连接起来,使用一台服务器对数据集中管理,每个人都能看到共享的数据,进而提升业务处理的速率。

【Linux】初识网络,网络,Linux,网络

🧊而随着计算机越来越多,人们便通过交换机和路由器进行连接,形成了一个局域网

【Linux】初识网络,网络,Linux,网络

🧊随着局域网数量越来越多,最终便形成了当下覆盖全球的广域网。

协议

什么是协议

🧊协议就是一种约定,就像方言一样,只有说话的双方都知道对应的意思,才能在对话中获取信息。

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

协议分层

🧊分层在软件设计中十分常见,具体体现为上层不关心下层的功能实现,只使用下层提供的功能运行

🧊就那我们打电话为例,我们平时打电话时都是直接认为是在跟对方直接通信的,实际上我们是通过电话提供给我们的接口,才使对方听到我们的声音。至于电话是如何一层一层传到对方耳中的这些过程,我们作为用户并不关心

【Linux】初识网络,网络,Linux,网络

🧊而任何一层出现问题并不影响其他层每层都只关注自己同层的功能只使用下层的接口

🧊因此整个系统中,无论上层换了一种语言协议,或是下层换了另一种工具通信,只要满足分层的条件便能够达成通信的结果。

【Linux】初识网络,网络,Linux,网络

🧊而使用这种分层的结构进行开发,本质上便是为了减少开发者后期的维护成本。

OSI七层模型

🧊接下来,我们便开始介绍网络对应使用的模型结构,OSI 七层模型又被称为开放式系统互联参考模型

🧊其为一种框架性的设计方法,最主要的功能使就是帮助不同类型的主机实现数据传输。

🧊它将网络从逻辑上分为了 7 层,自上到下分别为应用层表示层会话层传输层网络层数据链路层物理层。十分完备地展现了网络的结构,但由于其过于复杂,具体层的介绍我们放到 TCP/IP 模型中进行讲解。

【Linux】初识网络,网络,Linux,网络

TCP/IP模型

🧊TCP/IP 模型在 OSI 七层模型的基础上,将上三层合并成了一层应用层。

【Linux】初识网络,网络,Linux,网络

  • 物理层: 负责光/电信号的传递方式,就是物理层面的传输。
  • 数据链路层: 负责设备之间的数据帧的传送和识别,例如网卡设备的驱动。
  • 网络层: 负责地址管理和路由选择,例如使用IP地址来标识一台主机。
  • 传输层: 负责两台主机之间的数据传输,使用如 TCP 等传输协议时数据发送到目的主机。
  • 应用层: 负责应用程序间沟通,例如基于网络传输开发出的应用程序。

网络协议栈与 OS 的关系

🧊说了那么多的东西,那么这个协议栈在哪里?又与操作系统有什么关系呢?相信看了下面这张图,你便会有大致的了解。

【Linux】初识网络,网络,Linux,网络

🧊可以看到,整个协议栈与操作系统的整个生态高度重合,从某中程度上说,便于操作系统的文件系统类似,放在 Linux 中,我们一样能够使用一切皆文件的思想来看待网络。本质上一样是用户通过系统调用回调驱动的相应方法,最后硬件进行工作的流程。

🧊但值得注意的一点是,虽然操作系统的种类很多,但是网络(操作系统部分)只能有一种

网络传输

🧊两台主机在局域网中是可以直接通信的,就比如以前玩的单机小游戏,能够在局域网中检索,完成开房间的功能。

🧊而两台主机通信的本质实则为两个主机的 OS 与网络协议栈进行通信

局域网中直接通信

🧊由此可见,两个主机之间的通信都是从应用层出发,逐步向下发送到物理层,传输到了对应主机中再向上交付至应用层,最终使得目的主机收到了我们发送的信息。在这个过程中,每一层都认为是在与对面层直接进行通信

🧊而通信需要协议,因此每一层都要有自己的协议,其中协议的表现形式体现在协议报头上。

【Linux】初识网络,网络,Linux,网络

🧊平时我们拿快递的时候,除了商品本身还会有快递单和额外的包装,其中快递单的信息并非传达给用户的,而是给快递员看的。有了这张单子后,快递员才知道收货人的地址,才能够进行配送。因此,在物流体系中,快递单 + 商品才是物流的主体

🧊同理,在每一层协议中,都需要各自的协议报头有效载荷

数据的封装与分用

🧊当一条数据从应用层出发,我们首先为它加上应用层的报头,之后向下传递给传输层,同样将其加上传输层的报头,不断向下传递并加上报头...

🧊最终通过物理层的传输到达了目的主机,首先便是数据链路层拿到对应的报文,将该层的报头去掉后便向上交付。报文被逐步解析,最后对方的应用层便获得了本地传递过去的信息。

【Linux】初识网络,网络,Linux,网络

🧊经过上面的例子,我们便能够知道,自上而下的处理中每一层都会把上层交给自己的数据作为自己的有效载荷,报头 + 有效载荷就等于自己要发送的报文,这个过程便称为封装

🧊因为同层之间都能认识对方的报头,因此能做到:

  • 将报头和有效载荷分离。
  • 将有效载荷交付给上层。

🧊这两个功能便是协议的公共功能,任何协议都要有这两个基本功能。而基于二者,自下而上的处理便称为解包和分用。

局域网通信原理

🧊假设有一个房间,房间内的人都是位于局域网中的主机,当一个人在喊话时,便可认为他在向局域网中输出信息,每个人自然都会听到这个人说话的声音,但由于叫的不是自己,因此收到的报文还未向上交付时就被抛弃掉了,只有对应的那个人才会将报文交付至应用层并进行处理。

🧊任何人要进行通信,就需要有一个唯一标识符,而网卡出厂时,内部便写入了 sn 号,即 MAC 地址,该地址全球唯一。

数据碰撞

🧊若一个人不断在房间里说话或大吵大闹,便会影响其他人接收信息,由此便会发生数据碰撞

🧊因此,在局域网中,任何时刻都只允许一个人在向局域网中发送消息,以此来避免产生数据碰撞。

跨路由器进行远端通信

🧊首先我们需要了解一下,什么是路由器

🧊路由器虽然在模型中只占了三层,分别是物理层数据链路层网络层,但我们也可以认为路由器是一台主机。

🧊为了达到转发的功能,路由器至少要连接两个子网

【Linux】初识网络,网络,Linux,网络

🧊看到这里有的同学就要犯嘀咕了,上面不是刚说操作系统很多种,但是网络只有一种吗?这里怎么又是以太网又是令牌环的?

🧊这是因为数据链路层的标准不同,具体的实现在网卡之中,不同的厂商有不同的实现方式因此会有不同网络的出现,正因如此,我们在上面讲的是,操作系统部分的网络,TCP/IP 这两层的部分才是只有一种的。

IP的介绍

🧊当我们准备开始进行数据的传输时,便又遇到了一个问题,局域网中有那么多台主机,我们凭什么将对应的数据交给路由器呢

🧊我们使用 IP 来标识每一台跨网络的主机,通常我们使用的是 IPv4 的地址,实则为一个四字节的整数。每个字节间用 . 隔开,因此取值范围在 [0.0.0.0, 255.255.255.255] 之间。一般以字符串的形式出现,因此称为字符串风格的点分十进制方案的IP地址。

🧊接着使用结构体位段便能够将一个整形根据字节划分成四个部分的数。

struct ip
{
    int part1 : 8;
    int part2 : 8;
    int part3 : 8;
    int part4 : 8;
}

🧊因此,我们这次传输信息在信息的基础上,还要增加一个IP地址表示这个信息要发给谁。

传输演示

🧊当报文封装到了网络层时,便会进行路由表的查询,借此便可以判断目的 IP (图中简称IPB)与自己是否处于同一个子网中,否则就将报文交付给路由器(默认路由)

【Linux】初识网络,网络,Linux,网络

🧊因此,在网络层封装的报头中就会包含我们报文想去的 IPB 这个地址,到了数据链路层,因为我们当前这个报文要先发送给路由器,因此数据链路层的报文则包含了路由器的 MAC 地址。

【Linux】初识网络,网络,Linux,网络

🧊发送到路由器后,路由器分离出数据链路层的报头,查询路由表后,找到我们目的 IP 的主机,再传递到数据链路层加上对应的报头。不过这次报头里包含的就是目的主机的 MAC 地址了。

【Linux】初识网络,网络,Linux,网络

🧊因为路由器同时连接两个子网,因此两个传输过程单拎一个出来看的话就是上面讲的局域网直接通信,同时 MAC 地址保证了局域网中只有目的的主机会接收到路由器发送的信息并向上交付,最后对方便得到了我们发送的信息。

【Linux】初识网络,网络,Linux,网络

IP与MAC的差别

在这个过程中,我们会看到网络层使用的地址为 IP 地址,而数据链路层使用的是 MAC 地址,那么这两个地址间有什么区别呢?

可以看到,在传输过程中,我们只使用了一个 IP 地址,至始至终都是指向目的主机的,而 MAC 地址则是根据路径选择的结果来选择下一跳的主机

因此使用 IP 地址便能够屏蔽底层子网的差异,转发时就会为报文加上对应子网的相应报头,因此当报文传递到路由器时还需要将报文向上交付至 IP 层,才能进一步决定下一步报文发送的方向。文章来源地址https://www.toymoban.com/news/detail-754002.html

到了这里,关于【Linux】初识网络的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 网络——初识网络

    独立模式:计算机之间相互独立 早期的计算机相互独立。每台计算机都承载着客户数据,那么会出现以下弊端: 计算机之间进行数据传输成本高。在计算机A处理的数据,若需要放到计算机B或C上处理时,需要先将计算机A的数据拷贝到能够承载数据的硬件,然后通过硬件将数

    2024年02月14日
    浏览(15)
  • 计算机网络——初识网络

            局域网:即Local Area Network,简称LAN。Local即标识了局域⽹是本地,局部组建的⼀种私有⽹络。局域⽹内的主机之间能⽅便的进⾏⽹络通信,⼜称为内⽹;局域⽹和局域⽹之间在没有连接的情况下,是⽆法通信的。以下是实现局域网的几种方式: (1)基于网线直接

    2024年04月29日
    浏览(25)
  • 一.初识Linux 1-3操作系统概述&Linux初识&虚拟机介绍

    目录 一.初识Linux 1.操作系统概述 计算机组成 硬件: 软件: 操作系统: 操作系统工作流程 操作系统作用 常见的操作系统 PC端: 移动端:(掌上操作系统) 一.初识Linux 2.Linux初识 linux系统的诞生 Linux内核 Linux发行版 一.初识Linux 3.虚拟机介绍 虚拟机 ​ 计算机:硬件和软件组

    2024年01月22日
    浏览(29)
  • 「网络编程」第一讲:初识网络_网络基础1

    「前言」文章是关于网络编程方面的,今天内容大致是网络基础,讲解下面开始! 「归属专栏」网络编程 「主页链接」个人主页 「笔者」枫叶先生(fy) 目录 一、计算机网络背景 1.1 网络发展 1.2 认识 \\\"协议\\\" 二、网络协议初识 2.1 协议分层 2.2 OSI七层模型 2.3 TCP/IP五层(或四层

    2024年02月08日
    浏览(46)
  • Linux——1初识linux

    目录 1.1 硬件和软件 1.2 初识Linux 1.2.1 Linux的诞生 1.2.2 LInux内核 1.2.3 Linux发行版 1.3 虚拟机介绍 1.4 VMware WorkStation 安装 1.5 在VMware上安装Linux 1.6 远程连接Linux系统 1.6.1 图形化、命令行 1.6.2 FinalShell 我们所熟知的计算机是由:硬件和软件所组成。 硬件:计算机系统中由电子,机

    2024年02月11日
    浏览(56)
  • 【Linux】初识Linux

    目录 🍎一.Linux历史🍎 1.UNIX发展的历史 2.Linux发展历史 🍏二.开源🍏 🍑三.官网🍑 🍊四.企业应用现状🍊 1.Linux在服务器领域的发展 2.Linux在桌面领域的发展 3.Linux在移动嵌入式领域的发展 4.Linux在云计算/大数据领域的发展 🍅五.常见的发行版本🍅 1.Debian 2.Ubuntu   3.CentOS  

    2024年02月01日
    浏览(29)
  • 【Linux】-初识Linux

    作者 :学Java的冬瓜 博客主页 :☀冬瓜的主页🌙 专栏 :【Linux】 分享 :逆着光行走,任风吹雨打。 ——《起风了》 主要内容 :Linux的一些最基本指令,Linux的小程序,Linux关于连网端口的指令,Linux关于文件的指令,使用Linux编写代码。 Linux定位以及前后端开发定位: Linu

    2023年04月09日
    浏览(22)
  • 网络初识之协议分层

    目录 一、初始网络 1.网络通信基础 1.1 IP地址 1.2 端口号 1.3 认识协议 1.4 五元组 2. 协议分层 2.1 什么是协议分层 2.2 协议分层的好处 2.3 TCP/IP五层模型(最核心的概念) 3. 封装和分用 3.1 发送过程(以QQ发送消息为例) 3.2 接收过程 3.3 真实网络环境中要经理多节点进行转发

    2023年04月21日
    浏览(24)
  • JavaEE-网络初识

    网络互连的目的是进行 网络通信 ,也即是网络数据传输,更具体一点,是网络主机中的不同进程间,基于网络传输数据。 就比如我们平常互相发微信就是在进行网络通信,我们将消息从自己的手机上发送到朋友的手机上轻轻松松,但手机与手机间是怎样进行的我们或许不太

    2024年02月02日
    浏览(25)
  • 网络爬虫-----初识爬虫

    目录 1. 什么是爬虫? 1.1 初识网络爬虫 1.1.1 百度新闻案例说明 1.1.2 网站排名(访问权重pv) 2. 爬虫的领域(为什么学习爬虫 ?) 2.1 数据的来源 2.2 爬虫等于黑客吗? 2.3 大数据和爬虫又有啥关系? 2.4 爬虫的领域,前景 3. 总结 什么是爬虫? 爬虫能抓取拿些数据? 本节课程的

    2024年02月07日
    浏览(20)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包