计算机网络overview-2

计算机网络性能

  • 网速?在计算机网络里应该说速率,或者说数据率(data rate),值得注意的是一般用来计算的都是理想速率,并不是实际速率。
  • 带宽。原本的带宽是指信号具有的频带宽度,即用最高频率与最低频率的差值,单位是赫兹。然而网络里面的带宽,是指的数字信道所能传送的最高数据率。也就是说单位时间内最多能传多少数据到介质上去。所以单位是bps/s(常用的有Mbps/s等)。
  • 延迟/时延。前面说了分组交换会产生延迟和丢失,但是不知道为什么,认为每种方式都会有同样的现象,其实是不严谨的。这里讨论的延迟和丢包只是针对分组交换本身的,这是属于它的设计原理的缺陷,把别的方式扯进来比较是不对的。好了,造成延迟有两种因素,一是分组在路由器上转发的时候,需要从路由器写到介质上,那这个时间会取决于路由器的质量;二是在前面分组传输的时候,后面分组需要排队等待,这个缺陷对于报文交换更加明显。造成丢包只有一种原因,分组排队排满了,也就是缓存满了的时候,后面的包采取自动丢弃的策略,这种情况发生在分组到达速率超出了输出链路容量的时候,也就是传进来太快了,而传出去的速率已经达到最大了,就会出现缓冲区存满了的情况。(为什么最大传进和最大传出会出现不一样呢?)。带着这些疑问,来详细学习下四种具体的延迟。
    • 结点处理延迟。就是分组传进来,结点会对它进行差错检测,确定输出链路等一些处理工作。这里的时间耗损相对比较小。
    • 排队延迟。这个完全取决于路由器拥塞状态,也就是说它是不确定的,受其他因素共同影响。这里有个公式,La/R,L是分组长度,a是平均分组到达速率,R是链路带宽。其实这公式意思就是网络资源占用越满,排队就越严重。所以可以得出上网高峰期网络延迟严重的结论。
    • 传输延迟。就是路由器写到输出链路上所需要的时间。取决于分组长度和链路带宽。(注意,这里是整个分组而不是单个包)
    • 传播延迟。这是指的光或者电在介质上传输的时间,显然跟物理链路长度和信号传播速度有关。电信号传播速度大概是0.7倍的光速。

其实我们讨论的这四种延迟的作用范围,可以看出来就是在两个结点之间,我们把这叫在一跳的范围内的延迟。

  • 时延带宽积。拿传播时延(s)乘以带宽(b/s),对于这个值的意义要这么理解,我结点发出一个比特到目标结点收到这个比特,链路上容纳的比特数量(发出一个结点后按照带宽继续发下一个结点)。还可以这么理解,就是时间乘以速率,得出来的结果是比特数量,而这个时间是传播延迟,是指的信号在链路上的传播时间,所以当第一个比特到达目标结点的时候,时间就到了。这时候看链路上有多少个比特,也就是算出来的比特。这个值可以抽象的理解为以比特为单位的链路长度。

  • 分组丢失。可能由前序结点重发也可能不发。丢包率=丢包数/已发分组数。(经常看到的那个百分数)

  • 吞吐量/率。发送端和接收端之间的传输速率(b/s)。有分即时吞吐量和平均吞吐量,也就是一个时间单位的问题。对于这个数据其实很容易做出判断,决定我们网络的吞吐率的链路,就是那个传输速率最小的瓶颈链路。我们玩游戏里面的ping值其实就是即时吞吐率。(为什么有时候ping值很小,也会有丢包现象出现)

计算机网络体系结构

计算机网络这么多组成部分,这么多技术,如果没有设计出良好的组织结构,岂不是到处一团乱麻,还怎么扩展的下去。所以科学家们就研究这件事,并且提出了一套系统结构来描述这个庞大的计算机网络系统。这个系统的原理就是分层,其实这个原理也不是什么高深的东西,软件开发里也有,但是面对的是现实中如此庞大的工程,能开创如今这种局面真是值得尊重啊。

值得注意的是。网络体系结构是从功能上描述计算机网络结构的,并不是从物理上描述的。假如从物理来描述会怎么样?那有很多功能层的概念都无法得到好的描述,因为硬件就那么一点。

工程师给每一层都设计了协议,类似于每个世界的制度,这样使得这一层的功能能够看上去在独立运行。分层的好处肯定是每一层的功能不耦合,易于维护和更新,利于标准化,对那些复杂的部件只要弄出统一的接口就好了。分层也不是完美的东西,层越多,每一层上的效率耗损加起来就越明显。每一层都向上开放接口(可以是编程接口也可以是写死的接口),这接口叫service access point。

具体的参考模型。OSI参考模型(由ISO组织提出的)。理论成功,市场失败。但是对学习很有指导意义。总共有七层,但是并不是说无论什么结点都一定要支持这七层,像路由器这种中间部件就只需要支持最底下三层就足够了。我们把上四层叫做端到端层次,就是中间部件不需要支持的层次。数据在每一层都需要加东西上去,到了物理层就不会加了,数据都变成了0101了。这个加的过程叫做数据封装。加了些啥呢,你地址,差错检测,协议控制。下面具体讲一下。

  • 物理层

