计算机网络:网络基础知识
Posted A.iguodala
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机网络:网络基础知识相关的知识,希望对你有一定的参考价值。
文章目录
1. 什么是因特网
我们可以从两个角度来回答这个问题:一种是描述组成它的软硬件;另一种是将其视为为分布式应用提供基础服务的联网设施来描述。其实,第一种角度,是从它的组成来描述,第二种角度是从它的功能来描述。
所有这些连接进因特网的设备被称为主机(host) 或者 端系统(end system)。
端系统通过通信链路(communication link) 和 分组交换机(packet switch) 连接到一起。
当一台端系统要向另一台端系统发送数据时,发送端系统将数据分段,并为每段加上首部字节(一些必要信息),由此形成的信息包(数据包)用计算机网络的术语来说称为分组(packet)。
分组交换机从它的一条入通信链路接受到达的分组,并从它的一条出通信链路转发该分组。分组交换机主要的类型是路由器(router) 和 链路层交换机(link layer switch)。
- 链路层交换机通常用于接入网中
- 路由器通常用于网络核心中
端系统通过因特网服务提供商(Internet Service Provider,ISP) 接入因特网。
1.1 服务描述
与因特网相连的端系统提供了一个套接字接口(socket interface),该接口规定了运行程序在一个端系统上的程序请求因特网基础设施向运行在另一个端系统上的特定目的程序交付数据的方式。
简单来说,就是提供API发送和接受数据。
1.2 协议
协议(protocol):定义了在两个或多个通信实体之间交换保温的格式和顺序,以及报文发送或接收一条报文或其他事件所采取的动作。
通过协议,才方便让所有不同的端系统,不同的CPU,不同的操作系统以同一种方式进行网络通信。
2. 网络边缘
端系统,位于因特网的边缘因此得名。端系统也成为主机,容纳(即运行)应用程序,主机又被进一步分为客户端和服务端。
2.1 接入网
接入网是指将端系统物理连接到其边缘路由器(edge router) 的网络。
边缘路由器是端系统到任何其他远程端系统的路径上的第一台路由器。
家庭接入
- 数字用户线(Digital Subscriber Line,DSL)
- 电缆
- 光纤到户(Fiber To The Home,FTTH)
- 拨号和卫星
企业(或家庭)接入
- 以太网和WIFI
广域无线接入
- 3G、4G、LTE
2.2 物理媒体
比特从源到目的地传输时,通过一系列“发射器 - 接收器” 对,对于每个发射器-接收器对,通过一种**物理媒体(physical medium)**传电磁波或光脉冲来发送该比特。
具体有
导引型媒体(guided media)
:电波沿着固体媒体前行- 双绞铜线
- 同轴电缆
- 光纤
非导引型媒体(unguided media)
:电波在空气或外层空间中传播- 陆地无线电信道
- 卫星无线电信道
3. 网络核心
网络核心即为由互联端系统的分组交换机和链路构成的网状网络
通过网络链路和交换机移动数据有两种基本方法:电路交换和分组交换
3.1 分组交换
在各种网络应用中,端系统彼此交换报文(message),为了从源端系统向目的端系统发送一个报文,源将长报文划分为较小的数据段,称之为分组(packet),每个分组都通过通信链路和分组交换机传送。
一些重要概念:
存储转发传输
- 指的是,在交换机能够开始向输出链路传输该分组的第一个比特之前,必须接收到整个分组。
- 其实就是相当于一个缓冲区,满了再传输。
排队时延和分组丢失
- 对于每条相连的链路,分组交换机具有一个输出缓存(output buffer,也称为输出队列),它用于存储路由器准备发往该链路的分组。
- 如果到达的分组需要传输到某条链路,该链路正忙于传输其他分组,则必须等待,称之为排队时延(queuing delay)
- 到达的分组发现该缓存已经被其他分组占满了,这种情况就会出现分组丢失(丢包)(packet loss)
路由转发表和路由选择协议
- 每个端系统具有一个称为IP地址的地址。当源主机向目的端系统发送一个分组时,源在该分组的首部包含了目的地的IP地址
- 每台路由器具有一个转发表(forwarding table),用于将目的地址(或目的地址的一部分)映射成为输出链路。
- 路由选择协议(routing protocol),用于自动地设置这些转发表
3.2 电路交换
在电路交换网络中,在端系统通信会话期间,交换机会预留端系统间通信路径上的相关资源(缓存,链路传输速率),即先建立连接,然后通信;
电路交换网络中的复用
-
时分复用(Time-Division Multiplexing TDM):是指将时间划分为固定区间的帧,每个帧则又被划分为固定数量的时间空隙;当网络需要建立一条连接时,网络将在每个帧中为该连接指定一个时隙;在该时隙内,链路用来传输该链接的数据;
-
频分复用(Frequency-Division Multiplexing):将频率域划分为频段,然后将频段分配给连接;此频段被用来专门传输链接的数据。该频段的宽度成为带宽。
3.3 分组交换与电路交换的对比
分组交换的优点:
- 它提供了比电路交换更好的带宽共享;
- 它比电路交换更简单、更有效、实现成本更低;
分组交换的缺点:
- 分组交换不适合实时服务,因为端到端的时延是可变、不可预测的,这和整个网络的情况相关;
电路交换的优点:
- 提供了端对端传输数据的速率保证;
电路交换的缺点:
- 电路交换存在静默期,这是指专用电路空闲时,其占用的资源并没有得到充分的利用;
- 建立连接的过程比较复杂;
趋势是朝着分组交换的方向发展。
4. 分组交换网中的时延、丢包和吞吐量
时延:
- 处理时延:处理时延是因为节点需要解析分组的必要信息然后决定其出链路(索引转发表等操作)而产生的,通常在微秒或者更低数量级。
- 排队时延:当分组的出链路有其他分组正在进行传输时,该分组经受排队时延。排队时延是到达该队列的流量强度和性质的函数,通常可以达到毫秒级到微秒级。
- 传输时延:是将所有分组的比特推向链路所有需要的时间,实际的传输时延通常在毫秒到微秒数量级。
- 传播时延:比特进入链路后,从该链路的起点到下一个节点所用的时间。
传输和传播的区别
- 传输时延是路由器推出分组所需要的时间,是分组长度和链路传输速率的函数
- 传播时延是一个比特从一台路由器传播到另一台路由器所需要的时间,他是两台路由器之间距离的函数
丢包
- 到达的分组发现一个满的队列。由于没有地方存储这个分组,路由器将丢弃该分组,该分组将会丢失
吞吐量
- 表示在单位时间内通过某个网络(或信道、接口)的数据量
5. 协议层次
计算机网络采用分层的体系结构,分层的体系结构因为提供模块化而具有很高的价值,同时也易于服务实现的多样性:某一层对其上一层提供服务,同时它可以利用下一层提供的服务。只要对上提供的服务和对下利用的服务没有变化,其层内部的实现并不会对系统结构产生影响;对于大而复杂且需要不断更新的系统来说,改变服务的实现而不影响系统其他组件是分层模式的另一个重要优点。
一个协议层可以使用软硬件实现,同时某个协议层的不同部分常常位于网络组件的各部分。协议分层具有概念化和结构化的优点。模块化使得更新系统组件更为容易。但是分层也有其缺点,就是功能上的冗余,比如许多协议栈针对链路和端到端两种情况都提供了差错恢复功能。第二种潜在的缺点就是某层的功能可能需要仅在其它层才出现的信息。
5.1 OSI 参考模型
应用层
- 为应用程序提供服务并规定应用程序中通信相关的细节。包括文件传输、电子邮件、远程登录(虚拟终端)等协议。
表示层
- 将应用处理的信息转换为适合网络传输的格式,或将来自下一层的数据转换为上层能够处理的格式。
- 因此它主要负责数据格式的转换。
会话层
- 负责建立和断开通信连接(数据流动的逻辑通路),以及数据的分割等数据传输相关的管理。
传输层
- 起着可靠传输的作用。只在通信双方节点上进行处理,而无需在路由器上处理。
网络层
- 将数据传输到目标地址。目标地址可以是多个网络通过路由器连接而成的某一个地址。因此这一层主要负责寻址和路由选择。
数据链路层
- 负责物理层面上互连的、节点之间的通信传输。
物理层
- 负责0、1比特流(0、1序列)与电压的高低、光的闪灭之间的互换。
5.2 TCP / IP 参考模型
应用层
- 应用层负责处理特定的应用程序细节。
运输层
- 运输层主要为两台主机上的应用程序提供端到端的通信。
网络层
- 有时也称作互联网层,处理分组在网络中的活动,例如分组的选路。
链路层
- 有时也称作数据链路层或网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆(或其他任何传输媒介)的物理接口细节。
5.3 五层参考模型
应用层
- 应用层是网络应用程序及它们的应用层协议存留的地方。
- 应用层协议分布在多个端系统,端系统中的应用程序使用该协议与另一个端系统中的应用程序通信。处于应用层的分组称为报文。
运输层
- 因特网的运输层在应用程序端点之间传送应用层报文。
- 我们把运输层的分组称为报文段(segment)
网络层
- 网络层将称为数据报的网络层分组从一台主机移动到另一台主机。
链路层
- 在每个节点,网络层将数据报下传给链路层,链路层沿着路径将数据报传递给下一个节点,然后在下一个节点,链路层将数据报上传给网络层。
物理层
- 将帧中的比特从一个节点移动到下一个节点。与实际传输媒体有关。
5.4 封装
- 一个应用层报文(application - layer message) 被传送到运输层,在最简单的情况下,运输层收取到报文并附上附加信息(运输层收不信息)。
- 该首部信息将被接收端运输层使用。应用层报文和运输层首部信息一道构成了运输层报文段(transport-layer segment)
- 运输层报文段因此封装了应用层报文,附加的信息也许包括了下列信息:① 如允许接收端运输层向上向适当的应用程序交付报文的信息;② 如差错检测位信息,该信息让接收方能够判断报文中的比特是存在途中已被改变。
- 运输层则向网络层传递该报文段,网络层增加了如源和目的端系统地址等网络层首部信息 ,产生了网络层数据报( network-layer datagram) 。
- 该数据报接下来被传递给链路层,链路层(向然而然地)增加它自己的链路层首部信息并创建链路层帧 (link-layer frame)
在每一层,一个分组具有两种类型的字段:首部宇段和有效载荷字段 (payload field) 有效载荷通常是来自上层的分组。
以上是关于计算机网络:网络基础知识的主要内容,如果未能解决你的问题,请参考以下文章
VSCode自定义代码片段14——Vue的axios网络请求封装