计算机网络-引言复习笔记
Table of Contents
引言 #
参考模型 #
实体:任何可发送或接收信息的硬件或软件进程。
SAP:服务访问点,Service Access Point. 相邻层次之间,通过SAP,以交换原语的方式进行调用。
网络结构 #
网络边缘:即主机、网络应用。
接入网络和核心网络:前者是主机等通过连接接入网络,进而可以连接核心网络。核心网络由路由器等构成。
Internet结构 #
一级ISP:全球性的大型ISP。这些ISP会建造大型的ISP链路。
ISP互联:各大ISP网应该互联,才能保证联通用户可以和电信用户通信。可以用对等链路 Peering Link连接这些ISP网络,也可以用第三方IXP Internet Exchange Point 进行连接。IXP本身就是一个高速的网络。
内容提供商网络:Content Provider Network,例如Google。这些CPN自行建设网络,并用于保证直接地对端用户提供服务。
OSI模型 #
OSI, Open System Interconnection 开放系统互连模型 #
并不是所有协议的PDU都要加纠错编码。
传输层是首个实现端到端的层次:其以下的层次,都是需要经过中间路由器等设备的,每次经过都要从下往上拆包到网络层,然后再封装回物理层继续传输。所以是点到点(即相邻节点到相邻节点)。但是传输层实现了端到端,即传输层及以上的层的PDU不需要被拆包,直到到达最终目的地。
物理层 #
物理层:完成比特流传输。
DU - bits
定义物理接口的特性。(机械特性:接口的形状;电气特性:这个接口针的电平是多少;功能特性:这个接口针的功能是什么;规程特性:接口工作过程是什么样的。)
定义比特编码形式。
定义数据率。
解决比特同步:保证这边发一个,哪边就收一个比特。例如要保证时钟同步。
定义传输模式:例如单工(电视),半(对讲机)和全双工。
数据链路层 #
物理层不能纠错,不能确定谁来接收数据。
DU - 帧 frame
数据链路层把数据加头加尾,负责物理链路中,两个相邻节点之间的数据传输。
负责成帧。(这样才能完成控制)
负责物理寻址,(因为物理层的比特流本身没有含义,不知道收发方。),因此定义物理地址。物理地址放在帧头。
负责流量控制。使两者发送数据和接受数据的速度相匹配。
负责差错控制。“差错控制“包括对损坏、丢失、重复情况的控制。
负责MAC。决定链路在某一时刻谁能使用。避免碰撞冲突。
网络层 #
由于数据链路层是负责的物理线路相邻节点之间的通信,数据链路层采用的是物理地址,即这两个相邻节点的地址。
DU - IP数据报
但是,在网络上从发送端到真正的接收端需要走过很多这样的节点,为了保证不管经过多少节点,都能一路找到目的端,网络层规定了逻辑地址。逻辑地址即IP地址。
网络层还要负责路由。即把网络互联,并负责路径选择。
传输层 #
传输层是PDU是段,即TPDU。因为传输层负责把应用层的信息分段成若干小段,然后打包成TPDU。
DU - 段 segment
传输层负责端到端进程之间的完整报文传输。
负责分段和重组。(发送端分段分别打包,接收端重组拼合。)
负责SAP寻址。(端口号。)
负责逻辑连接控制。
负责流量控制。
负责差错控制。(UDP不可以)
会话层 #
负责对话控制 Dialog Controlling.建立和维护对话。
负责对话同步Synchronization. 在传输数据中间插入SYN点,如果中断则只需恢复到最近的断点。
会话层是最薄的一层。在实际网络中,没有这一层。
表示层 #
解决语法和语义问题。Syntax and Semantics. 利用与任何一端都没关系的编码进行传输,并在两边予以翻译。
负责加密和解密。
负责压缩和解压缩。
应用层 #
DU - 报文
实例:报文怎么传递的? #
应用层的报文从发送端一步步封装到物理层;
经过hub,不拆;
经过switch,被拆到了链路层,再封装回物理层;
经过router,被拆到了网络层,再封装回物理层;
到了目的主机,被拆回应用层。
TCP/IP模型 #
网络接口层(链路层) #
严格来说这不是一个层次。只是一种接口。它所接合的是任何能够封装IP包的底层。只要你这个底层能封装IP包,并且能传递到接收方,就没问题。
这也是TCP/IP发展迅速的原因。
网络层、传输层、应用层 #
和OSI完全一致。
交换网络 #
为什么要交换 #
两台主机通信的基本条件是:它们之间有直接的链路相连。但是如果直接这么连,那么链路的总量过于巨大;如果中间用交换设备向量,那么每台主机都可以接入此交换设备,这可行,但是交换机的端口需要非常多,且线不能扯那么长。因此,引入交换网络,即交换设备也彼此连接成一张网络,所有设备只要想要上网就接入比较边缘的交换设备即可。
什么是交换 #
- 动态转接。动态地建立端口之间的连接关系。
- 动态配置网络资源。使得信息能够通过各种可行的道路到达目的主机。
电路交换 #
显著特点:面向连接,独占信道资源(注意,是分配给它的资源被它独享,而不一定是整条线路的资源被它独享。比如,如果多路复用就不会让他把整条线都抢走)。
多路复用 #
概述 #
在电路交换中,通信双方没有必要占用整条物理信道。只需要有链路相连就可以了,不需要占用那么大资源。因此引入多路复用技术。多路复用把资源划分成“资源片”,然后每个呼叫都独占一片这样的资源片。
多路复用主要是先复用,再分用的一种模式在运转。
频分多路复用 FDM Frequency Division Multiplexing #
将物理线路可以走的频率划分成若干个频带。每个频带具有一定的频带宽(注意,这里的频带带宽是Hz为单位!不是指的速率!)
用户永远使用分配而来的频带来传输信号。用户的发送的频率在经过调制后无论是多少,都不能超过这个频率范围。
例:广播电视
时分多路复用 TDM Time Division Multiplexing #
将整个时间划分为若干TDM帧。每个帧的长度相等(即具有周期性)。每个帧都被划分为若干时隙,每个发送方可以分配到一个时隙,尽在这个时隙中传输一定量的数据,剩下的等过了一个周期,即下个周期的分配给它的时隙再传输,以此类推。
这和Slotted Aloha非常类似。
波分多路复用 WDM Wavelength Division Multiplexing #
即光的FDM。只要使用的光的波长不同,就能在接收方实现分用。
码分多路复用 CDM Code Division Multiplexing #
各用户使用相同频率的载波**同时**发送数据。可见,它不管FDM,TDM,而是创新了一种多路复用技术CDM。
CDM是完全基于线性代数的多路复用,是数学层面的多路复用。
原理 #
- CDM利用了如果两个码片向量正交,那么这个码片的相反数构成的向量还和哪个跟他正交的码片正交。
- CDM利用了向量内积的分配律。
码片序列 #
一串二进制串,但是把0写作-1.
例如:(-1 -1 1 1 -1 1 1 -1)
编码规则 #
每个二进制位=该二进制位*码片序列。
因此,对于每个发送方,其发出码片序列的原码就是发送了1,其发出码片序列的反码就是发出了0.
因此,对于连续的比特流,发送方是发出了一系列首尾相连的码片的原码和反码,这相当于数据量变大了。
单码解码 #
注意:解码是以原编码的比特位为单位进行的。因为若干位的码片才代表一个比特位,所以我们处理了m位的码片,实际上只解码了一位比特位。
根据用户码片的分配规则,确保接入此网络的所有用户分配到的码片两两正交。(即:如果把码片看作一个向量,每一分量是这个码片的每一位,则两个码片向量如果不属于用一用户,则内积=0. 当且仅当自己的码片向量和自己的码片向量内积才非0,而且确切地说是等于码片的位数(因为相当于取了向量的模,而向量的每个分量都是1),因此此时再除以码片长度即可得到此码片向量代表的二进制位:如果是1则发送了1,如果是-1则发送了0)
根据此原理,可以看出,如果接收方拿着发送方对应的码片向量去和收到的当前码片向量作内积,则相当于是取了向量模的平方再加个符号,然后除以码片长度即可得到原始编码;
如果接收方收到的这个码片向量与自己拿着的码片向量不匹配,则此时去做内积为0.
因此可以得出:如果内积结果为正负1,那就是解出码了。如果内积结果是0,那这个码不是目标。
多码解码(多路分用提取数据) #
事实上,由于CDM下,用户是同频率、同时发送数据,如果把各个发送方的二进制位都看作码片原码或反码的向量,那么此时信道的信号就是若干这种向量的线性加和。
如果此时还用单码解码的方式去提取信息,会发现仍然是正确的:即如果内积结果为正负1,那就是解出码了。如果是0,则说明期望接收的发送方此刻没有发送比特位。
原因很简单,把刚才哪个线性相加得到的向量拆成若干向量的连加,根据**分配律**,则只有正确的那一项和接收方码片相乘不是0,其余的项都是和接收方相乘=0.