熟悉的通信常用的协议你了解吗.docx
《熟悉的通信常用的协议你了解吗.docx》由会员分享,可在线阅读,更多相关《熟悉的通信常用的协议你了解吗.docx(13页珍藏版)》请在冰点文库上搜索。
熟悉的通信常用的协议你了解吗
最熟悉的通信常用的协议你了解吗
————————————————————————————————作者:
————————————————————————————————日期:
最熟悉的通信常用的协议你了解吗?
熟悉基本通讯协议
分类:
默认栏目
一、TCP/IP:
(1)掌握协议的构成成份。
(2)理解OSI模型、TCP/IP模型。
(3)掌握以太网的接入方法,以太网和802.3帧的区别是什么?
了解无线以太网无线以太帧的构成。
(4)第二层主要设备和工作原理。
(5)掌握IP层主要必须协议、IP编址、理解协议配置步骤。
(6)理解传输和应用层主要协议功能。
二、七号信令
(1)掌握三种信令单元的功能。
(2)信令网组成。
(3)信令点编码。
(4)移动网和信令网的关系。
三、移动网
(1)GSM网络结构、信道、帧。
(2)GSM互联其他网络。
(3)GSM网络组成设备的功能。
(4)GSM的编号。
(5)MSC局数据步骤。
(6)GPRS网络结构。
(7)GPRS协议模型。
(8)GPRS路由管理。
(9)EDGE组网。
(在欧洲使用,我们国家没有,所以只是作为了解内容)
第一、网络技术的基础(向移动通信软件开发人员转型的入门阶段) 要学习通信协议,我们先从网络技术基础开始学起,这也是传统软件开发人员向移动通信软件开发人员过渡的入门知识,掌握这几个知识点后,你也就基本对计算机通信有个概念了。
在本阶段应该掌握以下知识点:
(1)网络协议的概念。
(2)传输模式的种类和它们的区别。
(3)能够描述出OSI(开放系统互连参考模型)的七层。
(4)了解调频、调幅、调相的原理和区别。
(5)知道正交调幅的概念和解决的问题。
(6)知道脉码调制和脉冲幅度调制的区别。
(模数转换的两种方式)
(7)复用的概念及其主要的三种复用技术是什么?
(8)FDM(频分复用)如何将多个信号组合为一个,又如何分开?
FDM和WDM的相似之处和不同之处。
(9)TDM(时分复用)的两种类型。
TDM如何将多个信号合并成一个,又如何分开?
(10)CDM(码分复用)的原理
(11)单比特差错和突发差错的区别。
(12)已知数据比特的位数,掌握计算纠正一位差错所需要的冗余比特数的公式。
(13)海明码的先进之处和引入的目的。
详细介绍:
一、网络协议的基本概念?
网络协议是在网络上的各台计算机之间的一种语言,它是通信双方为了实现通信所进行的约定或所做的对话规则,不同的计算机之间必须使用相同的网络协议才能进行通信(为了避免重复工作,每个协议应该处理没有被其他协议处理过的通信问题,并且协议之间可以共享数据和信息)internet上的计算机通常使用的是TCP(传输控制协议)/IP(互联网协议---主要用于负责IP寻址、路由选择和IP数据包的分割和组装)。
协议包括三部分:
(1)语法:
确定通信双方“如何讲“,定义了数据格式、编码和信号电平等
(2)语义:
确定“讲什么“,定义了用于协调同步和差错处理等信息
(3)同步:
确定“讲话的次序“,定义了速度匹配和排序等
二、传输模式的种类和区别?
(由于传输模式的概念比较简单,本文已省略)
(一)基本概念:
(1)传输:
是信源到信宿之间的过程。
(2)信道:
是指通信系统中传输信息的媒体或通道。
(3)传输速率:
是衡量传输的一个标准,单位是Mpbs(兆比特/秒),它与我们通常所说的“带宽”是一个意思。
(4)带宽:
有两层意思:
从电子电路角度出发,指电子电路中存在一个固有通频带,指的是电路可以保持稳定工作的频率范围(包括显示器带宽、通信/网络中的带宽)。
第二层意思指的就是传输率(如内存带宽、总线带宽、网络带宽等)。
(二)模式分类:
(1)单工:
如键盘和传统的监视器;
(2)半双工:
对讲机和BP机等民用无线电设备都是半双工(无论哪一方进行传输,都使用信道的整个带宽);
(3)全双工:
如电话网络。
原理解释:
两个方向的信号共享链路带宽,共享有两种方式进行:
一种是链路具有两条物理上独立的传输路径,一条发送,一条接收;一种是为传输两个方向的信号而将信道一分为二。
三、画出OSI(开放系统互连参考模型)。
(一)物理层:
包含那些在物理介质上传输比特流所必需的功能,它定义了接口与传输介质的机械和电气特性,也定义了物理设备和接口为了传输而必须执行的过程与功能,还有传输介质的类型。
(二)数据链路层:
将物理层中对数据不做任何改动的传输通道变成可靠的链路,并负责节点到节点的传输。
这样可以将物理层的数据无错的传给上层(网络层)。
具体职责:
(1)成帧(将比特流划分成帧的易处理数据单元)
(2)物理地址(也叫硬件地址)
(3)流量控制
(4)差错控制
(5)访问控制
(三)网络层:
负责将包从源地址传递到目的地址,可能会通过多个网络(或链路)。
网络层的具体任务:
(1)逻辑寻址
(2)路由
(四)传输层:
负责整个报文从源端到目的端(端到端)的传输过程。
建立一条连接包含三个步骤:
建立连接、数据传输和连接释放。
传输层的具体任务:
(1)服务点寻址
(2)拆分和组装
(3)连接控制
(4)流量控制
(5)差错控制
(五)会话层:
前面三层提供的服务对某些进程是不需要的。
会话层是网络的对话控制器,它建立和维护以及同步通信系统交互操作。
具体任务:
(1)会话控制
(2)同步
(六)表示层:
是关于两个系统之间交互信息的语义和语法。
具体职责:
(1)翻译
(2)加密/解密(实际中加密在这层现在并没有实现,都是在高层应用软件来解决的)
(3)压缩
(七)应用层:
使得用户(无论是人还是软件)可以访问网络。
它为用户提供了接口和服务支持,如电子邮件、远程文件访问和传输、共享数据库管理以及其他分布式信息服务。
(注意:
在本层中不增加任何头部和尾部信息)。
应用层的具体任务如下:
(1)网络虚拟终端
(2)文件传输、访问和管理(FTAM)
(3)邮件服务
(4)目录服务
四、了解调频、调幅和调相的原理和区别?
(1)调幅(AM):
对载波信号进行调制,使振幅根据调制信号的改变而变化(调制信号变成了载波信号的包络线)。
调幅信号的带宽BWt等于调制信号带宽BWm的两倍,并且覆盖以载波频率为中心的频率范围。
(2)调频(FM):
载波信号的频率随着调制信号电压(振幅)的改变而调整。
一个调频信号的带宽等于调制信号带宽的10倍,即BWt=10*BWm,而且和调幅带宽一样以载波频率为中心。
(3)调相(PM):
载波信号的相位随调制信号的电压变化而调整,当信息信号的振幅变化时,载波信号和相位随之发生相应的改变。
五、什么是正交调幅
QAM(QuadratureAmplitudeModulation)正交调幅。
一种调制数字信号的编码方法,它兼用振幅编码和相位编码。
该方法既可以用于下行,也可以用于上行,不但可以增加合法信号的数目,也能让信号之间保持较大的差异,它为每个比特组合分配一个给定振幅和相移的信号。
该方法的优点是能充分利用带宽和抗噪声能力强。
(备注说明:
(1)波特率:
模拟信号的速率,等于每秒钟传输的数据位数,有压缩和没压缩之分,跟阀门电路有关.
(2)比特率:
数字信号的名词,模拟信号经过采样量化后,变为数字信号,那在数字信号要如何表示经过数字化的视频和音频呢,就要用到比特率来表示,用的比特位越多(比特就是二进制里面最少的单位),比特率就越大,视频音频质量就越好.
)
六、知道脉码调制和脉冲幅度调制的区别(此为模数转换的两种方式)
(1)脉冲幅度调制(PAM)
按照一定的时间间隔对模拟信号进行采样,接着产生一个振幅等于采样信号的脉冲。
(2)脉码调制(PCM)
由PAM产生的信号看起来似乎是数字式的,但由于脉冲的振幅和采样信号一样,所以其取值是随意的。
使脉冲真正数字化的一种方法为采样信号分配一个预先确定的振幅,这种处理方法称为脉码调制(pulsecodemodulation,PCM)
PCM有几种普通的应用:
其一是长途电话线上的语音信号的数字化。
按照国际标准,每秒采样8000次,每个采样8个比特,依照尼奎斯特定理这个频率是电话机所能够处理的最大语音频率的两倍多一点,它要求每秒8*8000,即大约64kbps的比特速率;
其二是光盘(CD)技术。
CD上的音乐是应用PCM编码成数字格式的。
七、复用的概念及其三种主要的复用技术是什么
(一)复用:
当连接两台设备的介质的传输能力比设备间的传输要求更高时,该链路就可以被共享。
复用就是允许同时通过一条数据链路传输多个信号的一种技术。
(二)主要的复用技术:
(1)频分复用FDM:
所有用户在同样的时间占用不同的带宽资源。
多路信号调制在不同载频上进行复用。
是一种模拟技术,在链路带宽大于要传输的所有信号带宽之和时采用。
如有线电视、无线电广播、光纤的波分复用、频分多址的TACS制式模拟移动通信系统。
(2)时分复用TDM(是在物理层实现的):
所有用户在不同的时间占用同样的频带宽度。
多路信号占用不同时隙进行复用。
是一个数字化过程,当传输介质的数据速率容量大于发送和接收设备所需要的数据速率时就可以采用它。
如电话网采用这种技术。
包括同步时分复用(电路交换)和异步时分复用(包交换)。
在这里我多说几句:
中国采用欧洲体制,以E1为一次群(2.048M=32*64k);
而美国、日本等国家采用北美体制,以T1为一次群(24*64k)。
具体原理:
3.9ns为一个话路,共32个话路,发送方逆时针旋转的同时接收方顺时针旋转,转一圈就是一帧,它的缺点是浪费资源。
(3)码分复用CDM:
多路信息调制在不同的码型上进行复用。
(例如码分多址CDMA数字移动通信技术,cdma的多址技术的原理是采用一组正交或准正交的伪随机序列通过相关处理实现多用户共享频率资源和时间资源)
八、FDM如何将多个信号组合为一个?
又如何将一个FDM信号分离成原来的多个?
FDM和WDM有何相似之处和不同?
(1)复用过程:
FDM是一个模拟过程,把频率范围相似的信号采用调幅或调频技术将信号调制到独立载波频率上(f1、f2、f3),然后将调制后的信号合成为一个复合信号并通过具有足够带宽容量的介质链路发送出去。
载波频率之间的频率差必须能够容纳调制信号的带宽。
这些带宽范围就是不同信号传输的信道。
信号之间必须由狭长的未用带宽(警戒频带)以防止信号交叉。
另外,载波频率必须不会影响原来的数据频率。
(2)多路分解:
在多路分解器中采用了一系列过滤器来将复合信号分解成组成它的各个信号。
每个信号随后被送往解调器,解调器将他们与载波信号分离并转发给等待的接收方。
(3)波分复用WDM是频分的一个特例,用在光纤通信中,除了复用和多路分解包括通过光纤信道传输光信号之外wdm在概念上与频分复用相同。
不同之处是组合的频率很高。
九、时分复用的两种类型,TDM如何将多个信号合并成一个,又如何分开?
考虑TDM实现的两种方法。
多道传输流通过细分链路和交织过程来使用单条链路,采用的链路与FDM中一样,但是这里显示的分割是时间上的并不是频率上的,信号按顺序占据链路。
(一)同步时分复用:
同步所包含的意义与在远程通信等其他领域中的含义不同,这里同步是指复用器在所有时间为每个设备都分配完全一样的时间片,不管该设备有没有数据要传输。
(1)帧。
一帧由时间片的一个完整循环组成,包括分配给每个发送设备的一个或者多个时间片。
(2)交织。
同步时分复用以恒定速率和固定顺序在设备间轮转的过程乘坐交织。
(3)帧定位比特。
因为在同步时分复用系统中各帧内时间片的顺序不变,因而在每帧头上只需要很少的额外开销。
(4)同步时分复用实例
(5)比特填充。
(二)异步时分复用。
同步时分复用不能保证使用链路的全部容量。
实际上很有可能在一个给定时刻只使用了一部分时间片。
因为时间片是预分配的和固定的。
每当有一台设备不发送时,对应的时间片就会是空的并且浪费了通路带宽。
异步时分复用(也叫统计复用)就是为避免这种浪费而设计的,这里的异步是可变的、不固定的。
异步时分复用允许将许多较低速率的输入线路复用到一条较高速率的线路上,但是与同步时分复用不同的是,在异步中所有输入线路之和可能比通路容量大。
十、单比特差错和突发差错的区别?
(1)单比特差错是指在给定数据单元(例如一个字节、字符、数据单元或数据包)只有一个比特被从0变为1或是从1变为0,即在数据单元中只有一个比特发生了改变。
(2)突发差错指数据单元中的两个或者连个以上连续的比特从0变为1或是从1变为0.但它的长度是由第一各改变的位置到最后一个改变的位置来确定,其中间某些比特可以不改变
突发差错大多发生在串行传输时。
十一、已知数据比特的位数,计算纠正一位差错所需要的冗余比特数的公式是什么?
2的r次方大于等于m+r+1
(说明:
m为给定数量的数据位数即要传输的数据单元的原始长度;r为冗余位的数量,它的值可以通过插入m)
十二、引入海明码的目的和作用是什么?
海明码是一种可以纠正一位差错的编码。
它可以利用单比特差错状态所需要的比特数来发现出现的差错状态,它可以在任意长度的数据单元上应用。
海明码的纠错在物理层。
这个阶段的内容大概就是这么多。
下面我来总结一下这个阶段的一些东西或者一些需要读者必须掌握的东西,当然这个掌握是相对而言的。
其实,涉及到物理层的东西是固化的东西,我们在实际工作中根本就用不到,但是作为(移动通信软件工程师)通信入门的基础还是必须得了解的,我们可能做不到精通但是大概应该听过这些东西。
首先,我说一下OSI(开放系统互连参考模型)七层。
我们知道这个模型是由国际标准化组织(ISO)制定的一个覆盖网络通信各个方面的标准,包括以后要讲到的TCP/IP模型都是这个模型(OSI)某层具体实现的一个版本。
建立七层模型的主要目的是为解决异种网络互连时所遇到的兼容性问题。
它的最大优点是将服务、接口和协议这三个概念明确地区分开来:
服务说明某一层为上一层提供一些什么功能,接口说明上一层如何使用下层的服务,而协议涉及如何实现本层的服务;这样各层之间具有很强的独立性,互连网络中各实体采用什么样的协议是没有限制的,只要向上提供相同的服务并且不改变相邻层的接口就可以了。
网络七层的划分也是为了使网络的不同功能模块(不同层次)分担起不同的职责。
从应用层开始说起,它为应用程序提供接口,应用程序调用这个接口以实现对应用程序的一个初始化。
接下来是表示层涉及到编码(比如同样的文件在windows系统和linux系统下编码肯定会不一样)、加密和压缩,要加入表示层首部H6。
再往下是会话层,跟踪会话、管理传输模式(比如是全双工还是半双工等等),要加入会话层首部H5,再下边是传输层,这是应用程序的终点传输数据片(切片工作是由网络层来完成的)每片加上首部H4,加源端口和目的端口,这个层已经有了识别应用程序的能力,以上四层在本机实现(有人观点会不同:
把传输层独立出来将上三层和下三层连接起来并保证下层是以上层能够使用的型式传输的)
低三层再来说一下,网络层包括主机域和网络域,它解决的是网间的寻址(IP地址),再往下是数据链路层,解决寻找硬件地址,即网段中具体的某一台机子,再下边是物理层,注意它不是实际的传输介质,但是它定义了传输介质的接口和机械与电气特性(规程就是流程的意思;电气特性就是电平信号的一些定义;机械特性就是比如传输介质的尺寸的配合等等,格式化的数据经过这层后它被转换成电磁信号,并在物理链路上传输)。
说到物理层我们不得不说两种设备:
DTE和DCE:
前者是数据终端设备,是具有数据处理、发送和接收能力的一种设备(比如路由器,可以想象成计算机或者终端);后者是数据通信设备,它在DTE和传输线路之间提供信号变换和编码的功能。
注意:
DTE和DCE之间是由物理层来定义的(这里用到典型的物理规范RS232,可以说是串行通信的一种协议EIA-232/V.24),标准的传输距离是100米,这里进行简单的信号定义即可通信如只是对:
信号地、保护、发送数据和接收数据的定义。
概括:
在发送端每一层都在从直接上层传来的报文中加上自己的信息并将整个包传到它的直接下层,这些信息以报文头或尾部(附加在数据包的头或尾的控制信息)的型式加入报文,一般来说报文头加在第6、5、4、3、2层,尾部通常只加在第二层。
在接收端报文被一层一层地打开,每一层接收并提取对他有意义的数据。
我们说两台计算机之间能不能通信呢?
这句话严格来说是错误的,应该是计算机之间的应用程序之间的通信。
那么如何实现两台计算机应用程序之间的通信呢?
第一、通过网络层寻找网络地址(逻辑地址即我们通常所说的IP地址)。
第二、通过数据链路层来识别是那个网络的具体哪一台机子(即通过这个层的ARP和RARP协议将IP地址映射为硬件地址)。
第三、通过应用层的端口号来识别是哪个应用程序(说明:
不是只有端口才能识别应用程序)。
举例来说:
比如我的机器上有应用程序A,进程号是1073(所谓进程号是由操作系统来识别的),那么我这边需要有源端口和目的端口,源端口是可以是0~65535之间的随机数字,目的端口必须小于1021(必须小于1024),那么对方机器也有一个应用程序B,进程号是1097,那么它的源端口也是0~65535(必须是之间的数字)之间的随机数字,而且B程序的目的端口也必须是1021(必须小于1024).
如果链路是理想的传输信道,所传送的任何数据既不会出差错也不会丢失,那么数据链路层协议是根本不需要的。
但是,这可能吗?
不可能。
所以我们需要数据链路层协议。
如果不管发送方以多快的速率发送数据,接收方总是来得及收下,并及时上交主机,那么数据链路层协议也是不需要的。
但是,这可能吗?
不可能。
所以我们还是需要数据链路层协议。
这就是说,传输数据的信道是不可靠的(即不能保证所传的数据不产生差错),并且还需要对数据的发送端进行流量控制。
看看最简单的停止等待协议。
收方在收到一个正确的数据帧后,向发方发送一个确认帧ACK(表示“我收到啦”)。
当发方收到确认帧后才能发送一个新的数据帧。
这样就实现了收方对发方的流量控制。
假如数据帧在传输过程中出现了差错。
由于通常都在数据帧中加上了循环冗余校验CRC,所以收方很容易校验出收到的数据帧是否有差错。
当发现差错时,收方就向发方发送一个否认帧NAK(表示“嘿,哥们儿,你搞错了”),以表示发方应当重发出错的那个数据帧。
有时,链路上的干扰很严重,或由于其他一些原因,收方收不到发方发来的数据帧。
这种情况称为帧丢失。
发生帧丢失时,收方当然不会向发方发送任何应答帧。
如果发方要等收到收方的应答信息后再发送下一个数据帧,那么就将永远等下去。
要解决这个问题,可在收方发送完一个数据帧时,就启动一个超时定时器。
若到了超时定时器所设置的重发时间仍收不到收方的任何应答帧,则发方就重传前面所发送的这一数据帧。
然而现在问题并没有完全解决。
当出现数据帧丢失时,超时重发的确是一个好办法。
但是若丢失的是应答帧,则超时重发将使收方收到两个同样的数据帧。
由于收方现在无法识别重复的数据帧,因而在收方收到的数据中出现了另一种差错,称为重复帧。
要解决这个问题,必须使每一个数据帧带上不同的发送序号。
若收方收到序号相同的数据帧,就表明出现了重复帧。
这时应当丢弃这重复帧。
但应注意,此时收方还必须向发方发送一个确认帧,因为收方已经知道发方还没有收到上一次发过去的确认帧。
我们知道,任何一个编号系统的序号所占用的比特数一定是有限的。
因此,经过一段时间,发送序号就会重复。
序号占用的比特数越少,数据传输的额外开销就越少。
对于停等协议,由于每发送一个数据帧就停止等待,因此用一个比特来编号就够了。
就是说序号轮流使用0和1。
由于发方对出错的数据帧进行重复是自动进行的,所以这种差错控制体制常简称为ARQ(AutomaticRepeatreQuest),直译是自动重复请求,意思是自动请求重发。
停止等待协议ARQ比较简单,但信道利用率不高,信道远远没有被数据比特填满。
为了克服这一缺点,就产生了另外两种协议,即连续ARQ和选择重传ARQ。
连续ARQ的要点就是在发送完一个数据帧后,不是停下来等待应答帧,而是可以连续再发送若干个数据帧。
如果这时收到了收方发来的确认帧,那么还可以接着发送数据帧。
由于减少了等待时间,整个通信的吞吐量就提高了。
但是,收方只按序接收数据帧,如果收到有差错的某帧之后接着又收到了正确的几个数据帧,都必须将它们全部丢弃;而发方在重传时,又必须把原来已正确传送过的数据帧进行重传(仅因为这些数据帧之前有一个数据帧出了错)。
这种做法又使传送效率降低。
由此可见,若传输信道的传输质量很差因而误码率较大时,连续ARQ不一定优于停止等待协议。
为了进一步提高信道的利用率,可设法只重传出现差错的数据帧或者是定时器超时的数据帧。
但这时必须加大收方的缓冲区,以便先收下发送序号不连续但仍处在缓冲区中的那些数据帧。
等到所缺序号的数据帧收到后再一并送交主机。
这就是选择重传ARQ协议。
使用选择重传ARQ协议可以避免重复传送那些本来已经正确到达收方的数据帧。
但我们付出的代价是在接收端要设置具有相当容量的缓冲空间,这在许多情况下是不够经济的。
正因为如此,选择重传ARQ协议在目前就远没有连续ARQ协议使用得那么广泛。
停止等待协议的要点有:
(1)连续出现相同发送序号的数据帧,表明发送方进行了超时重传,接收方连续收到相同发送序号的数据帧,表明接收端收到了重复帧。
(2)发送端在完成发送数据帧时,要保留副本以备没有发送成功进行重传,直到确认收到后则清除这个副本。
(3)CRC检验是由硬件完成的,自动丢弃出错帧(用户或上层软件感觉不到)
滑动窗口(协议)
(1)发送端和接收端分别设置发送窗口和接收窗口;
(2)发送窗口用来对发送端进行控制;
(3)发送窗口的大小Wt在对方还没有发送过来之前规定的窗口的大小,规定对方最多发送多少个数据帧(明确一点:
是接收方发给发送方)。
重要性:
当发送窗口和接收窗口的大小都等于1时,就是停止等待协议(因为等于1时就没有校验尺了,每一次都要确认,就会称为停止等待协议,应该是成批的数据才可以。
)