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