第6章 传输层-5月8日
第6章运输层 ppt课件

字节
12
2
2
2
伪首部 源端口 目的端口 长 度
2 检验和
UDP 用户数据报 首 部
发送在前 首部
数据
数据 IP 数据报
在计算检验和时,临时把“伪首部”和 UDP 用户数据 报连接在一起。伪首部仅仅是为了计算检验和。
字节
4 源 IP 地址
4 目的 IP 地址
11 2 0 17 UDP长度
字节
12
2
2
对某些实时应用是很重要的。
端口是用报文队列来实现
应 用 层
TFTP 客户
出队列
入队列
运 输 层
UDP 端口 51000
TFTP 服务器
出队列
入队列
UDP 端口 69
UDP 用户数据报
6.3.2 UDP 用户数据报的 首部格式
字节
4 源 IP 地址
4 目的 IP 地址
11 2 0 17 Uห้องสมุดไป่ตู้P长度
UDP 传送的数据单位协议是 UDP 报文或用户数 据报。
TCP/IP 体系中的运输层协议
运输层
应用层
UDP
TCP
IP
与各种网络接口
TCP 与 UDP
UDP 在传送数据之前不需要先建立连接。 对方的运输层在收到 UDP 报文后,不需 要给出任何确认。
TCP 则提供面向连接的服务。TCP 不提 供广播或多播服务。 TCP 要提供可靠的、面向连接的运输服 务,但增加了许多的开销。
发送方
应用进程
应 用 层
端口
运
输
TCP 复用
UDP 复用
层
TCP 报文段
UDP 用户数据报
第6章:传输层协议

3. 多重协议的识别 • UNIX操作系统的TCP/IP的传输层就有TCP协 议和UDP协议; • 网络环境中一个进程的全网惟一的标识需要一 个三元组来表示:协议,本地地址,本地端口 号。
Ò Ð é À à Ð Í IPµ Ø Ö · Ë ¿ ¶ Ú º Å
TCP
121.5.2理并发请求的基本方案: • 设计一个并发服务器;
• 采用重复服务器的方法。
并发服务器(concurrent server)
• 并发服务器的核心是使用一个守护程序(daemon); • 守护程序在系统启动的时候随之启动,在没有客户的 服务请求到达时,并发服务器处于等待状态; • 一旦客户机的服务请求到达,服务器根据客户的服务 请求的进程号,去激活相应的子进程,而服务器回到 等待状态; • 并发服务器叫做主服务器(master),把子服务器叫 做从服务器(slave); • 主服务器必须拥有一个全网公认的进程地址; • 网络中的客户进程可以根据服务器进程的公认地址, 向服务器提出服务请求。
1.网络环境中分布式进程通信需要解决: • 进程命名与寻址方法 • 多重协议的识别 • 进程间相互作用的模式
2.网络环境中进程标识 • 在一台计算机中,不同的进程用进程号或进程 标识(process ID)惟一地标识出来。 • 网络环境中完整的进程标识应该是: • 本地主机地址-本地进程标识 ; • 远程主机地址-远程进程标识。 • 进程地址也叫做端口号(port number)。
第6章 传输层协议
本章学习要求:
• • • • • 了解:网络环境中分布式进程通的基本概念。 掌握:进程相互作用的Client/Server模型。 掌握:传输层的基本功能与服务质量。 掌握:用户数据报协议UDP。 掌握:传输控制协议TCP。
计算机网络第六章Transport Layer

DISCONNSEeCgmTent
CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011
Transport Service Primitives (1)
Primitives that applications might call to transport data for a simple connection-oriented service: • Client calls CONNECT, SEND, RECEIVE,
Make a socket
...
Try to connect
CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011
Socket Example – Internet File Server (2)
Application Transport Network
Link Physical
CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011
Transport Service
• Services Provided to the Upper Layer » • Transport Service Primitives » • Berkeley Sockets » • Socket Example: Internet File Server »
6课程代码4741计算机网络原理第六章_传输层

