计算机网络知识总结之基本概念、物理层、数据链路层

计算机网络知识总结之基本概念、物理层、数据链路层

一、概述

1.1、网络的网络

网络是把主机连接起来,而互联网是把多种不同的网络链接起来,因此互联网是网络的网络。

计算机网络知识总结之基本概念、物理层、数据链路层

1.2、ISP

因特网网络服务提供商ISP,他可以从因特网管理机构申请到很多IP地址,同时拥有通信线路以及路由器等连接设别,任何机构或个人只要向某个ISP缴纳规定费用,就可以从该ISP获取所需IP地址的使用权,并通过该ISP接入到因特网。
根据提供服务的覆盖面积大小以及拥有IP地址数目的不同,ISP也分为不同的层次:主干ISP、地区ISP、本地ISP。
随着因特网上数据流量的急剧增加,为了更快的转发分组,以及更加有效的利用网络资源,于是就出现了因特网交换点IXP

计算机网络知识总结之基本概念、物理层、数据链路层

因特网交换点IXP的作用主要是允许两个网络直接相连并交换分组,而不需要再通过第三个网络来转发分组。

1.3、主机之间的通信方式

客户——服务器方式(C/S):客户是服务的请求方,服务器是服务的提供方。客户和服务器都是指通信中所涉及的两个应用进程。客户——服务器方式所描述的是进程之间服务与被服务的关系。

计算机网络知识总结之基本概念、物理层、数据链路层

对等连接(P2P):不区分客户端和服务器。可以支持大量对等用户同时工作。

计算机网络知识总结之基本概念、物理层、数据链路层

1.4、电路交换与分组交换

计算机网络知识总结之基本概念、物理层、数据链路层

电路交换:电路交换用于电话通信系统,两个用户要通信之前需要建立一条专用的物理链路,并且在整个通信过程中始终占用该链路。由于通信的过程中不可能一直在使用传输线路,因此电路交换对线路的利用率很低,往往不到 10%。

报文交换:整个先传送到相邻结点,全部存储下来后查找转发表,转发到下一个结点。报文交换用于邮局通信系统,邮局接收到一份报文之后,先存储下来,然后把相同目的地的报文一起转发到下一个目的地,这个过程就是存储转发过程。

分组交换:分组交换也使用存储转发技术,但是存储转发的是分组不是报文。整个数据称为一个报文,由于一个报文可能可能很长,需要先进行切分,来满足分组能处理的大小。每个切分的数据前面都加上首部之后就成了分组,首部包含了目的地址和源地址等控制信息。

存储转发允许在一条传输线路上传输多个主机的分组,也就是说两个用户之间的通信不学哟啊占用端到端的线路资源。相比于报文交换,由于分组比报文更小,只是报文的一部分,因此分组交换的存储转发速度更快。

1.5、时延

总时延 = 发送时延 + 传播时延 + 处理时延 + 排队时延。

计算机网络知识总结之基本概念、物理层、数据链路层

发送时延:主机或者路由器发送数据帧所需要的时间。

计算机网络知识总结之基本概念、物理层、数据链路层

其中l表示数据帧的长度,v表示发送的速率。

传播时延:电磁波在信道中传播一定的距离所需要花费的时间,电磁波的速度接近于光速。

计算机网络知识总结之基本概念、物理层、数据链路层

处理时延:主机或者路由器收到分组时进行处理所需要花费的时间,例如分析首部、从分组中提取数据部、进行差错效验或者查找适当的路由等。

排队时延:分组在路由器的输入队列和输出队里中排队等待的时间,取决于网络当前的通信量。

1.6、计算机网路的体系结构(重点)

计算机网络知识总结之基本概念、物理层、数据链路层

五层协议

应用层:为特定的应用程序提供数据传输服务,例如HTTP、DNS等。数据单位为报文。

