zoukankan      html  css  js  c++  java
  • 数据在网络7层中的传输过程

    1. OSI网络分层參考模型

      网络协议设计者不应当设计一个单一、巨大的协议来为全部形式的通信规定完整的细节。而应把通信问题划分成多个小问题。然后为每一个小问题设计一个单独的协议。这样做使得每一个协议的设计、分析、时限和測试比較easy。协议划分的一个主要原则是确保目标系统有效且效率高。为了提高效率。每一个协议仅仅应该注意没有被其他协议处理过的那部分通信问题;为了主协议的实现更加有效,协议之间应该可以共享特定的数据结构;同一时候这些协议的组合应该能处理全部可能的硬件错误以及其他异常情况。

    为了保证这些协议工作的协同性,应当将协议设计和开发成完整的、协作的协议系列(即协议族),而不是孤立地开发每一个协议。


      在网络历史的早期。国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)共同出版了开放系统互联的七层參考模型。一台计算机操作系统中的网络过程包含从应用请求(在协议栈的顶部)到网络介质(底部) ,OSI參考模型把功能分成七个分立的层次。图2.1表示了OSI分层模型。



      
                   OSI七层參考模型

      OSI模型的七层分别进行下面的操作:
      第一层:物理层
      负责最后将信息编码成电流脉冲或其他信号用于网上传输。它由计算机和网络介质之间的实际界面组成,可定义电气信号、符号、线的状态和时钟要求、数据编码和传输数据用的连接器。如最经常使用的RS-232规范、10BASE-T的曼彻斯特编码以及RJ-45就属于第一层。全部比物理层高的层都通过事先定义好的接口而与它通话。如以太网的附属单元接口(AUI),一个DB-15连接器可被用来连接层一和层二。
      第二层:数据链路层
      通过物理网络链路提供可靠的传输数据。不同的数据链路层定义了不同的网络和协议特征,当中包含物理编址、网络拓扑结构、错误校验、帧序列以及流控。物理编址(相相应的是网络编址)定义了设备在数据链路层的编址方式;网络拓扑结构定义了设备的物理连接方式。如总线拓扑结构和环拓扑结构;错误校验向发生传输错误的上层协议告警;数据帧序列又一次整理并传输除序列以外的帧;流控可能延缓数据的传输。以使接收设备不会由于在某一时刻接收到超过其处理能力的信息流而崩溃。数据链路层实际上由两个独立的部分组成,介质存取控制(Media Access Control,MAC)和逻辑链路控制层(Logical Link Control,LLC)。MAC描写叙述在共享介质环境中怎样进行站的调度、发生和接收数据。MAC确保信息跨链路的可靠传输。对传输数据进行同步。识别错误和控制数据的流向。

    一般地讲。MAC仅仅在共享介质环境中才是重要的,仅仅有在共享介质环境中多个节点才干连接到同一传输介质上。IEEE MAC规则定义了地址,以标识数据链路层中的多个设备。逻辑链路控制子层管理单一网络链路上的设备间的通信,IEEE 802.2标准定义了LLC。LLC支持无连接服务和面向连接的服务。

    在数据链路层的信息帧中定义了很多域。这些域使得多种高层协议能够共享一个物理数据链路。
      第三层:网络层
      负责在源和终点之间建立连接。它一般包含网络寻径,还可能包含流量控制、错误检查等。同样MAC标准的不同网段之间的传输数据一般仅仅涉及到数据链路层,而不同的MAC标准之间的传输数据都涉及到网络层。比如IP路由器工作在网络层,因而能够实现多种网络间的互联。
      第四层:传输层
      向高层提供可靠的端到端的网络数据流服务。传输层的功能一般包含流控、多路传输、虚电路管理及差错校验和恢复。流控管理设备之间的传输数据。确保传输设备不发送比接收设备处理能力大的数据;多路传输使得多个应用程序的数据能够传输到一个物理链路上;虚电路由传输层建立、维护和终止;差错校验包含为检測传输错误而建立的各种不同结构;而差错恢复包含所採取的行动(如请求数据重发),以便解决发生的不论什么错误。传输控制协议(TCP)是提供可靠传输数据的TCP/IP协议族中的传输层协议。
      第五层:会话层
      建立、管理和终止表示层与实体之间的通信会话。通信会话包含发生在不同网络应用层之间的服务请求和服务应答,这些请求与应答通过会话层的协议实现。它还包含创建检查点,使通信发生中断的时候能够返回到曾经的一个状态。
      第六层:表示层
      提供多种功能用于应用层数据编码和转化,以确保以一个系统应用层发送的信息能够被还有一个系统应用层识别。

    表示层的编码和转化模式包含公用数据表示格式、性能转化表示格式、公用数据压缩模式和公用数据加密模式。
      公用数据表示格式就是标准的图像、声音和视频格式。通过使用这些标准格式。不同类型的计算机系统能够相互交换数据。转化模式通过使用不同的文本和数据表示,在系统间交换信息,比如ASCII(American Standard Code for Information Interchange。美国标准信息交换码);标准数据压缩模式确保原始设备上被压缩的数据能够在目标设备上正确的解压;加密模式确保原始设备上加密的数据能够在目标设备上正确地解密。


      表示层协议一般不与特殊的协议栈关联,如QuickTime是Applet计算机的视频和音频的标准,MPEG是ISO的视频压缩与编码标准。

    常见的图形图像格式PCX、GIF、JPEG是不同的静态图像压缩和编码标准。


      第七层:应用层
      最接近终端用户的OSI层,这就意味着OSI应用层与用户之间是通过应用软件直接相互作用的。

    注意。应用层并不是由计算机上执行的实际应用软件组成,而是由向应用程序提供訪问网络资源的API(Application Program Interface,应用程序接口)组成。这类应用软件程序超出了OSI模型的范畴。应用层的功能一般包含标识通信伙伴、定义资源的可用性和同步通信。由于可能丢失通信伙伴。应用层必须为数据传输的应用子程序定义通信伙伴的标识和可用性。

    定义资源可用性时,应用层为了请求通信而必须判定是否有足够的网络资源。在同步通信中,全部应用程序之间的通信都须要应用层的协同操作。
      OSI的应用层协议包含文件的传输、訪问及管理协议(FTAM) ,以及文件虚拟终端协议(VIP)和公用管理系统信息(CMIP)等。

    2. TCP/IP分层模型

      TCP/IP分层模型(TCP/IP Layening Model)被称作因特网分层模型(Internet Layering Model)、因特网參考模型(Internet Reference Model)。


      
                                               TCP/IP四层參考模型

      TCP/IP协议被组织成四个概念层。当中有三层相应于ISO參考模型中的相应层。ICP/IP协议族并不包括物理层和数据链路层,因此它不能独立完毕整个计算机网络系统的功能,必须与更多的协议协同工作。
      TCP/IP分层模型的四个协议层分别完毕下面的功能:
      第一层:网络接口层
      包含用于协作IP数据在已有网络介质上传输的协议。

    实际上TCP/IP标准并不定义与ISO数据链路层和物理层相相应的功能。相反。它定义像地址解析协议(Address Resolution Protocol,ARP)这种协议,提供TCP/IP协议的数据结构和实际物理硬件之间的接口。
      第二层:网间层
      相应于OSI七层參考模型的网络层。本层包括IP协议、RIP协议(Routing Information Protocol,路由信息协议),负责数据的包装、寻址和路由。同一时候还包括网间控制报文协议(Internet Control Message Protocol,ICMP)用来提供网络诊断信息。
      第三层:传输层
      相应于OSI七层參考模型的传输层,它提供两种端到端的通信服务。

    当中TCP协议(Transmission Control Protocol)提供可靠的数据流运输服务,UDP协议(Use Datagram Protocol)提供不可靠的用户数据报服务。
      第四层:应用层
      相应于OSI七层參考模型的应用层和表达层。因特网的应用层协议包含Finger、Whois、FTP(文件传输协议)、Gopher、HTTP(超文本传输协议)、Telent(远程终端协议)、SMTP(简单邮件传送协议)、IRC(因特网中继会话)、NNTP(网络新闻传输协议)等,这也是本书将要讨论的重点。  


  • 相关阅读:
    ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
    Cannot open url. please check this url is correct
    Execution default of goal org.springframework.boot:spring-boot-maven-plugin:1.5.6.RELEASE:repackage failed: Unable to find main class
    eclipse点击空白处自动打开项目
    Caused by: org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2
    git忽略文件
    org.elasticsearch.transport.ReceiveTimeoutTransportException[cluster:monitor/nodes/liveness] request_id [31] timed out after [5000ms]
    Could not resolve placeholder
    分布式架构--第一篇--项目拆分(maven命令生成多模块项目)
    spring mvc官网下最新jar搭建框架-静态资源访问处理-注解-自动扫描
  • 原文地址:https://www.cnblogs.com/yfceshi/p/7152497.html
Copyright © 2011-2022 走看看