抛开各种协议,通俗易懂的计算机网络入门教程,帮助你快速入门计算机网络

发布时间:2024年01月20日

引言

? ? ? 很多非科班同学甚至科班同学在学习计算机网络时,一上来就会被教材或者网课老师灌输各种概念,学习完后会非常很懵逼,各层的协议到底有什么用,我在一台手机的应用程序上发送消息给另外一台手机相应的应用程序过程中,发生了什么事情?依然觉得很抽象。

? ? ?其实课本和网课传授各种网络概念的时候默认我们对网络是有一定的了解的,反而其实大部分同学对网络是没有一点概念的,如果这时候直接去看相关专业书籍反而会难以接受,这会大大降低我们的学习效率。看完下面的网络整体架构,带着这些架构再去接触专业书籍反而会轻松不少。

? ? 当然为了照顾小白,里面很多基础的问题,有些知识点如果你知道可以通过目录直接跳过。


网络数据的传输形式

? ?在我们浏览网页,接收消息时会接收各种各样的信息,那这些信息是通过怎样的形式传输的呢?

一、信息、数据和信号

  • 信息:信息是我们可以感知和不感知、已知和未知的所有数据形式、图像的集合。
  • 数据:数据是主机或记录信息按照一定规则排列组合的物理符号。它可以是数字、文本、图像,也可以是计算机代码。可以从实验中采集数据,总结出通过实验观察到的规律和现象。
  • 信号:信号是传递信息的工具和信息载体,如光信号、声音信号、电子信号等,其本身在某种程度上具有特定的意义,我们将能够通过特殊的方法来识别其意义。

? ? ? 如果你不想看上面的概念或者觉得很抽象,我可以给你举两个例子:

  • 你在打电话,电话线要有【信号】,交换机交换语音【数据】,而你和接电话的人交换的是【信息】。信息是你要表达的意思,数据就是你在表达过程中被记录下来的语音,通过某些操作,将语音转换为电信号、光信号、波等,再通过线路或者电磁波等无线介质传播。
  • 你通过微信问朋友(“你在哪”?),你想问他在哪就是你要传递的信息。“你在哪”的文字或者是编程语言中的字符串,或者我们通过将其编码转换为对应二进制语言,他们都可以叫做数据。我们将二进制语言转换为高低不平的电流,通过线路传输给另外一台设备,我设备所发送的,或者另外一台所收到的,具有意义的信息载体和载体所包含的信息本身,她就是信号。

? ? ? 当然,信息和数据的意义很宽泛,一张图片、一段文字有时候即可以叫信息也可以叫数据。在有些论文抛出的概念中,数据和信号本身也可以叫做信息。

如果实在麻烦,看下面这张图,你可以这样理解

二、数据和信号的转换

1、图片、文字、音频与二进制的转换

无论是计算机本身存储数据还是网络传输,都会不可避免的使用二进制,那他们是怎么转换为二进制的呢?

(1)文字二进制的转换

在计算机中,通常会使用字符集的编码方式将字符转换为二进制。常见的英文字符集编码为ASCII和常见的中文字符集编码UTF-8(用于包含中文字符在内的多语言字符)和UniCode。

假设我们要将英文单词 "Hello" 转换为二进制。首先查找每个字符的ASCII码,然后将ASCII码转换为二进制。

  1. 'H' 的ASCII码是 72,转换为二进制:01001000
  2. 'e' 的ASCII码是 101,转换为二进制:01100101
  3. 'l' 的ASCII码是 108,转换为二进制:01101100
  4. 'l' 的ASCII码是 108,转换为二进制:01101100
  5. 'o' 的ASCII码是 111,转换为二进制:01101111

因此,"Hello" 转换为二进制为:01001000 01100101 01101100 01101100 01101111。

假设我们要将中文字符 "你好" 转换为二进制。首先查找每个字符的UTF-8编码,然后将UTF-8编码转换为二进制。

  1. '你' 的UTF-8编码是:111001001010000010000000
  2. '好' 的UTF-8编码是:111001001010000010000010

因此,"你好" 转换为二进制为:11100100 10100000 10000000 11100100 10100000 10000010。

