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