紧急比特URG(URGENT) 当URG=1时,表明紧急指针字段有效。 当使用紧急比特并将URG置1时,发送应用进程应告诉发送TCP这 两个字符是紧急数据。紧急指针指出在本报文段中的紧急数据的最后 一个字节的序号。 确认比特ACK 只有当ACK=1时确认序号字段才有效。当ACK=0时,确认序号无 效。 推送比特PSH(PUSH) 当两个应用进程进行交互式的通信时,有时在一端的应用进程希 望在键入一个命令后立即就能够收到对方的响应。这时,发送端TCP 将推送比特PSH置1,并立即创建一个报文段发送出去。接收TCP收到 推送比特置1的报文段,就尽快交付给接收应用进程,而不再等到整 个缓存都填满了后再向上交付。
6.2.2 TCP传输机制
1.TCP的段结构
比特 0 8 源端口 序号
TCP 首 部
16
24 目的端口
31
20 字 节 的 固 定 头 部
确认号 数据偏移 保留 检验和 选项(长度可变)
U R G A C K P S H R S T S Y N F I N
窗口 紧急指针 填充
TCP首部
TCP数据部分 TCP报文
2.TCP端口号
TCP和UDP采用16比特的端口号来识别应用进程。服务 器一般都是通过人们所熟知的端口号来识别的。小于 256的定义为常用端口,例如,对于每个TCP/IP实现来 说,FTP服务器的TCP端口号都是21,每个Telnet服务 器的TCP端口号都是23,每个TFTP(简单文件传输协议) 服务器的UDP端口号都是69。任何TCP/IP实现所提供的 服务都用众所周知的1-1023之间的端口号。这些人们 所熟知的端口号由Internet端口号分配机构来管理。
计算机网络 -第6章传输层-620

