第一章.计算机网络概述——最全的网络用语

本系列的内容会保持更新,朋友们敬请期待咯


概要

终于要进入正题了。

但当看到第一章居然是概述,小伙伴们可能会困惑,概述的内容值得这么大的篇章吗?起初我也抱着这样的心里,所以仓促的看了下第一章,就去看后面的重点内容了。但往后学,慢慢发现所有的框架知识都是在概述建立的,还有那繁多却实用的术语,所以呢,在写这篇文章之前,我又老老实实看了一遍这看似鸡肋的概述。

其实呢,第一章的内容设置还是很友好的,在这一章中,我们首先就会从网络的定义出发,探寻网络的框架结构,深入技术发展的征途,最终自然的回归分层模型

如果通过第一章的学习能让我们建立起学习的纹路,那就不虚此行了。话不多说,出发咯——


1.1 什么是Internet

网络是什么?这个是很宽泛的问题,我们将从两个维度来展开——

从组成角度

从数学的概念出发,网这种数据结构包含边和点。同样的,Internet包含节点通信链路。而除此之外,一个网络还必须有协议的支持才能稳定的运行。

节点:网络中的节点有两类,端节点和分组节点。端节点是指主机及其上运行的应用程序,而分组节点则是路由器,交换机等网络交换设备

通信链路 : 根据通信链路所在的位置分为接入网链路主干链路。接入网链路是指从主机连接到互联网的链路,比如我们日常生活使用无线接入设备WIFI接入互联网就是接入网。而主干链路是指路由器之间的链路,它负责数据的传输和中转,通常通信链路使用的材质为双绞线,光纤,电缆等。

那么如何衡量通信链路的传输速率呢,就需要引入带宽,带宽在通信和网络中的定义是有所区别的,在计算机网络中,带宽被这样定义:

带宽,在计算机网络中用来表示网络的通信线路传输数据的能力。注意,这里是传输,而不是传播,带宽描述的是发送数据的发送器的能力强弱,而带宽越大,将数据注入这个链路所需要的时间就越少。而传播和发送器是没有关系的。它表示的是信号在信道中传输的速率。

那协议又是什么东东呢?协议指在对等实体之间通信需要遵循的规则。通常我们会从一个协议的语法语义时序动作方面来衡量一个协议。

image-20210203132441474

从服务角度

从服务的维度来看,Internet包括分布式的应用程序支撑分布式应用程序通信的基础设施


1.2 网络边缘

网络边缘包含计算机和其他接入网络的设备,又因为他们处于边缘位置,故也称端系统。它的另一为人所知的称谓是主机,而网络边缘即是主机+运行在主机上的应用程序

我们来看下面的网络图示——

image-20210203134822007

在这个图中**,计算机,服务器,AP(无线访问设备)**都属于端系统的范畴。

那这些端系统是如何介入网络的呢?很显然,通过通信链路,更具体的说,是通过接入网,接入网是将端系统物理连接到边缘路由器的链路。

写到这,不妨将知识映射到实际的应用。我家是使用电话线来接入因特网的,学过通信原理的朋友都知道在信道中传输的信号必须是数字信号,也就是说,我们需要一个调制解调器来完成信号的转换,这就是我们常说的猫(Modem)。这样就可以保证使用计算机上网了。但如果要多个设备都接入网络,就需要我们常说的WIFI,具体的说,是WIFI路由器,WIFI路由器上有很多以太网的网口,这样就可以实现多设备的接入网络了,当然,是共享带宽哦。

image-20210203141504910

而同样值得一提的是,使用电话线的接入网它的上行和下行的速率是不一样的,我们普遍的需求是下载的速度更快,而对上传的速率没有严格的要求,因此使用这种带宽分发策略更有利。

接入网的方式自然不限于电话线,使用线缆反而是现在更通用的方式。

image-20210204123214747

我们来描述一下这个过程——
首先计算机通过Modem,即DSL调制解调器完成信号的转化,连接线缆的设备共享线缆的接入网络,再通过CMTS(线缆调制解调终端系统)接入到ISP的路由器中。

