计算机网络总结(1)

计算机网络

我最近重新看了一下《计算机网络第五版》的书,感觉自己豁然开朗,的确是一本好书。就是厚了一点,进可防身,退可枕头,确实不可多得。于是我大概梳理一下我对计算机网络的理解

绪论

计算机网络是一种很宽泛的概念,它不仅仅包含我们的互联网、局域网,还包括了蓝牙与RFID等,甚至我们的电话系统都属于计算机网络的范畴。
有了计算机网络,计算机不再是一个个封闭的机器,而是在不断的与其他的计算机通信(保密单位除外),成为巨大的信息网络中的一个节点。我们的生活中已经离不开计算机网络,当然,离我们最近的是互联网,并且我们正踏入一个万物互联的时代。

 ** 计算机的网络体系结构 **

为了降低计算机网络设计的复杂性,绝大多数网络都组织成一个层次分级栈,每一层都建立在下一层的基础之上,对上一层提供相应的服务接口并屏蔽本层与下一层的细节。
不同的网络的实现都不一样,它们都有自己的一些标准与算法,这种约定和规则便是协议。层与协议的集合称为网络体系结构。

 ** 面向连接与无连接服务 **

面向连接服务是以电话系统为原型建模的,当你呼叫他人时,会建立一个连接,通信建立在连接之上。另一种是按照邮政系统建模的,你发送一个数据包给别人时,中间有很多中转站,中转站收到数据包,再根据数据包的目标地址发送往下一站,直到到达终点

** 网络模型 **

大家耳熟能详的网络模型有OSI七层模型与TCP/IP模型,OSI七层模型分为计算机网络第五版32面
OSI模型确实设计确实很先进,层层分明,有助于大家理解计算机网络,但是由于某些因素,它并没有成为主流,书上概括了四个原因

  1. 糟糕的时机
  2. 糟糕的技术
  3. 糟糕的实现
  4. 糟糕的政策

有兴趣的可以自己去看书。
TCP/IP协议是现在的网络协议的主流。在这里插入图片描述
与OSI相比,它省去了会话层与表示层,因为他们两个没有多少实际的内容。
而书上使用的模型结合了它们两个模型,分成

物理层、数据链路层、网络层、传输层与应用层

物理层

物理层的作用是使信号在物理层上传播,并将信号发送向物理介质或从物理介质接收信号。
第一节是讲理论讲公式。他讲的那么高深,其实你只需要想象一下你收到一串电磁波信号,你要从正弦波的能量也就是振幅变化中读出信息,信号的密度肯定是不会超过半个周期的。也就是说采样频率不超过2倍的波频率。信道的最大波特率不会超过两倍的带宽,如果信道存在噪声,当然会影响最大数据速率。而且不同的编码与物理介质的电气性质也会影响最大数据传输率。

之后他就介绍了几种创建的物理介质,像双绞线、同轴电缆、微波、光纤等等。在光纤出现以前,带宽的限制使得计算机不得不想方设法压缩传输的数据,以减少通信线路的负载,然而随着光纤的出现,带宽迅速提升,计算力资源反而成为了短板。

有两个例子比较有趣,第一个是作者某个会议时,主持方不想为了一个三天的会议去布线,于是他们使用激光与光电传感器架在楼顶,用激光对准另一个酒店顶楼的光电传感器。电信号转化成激光信号之后打在光电传感器上,回转成电信号。但是会议期间没有一个人能连上该网络,会议结束之后,他们发现下午楼顶的热气流影响了光线,使得光线射不准光电传感器。另一个例子告诫我们“千万不要低估在公路上飞驰的一辆满载着光盘的拖拉机的带宽”。

数据链路层

如果说物理层是为了解决让连在一根网线的两头的电脑交换单个比特的问题的话,那么数据链路层就是为了解决数据的传输问题。他要能够完整的将一个长数据段无错的发送到双绞线的另一端,而接收来自另一端的长数据段。
第三四章分别讲述了两个问题,第三章是理想情况的数据传输问题——两台机器在没有其他机器干扰下数据的发送与接收,相当于网线的这头与那头。而第四章是实际情况下的很多台机器对信道的占用的调度与分配问题。

** 第三章:数据传输 **

物理层所传输的是由一个个比特组成的比特流,而网络层的包(packet)所传下来的是不知道长度的可能是不知道长度的字节流。数据链路层作为他们两个的中间商需要解决几个问题

  1. 帧定界
  2. 透明传输
  3. 差错控制
  4. 帧同步

帧定界:

从物理层上收到的信号可以看作是一个无限长的比特流,帧定界的作用就是确定帧的开始与结束,让接收方可以从无限长的比特流中取出帧。以前的话首尾标记可能是不同的,但是现在一种常用的方法就是加一个起始与结束标志01111110B,这样当接收方读到7EH(16进制的01111110B)时便开始读,一直到再读到一个7EH结束。

透明传输:

数据帧的内容,可能是任何情况,可能包含了很多(7EH),因此对数据帧内容进行一定的处理,使得数据帧内容对下层(定界与物理层)是透明的,不管你给我什么,接收端都能正常得到该数据帧。常用的方法有转义字符法与比特填充法。

转义字符法根据协议的不同也有几种,就比如说每当遇到了标志字符,就把它前面加一个转义字符,或者替换成转义字符+其他字符,当然,这个过程是可逆的。转义字符法有一个缺点:效率太低,考虑一个极端情况,帧内容全部是首尾标志,全部要加转义字符,这样真正的帧内容只占了真正传输串的50%。比特填充法是一个比特一个比特写(读),当遇到连续的5个1后加(减)一个0,这样处理后的串一定不会出现6个连续的1,当然也就不会出现首尾标志。这个方法效率很高,它的极端情况如全是1,每5个1加1个0,帧内容占5/6。

差错控制:

一般情况下,物理信道上都会存在干扰,不管是因为其他机器还是因为电磁脉冲抑或是其他因素,出错在所难免。因此数据链路层需要保证一个帧在链路上传播时不出错。一般情况是加一个校验码或者纠错码。校验码如奇偶校验与CRC循环冗余校验,纠错码如海明码、卷积码。奇偶校验就是判断1的个数的奇偶,纠错能力有限,当错误的位数超过两位时,奇偶校验也没有用了,它适用于干扰少的情况。循环冗余码本质是构造一个数,使得它模CRC系数等于0。一旦传输时发生错误后它模CRC系数等于0的概率很小很小,几乎可以忽略。因此,我只需要判断它模CRC系数的值就可以判断传输是否出错。构造这个数只需要将原来的数除以CRC系数的余数加到该数的末尾便可。纠错码要判断哪一位出错,必然会需要很多冗余位。前面说到,随着光纤的出现,带宽迅速提升,计算力资源反而成为了短板。纠错码需要大量计算,若带宽足够,完全可以检出错误后重发,实际上纠错码与检错码各有优势,需要根据实际场景定夺。

数据链路层协议:

协议1:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值