计算机网络技术及应用(第二版)第8章 运输层要点
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图8-2给出了IP协议与运输层协 议作用范围的区别。
进程 (运行的应用程序)
进程 (运行的应用程序)
INTERNET
IP协议的作用范围 运输层协议的作用范围
另外,除了在作用范围上有所区别,传 输层还比网络层提供更可靠的传输服务。 分组丢失、数据残缺均会被传输层检测 到并采取相应的补救措施。
计算机网络技术及应用(第2版)
第8章 运输层
8.1传输层概述
运输层是整个网络体系结构中的关键层 次之一,其根本任务是为两个主机中的 应用进程提供通信服务。在传输层中共 有两个协议,分别是TCP协议与UDP协议, TCP协议的控制机制非常复杂,从而保证 了应用进程之间的可靠数据传输。
8.1.1传输层的设计问题
8.1.2 端口
现在的操作系统都支持多用户、多任务 的运行环境。一个计算机在同一时间可 运行多个进程。在网络上,主机是用IP 地址来定义的。要定义主机上的某一个 进程,便需要第二个标识符,叫做端口 号。
端口是个非常重要的概念,因为应用层的各种 进程是通过相应的端口与运输实体进行交互的。 因此在运输协议数据单元的首部中都要写入源 端口号和目的端口号。当运输层收到IP层交上 来的数据,就要根据其目的端口号来决定应当 通过哪一个端口上交给目的应用进程。 在TCP/IP协议族中,端口号由16位二进制数表 示,换算为十进制,则是0-65536之间的整数。 端口号只有本地意义,即端口号只是为标志本 计算机应用层中的各进程,不同计算机的相同 端口号是没有联系的。
端口号分为两类。一类是由因特网指派名字和号码公 司ICANN负责分配给一些常用的应用层程序固定使用 的熟知端口(well-known port),其数据一般为01023,表8-1中便列出了部分常见的熟知端口。“熟知” 就表示这些端口号是TCP/IP体系确定并公布的,因而 是所有用户进程都知道的。当一种新的应用程序出现 时,必须为它指派一个熟知端口,否则其他的应用进 程都无法和它进行交互。在应用层中的各种不同的服 务器进程不断地检测分配给它们的熟知端口,以便发 现是否有某个客户进程要和它通信。另一类是一般端 口,用来随时分配给请求通信的客户进程,一般来说, 客户进程所使用的端口号都是临时产生的,通信完成 后便释放,所以又称短暂端口号。
表8-1 常见的熟知端口
协议 FTP TELNET SMTP DNS DHCP TFTP 端口 21 23 25 53 67 69 说明 文件传输协议 远程登录协议 简单邮件传输协议 域名解析协议 动态主机配置协议 快速文件传输协议
HTTP
SNMP
80
161
超文本传输协议
简单网络管理协议
为了在通信时能确定唯一主机的唯一进程,就 必须把端口号和主机的IP地址结合起来一起使 用,称为套接字地址(socket address),或 直接称为SOCKET。在实际通信过程中,我们 需要一对套接字地址:客户套接字地址和服务 器套接字地址,客户套接字地址惟一定义了客 户进程,而服务器套接字唯一地定义了服务器 进程。这四种信息分别是IP首部与运输协议数 据单元首部中的一部分。
IP 地址
200.10.10.1 200.10.10.1 200.10.10.1 200.10.10.1, ,
端口号
21 21 21 21
套接字地址
图8-3 套接字的组成
8.3用户数据报协议UDP
8.3.1 UDP概述 用户数据报协议UDP是传输层协议之一,其实 现功能较为简单,但由于其灵活、开销小等特 点,使得它更适合某些应用。 UDP提供无连接的服务。这表示UDP发送出的 每一个用户数据报都是独立的数据报。用户数 据报并不进行编号,也没有建立连接和释放连 接的过程,每一个用户数据报可以走不同的路 径。
UDP是一个不可靠的传输层协议。它没 有流量控制,因而当到来的报文太多时, 接收端可能溢出。除检验和外,UDP也 没有差错控制机制。这表示发送端并不 知道报文是丢失了还是重复地交付了。 当接收端使用检验和并检测出差错时, 就悄悄地将这个用户数据报丢掉。缺少 流量控制和差错控制就表示使用UDP的 进程必须要提供这些机制。
图8-1 网络层、传输层和应用 层的逻辑关系
主机1 主机2
应用层 传输地址 应用/传输接口 传输实体 TPDU 传输协议 传输/网络接口 网络地址 网络层
应用层
传输实体
ห้องสมุดไป่ตู้
网络层
传输层协议通常具有几种责任。
一种责任就是创建进程到进程的通信,通常使用端口 号来完成这种功能。另一种责任是在传输层提供控制 机制,比如差错控制、流量控制及拥塞控制等,UDP 协议提供很简单的控制机制,而TCP却要复杂很多,如 使用确认分组、超时和重传来完成差错控制,使用滑 动窗口协议完成流量控制等。另外,传输层还应当负 责为进程建立连接机制,这些进程应当能够向传输层 的发送数据流。传输层在发送站的责任应当是和接收 站建立连接,把数据流分割成可传输的单元,把它们 编号,然后逐个发送他们。传输层在接收端的责任应 当是等待属于同一个进程的所有不同单元的到达,检 查并传递那些没有差错的单元,并把它们作为一个流, 交付给接收进程。当整个流发送完毕后,传输层应当 关闭这个连接。
运输层的任务是为两个主机中的应用进 程提供通信服务。这与网络层中的IP协 议有什么区别呢?IP协议是负责计算机 级的通信,换句话说,是提供主机到主 机的通信服务。作为网络层协议,IP协 议只能将报文交付给目的计算机。但是, 这是一种不完整的交付。这个报文还必 须送交到正确的进程。这正是传输层协 议所要做的事。
传输层的最高目标是向其用户(一般是指应用 层的进程,即运行着的应用程序),提供有效、 可靠且价格合理的服务。为了达到这一目标, 传输层利用了网络层所提供的服务。传输层完 成这一工作的硬件和软件称为传输实体 (transport entity)。传输实体可能在操作系 统内核中,或在一个单独的用户进程内,也可 能是包含在网络应用的程序库中,或是位于网 络接口卡上。网络层、传输层和应用层的逻辑 关系如图8-1所示。