分享

OSI七层模型之传输层

 我爱你文摘 2018-02-12

OSI七层模型之传输层

OSI七层模型

OSI 参考模型包含如下7 层:

  • 应用层(第7 层)

  • 表示层(第6 层)

  • 会话层(第5 层)

  • 传输层(第4 层)

  • 网络层(第3 层)

  • 数据链路层(第2 层)

  • 物理层(第1 层)

OSI七层模型之传输层

传输层

传输层

传输层将数据进行分段并重组为数据流。位于传输层的服务将来自上层应用的数据进行分段和重组,并将它们合并到同一个数据流中。它们提供了端到端的数据传输服务,并可在互联网络上的发送主机和目标主机之间建立逻辑连接。

有些读者可能熟悉TCP 和UDP 。如果你熟悉TCP 和UDP ,就知道它们都运行在传输层,且TCP 是一种可靠的服务,而UDP 不是。这意味着应用程序开发人员有更多的选择,因为使用TCP/IP 协议时,他们可在这两种协议之间作出选择。

传输层负责提供如下机制:对上层应用程序进行多路复用、建立会话以及拆除虚电路。它还提供透明的数据传输,从而对高层隐藏随网络而异的信息。

传输层可以是元连接的或面向连接的,但思科最为关心的是你是否理解了传输层的面向连接部分。我们来看面向连接(可靠)的传输层协议。

1 流量控制

数据完整性由传输层确保,这是通过流量控制以及允许应用程序请求在系统之间进行可靠的数据传输实现的。流量控制可避免作为发送方的主机让作为接收方的主机的缓冲区溢出(这可能导致数据丢失)。可靠的数据传输在系统之间使用面向连接的通信会话,而涉及的协议确保可实现如下目标:

  • 收到数据段后,向发送方进行确认

  • 重传所有未得到确认的数据段

  • 数据段到达目的地后,按正确的顺序排列它们

  • 确保数据流量不超过处理能力,以避免拥塞、过载和数据丢失

2 面向连接的通信

在可靠的传输操作中,要传输数据的设备建立一个到远程设备的面向连接的通信会话。传输设备首先与其对等系统建立面向连接的会话,这称为呼叫建立三方握手,然后传输数据。传输完毕后,将进行呼叫终止,以拆除虚电路。

如图 描述了发送系统和接收系统之间进行的典型可靠会话。从中可知,两台主机的应用程序都首先通知各自的操作系统说即将建立一条连接。两个操作系统通过网络发送消息,确认传输得到了批准且双方已准备就绪。这种必不可少的同步完成后,便完全建立了连接,可以开始传输数据了。(这种虚电路建立称为开销! )

传输信息期间,两台主机定期地检查对方,通过协议软件进行通信,确保一切进展顺利且正确地收到了数据。

OSI七层模型之传输层

TCP连接建立

面向连接的会话中的步骤(三方握手)总结如下。

  • 第一个是'连接协定'数据段,用于请求同步。

  • 接下来的数据段确认请求,并在主机之间确定连接参数(即规则)。这些数据段也请求同步接收方的排序,以建立双向连接。

  • 最后一个数据段也是用来进行确认的,它通知目标主机连接协定已被接受且连接已建立。现在可以开始传输数据了。

听起来相当简单,但事情进展并非总是如此顺利。有时候,在传输期间,高速计算机生成的数据流远远超过网络的传输能力,进而导致拥塞。大量计算机同时向一个网关或目标主机发送数据报时,也很容易导致问题,在这种情况下,网关或目标主机可能发生拥塞,虽然这不能怪罪于任何一台源主机。这两种情况都类似于高速公路的瓶颈一一流量太大,而容量太小。这种问题并非某辆车导致的,而只是高速公路上的车太多。

当主机收到大量的数据报,超出了其处理能力时,结果将如何呢?它会将这些数据报存储在称为缓冲区的内存区域中,但仅当突发数据报的数量较少时,这种缓冲方式才能解决问题。如果不是这样,数据报将纷至沓来,并最终耗尽设备的内存,超过其容量,使其最终不得不丢弃新到来的数据报。

但也不用太担心,因为传输层的流量控制系统确实很管用。传输层可向发送方(源)发出信号'未准备好',从而避免数据泛滥和丢失数据, 如图A所示。这种机制类似于刹车灯,用信号告诉发送设备不要再向不堪重负的接收方传输数据段。处理完毕其内存储水池(缓冲区)中的数据段后,接收方发送信号'准备就绪飞等待传输的计算机收到这个'前进'信号后,将继续传输。

OSI七层模型之传输层

图A:使用流量控制的传输过程

在面向连接的可靠数据传输中,数据报到达接收主机的顺序与发送顺序完全相同;如果顺序被打乱,传输将失败。如果在传输过程中,有任何数据段丢失、重复或受损,传输也将失败。为解决这个问题,可让接收主机确认它收到了每个数据段。

如果服务具有如下特征,它就是面向连接的:

  • 建立虚电路(如三方握手)

  • 使用排序技术

  • 使用确认

  • 使用流量控制

3 窗口技术

在理想情况下,数据传输'快捷而高效。可以想见,如果传输方发送每个数据段后都必须等待确认,传输速度将变得缓慢。然而,从发送方传输数据段到处理完毕来自接收方的确认之间有一段时间,发送方可利用这段时间传输更多的数据。在收到确认前,传输方可发送的数据段数量(以字节为单位)称为窗口

因此,窗口大小控制了一方传输给另一方的信息量。有些协议以分组数度量信息量,但TCP/IP以字节数度量信息量。

如图B 中,双方使用的窗口大小不同:一方将其设置为1 ,另一方将其设置为3 。

窗口大小为1 时,发送方传输每个数据段后都等待确认,然后才能传输另一个:窗口大小为3 时,发送方将传输3 个数据段,再等待确认。

在这个简化的示例中,发送方和接收方都是工作站。在实际情况中,可发送的为字节数,而不是数据段数。

OSI七层模型之传输层

图B:窗口技术

4 确认

可靠的数据传输依靠功能完整的数据链路,从而确保机器之间发送的数据流的完整性。它确保数据不会重复或丢失,这是通过肯定确认和重传实现的,这种方法要求接收方在收到数据后向发送方发送一条确认消息。发送方记录每个以字节为单位度量的数据段,将其发送后等待确认,而暂不发送下一数据段。发送数据段后,发送方启动定时器,如果定时器到期后仍未收到接收方的确认,就重传该数据段。

OSI七层模型之传输层

图C:传输层可靠的传输

在图C中,发送方传输了数据段1 、2 和3 ,接收节点请求发送数据段4 ,以此确认它收到了前3 个数据段。收到确认后,发送方传输数据段4、5 和6。如果数据段5 未能到达目的地,接收方将请求重传该数据段,以指出这一点。接下来,发送方将重传该数据段并等待确认;仅当收到确认后,接收方才会传输数据段7。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多