计算机网络基本概念

1、计算机网络

计算机网络(简称网络)由若干结点(node)和连接这些结点的链路(link)组成。结点可以是计算机、集线器、交换机或路由器等。
在这里插入图片描述

2、互连网(网络的网络)

网络之间可以通过路由器互连起来,构成一个范围更大的计算机网络,这样的网络成为互连网(internet)。互连网可以说是网络的网络。
在这里插入图片描述

3、互联网

互联网,或因特网(Internet)是一个专用名词,它指当前全球最大的、开放的由众多网络相互连接而成的特定互连网,它采用 TCP/IP 协议族作为通信的规则。

互联网的组成

互联网的拓扑结构非常复杂 ,并且在地理位置上覆盖了全球,从工作方式上看,可以划分为两大块:在这里插入图片描述
(1)边缘部分

这部分由所有连接在互联网上的主机组成。这部分是用户直接使用的,利用核心部分所提供的服务,使得众多主机之间能够相互通信并交换或共享数据信息。这些主机通常又被称为端系统(end system)或终端。端系统的拥有者可以是个人,也可以是单位(比如:学校、公司、政府等),当然也可以是某个ISP(Internet Service Provider)。
在网络边缘的端系统之间的通信方式可以划分为两大类:客户-服务器方式(C/S)和对等连接方式(P2P)。

● 客户-服务器方式
这总方式也是互联网上最常用的,也是传统的方式。比如我们使用 WEB 应用与发送电子邮件时,使用的都是这种方式。客户(client)和服务器(server)都是指通信中所涉及的两个进程。客户-服务器方式所描述的是进程之间服务和被服务的关系。
在这里插入图片描述
● 对等连接方式
对等连接(peer-to-peer)是指两台主机在通信时并不区分哪一个是服务请求方哪一个是服务提供方。只要两台主机都运行了对等连接软件,就可以进行平等的、对等连接通信。
在这里插入图片描述

(2)核心部分

由大量网络和连接这些网络的路由器组成。核心部分要向网络边缘中的大量主机提供联通性,使边缘部分中的任何一台主机都能够与其他主机通信。
网络核心部分最重要的功能是路由和转发,起到这个作用的是路由器,路由器是实现分组交换的关键构件。
在这里插入图片描述
在互连的路由器网络中,数据是通过数据交换的方式从源主机到达目的主机。

电路交换
电路交换必定是面向连接的。电路交换必须经过三个步骤:建立连接(呼叫/电路建立)—>通话(占用通信资源)—>释放连接(拆除连接)。电路交换的一个重要特点就是在通话的全部时间内,通话的两个用户始终占用端到端的通信资源。
在这里插入图片描述

报文交换
不必先建立连接就能向其他主机发送分组。整个报文先传送到相邻的节点,全部存储下来后查找转发表,转发到下一个节点,最终到达终点。
在这里插入图片描述

分组交换
不必先建立连接就能向其他主机发送分组。将报文拆分成一系列相对较小的数据包,单个数据包传送到相邻节点,存储下来后查找转发表,转发到下一个节点。在发送报文之前,先把较长的一段报文划分成一个个更小的等长数据段,然后在每一个数据段前面加上一些必要的控制信息组成的首部后,就构成了一个分组。分组通常又被称为“包”,分组的首部也可以成为“包头”。
分组的首部通常包含了目的地址和原地址等重要的控制信息,正是因为这样,每一个分组才能在互联网中独立选择地选择传输路径,最终被正确的交付到分组传输的终点。
在这里插入图片描述
高效:动态分配传输带宽,对通信链路是逐段占用。
灵活:以分组为传送单位和查找路由。
迅速:不必先建立连接就能向其他主机发送分组。
可靠:保证可靠性的网络协议;分布式的路由选择协议使网络有很好的生存性。
存在时延:分组在各结点存储转发时需要排队,这就会造成一定的时延。
一定开销:分组必须携带的首部(里面有必不可少的控制信息)也造成了一定的开销

4、性能指标

(1)速率

指在信道上(或一段链路上)能够传送的数字信号的速率,即数据率或比特率。速率的单位是 b/s,或kb/s, Mb/s, Gb/s 等。

(2)带宽

原本指的是某个信号具有的频带宽度。在计算机网络中,带宽表示在单位时间内网络中的某信道所能通过的最高数据率。在时间轴上信号的宽度随带宽的增大而变窄;或者说一条通信链路的带宽越宽,所能传输的最高数据率也越高
在这里插入图片描述
(3)吞吐量

