[1]概述
Internet=因特网=互联网,1983年TCP/IP协议成为ARPANET上的标准协议标志着Internet诞生。
internet=互连网,泛指由多个计算机网络互连而成的计算机网络。
互联网两个基本特点
连通性、共享
计算机网络
由若干结点(计算机、集线器、交换机、路由器、网桥等)和链路组成。
主机
与网络相连的计算机。
ISP和IXP
ISP互相网服务提供商:从互联网管理机构申请到很多IP地址提供给用户使用。
IXP互联网交换结点:允许两个网络直接相连并交换分组,而无需通过其它网络。
互联网的组成
边缘部分:由所有连接在互联网上的主机组成。
核心部分:由大量网络和连接这些网络的路由器组成。
主机上进程通信方式
客户-服务器模式:客户是服务请求方,服务器是服务提供方,可以并发或并行处理多用户。
P2P对等连接方式:本质上看对等连接中的每一台主机既是客户又是服务器。
####电路交换
早期电话机用电路交换,建立连接->通话->释放连接,在这样的时间内双方占用端到端全部通信资源。
分组交换
把一个报文划分成几个分组后再进行传送,路由器(实现分组交换的专用计算机)存储转发故不用占用必经链路上的所有网络资源。链路只当分组正在此链路上时才被该分组占用。
分组到达一个路由器后,先暂存下来,利用路由选择协议能自动找到转发分组的合适路径。
报文交换和分组交换的区别
报文交换需要全部存储下来后查找转发表,分组交换只要单个分组传到相邻结点存储下来后查找转发表转发到下一结点。
按照作用范围分类
广域网WAN、城域网MAN、局域网LAN、个人区域网PAN
按照网络使用者分类
共用网、专用网
网络性能指标
①速率:数据的传送速率,也称数据率或比特率,单位bit/s。
②带宽:信号的带宽是各种频率成分占据的频带范围,单位Hz;网络带宽表示单位时间内网络中某信道所能通过的最高数据率,单位bit/s。
③吞吐量:单位时间内通过某个网络(或信道、接口)的实际数据量,单位bit/s。
④发送时延:即传输时延,主机或路由器发送数据帧所需的时间。
⑤传播时延:在信道中传播需要耗费的时间。
⑤传播时延:在信道中传播需要耗费的时间。
⑥处理时延:主机或路由器处理分组的时间。
⑦排队时延:分组进入路由器后在输入队列中排队的时间,处理的很快时可以把排队时延近为处理时延。
⑧时延带宽积:可以理解成链路充满信息时有多少比特的信息,即"以比特为单位的链路长度"。
⑨往返时间RTT:从完成发送到收到响应的时间,表征通信双方交互一次用时。可以用来定义有效数据率:
⑩信道利用率:指出该信道有百分之几的时间是被利用的。
⑪网络利用率:全网络的信道利用率的加权平均。
时延受利用率的影响
信道或网络的利用率过高会产生非常大的时延。
网络协议
为进行网络中的数据交换而建立的规则、标准或约定。
①语法:数据与控制信息的结构或格式。
②语义:需要什么控制信息,来完成什么动作或做出什么响应。
③同步:事件顺序的详细说明。
划分层次
概述每层作用
⑤应用层:通过应用进程间的交互来完成特定的网络应用。
④运输层:向两台主机中进程之间的通信提供通用的数据传输服务。使用TCP则传输的是报文段,使用UDP则传输的是用户数据报。复用:多个应用层进程可以同时使用下面运输层的服务。分用:把运输层收到的信息分别交付上面应用层的相关进程。
③网络层:把运输层产生的报文段或用户数据报封装成IP数据报进行传送。
②数据链路层:数据链路层将网络层传下来的IP数据报组装成帧,每一帧包含必要控制信息,检验出了差错则丢弃这个帧。
①物理层:在物理层传输的是比特(0或1),传递信息用的实际物理媒体不在物理层协议之内,而是在物理层协议下面。
协议和服务
协议是"水平"的,控制两个对等实体进行通信的规则的集合;服务是"垂直"的,由下层向上层通过层间接口实现的。
PDU和SDU
协议数据单元PDU是对等层次之间传送的数据单位,服务数据单元SDU是层与层之间交换的数据单元。上层PDU是本层的SDU,经过本层处理后形成本层PDU。
[2]物理层
模拟信号和数字信号
连续的信号是模拟信号,离散的是数字信号。在数字信号中,代表不同离散数值(不见得是0和1)的基本波形称为码元。
通信交互方式
单工通信:只有一个方向的通信,而没有反方向的交互。
半双工通信:通信双方都可以发送信息,但不能同时发送。
全双工通信:通信双方可以同时发送和接收信息。
调制
许多信道不能传输来自信源信号的低频分量或直流分量,所以需要调制。
图中基带信号表示基本频带信号,带通信号表示在一段频率范围内能通过信道的信号。
常用编码方式
不归零制和归零制不画了,不归零制用在计算机内部,正电平为1,负电平为0。
差分曼彻斯特在1时才有跳变,0时不跳变,一般用在令牌环网。
曼彻斯特编码有固定的1和0的波形,用在以太网。
自同步能力
不归零制不能从信号波形本身中提取信号时钟频率(试想111000111000…这样的脉冲),这就是没有自同步能力,曼彻斯特编码有自同步能力。
基本的带通调制
调幅(AM):载波振幅随基带数字信号变化。
调频(FM):载波频率随基带数字信号变化。
调相(PM):载波的初始相位随基带数字信号变化。
奈氏准则
在任何信道中,码元传输速率有上限,大于此上限会出现严重码间串扰,接收端无法识别。
信噪比
若S是信号平均功率,N是噪声(高斯噪声)平均功率,则信噪比为:
香农公式
已知信道的带宽W(单位赫兹),则信道极限传输速率:
在既有条件下,要提高信息传输速率,可以让一个码元携带更多比特的信息量。则以同样的速率发送码元可以获得更高的信息传输速率。
信道复用技术
①频分复用FDM:所有用户在同样的时间占用不同的带宽资源。
②时分复用TDM:将时间划分为一段段等长的TDM帧,所有用户在不同时间占用同样的频带宽度。
③统计时分复用STDM:每个STDM帧中的时隙数小于连接在集中器上的用户数,当一个帧的数据放满了就发出去。因为时隙不是固定分配给用户,在每个时隙中还必须有用户的地址信息。
④波分复用WDM:即光的频分复用,只是对于光我们常讨论波长而不是频率。
⑤码分复用(CDM):在同样的时间使用同样的频带,但是每一个站的码片序列互相正交(规格化内积为0),所以不会互相干扰。
在码片序列中用-1代表0,1代表1,则可以用收到的码片序列和每个站做内积看是否发送了数据以及发送的是1还是0:
数字传输标准
①同步光纤网SONET标准:以51.84Mbit/s为基础,该速率对应的电信号称为STS-1,光信号称为OC-1。即对应于STS-n的光纤线路为OC-n。
②同步数字系列SDH标准:以155.52Mbit/s为基础,该速率对应的信号称为STM-1,即相当于SONET中的OC-3。
[3]数据链路层
从整个互联网来看,局域网仍属于数据链路层范围(没经过路由器转发)。数据链路层向网络层提供可靠、透明的数据传输服务。
数据链路层使用的信道
点对点信道:一对一点对点通信。
广播信道:使用一对多的广播通信方式,比较复杂。
链路和数据链路
链路:从一个结点到相邻结点的一段物理线路(有线或无线)。
数据链路:把支撑通信协议的软硬件加到链路上即数据链路。
####封装成帧
上层交下来的IP数据报即是本层帧的数据部分,头尾分别加上头部和尾部,可以进行帧定界并包含控制信息。如对可打印ASCII码数据可以使用这样的帧定界符:
透明传输
透明传输意思是,无论什么样的比特组合的数据,都能够按照原样没有改变地通过这个数据链路层。如在前面说的可打印ASCII码数据传输时,要使得数据部分中的SOH和EOH不被解释为控制符,可以在其前插入转义符ESC:
这种方式称为字符填充或者字节填充。
差错检测
差错检测可以用检错码(如奇偶校验、循环冗余检验),还可以用更好的纠错码(如海明码)。
CRC循环冗余检验
①对原始数据的处理——生成FCS帧检验序列并拼接发送:
事先给定一个n+1位的生成多项式:
则被除数就是1101,n+1就等于这个位数4,所以在原始信息后面加4-1=3个0,然后去除以这个被除数,注意作减法时是按位的(相同为0不同为1),写商时候让你乘出来的最高位和上面减下来的一样,这样子位数才会缩减:
最后把原始信息和FCS拼起来就是要发送出去的序列。
②对接收到的数据的检验——CRC检验:
把接收到的序列除以约定好的生成多项式表征的被除数,如果余数不为0,则认为出现了差错。
海明码
一般的海明码可以用来纠正1比特错误,事实上:
如要检测d比特错误,则编码集汉明距离至少为d+1
如要纠正d比特错误,则编码集汉明距离至少为2d+1
这里不讨论这么复杂。
假设添加的冗余位是r位的,原帧长为k位,要纠正1比特错误,则应满足:
因为海明码最后是用r记录的序列来判断哪一位出错的,必须要**留出一种序列来表示"没有出错"**这种情况,所以要减掉这个1。
对一个比特序列去生成它的海明码,先要根据上面那个公式找出r最小是多大。以k=4为例子,知道r=3恰好可以,也就是要添加3位的冗余位。
冗余位的添加不像CRC那样全部加在末尾,而是加在2的阶次的位置上,所以序列变成了:
而每个R的具体值要根据一些特定的I的异或(不同为1,相同为0)得来,这是根据:
从而I7,I5,I3参与了R1的生成,I7,I6,I5参与了R4的生成,I7,I6,I3参与了R2的生成。也就是说:
这样就可以发送出去了。
当发送方接收到这个序列{I7,I6,I5,R4,I3,R2,R1}的时候,就用校验位和所有参与生成的信息为异或,得到校正因子(S2S1S0),也就是说:
如果S2S1S0=000,则表示无错(没有0这个位置),否则将其十进制表示的那个位置取反。如S2S1S0=101则将接收到的I5取反,又如S2S1S0=010则将接收到的R2取反。
PPP协议
PPP协议(点对点协议)是用户计算机和ISP(互联网服务提供商)进行通信时使用的数据链路层协议。
在PPP协议中,接收方每收到一个帧,就进行CRC检验,以决定收下还是丢弃这个帧,其它什么也不做。PPP协议的最大传送单元MTU默认值是1500,也就是说其信息部分不能超过1500字节,如果上层发送来的分组超过MTU的数值,就要丢弃并返回差错。
####PPP协议组成
①将IP数据报封装到串行链路的方法,IP数据报在PPP帧中就是其信息部分。
②一个链路控制协议LCP,用来建立、测试、配置数据链路。
③一套网络控制协议NCP,其中每个协议支持不同的网络层协议(一般都是用IP数据报)。
PPP帧的字节填充和零比特填充
PPP协议使用异步传输(逐字符发送)时,采取字节填充实现透明传输。
PPP协议使用同步传输(一连串比特连续发送)时,采取零比特填充实现透明传输。
字节填充:
针对信息字段:
出现和标志字段一样的7E时内插(D,5)变成7D,5E;
出现转义符7D时内插(D,5)变成7D,5D;
出现小于0x20的ASCII码控制字符时前置转义符7D,且该字符改变。在接收端收到数据后做相反的变换。
零比特填充:
针对信息字段:
在发送端扫描信息字段只要发现有5个连续的1就立即尾接一个0。
在接收端扫描信息字段只要发现有5个连续的1就删除后面的一个0。
数据链路层的子层
早期划分为逻辑链路控制LLC子层和媒体接入控制MAC子层:
不过现在很多网络接口卡NIC上已经没有LLC协议而只有MAC协议了。