(2)图像二进制的转换

图像通常由各个像素点组成。像素是图像的最小单元,它是图像中最小的可操作的点。每个像素都包含有关其在图像中位置的信息以及关于其颜色的信息。

图像的分辨率描述了图像中有多少个像素,通常以水平和垂直方向的像素数表示。例如,一个分辨率为1920x1080的图像意味着它有1920个像素宽和1080个像素高。

一个像素通常由1位、8位、24位组成

1位颜色深度: 最简单的情况,每个像素只有1位,通常用于黑白图像。这时,每个像素只能是黑或白,对应二进制的0或1。

8位颜色深度: 通常用于灰度图像,每个像素用8位表示灰度级别。这允许256种不同的灰度值,从0(黑色)到255(白色)。

24位颜色深度: 这是常见的真彩色深度,一共有三种颜色通道,分别是红、黄、蓝,每个颜色通道用8位表示,总共24位。每个像素可以表示超过1600万种颜色。

(3)音频二进制的转换

? ? ? ? 音频文件是通过将声音信号(声音信号是连续的模拟信号)的波形转换为数字形式来表示的,这个过程涉及到模数转换(Analog-to-Digital Conversion,简称ADC),其中模拟信号(声音波形)被采样并转换为数字信号。

2、二进制数据与信号的转换
(1)数字数据编码为数字信号

? ? ? ? 数字信号是以离散的形式表示的信号,它是由一系列离散的数值构成的。这些数值通常采用二进制形式,即由 0 和 1 组成。我们以电信号为例,在一定频率内,我们以高电伏为1,低电伏为0。

? ? ?数字数据编码为数字信号一共有六种方式:非归零编码(NRZ),归零编码,反向不归零编码,曼切斯特编码,差分曼切斯特编码,5B/4B编码,由于计算机网络课本物理层会详细讲述内容,我们以非归零编码(NRZ)为例:

? ? ? 在信号传输过程中,我们可以粗虐将得到的数字信号的横轴看作时间,纵轴看作电压,就可以传输我们需要的信号了,当然实际的传输过程并没有这么简单,我举这个例子方便大家理解

(2)数字信号调制为模拟信号

? ? ? ? 上文在音频二进制的转换我们提到,声音是波的形式,因此在传输过程中有的时候我们需要将数字转换为波或者波转换为数字

调幅(2ASK):码元0对应没有振幅,码元1对应有振幅(振幅可以理解为波在y轴上的高低,我们也可以将码元0对应低振幅,码元1对应高振幅)。
在这里插入图片描述

调频(2FSK):码元0对应低频,码元1对应高频。
在这里插入图片描述在这里插入图片描述

调相(2PSK):码元1对应一种波形,码元0对应另一种波形(调相可以理解为调整波的起始位置)。
在这里插入图片描述在这里插入图片描述

?(3)模拟信号调制为数字信号

? ? ? ?关于波转换为数字的过程,最典型的就是对音频信号进行编码的脉码调制(PCM),它主要包括三个部分:抽样、量化、编码,这一部分不详细阐述。

三、信号的传输

有线传输和无线传输是两种常见的信息传输方式,它们在通信领域有着不同的特点和应用

  • 有线传输是通过物理导体(如电缆、光缆、同轴电缆,物理导体这里不详细介绍)来传输信号的方式,例子如电脑网络(例如,以太网)
  • 无线传输是通过空气中的电磁波来传输信号的方式,不需要物理导体连接,例子如移动通信、卫星通信无线局域网(Wi-Fi)、蓝牙技术、无线电和电视广播。

?传输形式总结

了解完上面知识后,对于下面这图相信大家对信息的传输过程有一定的掌握和理解,但这还是计算机网络的开始。我们在一端向另一端发送消息的时候,电脑在互联网中怎么样定位到另一台电脑的,如果我是在微信发的消息,另一台收到消息的电脑为什么是微信程序收到消息而不是QQ,下面我将从网络的发展入手简单易懂的讲清楚每层网络架构

?计算机网络架构