单位时间内通过某个网络的数据量。

(4)时延

指一个报文或分组从一个网络的一端传送到另外一端所需要的时间。主要有:发送时延、传播时延、处理时延和排队时延。

(5)利用率

信道利用率指的是某信道有百分之几的时间是被利用的(即有数据通过);
网络利用率指的是全网络的信道利用率的加权平均值。

5、实体、协议、服务和服务访问点

● 实体(entity) :表示任何可发送或接收信息的硬件或软件进程。
● 协议:控制两个对等实体进行通信的规则的集合。
在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务。要实现本层协议,还需要使用下层所提供的服务。
● 服务访问点 SAP (Service Access Point): 同一系统相邻两层的实体进行交互的地方。
在这里插入图片描述

协议是“水平的”,即协议是控制对等实体之间通信的规则。
服务是“垂直的”,即服务是由下层向上层通过层间接口提供的。

计算机网络协议特点

协议必须把所有不利的条件事先都估计到,而不能假定一切都是正常的和非常理想的,必须非常仔细地检查这个协议能否应付各种异常情况。

6、计算机网络体系结构

分层的好处

各层之间是独立的。
灵活性好。
结构上可分割开。
易于实现和维护。
能促进标准化工作。

(1)体系结构模型

① OSI 七层模型
在这里插入图片描述
② TCP/IP 体系结构
在这里插入图片描述
③ 五层协议

由于OSI体系结构太复杂,在实际应用中TCP/IP的四层体系结构得到广泛应用,作为折中,在学习中一般学习五层协议体系机构。各体系结构如下图:
在这里插入图片描述
(2)各层的作用

层与协议:每一层都是为了完成一种功能,为了完成这些功能,需要遵循一些规则,这些规则就是协议,每一层都定义了一些协议。

① 物理层

规定了网络中的电气特性,负责传送 0 和 1 电气信号

在物理层上传输的数据单位是比特,物理层的任务就是透明的传输比特流。也就是说,发送方发送1(或0)时,接收方应当接收1(或0)而不是0(或1)。因此物理层要考虑的是多大的电流代表“1”或“0”,以及接收方如何识别发送方所发送的比特。物理层还要确定连接电缆的插头应当有多少根引脚以及各条引脚要如何连接。当然,哪几个比特代表什么意思,则不是物理层所需要管的。注意,传递信息的物理媒体,如双绞线、同轴电缆、光缆无线信道等,并不在物理层协议之内。

② 数据链路层(结点之间)

该层将网络层交下来的 IP 数据报组装成帧,并在两个相邻结点间的链路上传送

● 两个主机之间的数据传输,总是在一段一段的链路上传送的,也就是说,两个相邻节点(主机和路由器之间或两个路由器之间)传送数据是直接传送的(点对点)。这是就需要专门的链路层协议。连个相邻节点之间传送数据时,数据链路层将网络层传下来的IP数据报组转城帧(framing),在连个相邻节点透明的传送帧(frame)中的数据。每帧中包含必要的控制信息(如同步信息、地址信息、差错控制等)。
● 以太网协议:以太网规定一组电信号组成帧,帧由标头(Head)和数据(Data)组成。
标头包含发送方和接收方的地址(MAC地址)以及数据类型等等。
数据则是数据的具体内容(IP数据包)。
● MAC地址:每个连入网络的设备都有网卡接口,每个网卡接口在出厂时都有一个独一无二的MAC地址。
通过ARP协议可以知道本网络内的所有机器的MAC地址,以太网通过广播的方式把数据发送到本网络内的所有机器上,让其根据MAC地址自己判断是否接受数据。

③ 网络层(主机之间)

负责相邻计算机之间(即点对点)通信,包括处理来自传输层的发送分组请求,检查并转发数据报,并处理与此相关的路径选择,流量控制及拥塞控制等问题

