OSI/RM参考模型与TCP/IP协议

OSI/RM参考模型

该模型定义了不同计算机互联的标准,是设计和描述计算机网络通信的基本框架。OSI参考模型共分为7个层次,从低到高依次为物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。

信息的传输.png

       第一层到第三层属于OSI参考模型的低三层,负责创建网络通信连接的链路;第五层到第七层为OSI参考模型的高三层,具体负责端到端的数据通信;第四层负责高低层的连接。

       每层完成一定的功能,每层都直接为其上层提供服务,并且所有层次都互相支持,而网络通信则可以自上而下(在发送端)或者自下而上(在接收端)双向进行。并不是每一通信都需要经过OSI的全部七层,有的甚至只需要双方对应的某一层即可。

       物理接口之间的转接,以及中继器与中继器之间的连接就只需在物理层中进行即可;而路由器与路由器之间的连接则只需经过网络层以下的三层即可。总的来说,双方的通信是在对等层次上进行的,不能在不对称层次上进行通信。

OSI/RM分层

对等层通信的实质:
       对等层实体之间虚拟通信;下层向上层提供服务;实际通信在最底层完成;发送方数据由最高层逐渐向下层传递,到接收方数据由最低层逐渐向高层传递。

协议数据单元PDU
       OSI参考模型中,对等层协议之间交换的信息单元统称为协议数据单元
而传输层及以下各层的PDU另外还有各自特定的名称:
       传输层——数据段(Segment)
       网络层——分组(数据包)(Packet)
       数据链路层——数据帧(Frame)
       物理层——比特(Bit)

<OSI参考模型的层次结构>

  • 第一层:物理层。
           物理层是OSI分层结构体系中最重要、最基础的一层,它建立在传输媒介基础上,实现设备之间的物理接口。物理层关注在一条通信信道上传输原始比特,只需确保当一方发送了比特1时,另一方收到的也是比特1,并不需要考虑信息的意义和信息的结构。
           这里涉及的典型问题包括用什么电子信号来表示1和0、一个比特持续多少纳秒、传输是否可以在两个方向上同时进行、初始连接如何建立、当双方结束之后如何撤销连接、网络连接器有多少针以及每一针的用途是什么等。
           在这一层,数据的单位为比特bit;目前属于物理层定义的典型规范代表有EIA/TIA RS-232,EIA/TIA RS-449,V.35,RJ-45等;
           常见的网络设备——中继器、集线器、Modem工作在该层上。

  • 第二层:数据链路层。
           数据链路层在物理层提供比特流服务的基础上,建立相邻结点之间的数据链路,将一个原始的传输设施转变成一条没有漏检传输错误的线路,使得发送方发送的数据帧在信道上无差错地传输,同时为其上面的网络层提供有效的服务。
           在这一层,数据的单位称为帧frame;典型的协议包括SDLC,HDLC,PPP,Stp等;
           常见的网络设备——二层交换机、网桥工作在该层上。

  • 第三层:网络层。
           网络层也称为通信子网层,用于控制通信子网的操作,是通信子网与资源子网的接口。在计算机网络中进行通信的两个计算机之间可能会经过很多个数据链路,也可能要经过很多通信子网,网络层的任务就是解封数据链路层收到的帧,提取数据包,并选择合适的网间路由和交换结点,确保数据包即时传送。其中数据包中封装有网络层包头,含有逻辑地址信息、源站点和目的站点地址的网络地址。
           在这一层,数据的单位称为数据包或分组packet;典型的协议包括Ip,IPX,RIP等;
           常见的网络设备——路由器、具有路由功能的三层交换机工作在该层上。

  • 第四层:传输层。
           传输层是真正的点到点,即主机到主机的层,它自始至终将数据从源端携带到接收方。传输层获得下层(网络层)提供的服务包括:发送和接受正确的数据块分组序列,并用其构成传输层数据;获得网络层地址,包括虚拟信道和逻辑信道。传输层向上层(会话层)提供的服务包括:无差错的有序的报文收发;提供传输连接;进行流量控制。
           在这一层,数据的单位称为数据段segment;典型的协议包括TCP,UDP,Spx等;
           常见的网络设备——传输网关工作在该层上。

  • 第五层:会话层。
           管理主机之间的会话进程,即负责建立、管理、终止进程之间的会话,一次连接就称为一次会话。会话层还利用在数据中插入校验点来实现数据的同步,以便在系统崩溃之后还能恢复到崩溃之前的状态继续运行。

  • 第六层:表示层。
           表示层以下的五层关注的是如何传递数据位,而表示层关注的是所传递信息的语法和语义。不同的计算机可能有不同的内部数据表示法,为了让这些计算机能够进行通信,表示层会对上层(应用层)的数据或者信息进行变换,以保证一个主机应用层的信息可以被另一个主机的应用程序所理解。
           表示层的数据转换包括数据语法转换、语法表示、表示连接管理、数据的加密/压缩/格式转换等。
  • 第七层:应用层。
           应用层直接面对用户的具体应用,它包含用户应用程序执行通信任务时所需要的协议和功能,应用层为操作系统或者网络应用程序提供了访问网络服务的接口
           常见的应用层协议的有:超文本传输协议(该协议为浏览器程序访问因特网中其它主机中web页面提供了基本的网络访问服务接口。)、FTP,DNS等。

