资源描述
,计算机网络,传输层基本功能与服务 UDP协议, TCP协议 习题,第13课:主要内容,重点与难点,重点: 了解运输层协议类型,运输层的分用和复用; 掌握UDP,TCP协议的特点;UDP报文的格式; 难点: 熟悉进程间的通信过程;UDP,TCP的端口服务类型;,讨论1 传输层的基本功能和服务,应用层,传输层,网络层,数据链路层,物理层,网络功能,用户功能,面向通信,面向信息处理,从通信和信息处理的角度看:传输层向它的上一层应用提供通信服务,它属于面向通信部分的最高层,也是用户功能的最低层,讨论1 传输层的基本功能和服务,应用层,传输层,网络层,数据链路层,物理层,网络功能,用户功能,面向通信,面向信息处理,其主要任务是:在优化网络服务的基础上,从源端机到目的端机提供可靠的、价格合理的数据传输,使高层服务用户在相互通信时不必关心通信子网实现的细节。,其主要功能是:负责应用程序之间的通信,主要有连接端口管理、流量控制、错误处理、数据重发等工作,AP1,AP2,AP3,AP4,IP传输,提供应用进程间逻辑通信,端口,应用进程,传输层为相互通信的应用进程提供了逻辑通信,主机 A,主机 B,路由器 1,路由器 2,AP1,LAN2,WAN,AP2,AP3,AP4,LAN1,IP 协议的作用范围,运输层协议 TCP 和 UDP 的作用范围,由上图可以看出数据在两台主机间传送的整个过程:,在物理层上可以透明地传输数据的比特流; 在数据链路层上使得各条链路能传送无差错的数据帧(数据帧按顺序、无丢失、不重复); 在网络层上提供了路由选择和网络互连的功能,使得主机A发送的数据分组(packet)能够按照合理的路由到达主机B。但是在这一过程中,到达主机B的数据并不一定是最可靠的。 为了提高网络服务的质量,在传输层需要再次优化网络服务,并向高层用户屏蔽通信子网的细节,使高层用户看见的就好像在两个传输层实体之间有一条端到端的、可靠的、全双工的通信通路一样。,在整个通信的过程中,数据在传输层上,才是第一次实现真正意义的端到端的数据通信。 要想实现传输层的功能,必须在主机中装有传输层协议。 在传输层中完成传输功能的硬件和软件被称为传输实体TSAP(Transport Service Access Point),通过传输实体,传输层可以向应用层提供传输服务,运输层协议和网络层协议的主要区别,应用进程,应用进程,IP 协议的作用范围 (提供主机之间的逻辑通信),TCP 和 UDP 协议的作用范围 (提供进程之间的逻辑通信),因 特 网,TCP/IP 体系中的运输层协议,TCP,UDP,IP,应用层,与各种网络接口,运输层,TCP/IP协议中的传输层,在TCP/IP协议中有两个并列的协议:UDP和TCP。,UDP(User Datagram Protocol,用户数据报协议)是面向无连接的,即在进行数据传输之前不需要建立连接,而目的主机收到数据报后也不需要发回确认。这种协议提供了一种高效的传输服务。,TCP(Transmission Control Protocol,传输控制协议)是面向连接的,即在进行数据传输之前需要先建立连接,而且目的主机收到数据报后要发回确认信息。这种协议提供了一种可靠的传输服务。,TCP 与 UDP,UDP 在传送数据之前不需要先建立连接。对方的运输层在收到 UDP 报文后,不需要给出任何确认。虽然 UDP 不提供可靠交付,但在某些情况下 UDP 是一种最有效的工作方式。 TCP 则提供面向连接的服务。TCP 不提供广播或多播服务。由于 TCP 要提供可靠的、面向连接的运输服务,因此不可避免地增加了许多的开销。这不仅使协议数据单元的首部增大很多,还要占用许多的处理机资源。,还要强调两点,运输层的 UDP 用户数据报与网际层的IP数据报有很大区别。IP 数据报要经过互连网中许多路由器的存储转发,但 UDP 用户数据报是在运输层的端到端抽象的逻辑信道中传送的。 TCP 报文段是在运输层抽象的端到端逻辑信道中传送,这种信道是可靠的全双工信道。但这样的信道却不知道究竟经过了哪些路由器,而这些路由器也根本不知道上面的运输层是否建立了 TCP 连接。,传输层使用的 port(端口 ) & socket(套接字),TCP/IP传输层可以通过协议端口(protocol port,简称端口)来标识通信的应用进程。 例如: HTTP 80 DHCP 67、68,传输层就是通过端口与应用层的应用程序进行信息交互的,应用层各种用户进程通过相应的端口与传输层实体进行信息交互。,在数据传输过程中,应用层中的各种不同的服务器进程不断地检测分配给它们的端口,以便发现是否有某个应用进程要与它通信。,传输层使用的 port(端口 ) & socket(套接字),端口实际上是一个16Bit长的地址,范围可以从0至65535 将0至1023端口号称为熟知端口号(Well-Known Port) 其余1024至49951端口号称为登记端口号,为没有熟知端口号的应用程序使用的。使用这个范围的端口号必须在 IANA 登记,以防止重复。 49152至65535端口号称为客户端口号,留给客户进程选择暂时使用。当服务器进程收到客户进程的报文时,就知道了客户进程所使用的动态端口号。,套接字 socket = (IP地址: 端口号),套接字 (socket),为了使得多主机多进程通信时,不至于发生混乱情况,必须把端口号和主机的IP地址结合起来使用,称为插口或套接字(Scoket)。 插口包括IP地址(32位)和端口号(16位) ,共48位。,TCP 连接 := socket1, socket2 = (IP1: port1), (IP2: port2),每一条 TCP 连接唯一地被通信两端的两个端点(即两个套接字)所确定。 TCP 连接(端到端)的端点不是主机,不是主机的IP 地址,不是应用进程,也不是传输层的协议端口。而是一对套接字(socket)或插口。 UDP协议,虽然在进行通信的进程间不需要建立连接,但是在每次传输数据时,都要给出发送端口和接收端口,因此同样也要使用插口。,运输层的复用与分用,复用是指在发送方不同的应用进程都可以使用同一个运输层协议传送数据(当然需要加上适当的首部); 而分用是指接收方的运输层在剥去报文的首部后能够把这些数据正确交付到目的应用进程。 要能正确地将数据交付给指定应用进程,就必须给每个应用进程赋予一个明确的标志。 在TCP/IP网络中,使用一种与操作系统无关的协议端口号(protocol port number)(简称端口号)来实现对通信的应用进程的标志。,端口在进程之间的通信中所起的作用,应 用 层,运 输 层,网 络 层,TCP 报文段,UDP 用户数据报,应用进程,TCP 复用,IP 复用,UDP 复用,TCP 报文段,UDP 用户数据报,应用进程,端口,端口,TCP 分用,UDP 分用,IP 分用,发送方,接收方,讨论 用户数据报协议 UDP,UDP 只在 IP 的数据报服务之上增加了很少一点的功能,即端口的功能和差错检测的功能。 虽然 UDP 用户数据报只能提供不可靠的交付,但 UDP 在某些方面有其特殊的优点。 发送数据之前不需要建立连接 UDP 的主机不需要维持复杂的连接状态表。 UDP 用户数据报只有 8 个字节的首部开销。 网络出现的拥塞不会使源主机的发送速率降低。这对某些实时应用是很重要的。,UDP 的特点,UDP 是无连接的,即发送数据之前不需要建立连接(当然发送数据结束时也没有连接可释放),因此减少了开销和发送数据之前的时延。 UDP 使用尽最大努力交付,即不保证可靠交付,同时也不使用拥塞控制,因此主机不需要维持具有许多参数的、复杂的连接状态表。,由于 UDP 没有拥塞控制,因此网络出现的拥塞不会使源主机的发送速率降低。这对某些实时应用是很重要的。很多的实时应用(如 IP 电话、实时视频会议等)要求源主机以恒定的速率发送数据,并且允许在网络发生拥塞时丢失一些数据,但却不允许数据有太大的时延。UDP 正好适合这种要求。,UDP 的特点(续),UDP 是面向报文的。这就是说,UDP 对应用程序交下来的报文不再划分为若干个分组来发送,也不把收到的若干个报文合并后再交付给应用程序。 应用程序交给 UDP 一个报文,UDP 就发送这个报文;而 UDP 收到一个报文,就把它交付给应用程序。 应用程序必须选择合适大小的报文。,UDP 支持一对一、一对多、多对一和多对多的交互通信。 用户数据报只有 8 个字节的首部开销,比 TCP 的 20 个字节的首部要短。,UDP 的问题,虽然某些实时应用需要使用没有拥塞控制的 UDP,但当很多的源主机同时都向网络发送高速率的实时视频流时,网络就有可能发生拥塞,结果大家都无法正常接收。 还有一些使用 UDP 的实时应用需要对UDP 的不可靠的传输进行适当的改进以减少数据的丢失。,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,字节,发送在前,数 据,首 部,UDP 用户数据报,用户数据报 UDP 有两个字段:数据字段和首部字段。首部字段有 8 个字节,由 4 个字段组成,每个字段都是两个字节。,伪首部,源端口,目的端口,长 度,检验和,数 据,首 部,UDP长度,源 IP 地址,目的 IP 地址,0,17,IP 数据报,字节,4,4,1,1,2,12,2,2,2,2,字节,发送在前,数 据,首 部,UDP 用户数据报,在计算检验和时,临时把“伪首部”和 UDP 用户数据报连接在一起。伪首部仅仅是为了计算检验和。,讨论 传输控制协议 TCP,TCP 是面向连接的运输层协议。 每一条 TCP 连接只能有两个端点(endpoint),每一条 TCP 连接只能是点对点的(一对一)。 TCP 提供可靠交付的服务。 TCP 提供全双工通信。 面向字节流。,TCP 面向流的概念,端口,发送 TCP 报文段,TCP,TCP,接收缓存,发送缓存,报文段,报文段,报文段,端口,发送方,接收方,向发送缓存 写入数据块,从接收缓存 读取数据块,应用进程,应用进程,应当注意,TCP 连接是一条虚连接而不是一条真正的物理连接。 TCP 对应用进程一次把多长的报文发送到TCP 的缓存中是不关心的。 TCP 根据对方给出的窗口值和当前网络拥塞的程度来决定一个报文段应包含多少个字节(UDP 发送的报文长度是应用进程给出的)。 TCP 可把太长的数据块划分短一些再传送。TCP 也可等待积累有足够多的字节后再构成报文段发送出去。,TCP 连接的任何一方都能够发送和接收数据,通信是全双工方式。 发送方的应用进程按照自己产生数据的规律,不断地把数据块陆续写入到 TCP 的发送缓存中。TCP 再从发送缓存中取出一定数量的数据,将其组成 TCP 报文段(segment)逐个传送给 IP 层,然后发送出去。 接收方从 IP 层收到 TCP 报文段后,先把它暂存在接收缓存中,然后让接收方的应用进程从接收缓存中将数据块逐个读取。 由于运输层的通信是面向连接的,因此TCP 每一条连接上的通信只能是一对一的,而不可能是一对多、多对一或多对多的。,Excisses and Thinking,P229 (5-1,5-2,5-5),
展开阅读全文