1 / 73

第 8 章 运 输 层

第 8 章 运 输 层.   运输层是整个网络体系结构中的关键层次之一。. 8.1. 8.2. 8.3. 运输层协议概述. 用户数据报协议 UDP. 传输控制协议 TCP. 8.1 运输协议概述. 8.1.1 进程之间的通信   从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。在通信子网中没有运输层。运输层只存在于通信子网以外的主机中。 . 图 8-1 运输层为相互通信的应用进程提供了逻辑通信.

chase-ochoa
Download Presentation

第 8 章 运 输 层

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第8章 运 输 层 •   运输层是整个网络体系结构中的关键层次之一。

  2. 8.1 8.2 8.3 运输层协议概述 用户数据报协议UDP 传输控制协议TCP

  3. 8.1 运输协议概述 • 8.1.1 进程之间的通信 •   从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。在通信子网中没有运输层。运输层只存在于通信子网以外的主机中。

  4. 图8-1 运输层为相互通信的应用进程提供了逻辑通信

  5.   两个主机进行通信实际上就是两个主机中的应用进程互相通信。从运输层的角度看,通信的真正端点并不是主机而是主机中的进程。因此从运输层来看,端到端的通信是应用进程之间的通信。

  6.   运输层的一个很重要的功能就是复用和分用。应用层不同进程的报文通过不同的端口向下交到运输层,再往下就共用网络层提供的服务。

  7. “运输层提供应用进程间的逻辑通信”。“逻辑通信”的意思是:运输层之间的通信好像是沿水平方向传送数据。但事实上这两个运输层之间并没有一条水平方向的物理连接。要传送的数据是沿着图中上下多次的虚线方向传送的。“运输层提供应用进程间的逻辑通信”。“逻辑通信”的意思是:运输层之间的通信好像是沿水平方向传送数据。但事实上这两个运输层之间并没有一条水平方向的物理连接。要传送的数据是沿着图中上下多次的虚线方向传送的。

  8.   网络层是为主机之间提供逻辑通信,而运输层为应用进程之间提供端到端的逻辑通信,如图8-2所示。

  9. 图8-2 运输层协议和网络层协议的主要区别

  10.   运输层还要对收到的报文进行差错检测。根据应用的不同,运输层需要有两种不同的运输协议,即面向连接的TCP和无连接的UDP,

  11.   运输层中向应用层提供运输服务的是运输实体。使用运输服务的是运输服务用户。运输层中的两个对等运输实体之间的通信遵循着运输协议。运输协议保证了运输层能够向应用层提供运输服务。  运输层中向应用层提供运输服务的是运输实体。使用运输服务的是运输服务用户。运输层中的两个对等运输实体之间的通信遵循着运输协议。运输协议保证了运输层能够向应用层提供运输服务。

  12.   运输层提供的运输服务也使用了下面网络层向上提供的网络服务。TSAP和NSAP分别是运输层服务访问点和网络层服务访问点,它们都是层与层之间交换信息的抽象接口。  运输层提供的运输服务也使用了下面网络层向上提供的网络服务。TSAP和NSAP分别是运输层服务访问点和网络层服务访问点,它们都是层与层之间交换信息的抽象接口。

  13. 图8-3 运输层与其上下层之间的关系的OSI表示法

  14.   运输层向高层用户屏蔽了下面通信子网的细节(如网络拓扑、所采用的协议等),它使应用进程看见的就是好像在两个运输层实体之间有一条端到端的逻辑通信信道,但这条逻辑通信信道对上层的表现却因运输层使用的不同协议而有很大的差别。  运输层向高层用户屏蔽了下面通信子网的细节(如网络拓扑、所采用的协议等),它使应用进程看见的就是好像在两个运输层实体之间有一条端到端的逻辑通信信道,但这条逻辑通信信道对上层的表现却因运输层使用的不同协议而有很大的差别。

  15.   当运输层采用面向连接的TCP协议时,尽管下面的网络是不可靠的(即只提供尽最大努力服务),但这种逻辑通信信道就相当于一条全双工的可靠信道。但当运输层采用无连接的UDP协议时,这种逻辑通信信道仍然是一条不可靠信道。不可靠信道的特点就是不保证交付。

  16. 图8-4 运输层向上提供可靠的或不可靠的逻辑通信信道

  17. TCP/IP的运输层有两个不同的协议,如图8-5所示,它们都是因特网的正式标准,即:TCP/IP的运输层有两个不同的协议,如图8-5所示,它们都是因特网的正式标准,即: • (1)用户数据报协议UDP (User Datagram Protocol)

  18. 图8-5 TCP/IP体系中的运输层协议

  19. (2)传输控制协议TCP (Transmission Control Protocol) •   两个对等运输实体在通信时传送的数据单位叫做运输协议数据单元TPDU ,TCP报文段 (segment) 或UDP报文或用户数据报。

  20. UDP在传送数据之前不需要先建立连接。TCP则提供面向连接的服务。

  21. 表8-1   使用UDP和TCP协议的各种应用和应用层协议表8-1   使用UDP和TCP协议的各种应用和应用层协议

  22. 续表

  23. 8.1.3 运输层的端口 • UDP和TCP都使用了与应用层接口处的端口 (port) 与上层的应用进程进行通信。端口是个非常重要的概念,因为应用层的各种进程是通过相应的端口与运输实体进行交互。

  24.   因此在运输协议数据单元(即TCP报文段或UDP用户数据报)的首部中都要写入源端口号和目的端口号。

  25.   用OSI的术语,图中的端口就是运输层服务访问点TSAP。端口的作用就是让应用层的各种应用进程都能把数据通过相应的端口向下交付给运输层,以及让运输层知道应当把报文段中的数据向上通过合适的端口交付给应用层相应的进程。

  26. 图8-6 端口在进程之间的通信中所起的作用

  27.   端口用一个16位端口号进行标识。但端口号只具有本地意义,它只是为了标识本计算机应用层中的各进程。在因特网不同计算机中相同的端口号是没有联系的。

  28.   端口号共分为3类。 • (1)熟知端口 (well-known port) •   其数值为0~1023。这一类端口由因特网指派名字和号码公司ICANN负责分配给一些常用的应用层程序固定使用。

  29. (2)登记端口 • (3)动态端口

  30. 8.2 用户数据报协议UDP • 8.2.1 UDP概述 • UDP在某些方面有其特殊的优点: • (1)UDP是无连接的,即发送数据之前不需要建立连接(当然发送数据结束时也没有连接可释放),因此减少了开销和发送数据之前的时延。

  31. (2)UDP使用尽最大努力交付,即不保证可靠交付,同时也不使用拥塞控制,因此主机不需要维持具有许多参数的、复杂的连接状态表。(2)UDP使用尽最大努力交付,即不保证可靠交付,同时也不使用拥塞控制,因此主机不需要维持具有许多参数的、复杂的连接状态表。

  32. (3)由于UDP没有拥塞控制,因此网络出现的拥塞不会使源主机的发送速率降低。这对某些实时应用是很重要的。

  33. (4)UDP是面向报文的。 • (5)UDP支持一对一、一对多、多对一和多对多的交互通信。 • (6)用户数据报只有8个字节的首部开销,比TCP的20个字节的首部要短。

  34. 8.2.2 UDP的首部格式 •   用户数据报UDP有两个字段:数据字段和首部字段。每个字段都是两个字节。

  35. (1)源端口 • (2)目的端口 • (3)长度 • (4)检验和

  36. 图8-7 UDP用户数据报的首部和伪首部

  37. UDP用户数据报首部中检验和的计算方法有些特殊。在计算检验和时,要在UDP用户数据报之前增加12个字节的伪首部。“伪首部”是指这种伪首部并不是UDP用户数据报真正的首部。

  38. UDP计算检验和的方法和计算IP数据报首部检验和的方法相似。但不同的是:IP数据报的检验和只检验IP数据报的首部,但UDP的检验和是把首部和数据部分一起都检验。

  39. 8.3 传输控制协议TCP • 8.3.1 TCP概述 • TCP是TCP/IP体系中面向连接的运输层协议,它提供全双工的和可靠交付的服务。TCP与UDP最大的区别就是TCP是面向连接的,而UDP是无连接的。

  40. 图8-8 TCP发送报文段的示意图

  41.   由于运输层的通信是面向连接的,因此TCP每一条连接上的通信只能是一对一的,而不可能是一对多、多对一或多对多的。  由于运输层的通信是面向连接的,因此TCP每一条连接上的通信只能是一对一的,而不可能是一对多、多对一或多对多的。

  42. 图8-9 用确认和超时重传保证可靠传输

  43. 图8-10 确认丢失的情况

  44.   通过以上所讲的确认和重传机制,我们就可以在IP层的通信是不可靠的情况下,使运输层之间的通信成为可靠的。

  45. 8.3.2 TCP报文段的首部 •   一个TCP报文段分为首部和数据两部分,如图8-11所示。应当指出,TCP的全部功能都体现在它首部中各字段的作用。

  46. 图8-11 TCP报文段的首部

  47. TCP报文段首部的前20个字节是固定的,后面有4N字节是根据需要而增加的选项(N必须是整数)。因此TCP首部的最小长度是20字节。TCP报文段首部的前20个字节是固定的,后面有4N字节是根据需要而增加的选项(N必须是整数)。因此TCP首部的最小长度是20字节。

  48.   首部固定部分各字段的意义如下所述。 • (1)源端口和目的端口 • (2)序号 • (3)确认号 • (4)数据偏移 • (5)保留

  49. (6)紧急URG (URGent) • (7)确认ACK • (8)推送PSH (PuSH) • (9)复位RST (ReSeT) • (10)同步SYN

More Related