上面提到,我们在一端向另一端发送消息的时候,电脑在互联网中怎么样精准定位到另一外一台电脑的?下面笔者将简单易懂的介绍当今常见的计算机网络架构。

四、来设计一下简单的网络架构吧

给你两台电脑,使两台电脑之间能够互相通信,你会怎么去设计呢?很简单,将两台电脑之间连接一根线就可以了,我们让这根线传递具有高低电伏的电信号就能让两台电脑传递消息

但是我们发现,电脑越多,这个网络就会越麻烦,我们要让每台电脑两两通信,即每个电脑都要互相连接,有n台电脑我们就需要n?(n?1)/2条线?

五、转发!(集线器与物理层的引入)

1、转发的思想

? ? ? ? 上面考虑多台电脑之间直接连接传输消息时,可能会面临繁琐的问题。为了解决这个问题,我们可以引入一种网络设备,即集线器(Hub)。集线器是一种最基本的网络设备,它能够将连接到它上面的多台电脑连接起来,使每台电脑都能够收到发送给集线器的消息。集线器就是能做到该功能的最底层网络设备之一,但是集线器很傻,他收到消息时,会同时把消息发送给所有设备,包括发送该消息的设备。在有6台电脑的网络中,1号电脑转发消息给集线器Hub,集线器收到消息后会同时转发1、2、3、4、5、6号电脑。在这种情况下,1号电脑发送信号的同时,如果二号也发送消息,很容易造成信号冲突导致信号叠加数据受损,因此我们将一个集线器及其连接的电脑的结构叫做一个冲突域。集线器属于物理层的设备,我们也可以将这个结构看作简单只有物理层计算机网络结构。下面我简单的引入集线器的概念:

? ?2、集线器

集线器(Hub)是计算机网络中的一种基础网络设备,属于物理层设备。其主要作用是将多个网络设备连接在一起,形成一个共享的物理介质(通常是电缆或光纤),以便它们可以在局域网(LAN)中进行通信。

以下是集线器的一些基本特点:

  1. 物理层设备: 集线器工作在OSI模型的物理层,主要负责传输比特流,而不涉及帧、数据包或网络协议的内容。

  2. 广播: 集线器是一个广播设备,当它接收到一个数据帧时,会将该帧复制到所有连接的端口,使所有设备都能收到相同的消息。

  3. 无智能: 集线器对数据帧的内容一无所知,不了解目标地址,也不进行地址学习。它只是简单地将帧从一个端口复制到其他端口,不进行任何过滤或选择性传输,因此比低效。

  4. 冲突域: 由于广播特性和集线器的特性,一台设备发送消息时,集线器所连接的所有线路都会被占用。因此集线器会创建一个冲突域(collision domain),意味着如果两个设备同时尝试发送数据,可能会发生冲突,导致数据碰撞和传输错误。

总结一下:集线器(物理层设备)特点就是只负责广播转发没有智能并形成一个冲突域的设备。

六、存储!标识!协议!(交换机与数据链路层的引入)

? ? ? 1、通过存储、标识、协议的思想引入一个简单的网络模型

? ? ? 我们在寄包裹的时候,需要将我们需要寄送的信息(地址、寄件人、收件人)填写在快递单上,并将快递单贴在快递上一起发出去,这就是标识的思想。快递单上填写信息(地址、寄件人、收件人)必须遵循某种规范,比如地址必须是什么省什么市什么县,寄件人、收件人必须是可读的名字,这种规范就叫做协议,信息填写必须服从协议的内容才能送到指定地点。根据你填写的地点信息,驿站通过驿站存储的枢纽信息,便知道你的快递下一个转存点是哪里,这便是存储。

? ? ?我们模仿的送快递思想,可以建立一个简单的网络传输模型:

? ? ?标识:在一个有八台电脑的局域网中,每一台电脑都有一个标识,分别是0000,0001,0010,0011。0000发送信息“a”给0001,“a”这就我的快递,“a”转换为二进制就是01100001。