运输层:提供的是进程间的通用数据传输服务。由于应用层传输协议很多,定义通用的运输层传输协议就可以支持不断增多的应用层协议。运输层包含两种协议:传输控制协议TCP(提供面向连接,可靠的数据传输服务,数据单位为报文段);用户数据报协议UDP(提供无连接服务,数据单位为用户数据报)。TCP主要提供完整性服务,UDP主要提供及时性服务

网络层:为主机之间提供数据传输服务,而运输层协议是为主机中的进程提供服务。网络层把运输层传下来的报文段或者用户数据报封装成分组

数据链路层:网络层针对的还是主机之间的数据传输服务,而主机之间可能有很多链路,链路层协议就是为同一链路的结点提供服务。数据链路层把网络层传来的分组封装成帧

物理层:考虑的是怎样在传输媒体上传输数据比特流,而不是具体的传输媒体。物理层的作用是尽可能的屏蔽掉传输媒体和通信手段带来的差异,使数据传输感觉不到这些差异。

七层协议

其中表示层和会话层的用途如下:

表示层:数据压缩、加密以及数据描述。这使得应用程序不必担心在各台主机中表示/存储的内部格式不同的问题。

会话层:建立级管理会话。

五层协议中没有表示层和会话层,而是将这些功能留给应用程序开发者处理。

数据在各层之间的传递过程

在向下的过程中,需要添加下层协议所需的首部或者尾部,而在向上的过程中不断拆开首部和尾部。路由器只有三层协议,由于路由器位于网络的核心中,不需要为进程或者应用程序提供服务,因此也就不需要运输层和应用层。

计算机网络知识总结之基本概念、物理层、数据链路层

TCP/IP体系结构

它只有四层,相当于五层协议中数据链路层和物理层合并为网络接口层。
现在的TCP/IP体系结构不严格遵循OSI分层概念,应用层可能会直接使用IP层或者网络接口层。

计算机网络知识总结之基本概念、物理层、数据链路层

TCP/IP 协议族是一种沙漏形状,中间小两边大,IP 协议在其中占用举足轻重的地位。
计算机网络知识总结之基本概念、物理层、数据链路层

二、物理层

2.1、通信方式

单向通信:又称为单工通信,即只能有一个方向的通信二没有反方向的交互。无线电广播或者有线电广播以及电视广播就属于这种类型。

双向交替通信:又称为半双工通信即通信方法都可以发送信息,但是双方不能同时发送(当然也不能同时接收)。这种通信方式是一方发送另一方接收,过段时间后可以放过来。

双向同时通信:又称为全双工通信即通信双方可以同时发送和接收信息。

单向通信只需要一条信道,而双向交替通信或者双向同时通信则需要两条信道(每个方向各一条)。显然,双向同时通信的传输效率最高。

2.2、带通调制

模拟信号是连续的信号,数字信号是离散的信号。带通调制是把数字信号转换为模拟信号。

计算机网络知识总结之基本概念、物理层、数据链路层

2.3、信道复用技术

频分复用和时分复用

频分复用:所有用户在相同时间占用不同的频率带宽资源。

时分复用:所有用户在不同时间占用相同的频率带宽资源。

计算机网络知识总结之基本概念、物理层、数据链路层

使用这两种方式进行通信,在通信的过程中用户会一直占用一部分信道资源。但是由于计算机数据的突发性质,通信过程没必要一直占用信道资源而不让出给其它用户使用,因此这两种方式对信道的利用率都不高。

统计时分复用:是对时分复用的一种改进,不固定每个用户在时分复用帧中的位置,只要有数据就集中起来组成统计时分复用帧然后发送。

计算机网络知识总结之基本概念、物理层、数据链路层

波分复用:光的频分复用。由于光的频率很高,因此习惯上用波长而不是频率来表示所使用的光载波。

计算机网络知识总结之基本概念、物理层、数据链路层

码分复用:为每个用户分配 m bit 的码片,并且所有的码片正交,对于任意两个码片向量S和向量T有