<OSI参考模型中的数据传输>

在OSI参考模型中数据是如何在不同主机的不同应用进程中进行数据传输的呢?

发送端到接收端1.png

假定主机1的应用进程AP1向主机2的应用进程AP2传送数据。
AP1先将其数据交给主机1的最高层(应用层),如使用SMTP协议来处理数据(在该数据前加上SMTP标记,以便对方主机2收到后了解使用什么软件来处理该数据。);

       应用层处理后交给下面的表示层,表示层会进行必要的格式转换,使用一种通信双方都能识别的编码来处理数据;

       表示层处理完成后将数据交给会话层,会话层会在主机1和主机2之间建立一条只用于传输该数据的会话通道,并监视它的连接状态,直到数据同步完成才会断开会话;

       会话通道建立后,为保证数据传输中的可靠性,主机1的传输层会对数据进行必要的处理,如分段、编号、差错校验、确认、重传等;

       网络层是实际传输数据的层次,它将传输层中处理完成的数据再次封装,添加上双方的地址信息,并为每个数据包找到一条到主机2的最好的路径,然后按照最佳路径发送到网络中;

       数据链路层则会对网络层的数据再次进行封装,添加上能唯一表示每台设备的MAC物理地址

       主机1的物理层则将上层的数据转换成电流传输的物理线路,通过物理线路将数据传送到主机2后,

发送端到接收端2.png

       主机2会将电信号转变成数据链路层的数据帧,数据链路层再去掉本层的Mac物理地址后将数据递交给网络层,网络层同样去掉主机1网络层所添加的内容后交给传输层,就这样层层递减后最终数据到达了主机2的应用层,应用层接受到数据使用STMP协议封装,就知道应用电子邮件的软件来处理了。

       虽然应用进程数据要经过这么复杂的过程才能送到终点,但这些复杂过程对用户来说,都被屏蔽掉了,以致主机1的应用进程AP1觉得好像直接把数据交给了主机2的应用进程Ap2。


TCP/IP协议

TCP/IP协议
       由网络层的IP协议和传输层的TCP协议组成。TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。

<TCP/IP模型的层次结构>

       TCP/IP模型分为四个层次:应用层,传输层,网络互联层和网络接口层。
       在TCP/IP模型中,去掉了OSI参考模型中的会话层表示层(这两层的功能被合并到应用层实现)。同时将OSI参考模型中的数据链路层物理层合并为网络接口层。