我们描述了端系统是如何接入网络的,那端系统之上的应用进程是如何通信的呢

应用进程属于应用层,应用层的通信实现需要通过传输层提供的接口调用传输层的服务。当然,这只是一个概述,具体展开那就是第二章的故事了。

换一个维度看,也就是从通信模式上说,应用进程之间的通信分为CS模式和P2P模式,我们常使用的WEB应用使用的就是CS架构,而迅雷使用的则是P2P模式,它们各有千秋,在后面章节中后提及~

总而言之。网络边缘负责提供应用进程端到端的通信。


1.3 网络核心

前面我们提及网络边缘通过接入网接入Internet,其实这种说法是不准确的,通过接入网接入的是网络核心,而网络核心指的是路由器的网状网络,所以说,网络核心其本质是网络的网络

从大的框架来看,网络核心是为网络边缘服务的,它负责将数据从一个应用进程通过网络核心这个黑盒子传输到另一个应用进程。

那怎样实现传输呢?接根线直接连过去显然不合适,那是名副其实的互连,但着实不优雅。

我们需要一种中继的设备,它需要知道数据从何而来,要去往何处,也要保证传输一定程度的稳定。在实际中,满足这样需求的设备就是**交换机。而使用网络链路和交换机传输数据有两种基本方法:**电路交换和分组交换。

电路交换

电路交换的思路是为每一个呼叫预留一条专有的电路

image-20210203144038281

从上图中可以看到,在两个交换机之间有四条链路,假如网络带宽是1Mbps,那每条链路的带宽都是250Kbps,发起通信以后以后,首先会建立一个专有的连接,在连接保持期间,它独享链路资源。这就好比两个人通过手机正在通话,第三方想接入的话会显示占线中。

这种VIP的通信服务除了专用带宽以外,它也提供缓存服务。但同时它的缺点也很明显,接入的用户太少了。因特网的用户接入是有局部性和突发性的,一成不变的电路交换显然不能胜任。

这里需要额外的给出一些小贴士

带宽可以认为是网络中的一种资源,而为了更充分的利用这种资源,通常将带宽分成片。这里可以类比CPU的时间片。通常的分片方式有时分,频分,码分,波分。

image-20210203160209492

分组交换

分组交换传输数据的粒度更小,它是基于分组的传输,那首先要了解分组的定义,在端与端之间传输数据的单元是报文。报文中包含协议设计者需要的任何东西。而网络核心的设备处于网络层,因而源主机将报文分成一个个的分组,分组按照协议要求,封装特定的头部和实体部分,在网络中传输。

为了量化传输的效率,我们通常将分组的长度记做L比特,而将链路的传输速率记做R比特/秒,即带宽为Rbps,那传输速率就为L/R。

分组交换为了提高传输的效率并让传输变得稳定可控,采用存储转发的机制。即路由器先将接收到的分组存储起来,将分组中的某些信息取出,按照一定的路由算法得到路由表,再由路由表即可得到下一条的IP地址,最终将分组转发给下一个路由器。

上面我们提及存储转发可以让传输稳定可用,但实际上,存储转发只是一种尽力而为的机制

image-20210203162702739

当分组的到达速率>链路的输出速率,分组就需要排队,当队列已满,即路由器的缓存用完时,分组就会被抛弃。

从上图中可以看出,分组没有时序的讲究,分组共享链路的带宽资源。我们常将这种模式称为统计多路复用。

网络核心的关键功能

  1. 路由

    即决定分组采用的源到目标的路径,传统的是使用路由算法得到下一条的地址,而现在效率更高,也更通用的方式是——

  2. 转发

    即将分组从路由器的输入链路转移到输出链路。

分组交换VS电路交换

理论知识的掌握仅仅是定性,要想更透彻的了解区别,还需要定量分析,我们一起来看下面的小例子——

