《现代网络技术教程-自顶向下分析与设计》课件第5章

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第 5 章 传输层协议与软件编程方法
图5-9 TCP协议、UDP协议与其他协议的层次关系
第 5 章 传输层协议与软件编程方法
5.3 用户数据报协议UDP
5.3.1 UDP协议的主要特点
(1) UDP是一种无连接、不可靠的传输协议。 UDP协议在传输报文之前不需要在通信双方之间建立连接, 因此减少了协议开销和传输延时。UDP对报文除了提供一种可 选的校验和之外,几乎没有其他保证数据传输可靠性的 措施。
第 5 章 传输层协议与软件编程方法
物理层定义了IP地址,传输层需要解决的第一个问题是进 程标识。在一台计算机中,不同进程使用进程号或进程标识 (Process ID)唯一地标识。进程号又称端口号(Port Number)。在 网络环境中,标识一个进程必须同时使用IP地址和端口号。 “套接字”(Socket)或“套接字地址”(Socket Address)表示一 个IP地址与对应的一个进程标识。例如,一个IP地址为 202.1.2.5、端口号为3022的客户端,与一个IP地址为41.8.22.51、 端口号为80的Web服务器端建立TCP连接,那么标识客户端的 套接字为“202.1.2.5:3022”,标识服务器端的套接字为 “41.8.22.51:80”。
第 5 章 传输层协议与软件编程方法
图5-5 基于C/S的应用进程标识方法
第 5 章 传输层协议与软件编程方法
2.端口号的分配方法 1) 端口号的数值范围 在TCP/IP协议族中,端口号取0~65 535之间的整数。 2) 端口号的类型 端口号有三种类型:熟知端口号、注册端口号和临时端口 号。图5-6给出了端口号数值范围的划分。
图5-2 网络层、传输层和应用层之间的关系示意图
第 5 章 传输层协议与软件编程方法
传输层之间传输的报文称为传输协议数据单元(Transport Protocol Data Unit,TPDU)。图5-3给出了TPDU结构与IP分组、 帧结构的关系示意图。
图5-3 TPDU结构与IP分组、帧结构的关系示意图
第 5 章 传输层协议与软件编程方法
图5-6 端口号数值范围的划分
第 5 章 传输层协议与软件编程方法
(1) 临时端口号:客户端程序使用临时端口号,它是运行在 客户端上的TCP/IP软件随机选取的。临时端口号的数值范围为49 152~65 535。
(2) 熟知端口号:给每种服务器促销和分配确定的全局端口 号,称为熟知端口号(Well-know Port Number)或公认端口号。每 个客户进程都知道相应的服务器进程的熟知端口号。熟知端口号 的数值范围为0~1023,它是统一分配和控制的。
第 5 章 传输层协议与软件编程方法
图5-7 三元组的结构
第 5 章 传输层协议与软件编程方法
网络环境中的进程通信要涉及两个不同主机的进程,因此 一个完整的进程通信标识需要一个五元组标识:协议、本地地 址、本地端口、远程地址与远程端口号。在UNIX系统中,这 个五元组又称为相关(Association)。例如,一个客户端套接字 为“202.1.2.5:3022”,服务器端套接字为“41.8.22.51:80”,则 标识客户端与服务器端的TCP连接的五元组应该是“TCP, 202.1.2.5:3022,41.8.22.51:80”。
第 5 章 传输层协议与软件编程方法
5.1.4 网络环境中的应用进程标识
1.应用进程标识的基本方法 IP网络的传输层寻址是通过TCP与UDP的端口来实现的。 有很多类型的互联网应用程序,例如基于C/S工作模式的FTP、 E-mail、Web、DNS与SNMP以及基于P2P的应用。这些标准的 互联网应用程序在传输层分别选择了TCP或DUP协议。为了区 别不同的网络应用程序,TCP和UDP协议规定用不同的端口号 来表示不同的应用程序。图5-5给出了基于C/S的应用进程标识 方法。
网络虚拟终端协议
25
SMTP
简单邮件传输协议
80
HTTP
超文本传输协议
119
NNTP
网络新闻传输协议
179
BGP
边界路由协议
第 5 章 传输层协议与软件编程方法
3.网络环境中的进程识别 网络环境中一个进程的全网唯一的标识需要用一个三元组 标识:协议、本地地址与本地端口号。在UNIX系统中,这个 三元组又称为半相关(Half-association)。图5-7给出了三元组的 结构。
发送数量比较少,对数据传输可靠 性要求低的应用,例如 IP 电话、视频 会议、多播与广播
第 5 章 传输层协议与软件编程方法
当时使用的TCP协议在解决路由选择的同时,要求解决报 文传输的可靠性等一系列复杂问题。要在一个协议中同时解决 路由选择与传输路径的建立、数据传输的可靠性、流量控制、 拥塞控制等问题,这种协议一定是非常复杂的,实现这种协议 是以牺牲带宽与延时为代价的。在ARPANET规模比较小时, 该问题暴露得不是很充分。一旦网络规模增大,初期设计的 TCP协议就显得非常不适应。
第 5 章 传输层协议与软件编程方法
(2) UDP是一种面向报文的传输层协议。 图5-10描述了UDP对应用程序提交的数据处理方式。UDP 对于应用程序提交的报文,在添加了UDP协议头部构成一个 TPDU之后就向下提交给IP层。UDP对应用程序提交的报文既 不合并也不拆分,而是保留原报文的长度和格式。接收方会将 发送方传送的报文原封不动地提交给接收方应用程序。因此, 在使用UDP协议时,应用程序必须选择合适长度的报文。
第 5 章 传输层协议与软件编程方法
5.2.2 TCP协议、UDP协议与应用层协议的关系
图5-9描述了TCP协议、UDP协议与其他协议的层次关系, 以及它与应用层协议的单向依赖关系。从图中可以看出,根据 应用层协议与传输层协议的单向依赖关系,应用层协议可以分 为三种类型:一类依赖于UDP协议,一类依赖于TCP协议,另 一类既依赖于UDP协议又依赖于TCP协议。依赖于TCP的应用 层协议主要是需要大量传输交互式报文的应用,例如,虚拟终 端协议(TELNET)、电子邮件协议(SMTP)、文件传输协议 (FTP)、超文本传输协议(HTTP)等。
图5-1 传输层的基本功能
第 5 章 传输层协议与软件编程方法
5.1.2 传输层与应用层、网络层之间的关系
传输层中实现传输协议的硬件和软件称为传输实体 (Transport Entity)。传输实体可能在操作系统内核或单独的 用户进程中。图5-2给出了网络层、传输层和应用层之间的 关系示意图。
第 5 章 传输层协议与软件编程方法
第 5 章 传输层协议与软件编程方法
5.1.5 传输层的多路复用与多路分解
在发送端,IP协议将TCP或UDP的协议传输数据单元 (TPDU)都分成IP分组发送出去;在接收端,IP协议将从IP分组 中拆开的传输协议数据单元(TPDU)传送到传输层,由传输层 根据不同TPDU的端口号区分出不同TPDU属性,分别传送给 对应的四个应用进程。这个过程称为传输层的多路复用与多路 分解。图5-8给出了传输层的多路复用与多路分解原理示意图。
ቤተ መጻሕፍቲ ባይዱ
第 5 章 传输层协议与软件编程方法
在重新设计TCP/IP协议体系时,设计者采取了在网络层选 择只能提供“尽最大努力而为”服务的IP协议,而在传输层制 定了两种性质的协议技术路线。一种传输层协议用于满足对数 据传输可靠性要求较高的应用需求,另一种传输层协议用于满 足对传输灵活性要求比较高的应用需求。TCP和UDP能满足互 联网发展的实际需求,二者同等重要,同时二者又是互补的关 系。从目前实际应用的经验,尤其是P2P网络应用对数据传输 的需求中可以看出,这条技术路线是非常正确的。
特征/描述 一般描述 面向连接与无连接 与应用层的数据接口 可靠性与确认
表 5-3 TCP 与 UDP 协议的比较
TCP 允许应用程序可靠地发送数据,功 能齐全 面向连接,在 TPDU 传输之前需要 建立 TCP 连接 基于字节流,应用层不需要规定特 点的数据格式
UDP 简单、高速,只负责将应用层与网 络层衔接起来 无连接,在 TPDU 传输之前不需要 建立 UDP 连接 基于报文,应用层需要将数据分成 包来传送
第 5 章 传输层协议与软件编程方法
网络层是传输网络(承载网)的一部分,而传输网络是由电 信公司运营和提供服务的。如果网络层提供的服务不可靠(例 如频繁丢失分组),用户无法对传输网络加以控制,则需要在 网络层上增加一层以改善服务质量。传输层会对分组丢失、线 路故障进行检测,并采取相应的补救措施。
第 5 章 传输层协议与软件编程方法
67/68
DHCP
动态主机配置协议
69
TFTP
简单文件传输协议
111
RPC
远程过程调用
123
NTP
网络时间协议
161/162
SNMP
简单网络管理协议
520
RIP
路由信息协议
表 5-2 TCP 常用的熟知端口号
端口号 服务进程
说明
20
FTP
文件传输(数据连接)
21
FTP
文件传输(控制连接)
23
TELNET
第 5 章 传输层协议与软件编程方法
第5章 传输层协议与软件编程方法
5.1 传输层的基本概念 5.2 传输层协议的特点与比较 5.3 用户数据报协议UDP 5.4 传输控制协议TCP 习题
第 5 章 传输层协议与软件编程方法
5.1 传输层的基本概念
5.1.1 传输层的基本功能
图5-1描述了传输层的基本功能。 网络层的IP地址标识了联网主机、路由器的位置信息;路 由算法可以在互联网络中选择一条由源主机—路由器、路由 器—路由器、路由器—目的主机的多段“点—点”链路组成的 传输路径;IP协议通过这条传输路径完成分组数据的传输。
第 5 章 传输层协议与软件编程方法
图5-10 UDP对应用程序提交的数据处理方式
第 5 章 传输层协议与软件编程方法
可靠报文传输,对所有的数据均要 不可靠,不需要对传输的数据确认,
确认
尽力而为地交付
重传 开销 传输速率 适用的数据量
自动重传丢失的数据 低,但高于 UDP 高,但低于 UDP 从少量到几个 GB 的数据
不负责检查是否丢失数据和重传 很低 很高 从少量到几百个字节的数据
适用的应用类型
对数据传输可靠性要求较高的应 用,例如文件与报文传输
(3) 注册端口号:在IANA注册的端口号,为避免与临时端口 号和熟知端口号重复,注册端口号的数值范围为1024~49 151。
第 5 章 传输层协议与软件编程方法
表5-1和表5-2分别给出了UDP与TCP常用的熟知端口号。
表 5-1 UDP 常用的熟知端口号
端口号 服务进程
说明
53
Domain
域名服务
第 5 章 传输层协议与软件编程方法
图5-4 应用进程、套接字与传输层协议的关系示意图
第 5 章 传输层协议与软件编程方法
用一个例子来形象地描述传输层的端口号与物理层IP地址 之间的关系。假如一位同学要找深圳大学计算机系的网络实验 室,计算机系工作人员会告诉这位同学,网络实验室位于科技 楼1405室。这里的“科技楼”相当于“IP”地址,“1405”相当 于“端口号”。IP地址只能告诉你实验室在哪个楼,这时不知 道房间号还是不行的。只有知道是哪个楼的哪个房间,才能顺 利地找到你要去的地方。在计算机通信中也一样,只有知道IP 地址和端口号,才能唯一地找到准备通信的进程。
第 5 章 传输层协议与软件编程方法
5.1.3 应用进程、传输层接口与套接字
图5-4给出了应用进程、套接字与传输层协议的关系示意 图。IP网络的传输层采用TCP与UDP两种协议。图中假设传输 层采用TCP协议,应用进程是由应用程序开发者控制的,应用 程序与传输层的TCP或UDP协议都是在主机操作系统的控制下 工作的。应用程序开发者只能根据需要,在传输层选择TCP或 UDP协议,设定相应的最大缓存、最大报文长度等参数。
第 5 章 传输层协议与软件编程方法
图5-8 传输层的多路复用与多路分解原理示意图
第 5 章 传输层协议与软件编程方法
5.2 传输层协议的特点与比较
5.2.1 TCP协议与UDP协议的比较
IP网络的传输层定义了两种协议:TCP协议与UDP协议。 表5-3给出了TCP与UDP协议的比较。
第 5 章 传输层协议与软件编程方法
相关文档
最新文档