计算机网络知识总结之基本概念、物理层、数据链路层

为了方便,取 m=8,设码片 为 00011011。在拥有该码片的用户发送比特 1 时就发送该码片,发送比特 0 时就发送该码片的反码 11100100。

在计算时将 00011011 记作 (-1 -1 -1 +1 +1 -1 +1 +1),可以得到

计算机网络知识总结之基本概念、物理层、数据链路层

其中向量S’为向量S的反码。

利用上面的式子我们知道,当接收端使用码片 对接收到的数据进行内积运算时,结果为 0 的是其它用户发送的数据,结果为 1 的是用户发送的比特 1,结果为 -1 的是用户发送的比特0。

码分复用需要发送的数据量为原先的 m 倍。

计算机网络知识总结之基本概念、物理层、数据链路层

三、数据链路层

3.1、信道分类

点对点通信:一对一通信方式,使用的是PPP协议

广播信道:一对多通信方式,使用的是CSMA/CD协议。

3.2、三个基本问题

封装成帧

将网路层传下来的分组调价首部和尾部,用于标记帧的开始和结束。

计算机网络知识总结之基本概念、物理层、数据链路层

透明传输

透明表示一个实际上存在的事物看起来好像不存在一样。

帧使用首部和尾部进行定界,如果帧的数据部分含有和首部尾部相同的内容,那么帧的开始和结束位置就会被错误的判定。需要在数据部分出现首部尾部相同的内容前面插入转义字(ESC)符,这种方法称之为字节填充字符填充如果出现转义字符,那么就在转义字符前面再加个转义字符,在接收端进行处理之后可以还原出原始数据。这个过程透明传输的内容是转义字符,用户察觉不到转义字符的存在。

计算机网络知识总结之基本概念、物理层、数据链路层

差错检测

现实的通信线路都不会是理想的,比特在传输过程中可能会产生差错:1可能变成0,而0也可能变成1.这就叫比特差错。

目前数据链路层广泛使用了循环冗余检验(CRC)来检查比特差错。

我们通过一个例子来说明循环冗余效验的原理。在发送端,先把数据划分为祖,假定每组K个比特。现假定待传送的数据M = 101001(k=6)。CRC运算就是在数据M后面添加提供差错检测的n位冗余码,然后构成一个帧发送出去,一共发送(k+n )位。在所要发送的数据后添加冗余码,显然增大了数据传输的开销,但却可以进行差错检测。当传输可能出现差错时,付出的代价往往是很值得的。用二进制的模2运算进行2^n乘M的运算,这相当于在M后面添加n个0 ,得到的(k+n )位的数除于收发双方实现商定的长度为(n + 1)位的除数P,得出的商是Q而余数是R(n位,比P少一位)。用生成多项式P(X)表示上面的除数(假定n+1位),P(X) = X^3 + X^2 + 1则P = 1101。在接收端把收到的数据以帧为单位进行CRC检测:把收到的每一个帧除于同样的除数(模2运算),然后检查得到的余数R,如果传输过程无差错,经过CRC检测得到的余数肯定是0 。R = 0,则判定这个帧没有差错,就接受。R!= 0,则判定这个帧有差错,就丢弃。

3.3、局域网

局域网是典型的一种广播信道,主要特点是网络为一个单位所拥有,且地理范围和站点数目均有限。可以按照网络拓扑对局域网进行分类:

计算机网络知识总结之基本概念、物理层、数据链路层

3.4、PPP协议

用于点对点信道中。互联网用户通常需要连接到某个ISP之后才能接入到互联网,PPP协议是用户计算机和ISP进行通信时所使用的数据链路层协议。

计算机网络知识总结之基本概念、物理层、数据链路层

在PPP的帧中:

  • F 字段为帧的定界符
  • A 和 C 字段暂时没有意义
  • FCS 字段是使用 CRC 的检验序列
  • 信息部分的长度不超过 1500