(4)无连接的传送服务原语:
T-UNITDATA.request(callee,caller,qos,user-data); T-UNITDATA.indication(callee,caller,qos,user-data);
面向连接和无连接服务
面向连接传输由三个步骤:连接建立,数据传输和连 接终止。
1. 连接建立
连接的建立表面上看来是一个简单的问题,发送方发出 一个连接请求TPDU给接收方,接收方返回一个连接确 认的TPDU,然后,双方就可以交换数据了。但是由于 网络的不可靠,可能出现数据的丢失和重复。三向握手 方法建立连接可解决这个问题。
传输层的流量控制
A
B
(1) REQ buf.8
(3) Seq0,m0 (4) Seq1,m1 (5) Seq2,m2
(7) Seq3,m3 (8) Seq4,m4 (9) Seq2,m2
丢失
(13) Seq5,m5 (14) Seq6,m6
丢失
(2) ACK1 buf.4
(6) ACK2 buf.3
传输服务用户和传输层能够提供的服务水平可能不 一致,在建立连接时要进行选择谈判,用户一般提 出希望值和最低限度可接受的值
一般来说,高质量服务的费用也较高
OSI模型同时支持面向连接和无连接的传输层服务, 上层程序通过调用传输服务原语来调用传输层的服 务。在这两种服务之间,更经常使用的是面向连接 的服务
骤1设置的值)。这称作“deflating”窗口。
传输连接
传输层端到端的传送可以采用两种模式来完成:面向 连接或无连接。面向连接的模式更经常使用。一个面 向连接的协议在发送者和接收者之间,经过互连网络 建立了一条虚电路或路经。属于一个消息的所有数据 包将通过同一条路经发送,对整个消息使用同一条路 经方便了确认过程和对损坏包及丢失包的重传。面向 连接的服务通常被认为是可靠的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第6章 传输层 位于应用层和网络层之间的传输层是分层网络体系结构的关键层次。本章讨论传输层的基本功能及其协议机制,并且介绍了TCP/IP体系结构中的传输层协议TCP和UDP。
6.1 传输层的基本功能 传输层是OSI模型的第四层,是整个网络体系的核心,它的主要职能是在源计算机到目的计算机之间提供可靠的、经济的数据传送服务,而且独立于所使用的物理网络,对于一些特殊的应用,某些传输层协议也提供高效的但不可靠的数据传送服务。使用传输服务的实体可以是会话实体,也可以直接是应用实体。
6.1.1 传输层端到端通信的概念 从本质上说,由物理层、数据链路层和网络层组成的通信子网为网络环境中的主机提供点对点通信服务,而传输层是为网络环境中的主机应用层应用进程提供端到端进程通信服务。通信子网只提供一台机器到另一台机器之间的通信,不会涉及到程序或进程的概念。端到端信道由一段段的点对点信道构成,端到端协议建立在点对点协议上,提供应用程序进程之间的通信手段。传输层端到端通信与网络层的点对点通信的关系如图6-1所示。
如前所述,从网络体系结构的角度,传输层既是面向通信的最高层,又是属于用户功能的最低层,它向上面的应用层提供了通信服务。传输层的基本功能是利用通信子网为两台主机的应用进程之间,提供端到端的性能可靠、价格合理、透明传
图6-1 传输层端到端通信的基本结构 输的通信服务。 图6-1表示两台主机(A和B)的用户进程通过互联的通信子网进行通信的情况。图中两个传输层之间有一条双向箭头,表示传输层为应用进程之间提供的逻辑通信。所谓逻辑通信指应用进程的报文到达传输层后,似乎是直接沿着水平方向传送到远地的传输层,但事实上应用进程之间并没有一条水平方向的物理连接,被传送的数据实际上是经过传输层以下各层及通信子网来传送的。在通信子网互联时,由于各通信子网所提供的服务不一定相同,传输层的存在就弥补了各通信子网所提供服务的差异和不足,并在其提供的服务的基础上,利用传输层的协议及增加的服务功能,使得通信子网的用户得到一个面向通信的通用的传输接口。此时,各通信子网对两端用户进程则是透明的,而对高层用户而言,传输层则屏蔽了通信子网或网络群的具体细节,用户进程所看到的只是在两个传输层实体之间存在着一条端到端的可靠的通信链路。 不难看出,传输层协议的复杂程度与通信子网提供的服务有关。通信子网提供的服务越多,传输层协议就越简单。反之,如通信子网所提供的服务越少,传输层协议就越复杂。从某种意义上来说,传输层协议填补了用户的要求与通信子网所提供的服务之间的差距。如前所述,网络层提供虚电路(面向连接的)和数据报(无连接的)两种服务,对于提供虚电路服务者,如果用户怀疑通信子网提供的虚电路服务的可靠性,此时传输层还必须具有端到端的差错控制和流量控制的功能。而对于提供数据报服务者,传输层既要负责报文无差错、不丢失、不重复,而且还要保证报文的顺序性,此时的传输层协议就要比前者复杂得多。从某种意义上来讲,传输层协议与数据链路层协议相类似,它们都要解决差错控制、流量控制和排序等问题,但其间的明显差异是它们所处的环境不同。数据链路层的环境是两个分组交换结点(PSN)直接相连的一条物理信道,而传输层的环境是两个主机之间的通信子网。由于传输层的环境要比数据链路层的环境复杂,从而对传输层协议的复杂程度产生很大的影响。这些影响主要体现在以下几个方面:第一,传输层建立传输连接的过程较复杂,需要有明确的路由选择才能通过通信子网找到目的主机中的用户进程;第二,由于通信子网的交换结点具有存储能力,分组在各交换结点上被存储转发,这就要求传输层协议适当处理因存储转发而出现的各种问题;第三,因通信子网可能同时存在多条链路,其连接数目又是动态变化的,传输层协议应采用不同的管理方法;第四,传输层必须给出目的地址,而数据链路层却不用给出目的地址。总之,传输层协议比数据链路层协议更复杂。 设计传输层的目的是弥补通信子网服务的不足,提高传输服务的可靠性与保证服务质量(QOS)。传输层是计算机网络体系结构中非常重要的一层。传输层的作用是在源主机与目的主机进程之间提供端到端数据传输,而传输层以下各层只提供相邻结点之间的点对点数据传输,如源主机-路由器、路由器-路由器、路由器-目的主机的数据传输。从“点对点”通信到“端到端”通信是一次质的飞跃,传输层为此需要引入许多新的概念和新的机制。 6.1.2 传输层向上层提供的服务 传输层是第一个端对端的层次。有了传输层后,高层用户就可利用传输层的服务直接进行端到端的数据传输,从而不必知道通信子网的存在,通过传输层的屏蔽,高层用户看不到通信子网的更替和技术变化,网络中通信子网是指网络层及其以下的部分。 传输层在网络分层结构中起着承上启下的作用,它使用了网络层提供的服务,并通过执行传输层协议,针对高层屏蔽通信子网在技术、设计上的差异和服务质量的不足,向高层提供一个标准的、完善的通信服务。 通常,在高层用户请求建立一条传输通信连接时,传输层就通过网络层在通信子网中建立一条独立的网络连接。若需要较高的吞吐量,传输层也可以建立多条网络连接来支持一条传输连接,这就是分流(splitting)。或者,为了节省费用,传输层也可以让多个传输通信合用一条网络连接,称为复用(multiplexing)。传输层还要处理端到端的差错控制和流量控制问题。概括地说,传输层为上层用户提供端对端的透明优化数据传输服务。 在传输层设计中,有两种可能的方法。第一种方法是针对每一种通信子网和所需要的传输服务都设计一个传输层协议。这种方式的好处在于可以有的放矢地解决问题,协议简捷,没有更多额外开销,效率很高,但协议缺乏通用性。第二种方法是针对通信子网可能的服务类型和各种传输服务需求,设计一个通用的传输层协议。这种标准化的设计思想可能把传输层协议变得大而全,效率低。一种折衷的方案是将通信子网分类,针对每一类通信子网设计相应的传输层协议,既保证效率又不失通用性。 从通信和信息处理的角度看,应用层是面向信息处理的,而传输层是为应用层提供通信服务的。传输层是属于网络中提供通信服务的最高层。有了传输层后,应用层的网络应用程序不必担心不同的子网接口和不可靠的数据传输。传输层可以起到隔离通信子网的技术差异性,如网络拓扑、通信协议的差异,改善传输可靠性的作用。因此,传输层是为用户提供可靠的数据传输服务的关键层。 传输层的最终目标是向它的用户,也就是应用层中的进程提供高效,可靠和经济的服务,为了实现这一目标,在传输层使用网络层提供的服务,同时通过传输协议完成传输层地功能,完成传输层功能的硬件和软件被称为传输实体 (transport entity),传输实体可能位于操作系统的内核,或者在一个独立的用户进程中,或者以一个链接库的形式被绑定到网络应用中,或者位于网络接口卡上,网络层,传输层和应用层之间的关系如图6-2所示: 如同网络层有两种不同类型的服务(面向连接的和无连接的)一样,传输服务的类型也有两种。其中面向连接的传输服务是一种可靠的服务,整个连接有三个阶段:建立连接、数据传输和释放连接,这在许多方面与面向连接的网络服务类似。另外,无连接的传输服务与无连接的网络服务也非常相似。
在协议栈中,传输层位于网络层之上。传输层协议为不同主机上运行的进程提供逻辑通信,而网络层协议则为不同主机提供逻辑通信。这个区别非常重要。 在一个终端系统中,传输层协议将应用进程的消息传送到网络边缘(也就是网络层),反之亦然;但是它并不涉及消息是如何在网络层之间传送的工作。事实上,中间路由器对于传输层加在应用程序消息上的信息不能做任何识别和处理。 传输层协议所提供的服务通常受限于位于其下方的网络层协议。如果网络层协议不能提供主机之间传送的TPDU(传输协议数据单元)的延迟和带宽保证,那么传输层协议也不可能提供进程之间传送的消息的延迟和带宽保证。 传输层的代码完全运行在用户的机器上,但是网络层主要运行在由承运商控制的路由器上(至少对于广域网是如此)。如果网络层提供的服务不够用,那会怎么样呢?如果它频繁地丢失分组该怎么办?如果路由器时常崩溃又该怎么办呢?用户在网络层上并没有真正的控制权,也就是用户不能对通信子网加以控制,因而无法采用更优的通信处理机制来解决网络层服务质量太差的问题,更不能通过改进数据链路层纠错能力来改善它,惟一的可能是在网络层之上的另一层中提高服务质量。如果在一个面向连接的子网中,一个传输实体在执行一个长时间的传输过程时,突然接到通知说它的网络层连接已经被意外终止了,而且也不知道当前正在传输的那些数据到底怎么样,那么,该传输实体可以与远程的传输实体建立起新的网络层连接。利用新建立的连接,它可以向对方发送一个查询请求,询问哪些数据已经到达,哪些数据还没有到达,然后从中断的地方开始继续向对方发送数据。 从本质来讲,由于传输层的存在,这使得传输服务有可能比网络服务更加可靠。
TPDU 用户 网络实体 传输实体 用户 网络实体 传输实体 传输 地址 网络 地址 传输协议 应用 ∕ 传输层 接口
传输 ∕ 网络层 接口
图6-2 网络层、传输层和应用层之间的关系 丢失的分组和损坏的数据可以在传输层上检测出来,并且由传输层来补偿。由于有了传输层,应用开发人员可以根据一组标准的原语来编写代码,而且他们的程序有可能运行在各种各样的网络上,他们不用处理不同的子网接口。也不用担心不可靠的传输过程。传输层承担了将子网的技术、设计和各种缺陷与上层隔离的关键作用。并且即使当下面的网络层协议使得网络层并不能提供某些相应的服务时,传输层协议仍然可以提供某些特定服务。
6.1.3 传输服务原语 通常,传输实体也称为传输服务提供者,而使用传输服务的用户(可能是会话实体,也可能是应用实体)称为传输服务用户,简称TS用户。为了让TS用户访问传输服务,传输层必须为TS用户提供一些操作,也就是说,提供一个传输服务接口,每个传输服务都有它自己的接口。这就是传输服务原语。表6-1给出了抽象的传输服务原语。
表6-1 抽象的传输服务原语 阶段 服务 原语 参数 连 接 建 立 建 立 连 接 T—Contact.Req 被呼地址,主呼地址,选项,服务质量,TS用户数据 T—Connect.Ind 被呼地址,主呼地址,选项,服务质量,TS用户数据 T—Connect.Rsp 响应地址,选项,服务质量,Ts用户数据 T—Connect.Cnf 响应地址,选项,服务质量,TS用户数据 数 据 传 输 常 规 数 据 T—Data.Req TS用户数据 T—Data.Ind TS用户数据 加 速 数 据 T—Expedited—Data.Req TS用户数据 T—Expedited—Data.Ind TS用户数据 连 接 释 放 释 放 连 接 T—Disconnect.Req TS用户数据 T—Disconnect.Ind 连接释放原因,TS用户数据