● 网络层负责为分组交换网上的不同主机提供服务。在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组或包进行传送。由于网络层使用IP协议,因此分组也叫做IP数据包,或简称数据报。
● 网络层的另一个任务就是选择合适的路由,从源主机运输层所传下来的分组,能够通过网络中的路由器找到目标主机。
● 因特网是一个很大的互联网,由大量的异构网络相互连接起来。因特网的主要网络层协议是无连接的网际层协议IP(Internat Protocol)和许多路由选择协议,因此网络层也叫做网际层或IP层。
● 依靠以太网的MAC地址发送数据,理论上可以跨地区寻址,但是以太网的广播方式发送数据,不仅效率低,而且局限在发送者所在的局域网。如果两台计算机不在一个子网内,广播是发不过去的。 因此有了网络层,它引入一种新的地址,使得能够区分两台计算机是否在同一个子网内,这套地址叫做网络地址,简称网址。
● 规定网络地址的协议叫IP协议,所定义的地址叫IP地址,由32个二进制位组成,从0.0.0.0一直到255.255.255.255。IP地址分为两个部分,前面一部分代表网络,后一部分代表主机。处于同一个子网的IP地址,其网络部分必定是相同的。例如前24位代表网络,后8位代表主机,IP地址172.251.23.17和172.251.23.108处在同一个子网。如何判断网络部分是多少位,这就需要子网掩码,它和IP地址都是32个二进制位,代表网络的部分都由1表示,主机部分位0。那么24位的网络地址,子网掩码就是255.255.255.0。将两个IP地址分别和其对应的子网掩码进行AND运算,结果相同说明两个IP在同一个子网络。
● 因此如果是同一个子网络,就采用广播方式发送,否则就采用”路由”方式发送。IP协议作用主要是为分配IP地址和判断那些IP在同一个网络。

④ 传输层(端口之间)

传输层的任务就是负责两个主机进程之间的通信提供服务

● 由于一个主机可同时运行多个进程,因此运输层有复用和分用的功能。复用就是多个应用进程可同时使用运输层的服务,分用是运输层把收到的信息分别交付给上面的应用层的相应进程。
● 运输层主要使用两种协议: TCP-面向连接的,UDP-无连接的。
● “运输层”的功能,就是建立”端口到端口”的通信。相比之下,”网络层”的功能是建立”主机到主机”的通信。只要确定主机和端口,我们就能实现程序之间的交流。

⑤ 应用层

直接为用户提供进程服务

● 应用层是体系机构的最高层,应用层直接为用户提供进程服务。这里的进程值得就是正在运行的程序。应用层的协议很多,如HTTP、FTP、SMTP等。
● 应用程序收到”传输层”的数据,接下来就要进行解读。由于互联网是开放架构,数据来源五花八门,必须事先规定好格式,否则根本无法解读。
● “应用层”的作用,就是规定应用程序的数据格式。举例来说,TCP协议可以为各种各样的程序传递数据,比如Email、WWW、FTP等等。那么,必须有不同协议规定电子邮件、网页、FTP数据的格式,这些应用程序协议就构成了”应用层”。

(3)数据在各层之间的传输
在这里插入图片描述

7、不同计算机之间传送数据

天各一方的两台计算机是如何通信的呢?在成千上万的计算机中,为什么一台计算机能够准确着寻找到另外一台计算机,并且把数据发送给它呢?
可能很多人都听说过网络通信的 5 层模型,但是可能并不是很清楚为什么需要五层模型,五层模型负责的任务也有可能经常混淆。下面是网络通信的五层模型:
在这里插入图片描述
在这里插入图片描述

(1)物理层

一台计算机与另一台计算机要进行通信,第一件要做的事是什么?当然是要把这台计算机与另外的其他计算机连起来啊,这样,我们才能把数据传输过去。例如可以通过光纤啊,电缆啊,双绞线啊等介质把他们连接起来,然后才能进行通信。

物理层负责通过光纤、电缆和双绞线等介质把两台计算机连起来,然后在计算机之间通过高低电频来传送01这样的电信号

(2)数据链路层

前面说了,物理层它只是单纯着负责把计算机连接起来,并且在计算机之间传输01这样的电信号。如果这些01组合的传送毫无规则的话,计算机是解读不了的。一大堆01谁知道是什么鬼啊。

因此,我们需要制定一套规则来进行01的传送。例如多少个电信号为一组啊,每一组信号应该如何标识才能让计算机读懂啊等等。于是,有了以太网协议。

以太网协议
以太网协议规定,一组电信号构成一个数据包,我们把这个数据包称之为帧。每一个桢由标头(Head)和数据(Data)两部分组成。帧的大小一般为 64 - 1518 个字节。假如需要传送的数据很大的话,就分成多个桢来进行传送。