? ? ?协议:在这个局域网中我规定一个协议,传输的数据和信号后八位为标识,前四位发件人,后四位为收件人,因此我们可以得到一个标识00000001,这个标识就是我们的快递单。我们把快递单贴到快递上,就得到0110000100000001,我们再将这个信号转发给网络设备,让网络设备通过我们定好的协议找到收件人0001。

? ? ?存储:网络设备如何通过我们定好的协议找到收件人0001呢?其可以通过这台网络设备存储的数据(MAC表)找到对应的端口再发送给对应的计算机。

? ? ? ? ? 这就是交换机的思想,这里方便大家理解,只是写的一个简单的存储、转发模型。真实的交换机标识位于数据的头部,而且交换机的标识一般是由mac地址标识,一共48位,而非4位,请注意,后面会详细讲到,交换机是数据链路层设备,我们可以将下面网络结构看作最高层次为数据链路层的网络结构。

? ??集线器只会无脑将消息转发给别人,但是我们并不知道这消息是发送给谁的,只好发送给所有人,占用所有的链路,让不该收到计算机收到了这条消息,交换机完美的解决了这个问题,大大提高了链路的利用率。??

? ? ? 2、设备网卡唯一标识:MAC地址

? ? ?世界上很多通讯设备,标识二进制只有4位是不现实的,为了让每台设备的网卡都有唯一标识的性质,我们让每个网卡对应一个MAC地址,MAC 地址长 6 个字节共 48 位,通常使用十六进制数表示,下面是关于MAC地址的介绍。

  • ?MAC 地址用于在网络中唯一标识一个网卡(即 MAC 地址只作用于网卡),每个网卡都有一个全球唯一的 MAC 地址。
  • 一台手机设备拥有多个网卡(wifi模组、5G模组等),所以一台手机设备也拥有多个 MAC 地址,而且每个 MAC 地址在世界上都是独一无二的。
  • MAC 地址前 24 位由 IEEE 管理机构统一分配,后24 位由厂商自由分配,保证网卡地址全球唯一。

? ? ? ?每台设备都有自己的MAC地址,大家可以在网络设置中查到自己本地的MAC地址和自己所连接设备的MAC地址,这些Mac地址都是我们设备标识。

3、MAC帧

? ? ?之间给大家简单的举例的标识的思想将“标签”加入数据的尾部。其实为了应对复杂的传输环境,这个”标签“比我们的例子要复杂很多,这个”标签“会加到数据的头部和尾部,下面是常用的格式

这一整个部分称为MAC帧,MAC帧是数据链路层的传输形式。

? ? ? 3、交换机
? ? ? (1)交换机的存储结构,Mac表介绍

? ? ? ? ① Mac表组成:MAC表有多项,MAC表中的每一项都包含两个主要信息:MAC地址和相应的端口号。表项告诉交换机特定的MAC地址位于哪个端口上,一个端口号可以对应多个MAC地址。

? ? ? ? ??

? ? ? ? ? ?②学习过程:?当交换机接收到一个数据包时,它会查看数据包中的源MAC地址,并通过该地址查找MAC表,找到MAC地址对应的端口。最开始交换机的MAC表是一张空表,所以有的时候在MAC表上找不到MAC地址与其对应的表。所以交换机收到数据包时存在两种可能:? ? ??

  • 通过MAC地址在表上找到对应的端口交换机会将数据包仅转发到目标端口,而不是广播到所有端口。
  • 通过MAC地址在表上找不到对应的端口:由于交换机不知道是对应的哪个端口,此时交换机会进行广播,每台设备收到广播消息后,会将收到的信号数据中的MAC地址与自己的MAC地址比较,如果相同,设备会收下数据包并给交换机回复自己收到了这个消息,交换机收到回复消息后就知道MAC地址对应的端口是哪了,便会更新端口索引对应的MAC地址,这便是交换机学习迭代的过程。

    在没有虚拟局域网的网络中,交换机进行广播时,与其相连的设备都会收到交换机的广播,我们可以将交换机的广播范围看作一个广播域。

? ? ? (2)模拟具有交换机和集线器的网络的转发过程

? ? ? ? ?交换机的端口是可以连接交换机和集线器的,如下图。接下来模拟以下网络的转发过程(两个交换机初始的时候都是空表)

