730 likes | 882 Views
第 8 章 运 输 层. 运输层是整个网络体系结构中的关键层次之一。. 8.1. 8.2. 8.3. 运输层协议概述. 用户数据报协议 UDP. 传输控制协议 TCP. 8.1 运输协议概述. 8.1.1 进程之间的通信 从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。在通信子网中没有运输层。运输层只存在于通信子网以外的主机中。 . 图 8-1 运输层为相互通信的应用进程提供了逻辑通信.
E N D
第8章 运 输 层 • 运输层是整个网络体系结构中的关键层次之一。
8.1 8.2 8.3 运输层协议概述 用户数据报协议UDP 传输控制协议TCP
8.1 运输协议概述 • 8.1.1 进程之间的通信 • 从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。在通信子网中没有运输层。运输层只存在于通信子网以外的主机中。
图8-1 运输层为相互通信的应用进程提供了逻辑通信
两个主机进行通信实际上就是两个主机中的应用进程互相通信。从运输层的角度看,通信的真正端点并不是主机而是主机中的进程。因此从运输层来看,端到端的通信是应用进程之间的通信。
运输层的一个很重要的功能就是复用和分用。应用层不同进程的报文通过不同的端口向下交到运输层,再往下就共用网络层提供的服务。
“运输层提供应用进程间的逻辑通信”。“逻辑通信”的意思是:运输层之间的通信好像是沿水平方向传送数据。但事实上这两个运输层之间并没有一条水平方向的物理连接。要传送的数据是沿着图中上下多次的虚线方向传送的。“运输层提供应用进程间的逻辑通信”。“逻辑通信”的意思是:运输层之间的通信好像是沿水平方向传送数据。但事实上这两个运输层之间并没有一条水平方向的物理连接。要传送的数据是沿着图中上下多次的虚线方向传送的。
运输层还要对收到的报文进行差错检测。根据应用的不同,运输层需要有两种不同的运输协议,即面向连接的TCP和无连接的UDP,
运输层中向应用层提供运输服务的是运输实体。使用运输服务的是运输服务用户。运输层中的两个对等运输实体之间的通信遵循着运输协议。运输协议保证了运输层能够向应用层提供运输服务。 运输层中向应用层提供运输服务的是运输实体。使用运输服务的是运输服务用户。运输层中的两个对等运输实体之间的通信遵循着运输协议。运输协议保证了运输层能够向应用层提供运输服务。
运输层提供的运输服务也使用了下面网络层向上提供的网络服务。TSAP和NSAP分别是运输层服务访问点和网络层服务访问点,它们都是层与层之间交换信息的抽象接口。 运输层提供的运输服务也使用了下面网络层向上提供的网络服务。TSAP和NSAP分别是运输层服务访问点和网络层服务访问点,它们都是层与层之间交换信息的抽象接口。
图8-3 运输层与其上下层之间的关系的OSI表示法
运输层向高层用户屏蔽了下面通信子网的细节(如网络拓扑、所采用的协议等),它使应用进程看见的就是好像在两个运输层实体之间有一条端到端的逻辑通信信道,但这条逻辑通信信道对上层的表现却因运输层使用的不同协议而有很大的差别。 运输层向高层用户屏蔽了下面通信子网的细节(如网络拓扑、所采用的协议等),它使应用进程看见的就是好像在两个运输层实体之间有一条端到端的逻辑通信信道,但这条逻辑通信信道对上层的表现却因运输层使用的不同协议而有很大的差别。
图8-4 运输层向上提供可靠的或不可靠的逻辑通信信道
TCP/IP的运输层有两个不同的协议,如图8-5所示,它们都是因特网的正式标准,即:TCP/IP的运输层有两个不同的协议,如图8-5所示,它们都是因特网的正式标准,即: • (1)用户数据报协议UDP (User Datagram Protocol)
(2)传输控制协议TCP (Transmission Control Protocol) • 两个对等运输实体在通信时传送的数据单位叫做运输协议数据单元TPDU ,TCP报文段 (segment) 或UDP报文或用户数据报。
表8-1 使用UDP和TCP协议的各种应用和应用层协议表8-1 使用UDP和TCP协议的各种应用和应用层协议
8.1.3 运输层的端口 • UDP和TCP都使用了与应用层接口处的端口 (port) 与上层的应用进程进行通信。端口是个非常重要的概念,因为应用层的各种进程是通过相应的端口与运输实体进行交互。
端口用一个16位端口号进行标识。但端口号只具有本地意义,它只是为了标识本计算机应用层中的各进程。在因特网不同计算机中相同的端口号是没有联系的。
端口号共分为3类。 • (1)熟知端口 (well-known port) • 其数值为0~1023。这一类端口由因特网指派名字和号码公司ICANN负责分配给一些常用的应用层程序固定使用。
(2)登记端口 • (3)动态端口
8.2 用户数据报协议UDP • 8.2.1 UDP概述 • UDP在某些方面有其特殊的优点: • (1)UDP是无连接的,即发送数据之前不需要建立连接(当然发送数据结束时也没有连接可释放),因此减少了开销和发送数据之前的时延。
(2)UDP使用尽最大努力交付,即不保证可靠交付,同时也不使用拥塞控制,因此主机不需要维持具有许多参数的、复杂的连接状态表。(2)UDP使用尽最大努力交付,即不保证可靠交付,同时也不使用拥塞控制,因此主机不需要维持具有许多参数的、复杂的连接状态表。
(4)UDP是面向报文的。 • (5)UDP支持一对一、一对多、多对一和多对多的交互通信。 • (6)用户数据报只有8个字节的首部开销,比TCP的20个字节的首部要短。
8.2.2 UDP的首部格式 • 用户数据报UDP有两个字段:数据字段和首部字段。每个字段都是两个字节。
(1)源端口 • (2)目的端口 • (3)长度 • (4)检验和
UDP用户数据报首部中检验和的计算方法有些特殊。在计算检验和时,要在UDP用户数据报之前增加12个字节的伪首部。“伪首部”是指这种伪首部并不是UDP用户数据报真正的首部。
UDP计算检验和的方法和计算IP数据报首部检验和的方法相似。但不同的是:IP数据报的检验和只检验IP数据报的首部,但UDP的检验和是把首部和数据部分一起都检验。
8.3 传输控制协议TCP • 8.3.1 TCP概述 • TCP是TCP/IP体系中面向连接的运输层协议,它提供全双工的和可靠交付的服务。TCP与UDP最大的区别就是TCP是面向连接的,而UDP是无连接的。
由于运输层的通信是面向连接的,因此TCP每一条连接上的通信只能是一对一的,而不可能是一对多、多对一或多对多的。 由于运输层的通信是面向连接的,因此TCP每一条连接上的通信只能是一对一的,而不可能是一对多、多对一或多对多的。
8.3.2 TCP报文段的首部 • 一个TCP报文段分为首部和数据两部分,如图8-11所示。应当指出,TCP的全部功能都体现在它首部中各字段的作用。
TCP报文段首部的前20个字节是固定的,后面有4N字节是根据需要而增加的选项(N必须是整数)。因此TCP首部的最小长度是20字节。TCP报文段首部的前20个字节是固定的,后面有4N字节是根据需要而增加的选项(N必须是整数)。因此TCP首部的最小长度是20字节。
首部固定部分各字段的意义如下所述。 • (1)源端口和目的端口 • (2)序号 • (3)确认号 • (4)数据偏移 • (5)保留
(6)紧急URG (URGent) • (7)确认ACK • (8)推送PSH (PuSH) • (9)复位RST (ReSeT) • (10)同步SYN