TCPIP分层.png
  • 第一层:网络接口层
           该层主要功能是负责与物理网络的连接。实际上TCP/IP模型没有真正描述这一层的实现,只是要求能够提供给其上层——网络互连层一个访问接口,以便在其上传递IP分组。由于这一层次未被定义,所以其具体的实现方法将随着网络类型的不同而不同。

  • 第二层:网络互联层
           网络互联层是将整个网络体系结构贯穿在一起的关键层,它的功能是把数据分组发往目标网络或主机。同时,为了尽快地发送分组,允许分组沿不同的路径同时进行传递。因此,分组到达的顺序和发送的顺序可能不同,这就需要其上层(传输层)对分组进行排序。网络互联层定义了标准的数据分组格式和协议,即IP协议(Internet Protocol),与之相伴的还有一个辅助协议ICMP协议。网络互联层的任务是将IP分组投递到它们应该去的地方,很显然,IP分组的路由是最重要的问题,同时还需要完成拥塞控制的功能。

  • 第三层:传输层
           传输层的功能是使源主机和目标主机上的对等实体可以进行会话。该层上定义了两种服务质量不同的协议。即:传输控制协议TCP(transmission control protocol)和用户数据报协议UDP(user datagram protocol)

       TCP协议是一个面向连接的、可靠的协议,允许从一台主机发出的字节流无差错地发往互联网上的其他主机。在发送端,它负责把上层(应用层)传送下来的字节流分割成离散的报文,并把每个报文传递给下层(网络互联层)。接收端,它负责把收到的报文进行重组后递交给上层(应用层)。TCP协议还要处理端到端的流量控制,以便确保一个快速的发送方,不会因为发送太多的报文而淹没掉一个处理能力跟不上的慢速的接受方。

TCP传输数据.png

       UDP协议是一个不可靠的、无连接协议,主要适用于不需要对报文进行排序和流量控制的场合。其被广泛用于那些一次性的请求-应答应用,以及那些及时交付比精确交付更加重要的应用,如传输语音或者视频。

  • 第四层:应用层。
           应用层简单包含了所需的任何会话和表示功能,它面向不同的网络应用引入不同的应用层协议。最早的高层协议包括文件传输协议FTP(File TransferProtocol)、虚拟终端协议TELNET、简单邮件传输协议SMTP,后来许多其他协议被加入到了应用层,如超文本链接协议HTTP(Hyper Text Transfer Protocol),域名系统DNS(Domain Name System),实时传输协议RTP(Real-time Transport Protocol)
相应层上的协议.png

<TCP/IP模型的特点>

       TCP/IP模型能够打败法律意义上的国际标准ISO/Rm参考模型,而成为事实上的国际标准,有它滋身的特点:
       首先它是一个开放的协议标准:可以免费使用,并且独立于特定的计算机硬件与操作系统。
       其次它独立于特定的网络硬件:可以运行在局域网、广域网,更适用在互联网中。
       其统一的网络地址分配方案,使得整个TCP/IP设备在网中都具有唯一的IP地址。
他所提供的标准化的高层协议,提供了多种可靠的用户服务。


<TCP/IP模型与OSI/Rm模型的比较>

TCP/IP模型与OSI模型有着很多共同点:
       两者都以协议栈概念为基础,并且协议栈中的协议彼此相互独立。两个模型功能大致相同,都采用了层次结构,存在可比的传输层和网络层,但不是严格意义上的一一对应。

两者的不同点:
       OSI模型的最大贡献在于明确区分了3个概念:服务、接口和协议;而TCP/IP模型并没有明确区分服务、接口和协议,因此OSI模型中的协议比TCP/IP模型中的协议有更好的隐蔽性,当技术发生变化时OSI模型中的协议相对更容易被新协议所替换。
       OSI模型在协议发明之前就已经产生了,而TCP/IP模型则正好相反:
       先有协议,TCP/IP模型只是已有协议的一个描述而已,这导致协议和模型结合得非常完美,能够解决很多实际问题,如异构网的互联问题。

两者在无连接和面向连接的通信领域有所不同:
       OSI模型的网络层同时支持无连接和面向连接的通信,但是传输层只支持面向连接的通信;
       TCP/IP模型在网络层只支持一种模式(无连接),但是在传输层同时支持两种通信模式。
       OSI模型有7层,而TCPIP模型只有4层,两者在层次划分与使用协议上有很大差别。
网卡,交换机,路由器——网络通信连接设备

推荐阅读更多精彩内容