? ? ? ?①1号主机给2号主机发送消息:交换机收到1号主机发来的MAC帧后,会将0a-1b-2c-4fd-5c-6e对应1号端口并记录于MAC表。交换机查看MAC表,没有找到2号主机的端口,1号交换机发送广播,2号主机收到广播后,比对MAC地址确认是发给自己的后,就会向1号交换机发送回应,1号交换机收到回应后便会确定自己的2号端口对应的MAC地址是00-11-22-33-44-55。

? ? ? ?②1号主机给3号主机发送消息:交换机收到1号主机发来的MAC帧后,交换机查看MAC表,没有找到3号主机的端口,于是1号交换机发送广播,2号交换机收到广播后,会将1号主机的MAC地址0a-1b-2c-4d-5c-6e对应在自己的1号端口,查找自己的MAC表有没有3号主机的MAC地址aa-bb-cc-dd-ee-ff,发现没有,于是自己在广播这个消息,3号主机收到广播后,比对MAC地址确认是发给自己的后,就会向2号交换机发送回应,2号交换机收到回应后便会确定自己的2号端口对应的MAC地址是3号主机的MAC地址aa-bb-cc-dd-ee-ff,并会向1号交换机发送回应,1号交换机也会确定MAC地址aa-bb-cc-dd-ee-ff对应的4号端口。

? ? ?③2号主机给4号主机发送消息:交换机收到1号主机发来的MAC帧后,交换机查看MAC表,没有找到4号主机的端口,1号交换机发送广播,2号交换机收到广播后,会将2号主机的MAC地址00-11-22-33-44-55-66对应在自己的1号端口,并查找自己的MAC表有没有4号主机的地址,发现没有,于是自己在广播这个消息,集线器收到广播后,会再次广播发送给4和5,4号主机收到广播后,比对MAC地址确认是发给自己的后发出回应,先发送给交换机,交换机再广播,2号交换机收到回应后便会确定自己的4号端口对应的MAC地址是12-34-56-78-9a-bc,并会向1号交换机发送回应,1号交换机也会将MAC地址12-34-56-78-9a-bc对应自己的4号端口。

? ? ? 我们可以看到,在网络交流的过程中交换机的MAC表也不断的更新完善,我把这个过程叫做交换机不断迭代学习的过程。

? (3)交换机总结

? ? ? ? ?交换机(Switch)是计算机网络中的网络设备,工作在数据链路层(第二层),用于在局域网(LAN)内部实现设备之间的数据交换。以下是关于交换机的概念总结:

工作原理:交换机通过学习和过滤MAC地址来实现数据转发。它维护一个MAC地址表,记录各个设备的MAC地址和与之关联的端口信息。

数据帧转发:当交换机接收到数据帧时,它会检查目标MAC地址,并根据MAC地址表将数据帧转发到相应的端口,以确保数据仅传送到目标设备,而不是广播到整个网络

学习过程:交换机通过学习过程来建立MAC地址表。当它首次接收到数据帧时,会将源MAC地址和源端口的映射存储到表中。这样,交换机在以后的数据传输中就能更快速地找到目标设备的位置。

广播域划分:交换机有助于减小广播域的范围。由于它只在必要的端口上转发数据帧,而不是广播到所有端口,因此可以有效隔离广播域,提高网络性能。

冲突域:交换机有效减小了冲突域的范围。与集线器不同,交换机能够在每个端口上独立工作,避免了多台设备同时发送数据导致的信号冲突。

七、网络结构的划分(路由器与网络层的引入)

? ? ? ? ??

八、三次握手四次挥手,服务器你听到了吗?我要和你建立连接了(传输层的引入)

九、服务器,请求打开存储在你硬盘里的网页(应用层的引入)

计划于本周(1月21日晚上之前)更新完,如想看后面的内容请点赞和收藏哦,你的点赞和收藏是我继续写下去的动力,如果点赞和收藏多,我后续会继续更新详细通俗易懂的解释各种协议。

文章来源:https://blog.csdn.net/qq_63434759/article/details/132511973
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。