对于表头和数据这两个部分,他们存放的都是一些什么数据呢?毫无疑问,我们至少得知道这个桢是谁发送,发送给谁的等这些信息吧?

表头部分主要是一些说明数据,例如发送者,接收者等信息。而数据部分则是这个数据包具体的,想给接守者的内容

大家想一个问题,一个桢的长度是 64~1518 个字节,也就是说桢的长度不是固定的,那你觉得标头部分的字节长度是固定的吗?它当然是固定的啊,假如不是固定的,每个桢都是单独发的,那计算机怎么知道标头是几个字节,数据是几个字节呢。

表头部分的字节是固定的,并且固定为18个字节

把一台计算的的数据通过物理层和链路层发送给另一台计算机,究竟是谁发给谁的,计算机与计算机之间如何区分,你总得给他们一个唯一的标识吧?于是,MAC 地址出现了。

MAC 地址
连入网络的每一个计算机都会有网卡接口,每一个网卡都会有一个唯一的地址,这个地址就叫做 MAC 地址。计算机之间的数据传送,就是通过 MAC 地址来唯一寻找和传送的。
MAC地址 由 48 个字节所构成,在网卡生产时就被唯一标识了

广播

假如计算机 A 知道了计算机 B 的 MAC 地址,然后计算机 A 想要给计算机 B 传送数据,虽然计算机 A 知道了计算机 B 的 MAC 地址,可是它要怎么给它传送数据呢?计算机 A 不仅连着计算机 B,而且计算机 A 也还连着其他的计算机。虽然计算机 A 知道计算机 B 的 MAC 地址,可是计算机 A 却不知道知道计算机 B 是分布在哪边路线上,为了解决这个问题,于是有了广播的出现。

在同一个子网中,计算机 A 要向计算机 B 发送一个数据包,这个数据包会包含接收者的 MAC 地址。当发送时,计算机 A 是通过广播的方式发送的,这时同一个子网中的计算机 C、D 也会收到这个数据包的,然后收到这个数据包的计算机,会把数据包的 MAC 地址取出来,与自身的 MAC 地址对比,如果两者相同,则接受这个数据包,否则就丢弃这个数据包。这种发送方式我们称之为广播,就像我们平时在广场上通过广播的形式呼叫某个人一样,如果这个名字是你,你就理会一下,如果不是你,你就当作听不见。

ARP 协议

那么问题来了,计算机 A 是如何知道计算机 B 的 MAC 地址的呢?这个时候就得由 ARP 协议这个家伙来解决了,通过它我们可以知道子网中其他计算机的 MAC 地址。

(3)网络层

网络层的功能就是让我们在茫茫人海中,能够找到另一台计算机在哪里,是否属于同一个子网等

上面我们有说到子网这个关键词,实际上我们所处的网络,是由无数个子网络构成的。广播的时候,也只有同一个子网里面的计算机能够收到
假如没有子网这种划分的话,计算机 A 通过广播的方式发一个数据包给计算机 B , 其他所有计算机也都能收到这个数据包,然后进行对比再舍弃。世界上有那么多它计算机,每一台计算机都能收到其他所有计算机的数据包,那就不得了了,那还不得奔溃。 因此产生了子网这么一个东西。
那么问题来了,我们如何区分哪些 MAC 地址是属于同一个子网的呢?假如是同一个子网,那我们就用广播的形式把数据传送给对方,如果不是同一个子网的,我们就会把数据发给网关,让网关进行转发。为了解决这个问题,于是,有了 IP 协议。

IP协议

IP协议,它所定义的地址,我们称之为IP地址。IP协议有两种版本,一种是 IPv4,另一种是 IPv6。不过我们目前大多数用的还是 IPv4,我们现在也只讨论 IPv4 这个版本的协议。

IP 地址由 32 位的二进制数组成,我们一般把它分成4段的十进制表示,地址范围为0.0.0.0~255.255.255.255。
每一台想要联网的计算机都会有一个 IP 地址。这个 IP 地址被分为两部分,前面一部分代表网络部分,后面一部分代表主机部分。并且网络部分和主机部分所占用的二进制位数是不固定的。
假如两台计算机的网络部分是一模一样的,我们就说这两台计算机是处于同一个子网中
例如 192.168.43.1 和 192.168.43.2, 假如这两个 IP 地址的网络部分为 24 位,主机部分为 8
位。那么他们的网络部分都为 192.168.43,所以他们处于同一个子网中。