计算机网络知识总结之基本概念、物理层、数据链路层

3.5、CSMA/CD协议(重点)

用于广播信道中。在广播信道上,同一时间只能允许一台计算机发送数据。

CSMA/CD 表示载波监听多点接入 / 碰撞检测。

多点接入:说明这是总线型网络,许多计算机以多点的方式连接到总线上。
载波监听:每个站都必须不停地监听信道。在发送前,如果监听到信道正在使用,就必须等待。
碰撞检测:在发送中,如果监听到信道已有其它站正在发送数据,就表示发生了碰撞。虽然每一个站在发送数据之前都已经监听到信道为空闲,但是由于电磁波的传播时延的存在,还是有可能会发生碰撞。

计算机网络知识总结之基本概念、物理层、数据链路层

记端到端的传播时延为τ,最先发送的站点最多经过2τ就可以知道是否发生了碰撞,称2τ为争用期。只有经过争用期之后还没有检测到碰撞,才能肯定这次发送不会发生碰撞。

当发生碰撞时,站点要停止发送,等待一段时间再发送。这个时间采用 截断二进制指数退避算法 来确定,从离散的整数集合 {0, 1, .., (2k-1)} 中随机取出一个数,记作r,然后取 r 倍的争用期作为重传等待时间。

3.6、扩展局域网(重点)

在物理层上进行扩展

使用集线器进行扩展。

集线器的主要功能是对接收到的信号进行放大,以扩大网络的传输距离。

集线器不能根据 MAC 地址进行转发,而是以广播的方式发送数据帧。

集线器是一种共享式的传输设备,意味着同一时刻只能传输一组数据帧。

计算机网络知识总结之基本概念、物理层、数据链路层

在链路层上进行扩展

最开始使用的是网桥,它收到一个帧时,根据帧的 MAC 地址,查找网桥中的地址表,确定帧转发的接口。

网桥不是共享式设备,因此性能比集线器这种共享式设备更高。

交换机的问世很快就淘汰了网桥,它实质上是一个多接口网桥,而网桥是两接口。交换机的每个接口都能直接与一个主机或者另一个交换机相连,并且一般都工作在全双工方式。

交换机具有自学习能力,学习的是交换表的内容。交换表中存储着 MAC 地址到接口的映射。下图中,交换机有 4 个接口,主机 A 向主机 B 发送数据帧时,交换机把主机 A 到接口 1 的映射写入交换表中。为了发送数据帧到 B,先查交换表,此时没有主机 B 的表项,那么主机 A 就发送广播帧,主机 C 和主机 D 会丢弃该帧。主机 B 收下之后,查找交换表得到主机 A 映射的接口为 1,就发送数据帧到接口 1,同时交换机添加主机 B 到接口 3 的映射。

计算机网络知识总结之基本概念、物理层、数据链路层

3.7、虚拟局域网

虚拟局域网可以建立与物理位置无关的逻辑组,只有在同一个虚拟局域网中的成员才会收到链路层广播信息,例如下图中 (A1, A2, A3, A4) 属于一个虚拟局域网,A1 发送的广播会被 A2、A3、A4 收到,而其它站点收不到。

计算机网络知识总结之基本概念、物理层、数据链路层

3.8、MAC层(重点)

MAC 地址是 6 字节(48 位)的地址,用于唯一标识网络适配器(网卡),一台主机拥有多少个适配器就有多少个 MAC 地址,例如笔记本电脑普遍存在无线网络适配器和有线网络适配器。

计算机网络知识总结之基本概念、物理层、数据链路层

在MAC帧中:

  • 类型 :标记上层使用的协议;
  • 数据 :长度在 46-1500 之间,如果太小则需要填充;
  • FCS :帧检验序列,使用的是 CRC 检验方法;
  • 前同步码 :只是为了计算 FCS 临时加入的,计算结束之后会丢弃。

参考资料: