网络体系结构
网络协议是计算机网络体系结构的关键要素之一。协议包含三个要素:语法、语义和时序。语法是数据与控制信息的结构或者格式。语义是需要发出何种控制信息、执行何种动作或返回何种应答。时序关系是事件实现顺序的详细说明。协议与计算机的网络层次结构想对应。协议体系结构的思想是:用一个构造好的模块集合来完成不同的通信功能。
应用层
- 应用层功能
网络的应用层是网络体系结构中的最高层,他是计算机开放互联环境与本地系统的操作环境和应用系统直接接口的一个层次。在功能上,应用层为本地系统的应用进程访问网络环境提供手段,也是唯一直接给应用进程提供各种应用服务的层次。即借助应用实体、应用协议和应用服务实现端点用户之间的信息交换。
- 应用层实现模型
计算机网络的最终目的是为现实的应用系统(应用进程)创建一种开放的互联通信环境(即OSI环境),并提供本地系统与外界系统进行应用合作的各种应用服务。实际应用系统中,当与远端的应用系统进行交互时,应用进程除了与OSI环境进行交互之外还与本地系统进行交互。以本地应用进程A与另一端系统中的B应用进程发送问津为例,进程A在发送前首先需要通过本地系统找到该文件(与OSI无关),然后发送给进程B(与OSI关)
传输层
- 传输层的主要功能
传输层是网络体系结构中最关键的一层,是资源子网和通信子网的界面和桥梁,它是面向应用的高层和面向通信的低三层协议之间的接口
- 传输层的服务质量
传输层位于低层和高层之间,起到从通信到应用间的桥梁作用。它通过补充完善通信子网服务质量的差异和不足,向其高层提供统一服务质量的透明数据传输服务。传输层向上层提供的服务是利用网络层服务来实现的。不同的通信子网所提供的网络服务质量是不一样的,这里的服务质量主要是指差错率。因为无论何种网络,传输层都要向高层提供同样的服务,所以,如果通信子网的服务质量好,传输层所具有的功能好久可以相应的少,反之则多。
通信子网俺服务质量的不同可分为A、B、C三种类型。
- A型网络:A型网络具有可接受的残留差错率和可接受的故障通知率,残留差错率是指未纠正的差错,故障通知是指网络层检测到并通知传输实体予以纠正的故障。这种网络提供近乎可靠的网络服务,当分组在网络中传输时,既不丢失、重复,也不失序。虚电路服务属于A型服务。公用广域网很少具有这种性能。
- B型网络:B型网络具有可接受的残留差错率和不可接受的故障通知率。B型网络服务较差,利用该网络的传输层必须提供差错恢复功能。X.25分组交换网等广域网所提供的服务属于B型服务。
- C型网络:C型网络具有不可接受的残留差错率。因为这种网络不能检测到差错,因此运行在这种网络上的传输层协议不仅要能检测到差错,而且要有差错恢复能力。数据报服务的网络或无线分组交换网络均属于C型服务。
- 寻址
传输层要在用户进程之间提供可靠的和有效的端到端的服务,必须把一个目标用户进程和其他的用户进程区分开来,这是由传输地址来实现的。目标用户需要这样的说明:用户标识、传输实体、主机地址和网络号码。传输层定义一组传输地址,以供通信选用:
传输地址的构成有两种方法:
- 层次地址:该地址由一些列域组合而成,把他们从空间上分开。例如:地址=<国家><网络><主机><端口>这种方法的优点是路径选择方便,建立新街口也比较方便,而且不受高位编码的制约。其缺点是进程移动不方便,因原地址在新机器上不能用,故而路径选择缺乏灵活性。
一个实例就是在因特网中用<IP地址><端口号>表示TSAP
- 平面地址空间:平面名称对于地理上或者任何其他层次方面都无特定关系的传输地址,可以一个号码当做单一系统内的地址。用这种方法确定的地址是唯一的,而且同它所处的位置无关。
- 建立与释放连接
传输服务有两大类:面向连接的传输服务和无连接的传输服务。无连接的传输服务比较简单,不需要进行传输控制。而对于面向连接的传输服务的两个用户(或者进程)进行相互通信,一般需要经历三个过程:建立连接、数据传输和释放连接。
- 流量控制与缓冲策略
传输服务为保证连接的可靠性,需要对连接进行管理,流量控制是连接管理的基本内容之一。缓存是实行流量控制的必要措施。
- 传输服务原语
服务在形式上是以一组原语来描述的。原语被用来控制服务提供者采取某些行动,或报告某同层实体已经采取的行动。在OSI参考模型中,服务原语划分为四种:
- 请求:用户利用它要求服务提供者提供某些服务,如建立连接或者发送数据等
- 指示:服务提供者执行一个请求之后,用指示原语通知收方的用户实体,告知有人要与之建立连接或者发送数据等
- 响应:收到指示原语之后,利用响应原语向对方作出反应,例如同意或者不同意建立连接等
- 确认:请求对方可以通过接收确认原语来获悉对方是否同意接受请求。原语可以携带参数,如连接请求原语的参数包括机器连接需要什么服务类别等。连接只是原语的参数包含呼叫者标识、需要服务的类别等
网络层
网络层是通信子网的最高层,是高层与底层协议之间的界面层。网络层用于控制通信子网的操作,是通信子网与资源子网的接口。网络层关系到通信子网的运行控制,决定了资源子网访问通信子网的方式。
- 数据报与虚电路子网
网络层的内部构造指的是网络层内部是如何工作的。有两类构造通信子网的方法,即面向连接和无连接的方法。从通信子网内部操作的角度看,通常成连接位虚电路,类似于电话系统建立的物理电路。采用面向连接的方法构造的通信子网称为虚电路通信子网。采用无连接方法构造的通信子网称为数据报通信子网。经数据报通信子网传送的是独立选路的分组,称为数据报,与普通的邮件类似。
数据链路层
数据链路层是OSI模型的第二层,它介于物理层和网络层之间。用于在相邻节点间建立数据链路,传送以帧为单位的数据,使其能够有效、可靠的进行数据交换。本层通过差错控制、流量控制等,将不可靠的物理传输信道编程无差错的可靠的数据链路。将数据组成适合正确传输的帧的形式的数据单元,对网络层屏蔽物理层的特性和差异,是高层协议不必考虑物理传输介质的可靠性问题,进而把信道编程无差错的理想信道。
产生阻塞的主要原因有:
- 当一个发送信息的机器相对于接收信息的机器来说,以过快的速率进行信息传送时,接收机的缓冲区无法处理这样快的传输,就会导致阻塞
- 当一个工作站突然发送大量的数据给另外一个工作站时候会产生阻塞
解决阻塞的方法有:
- 通过对点到点的同步控制,来保证发送方发送数据的速度与接收方接收数据的速度相匹配
- 控制网络的输入,避免产生一个工作站突然将大量的数据报文提交给另外一个工作站的现象
- 接收工作站在接收数据报文之前,要保留出足够的缓冲存储空间
- 数据链路层成帧方法
在数据链路层,数据按照帧传送,当出现差错时候,可以只重传有差错的帧。为了接收方应能从到达的数据流中准确的区分出各个帧的边界,称为帧同步。帧同步又称为成帧。
- 字符计数法:字符计数法在帧头中设置一个字段以标明该帧包含的字符数,字符计数法存在的问题是,如果某帧的字符计数字段出错将导致目的方无法知道该帧的实际长度,因而目的方无法确定下一帧的开始位置,出现与发送方不同步。因此现在很少单独使用字符计数法。
- 带字符填充的首尾界符法:该方法避开了出错后再同步的问题,每一帧以ASCII字符序列的DLE STX开头,以DLE EXT结束(DLE代表DataLinkEscape;STX代表Start of Text; ETX代表End of Text)。目的机器一旦丢失帧边界,只需查找DLE STX或DLE EXT字符序列,就可以重写找到帧边界所在的位置。
- 带位填充的首尾界符法:这种计数允许数据帧包含任意位数(在最大帧范围内)。其工作方式如下:每一帧使用一个特殊的位模式,例如0111|110作为开始和结束标志。当发送方的数据链路层在数据中遇到5个连续的1时,就会自动在其后插入一个0当接收方收到5个1后面跟着一个0时候自动将此0删除。这种方法使得帧的数据字段可以包含任意的位序列,称为位填充技术
- 物理层编码违例法:在物理线路编码(将数据用电信号的波形表示出来)方案中采用冗余技术的网络,可以采用这种成帧方法。一些局域网用两个码元译码成数据的一位。例如:采用曼彻斯特编码时,将数据位1编码为高低电平对,将数据为0编码为低高电平对,而高高电平对和低低电平对(无效物理编码)则用作帧界定符。
- 数据链路层差错控制方法
计算机通信要求有极低的位差错率,为此,广泛采用编码技术来进行差错控制。一类是前向纠错,采用纠错码;一类是检错重发,采用检错码。
- 前向纠错:接收方收到有差错的数据帧时,能够自动将差错改正过来。这种方法开销较大,不适合于计算机通信。
- 检错重发:接收方收到有差错的数据帧时,检测到差错并让发送方重发该帧,知道接收方接收正确为止。在计算机通信中常用检错重发方法。
- 基本的链路控制规程
通信控制规程又称传输控制规程。他是为实现传输控制所制定的一系列规则。数据通信的过程包括5个阶段:线路连接、确定发送关系、数据传输、传输结束、拆线。每个阶段中都有一定的规定。所以,在通信控制规程中涉及到数据编码、同步控制、差错控制、应答方式、传输控制步骤、通信方式和传输速率等内容。
- 面向字符型链路控制规程:此规程规定一些特殊的非打印字符作为帧界定符,以实现发送和接收方的同步。除了帧界定符以外,还需要一些其他的控制字符,如询问、确认等,总共设置了10个传输控制字符。面向字符的数据链路控制规程有分为两类:一类以规定的字符作为帧的开始结束,实现帧定界,以保证同步。另一类以帧的长度来实现帧的分界。
- 面向比特型链路控制规程:随着通信量的增加以及计算机网络的应用范围不断扩大,低效率嵌进控制字符面向字符的数据链路规程越累月力不从心,面向比特的数据链路规程解决了这个问题,其典型代表是高级数据链路控制协议HDLC
- 数据链路层协议
数据链路层协议中最具有代表性的是高举数据链路控制协议HDLC。
HDLC是面向比特的数据链路控制规程。HDLC协议具有透明传输、可靠性高、传输效率高和灵活性强等特点。HDLC协议规定了数据传输的操作模式、数据帧格式、帧类型等
- 通信站类型:HDLC协议允许有三种类型的通信站:主站、从站和复合站三类
- 主站:主站负责控制链路的操作与运行。主站向从站发送命令帧,并从从站接收响应帧。在多点链路中,主站负责管理与各从站之间的链路
- 从站:从站在主站的控制之下进行工作。从站发送响应帧作为对主站命令帧的响应。从站对链路无控制权,从站之间不能直接进行通信。
- 复合站:同时具有主站和从站的功能,既可以发送命令帧,也可以发送响应帧
- 链路结构:HDLC协议规定了两种链路结构:不平衡链路结构和平衡链路结构
- 不平衡结构:不平衡结构有一个主站和一个或者多个从站被链接在一条线路上
- 平衡结构:平衡型结构由两个复合站的点对点联接构成。两个复合站都具有数据传送和链路控制能力
- 数据响应方式:HDLC协议由三种数据响应方式
- 正常响应方式(NRM):这是一种不平衡型结构的操作方式。在这种操作模式中,从站只能为了响应站的命令帧而进行传输,从站在确切地接收到来自主站的允许传输命令之后才可以开始响应传输。响应信息可以有一个或者多个帧组成,同时保持占线状态,并之处哪一个是最后一帧。从站在发出最后的响应帧之后,将停止发送,知道再次收到从主站发出的确切的允许传输的命令之后才能重新开始传输
- 异步响应方式:这是一种不平衡结构的操作方式,在这种操作模式中,在传输帧中可以包含有信息,或者仅以控制为目的而发送的帧,由从站来控制超时和重发
- 异步平衡方式:这是一种平衡型结构的操作方式
- HDLC帧格式:帧是数据链路上传输的基本信息单位
比特 | 8 | 8 | 8 | 可变 | 16 | 8 |
标志F | 地址A | 控制C | 信息I | 帧校验FCS | 标志F |
- HDLC帧类型:在HDLC中,帧被分为三种
- 信息帧:用于传输数据的帧,具有完全的控制顺序
- 监控帧:用于实现监控功能的帧。包括接收准备好、接收未准备好、请求发送、选择发送等监控帧。主要完成回答、请求传输、请求暂停等功能。
- 无编号帧:用于提供附加的链路控制功能得到帧。该帧没有信息帧编号,因此可以表示=各种无编号的命令和响应(一般情况下,各种命令和响应都是有编号的),以扩充主站和从站的链路控制功能
物理层
物理层是OSI参考模型的最底层,向下直接与物理介质连接。它是建立在通信媒体基础上,实现设备之间的物理接口。
ISO对OSI参考模型中的物理层做如下定义:物理层为建立、维持与拆除数据链路实体之间二进制位流传输的物理连接,供机械的、电气的、功能的和规程的特性。物理连接可以通过中继系统,允许进行全双工或者半双工的二进制位流的传输。物理层的数据服务单元是比特,它可以通过同步或异步的方式进行传输。