就是定义一些与传输媒体的接口有关的一些特性。通过了解这些特性,来把握物理层到底是什么样子的。这些物理接口的特性有机械特性,就是接口所用接线器的形状尺寸,引脚数目和排列等,很明显这个特性能使传输设备的规格统一;电气特性,指接口电缆上的电压范围;功能特性,指明出现的某一电平代表何种意义。过程特性,指出不同功能的各种可能事件的出现顺序,不太懂。知道了物理结构,再来定义里面的数据流的规则,比如比特编码,数据率(传输速率),传输模式(单工,半双工,全双工)。概括的来说,物理层解决了单一比特传输的过程。

  • 数据链路层

在物理层之上的逻辑的层次。从它的功能来了解,它解决的主要问题是结点到结点之间的数据传输。所以它就会有这些功能。组帧,头部加地址,尾部加差错检测之类的东西,反正就是组成一个完整的帧是数据链路层实现的。物理寻址,在接受端或者发送端的帧头中增加物理地址标识数据,这不还是归在组帧的功能里嘛。流量控制,发送端和接受端的发送速度和处理速度需要匹配好,速度不同步可能造成缓存满了数据丢失。差错控制,就是通过给源数据加个差错码,然后接受端通过差错码去校验源数据有没有错,有错就可以通知重传,也可以避免重复帧的出现。访问控制,不知道什么东西。

  • 网络层

负责源主机到目的主机数据分组的交付。可能穿越多个网络,所以需要一个全局唯一的逻辑地址,才能有效传输,在Internet里就是IP。路由器来分组转发,转发的方式是什么样子的呢,就是在网络层的协议数据单元里放网络层地址(源主机和目的主机),然后链路层里面放的地址是结点与结点之间的地址(主机和路由器),截了个图。

  • 传输层

完成的是端到端的进程之间的完整报文的传输。功能,分段与重组;SAP寻址(将报文提供给正确的进程,如端口号);连接控制(逻辑上的连接,并不是电路连接);流量控制(根据底层的功能封装出来的);差错控制(为啥数据链路层有差错控制,这里还要差错控制?是因为传输层通信所经过的是多个网络,里面有的链路可能没有差错控制,不过也有的协议没有差错控制的,比如udp);

  • 会话层

对话控制,在数据流中插入同步点,断点传输。最薄的一层,在实际模型中这一层不是独立存在的。

  • 表示层

处理两个系统间交换信息的语法和语义问题,它去编码加密压缩数据。具体是,数据表示转化,因为不同主机有大端小端的问题,所以这里把数据转化为了一种主机独立的编码;加密解密,和压缩解压缩。在实际模型中这一层不是独立存在的。

  • 应用层

这里主要是应用层协议。应用层就是支持用户通过用户代理(浏览器,网络接口)来使用网络服务,也就是说你上网上的是啥,就是通过这些软件,而这些软件的基础协议是属于应用层的,对程序员来说就是网络编程的接口。

再来看下TCP/IP参考模型。

TCP/IP参考模型。应用层,http,smtp,ftp..;传输层,tcp,udp;网际层,ip;网络接口层。这个模型的特点是everything over IP.

五层参考模型。就是把网络接口层展开,综合了OSI和TCPIP的优点。详细讲一下这几层干了什么,应用层就是应用级别的协议,比如浏览器和web服务器之间的http协议;传输层,就是进程与进程之间的协议(tcp/ip),相当于软件的底层传输;网络层,IP协议,对象是两个主机之间,会经过分组转发,路由;链路层,就是两个结点之间数据传输;物理层,就是比特传输。具体的数据流向,可以看看这个图

总结

通过这两篇概述,快速的浏览了计算机网络中的主干知识。谈谈自己的感受,计算机网络是人们用来解决计算机之间通信问题的,由于不同网络之间存在各种差异,所以需要抽象出层次,通过封装来抵消底层的差异,因此就有了那些参考模型。在这些模型中,最关键的地方,我认为是协议,我们只有约定协议,数据才能在它的目的地被解析成某种特定行为,然后对于编程来说,我们肯定不想直接操作网络接口,因此就有了运输层来封装一下,避免你操作硬件。你可以用运输层的协议再次封装,做一个你自己的应用层协议,比如某种聊天信息的传输协议。现在我对tcp,udp掌握的还不好,不过我认为只要掌握它的规则就行了,因为它本身只是协议罢了,你要做的是遵守它的规定,让它为你服务,所以根本不难。

至于路由器,分组交换之类的暂时也还不清楚,只知道咱通过路由器来寻找下一个结点,把分组在不同网络之间传递,至于路由器咋寻路的就不清楚了,还有链路层,大概就是两个结点之间,传递,加了些啥东西,好像有mac地址。接下来就是把这几个具体的问题弄清楚,结点与结点之间怎么传的,报文的封装加了些什么东西?网络之间怎么传的,路由器怎么寻路的?

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值