可是问题来了,你怎么知道网络部分是占几位,主机部分又是占几位呢?也就是说,单单从两台计算机的IP地址,我们是无法判断他们的是否处于同一个子网中的。这就引申出了另一个关键词—子网掩码。

子网掩码和IP地址一样也是 32 位二进制数,不过它的网络部分规定全部为 1,主机部分规定全部为 0
也就是说,假如上面那两个IP地址的网络部分为 24 位,主机部分为 8 位的话,那他们的子网掩码都为 11111111.11111111.11111111.00000000,即255.255.255.0。

那有了子网掩码,如何来判端 IP 地址是否处于同一个子网中呢。

显然,知道了子网掩码,相当于我们知道了网络部分是几位,主机部分是几位。我们只需要把 IP 地址与它的子网掩码做与(and)运算,然后把各自的结果进行比较就行了,如果比较的结果相同,则代表是同一个子网,否则不是同一个子网。

例如,192.168.43.1和192.168.43.2的子码掩码都为255.255.255.0,把IP与子码掩码相与,可以得到他们都为192.168.43.0,进而他们处于同一个子网中。

ARP协议

有了两台计算机的IP地址与子网掩码,我们就可以判断出它们是否处于同一个子网之中了。

假如他们处于同一个子网之中,计算机 A 要给计算机 B 发送数据时。我们可以通过 ARP 协议来得到计算机 B 的 MAC 地址。
ARP 协议也是通过广播的形式给同一个子网中的每台电脑发送一个数据包(当然,这个数据包会包含接收方的IP地址)。对方收到这个数据包之后,会取出IP地址与自身的对比,如果相同,则把自己的MAC地址回复给对方,否则就丢弃这个数据包。这样,计算机A就能知道计算机B的MAC地址了

可能有人会问,知道了 MAC 地址之后,发送数据是通过广播的形式发送,询问对方的 MAC 地址也是通过广播的形式来发送,那其他计算机怎么知道你是要传送数据还是要询问 MAC 地址呢?

在询问 MAC 地址的数据包中,在对方的 MAC 地址这一栏中,填的是一个特殊的 MAC 地址,其他计算机看到这个特殊的 MAC 地址之后,就能知道广播想干啥了。

假如两台计算机的IP不是处于同一个子网之中,这个时候,我们就会把数据包发送给网关,然后让网关让我们进行转发传送。

DNS服务器

这里再说一个问题,我们是如何知道对方计算机的IP地址的呢?这个问题可能有人会觉得很白痴,心想,当然是计算机的操作者来进行输入了。这没错,当我们想要访问某个网站的时候,我们可以输入IP来进行访问,但是我相信绝大多数人是输入一个网址域名的,例如访问百度是输入 www.baidu.com 这个域名。

当我们访问某个网站输入域名时,会有一个叫做 DNS 服务器的家伙来帮我们解析这个域名,然后返回这个域名对应的 IP 给我们的

(4)传输层

通过物理层、数据链路层以及网络层的互相帮助,我们已经把数据成功从计算机A传送到计算机B了,可是,计算机B里面有各种各样的应用程序,计算机该如何知道这些数据是给谁的呢?
这个时候,端口(Port)这个家伙就上场了,也就是说,我们在从计算机 A 传数据给计算表B的时候,还得指定一个端口,以供特定的应用程序来接受处理。

传输层的功能就是建立端口到端口的通信

相比网络层的功能是建立主机到主机的通信。

只有有了 IP 和端口,我们才能进行准确着通信。

这个时候可能有人会说,我输入IP地址的时候并没有指定一个端口啊。

其实呢,对于有些传输协议,已经有设定了一些默认端口了。例如 http 的传输默认端口是 80,这些端口信息也会包含在数据包里的。

传输层最常见的两大协议是 TCP 协议和 UDP 协议,其中 TCP 协议与 UDP 最大的不同就是 TCP 提供可靠的传输,而 UDP 提供的是不可靠传输。

(5)应用层

终于说到应用层了,应用层这一层最接近我们用户了。
虽然我们收到了传输层传来的数据,可是这些传过来的数据五花八门,有 html 格式的,有 mp4 格式的,各种各样。你确定你能看的懂?
因此我们需要指定这些数据的格式规则,收到后才好解读渲染。例如我们最常见的 Http 数据包中,就会指定该数据包是什么格式的文件了。

  • 12
    点赞
  • 73
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值