假设链路的带宽是1Mbps,每个用户活动时所需要的带宽为100kbps,且每个用户只有10%的时间是活动的,分析电路交换和分组交换模式下所能支撑的最大用户数量?

  • 电路交换: 显然可以支撑1M/100K=10个用户

  • 分组交换:假设有35个用户,按使用概率论的知识可以求得链路不允许10个以上用户活动的概率为0.004

    image-20210203164449358

    通俗的说,允许10个以上用户活动的概率就等于允许0个,1个。。。的概率累加和,而35个中可以允许1个用户活动的概率服从伯努利实验,即二项分布

    image-20210204122319342

    通过计算结果,很容易推断出分组交换在用户容量方面由于电路交换。


1.4 Internet结构与ISP

这里我们不再回顾Internet的演变过程,下图直接给出最终的框架——

image-20210204124014360

那如何来解释这张网络架构图呢?我们以从边沿到核心的思路说起:

首先零散的端系统接入到附近的ISP服务商提供的区域网络,区域接入再通过很多路由器接入到去global ISPS,global ISPS通过互连IXP的方式接入到其他的global ISPS,这样一个网络框架就有了。但网络还需要实质的数据传输,这时候ICP(内容分发网络,如谷歌)就加入进去了,而为了节省成本,ICP通常会自己搭建更靠近用户的网络来向用户提供服务。

为了更形象的展示错综复杂的网络,我们看下实际应用中的网络——
image-20210204125019153


1.5 分组延时,丢失和吞吐量

又到了万恶的知识点环节,但朋友们大可放心,这些概念还是很好理解的——

分组延时

image-20210204125239128

分组延时有四种——

  • 节点处理延时:检查分组首部以及决定将分组导向何处。

  • 排队延时:在输出链路上等待传输的时间

    在排队延时中我们引入流量强度的概念——
    流 量 强 度 = L a / R 流量强度=La/R =La/R
    a指的是分组到达队列的平均速率

    image-20210204130140805

  • 传输延时:长度为L的分组在带宽为Rbps的链路上传输的时间为L/R.

  • 传播延时:在物理链路上的传播时间

分组丢失

当分组到达队列已满的路由器时,分组根据协议类型被丢弃或从上一个节点重传

吞吐量

吞吐量指单位时间内从源端传输到目标端的数据量,它取决于路径上最小的吞吐量


1.6 协议层次与服务模型

在解决复杂问题时,将问题模块化,分层解决是一个很好的思路,我们先来看日常生活中称作航班的例子——
image-20210204132916609

这个例子有什么特点呢?

  1. 在每一层都实现了特定的功能,比如购票,托运行李巴拉巴拉;
  2. 在使用上层服务时,必须依托下层提供的服务。简言之,总得先购票才能坐飞机吧,当然,像<猫和老鼠>中的莱昂纳多除外~
  3. 每一层都有特有的规范,比如按特定路线航行。

在上面我们了服务,那怎样解释服务呢?

服务:底层实体向上层实体提供他们之间的通信的能力。

与服务会发生概念混淆的,是原语的概念,这里的原语区别于操作系统的原语,指的是使用服务的方式,说白了,就是API。有了服务,自然就有服务作用的对象——

服务访问点SAP: 即下层提供的服务要通过接口来让上层调用。在传输层,SAP就是端口。

我们将服务的粒度放小就是数据单元DU,下面的图会展示DU的结构——

image-20210204135023005

也就是说,数据单元是由实体+特定的协议头部构成的。

到这里,前置知识大抵就完了,我们直接上正菜——
image-20210204140331968

换种描述方式——

协议分层数据单元服务服务访问点常用协议关键词
应用层报文网络应用HTTP.DNS,SMTP,FTP
传输层报文段主机之间的数据传输端口TCP/UDP拥塞控制,流量管理,可靠数据传输,面向连接/不面向连接
网络层分组为数据包从源到目的选择路由IP地址IP路由,转发
链路层数据帧相邻网络节点间的数据传输PPP,802.11WIFI不可靠
物理层字节在线路上传送bit通信链路

这时我们就可以解答实际中应用程序间的通信是如何实现的啦——

image-20210204140524071

日拱一卒,功不唐捐。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值