《计算机网络 运输层》由会员分享,可在线阅读,更多相关《计算机网络 运输层(93页珍藏版)》请在金锄头文库上搜索。
1、第5章 运输层,5.1 运输层概述 5.2 用户数据报协议 UDP 5.3 传输控制协议 TCP 概述 5.4 可靠传输的工作原理 5.5 TCP 报文段的首部格式 5.6 TCP 可靠传输的实现 5.7 TCP的流量控制 5.8 TCP 的拥塞控制 5.9 TCP 的运输连接管理,5.1 运输层概述 5.1.1 运输层的功能,为跨网络的不同主机的应用进程之间提供端到端的透明逻辑通信服务。 向高层屏蔽下面网络连接的细节,使应用进程感觉在两个运输层实体之间就好像有一条端到端的全双工逻辑信道,随时可以进行通信。,3,从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的
2、最高层,同时也是用户功能中的最低层。,物理层,网络层,运输层,应用层,数据链路层,面向信息处理,面向通信,用户功能,网络功能,4,引入传输层的原因,消除网络层的多样性和不可靠性。 提供从源主机到目的端主机可靠的、价格合理的、与实际使用的网络无关的信息传输。,5,传输层概述,传输层存在的必要性 网络层的分组传输是不可靠的。 无法了解数据到达终点的时间。 无法了解数据未达终点的状态。 有必要增强网络层提供服务的服务质量。传输层的功能 为应用进程提供可靠的端到端连接服务。 建立连接 数据传输 释放连接 流量控制和差错控制,6,传输服务,传输实体(transport entity) 完成传输层功能对等
3、通信实体的硬软件。 利用网络提供的点到点的分组传输服务向高层提供端到端的传输服务。 传输服务:传输层实体利用网络层提供的服务向高层提供有效、可靠和价格合理的服务。1 4层称为传输服务提供者,4层以上称为传输服务用户。 传输层提供两种服务 面向连接的传输服务 包括三个阶段:连接建立,数据传输,释放连接。 其中释放连接的方式有两种: 不对称方式:任何一方都可以关闭双向连接。 对称方式:每个方向的连接单独关闭,双方都执行Disconnect才能关闭整条连接。 无连接的传输服务,7,运输层为相互通信的应用进程提供了逻辑通信,5 4 3 2 1,运输层提供应用进程间的逻辑通信,主机 A,主机 B,应用进
4、程,应用进程,路由器 1,路由器 2,AP1,LAN2,WAN,AP2,AP3,AP4,IP 层,LAN1,AP1,AP2,AP4,端口,端口,5 4 3 2 1,IP 协议的作用范围,运输层协议 TCP 和 UDP 的作用范围,AP3,8,应用进程之间的通信,两个主机进行通信实际上就是两个主机中的应用进程互相通信。 应用进程之间的通信又称为端到端的通信。 运输层的一个很重要的功能就是复用和分用。应用层不同进程的报文通过不同的端口向下交到运输层,再往下就共用网络层提供的服务。 “运输层提供应用进程间的逻辑通信”。“逻辑通信”的意思是:运输层之间的通信好像是沿水平方向传送数据。但事实上这两个运输
5、层之间并没有一条水平方向的物理连接。,9,运输层协议和网络层协议的主要区别,应用进程,应用进程,IP 协议的作用范围 (提供主机之间的逻辑通信),TCP 和 UDP 协议的作用范围 (提供进程之间的逻辑通信),因 特 网,10,运输层的主要功能,运输层为应用进程之间提供端到端的逻辑通信(但网络层是为主机之间提供逻辑通信)。 运输层还要对收到的报文进行差错检测。 运输层需要有两种不同的运输协议,即面向连接的 TCP 和无连接的 UDP。,11,运输层与其上下层之间的关系的 OSI 表示法,运输实体,运输实体,运输协议,运输层,层接口,运输服务用户 (应用层实体),运输服务用户(应用层实体),层接
6、口,网络层 (或网际层),应用层,主机 A,主机 B,运输层服务访问点 TSAP,网络层服务访问点 NSAP,12,运输层向上提供可靠的和不可靠的逻辑通信信道,?,应 用 层,运 输 层,发 送 进 程,接 收 进 程,接 收 进 程,数据,数据,全双工可靠信道,数据,数据,使用 TCP 协议,使用 UDP 协议,不可靠信道,发 送 进 程,5.1.2 OSI的传输层 网络层向传输层提供的服务有可靠与不可靠之分。 OSI的传输层向上层提供的都是端到端的可靠通信。 如果通信子网功能完善,那么传输层的功能比较简单 如果通信子网质量很差,那么传输层就必须填补用户要求的服务质量和网络层所能提供的服务质
7、量之间的差异,通用的传输层接口,传输协议1,传输协议2,通信子网1所提供的服务,通信子网2所提供的服务,OSI的传输层协议规格:,网络质量好 网络质量差,协议功能弱 协议功能强,(1) 用户数据报协议UDP(User Datagram Protocol) UDP提供面向无连接的尽最大努力交付(不可靠)的服务。 对方的运输层收到UDP报文后,不需要给出任何确认。 UDP传送的数据单位称为UDP报文或用户数据报。 (2) 传输控制协议TCP(Transmission Control Protocol) TCP提供面向“连接”的可靠服务。 提供对TCP报文段的确认、流量控制、计时器和连接管理。 但T
8、CP不提供广播或多播服务。 TCP传送的数据单位称为TCP报文段。,5.1.3 TCP/IP的运输层,TCP,UDP,IP,应用层,与各种网络接口,运输层,运输层协议和网络层协议的主要区别,应用进程,应用进程,IP 协议的作用范围 (提供主机之间的逻辑通信),TCP 和 UDP 协议的作用范围 (提供进程之间的逻辑通信),因 特 网,TCP/IP传输层的特点:,当运输层采用面向连接的 TCP 协议时,尽管下面的网络可能是不可靠的,但端到端的通信是可靠的。 当运输层采用面向无连接的 UDP 协议时,一般认为这种端到端的通信是不可靠的。但事实上目前的网络可靠性很高,因此端到端的通信也基本上是可靠的
9、。 应用层协议使用UDP和TCP的情况:,5.1.4 运输层的端口,运行在计算机中的进程是用进程标识符来标志的。 运行在应用层的各种应用进程能否让计算机操作系统指派它的进程标识符? NO 因为因特网上的操作系统种类繁多,不同的操作系统使用不同格式的进程标识符。 为了使运行不同操作系统的计算机应用进程能够互相通信,必须用统一的方法对 TCP/IP 体系的应用进程进行标志。 解决方法:在运输层使用协议端口号(protocol port number),或端口(port)。 但端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的各进程。,19,端口就是运输层服务访问点 TSAP。 端口的作用
10、就是让应用层的各种应用进程都能将其数据通过端口向下交付给运输层,以及让运输层知道应当将其报文段中的数据向上通过端口交付给应用层相应的进程。 从这个意义上讲,端口是用来标志应用层的进程。,20,端口,Port 0,Port 1,Port 65535,每个主机有65,536个端口 一些端口被预留,用于特定的应用程序 20,21: FTP 23: Telnet 80: HTTP 参考RFC 1700 (大约1024个端口被预留),Socket提供了一个通过端口在网络上收发数据的接口,21,端口在进程之间的通信中所起的作用,应 用 层,运 输 层,网 络 层,TCP 报文段,UDP 用户数据报,应用进
11、程,TCP 复用,IP 复用,UDP 复用,TCP 报文段,UDP 用户数据报,应用进程,端口,端口,TCP 分用,UDP 分用,IP 分用,发送方,接收方,22,端口,端口用一个 16 bit 端口号进行标志。 端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的各进程。在因特网中不同计算机的相同端口号是没有联系的。,23,两类端口,一类是熟知端口,其数值一般为 01023。当一种新的应用程序出现时,必须为它指派一个熟知端口。 另一类则是一般端口,用来随时分配给请求通信的客户进程。,24,插口(socket),TCP 使用“连接”(而不仅仅是“端口”)作为最基本的抽象,同时将 TCP
12、 连接的端点称为插口(socket),或套接字、套接口。 插口和端口、IP 地址的关系是:,25,同一个名词 socket 有多种不同的意思,应用编程接口 API 称为 socket API, 简称为 socket。 socket API 中使用的一个函数名也叫作socket。 调用 socket 函数的端点称为 socket。 调用 socke t函数时其返回值称为 socket描述符,可简称为 socket。 在操作系统内核中连网协议的 Berkeley 实现,称为 socket 实现。,26,TCP/IP寻址,TCP/IP则是通过IP+端口地址来区分不同的连接;如下图,连 接 1,连 接
13、 3,连 接 2,全球化解决方案:,套接字 socket = (IP地址: 端口号) 每一条 TCP 连接唯一地被通信两端的两个端点(即两个套接字)所确定。即:TCP 连接 := socket1, socket2 = (IP1: port1), (IP2: port2),套接字 (socket),三类端口,熟知端口:01023。例如:,登记端口:102449151为没有熟知端口号的应用程序使用。使用这个范围的端口号必须在 IANA 登记,以防止重复。 短暂端口:4915265535供客户进程暂时使用,通信结束后,供其他客户进程使用。,5.2 用户数据报协议 UDP 5.2.1 UDP 概述,U
14、DP不可靠的交付,在IP层的数据报服务之上增加:1、端口的(复用/分用)功能 ;2、简单的代码和校验功能。 UDP特点: UDP 是无连接的。即发送数据前/后不需要建立/释放连接 UDP 不保证可靠交付也不使用拥塞控制,因而保证了速度 UDP 是面向报文的:UDP 对应用层交下来的报文,既不合并,也不拆分,在添加首部后就向下交付 IP 层。UDP 对 IP 层交上来的 UDP 用户数据报,在去除首部后就原封不动地交付上层的应用进程。 应用程序必须选择合适大小的报文。 UDP 支持一对一、一对多、多对一和多对多的交互通信 UDP 的首部开销小,只有 8 个字节。,UDP 基于端口的复用和分用:,
15、IP 层,端口 2,端口 3,端口 1,UDP 复用,面向报文的UDP,IP 数据报的数据部分,IP 首部,IP 层,UDP 首部,UDP 用户数据报的数据部分,运输层,应用层报文,应用层,5.2.2 UDP 的首部格式,伪首部,源端口,目的端口,长 度,检验和,数 据,首 部,UDP长度,源 IP 地址,目的 IP 地址,0,17,IP 数据报,字节,4,4,1,1,2,12,2,2,2,2,字节,发送在前,数 据,首 部,UDP 用户数据报,伪首部,源端口,目的端口,长 度,检验和,数 据,首 部,UDP长度,源 IP 地址,目的 IP 地址,0,17,IP 数据报,字节,4,4,1,1,2,12,2,2,2,2,字节,发送在前,