211-05运输层-new

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

计算机网络第5章运输层2第5章运输层5.1运输层协议概述5.2用户数据报协议UDP5.3传输控制协议TCP概述5.4可靠传输的工作原理5.5TCP报文段的首部格式5.6TCP可靠传输的实现5.7TCP的流量控制5.8TCP的拥塞控制5.9TCP的运输连接管理35.1运输层协议概述5.1.1进程之间的通信从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。当网络的边缘部分中的两个主机使用网络的核心部分的功能进行端到端的通信时,只有位于网络边缘部分的主机的协议栈才有运输层,而网络核心部分中的路由器在转发分组时都只用到下三层的功能。物理层网络层运输层应用层数据链路层面向信息处理面向通信用户功能网络功能运输层为相互通信的应用进程提供了逻辑通信54321运输层提供应用进程间的逻辑通信主机A主机B应用进程应用进程路由器1路由器2AP1LAN2WANAP2AP3AP4IP层LAN1AP1AP2AP4端口端口54321IP协议的作用范围运输层协议TCP和UDP的作用范围AP35运输层的主要功能运输层为应用进程之间提供端到端的逻辑通信,即向高层用户屏蔽通信子网的细节,提供通用的传输接口。运输层对信息流具有调节作用,提供可靠性传输,确保数据到达无误。主要功能:把运输地址映射为网络地址把端到端的运输连接映射为网络连接运输连接管理端到端的顺序控制、差错检测及恢复、分段处理及QoS监测加速数据处理5.1.1进程之间的通信6运输层与其上下层之间的关系的OSI表示法运输实体运输实体运输协议运输层层接口运输服务用户(应用层实体)运输服务用户(应用层实体)层接口网络层(或网际层)应用层主机A主机B运输层服务访问点TSAP网络层服务访问点NSAP5.1.1进程之间的通信75.1.2运输层的两个主要协议TCPUDPIP应用层与各种网络接口运输层TCP/IP的运输层有两个不同的协议:(1)用户数据报协议UDP(UserDatagramProtocol)(RFC768)(2)传输控制协议TCP(TransmissionControlProtocol)(RFC793)8两种不同的运输协议运输层向高层用户屏蔽了下面网络核心的细节(如网络拓扑、所采用的路由选择协议等),它使应用进程看见的就是好像在两个运输层实体之间有一条端到端的逻辑通信信道。?应用层运输层发送进程接收进程接收进程数据数据全双工可靠信道数据数据使用TCP协议使用UDP协议不可靠信道发送进程5.1.2运输层的两个主要协议9UDP和TCP都使用IP协议。两个对等运输实体在通信时传送的数据单位叫作运输协议数据单元TPDU。TCP传送的数据单位协议是TCP报文段(segment)。UDP传送的数据单位协议是UDP报文或用户数据报。UDP在传送数据之前不需要先建立连接。对方的运输层在收到UDP报文后,不需要给出任何确认。TCP则提供面向连接的服务。TCP不提供广播或多播服务。由于TCP要提供可靠的、面向连接的运输服务,因此不可避免地增加了许多的开销。TCP与UDP5.1.2运输层的两个主要协议105.1.3运输层的端口运行在计算机中的进程是用进程标识符来标志的。为了使运行不同操作系统的计算机的应用进程能够互相通信,就必须用统一的方法对TCP/IP体系的应用进程进行标志。解决这个问题的方法就是在运输层使用协议端口号(protocolportnumber),或通常简称为端口(port)。虽然通信的终点是应用进程,但我们可以把端口想象是通信的终点,因为我们只要把要传送的报文交到目的主机的某一个合适的目的端口,剩下的工作(即最后交付目的进程)就由TCP/UDP来完成。11端口端口就是运输层服务访问点TSAP。用一个16位端口号进行标志。端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的各进程。在因特网中不同计算机的相同端口号是没有联系的例如:A、B与主机C的SMTP建立三个连接5.1.3运输层的端口12端口的作用端口的作用就是让应用层的各种应用进程都能将其数据通过端口向下交付给运输层,以及让运输层知道应当将其报文段中的数据向上通过端口交付给应用层相应的进程。从这个意义上讲,端口是用来标志应用层的进程。5.1.3运输层的端口端口在进程之间的通信中所起的作用应用层运输层网络层TCP报文段UDP用户数据报应用进程TCP复用IP复用UDP复用TCP报文段UDP用户数据报应用进程端口端口TCP分用UDP分用IP分用IP数据报IP数据报发送方接收方14软件端口与硬件端口在协议栈层间的抽象的协议端口是软件端口(逻辑端口)。路由器或交换机上的端口是硬件端口(物理端口)。硬件端口是不同硬件设备进行交互的接口软件端口是应用层的各种协议进程与运输实体进行层间交互的一种地址。5.1.3运输层的端口15三类端口熟知端口,数值一般为0~1023。登记端口号,数值为1024~49151,为没有熟知端口号的应用程序使用的。客户端口号或短暂端口号,数值为49152~65535,留给客户进程选择暂时使用。当服务器进程收到客户进程的报文时,就知道了客户进程所使用的动态端口号。通信结束后,这个端口号可供其他客户进程以后使用。5.1.3运输层的端口16端口号的分配端口号的分配:任何TCP/IP实现所提供的服务都是1~1023之间的端口号,这些端口号由IANA(InternetAssignedNumbersAuthority,Internet号码分配机构)分配管理。低于255的端口号保留用于公共应用;255到1023的端口号分配给各个公司,用于特殊应用。常用的TCP端口号:HTTP80,FTP20/21,Telnet23,SMTP25,DNS53,POP3110等;常用的UDP端口号:DNS53,TFTP69,SNMP161等。5.1.3运输层的端口175.2用户数据报协议UDP5.2.1UDP概述UDP提供了IP层没有提供的两个服务。它提供了端口号来帮助辨别不同的用户请求,以及(可选的)验证数据完整达到,未经修改的检测功能。UDP不提供将消息分割成包的(数据报),并在另一端重新组装的功能。用户数据报协议不提供数据到达的包的顺序。这就意味着使用用户数据报协议的应用程序必须能够确保全部的消息都能够到达,并是按正确的顺序。UDP服务于很多知名应用层协议,包括网络文件系统(NFS)、简单网络管理协议(SNMP)、域名系统(DNS)以及简单文件传输系统(TFTP)。18UDP的主要特点以实现效率为首要目标,具有良好的实时性UDP是无连接的,即发送数据之前不需要建立连接。UDP使用尽最大努力交付,即不保证可靠交付,同时也不使用拥塞控制。可能出现分组的丢失、重复、错序。应用程序需要负责传输可靠性方面的所有工作。UDP是面向报文的。UDP没有拥塞控制,很适合多媒体通信的要求。UDP支持一对一、一对多、多对一和多对多的交互通信。UDP的首部开销小,只有8个字节。5.2.1UDP概述面向报文的UDP发送方UDP对应用程序交下来的报文,在添加首部后就向下交付IP层。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。应用程序必须选择合适大小的报文。接收方UDP对IP层交上来的UDP用户数据报,在去除首部后就原封不动地交付上层的应用进程,一次交付一个完整的报文。IP数据报的数据部分IP首部IP层UDP首部UDP用户数据报的数据部分运输层应用层报文应用层报文应用层205.2.2UDP的首部格式伪首部源端口目的端口长度检验和数据首部UDP长度源IP地址目的IP地址017IP数据报字节44112122222字节发送在前数据首部UDP用户数据报21UDP检验和计算举例5.2.2UDP的首部格式22端口是用报文队列来实现UDP端口51000UDP端口69出队列入队列出队列入队列TFTP服务器TFTP客户UDP用户数据报应用层运输层5.2.2UDP的首部格式UDP数据报的发送和接收通过UDP端口实现,端口是一个可读写的结构,具有内部的报文缓冲区23UDP基本工作过程数据报发送UDP软件将用户数据封装在UDP数据报中转交给IP软件,进行IP封装和转发数据报的接收IP层接收到UDP数据报,提交给UDP软件的各端口端口判断该报文的目的端口号是否与当前端口匹配若匹配成功,将该数据报保存到相应端口的接收队列中(若队列已满,则丢弃该数据报)若未匹配,则丢弃该数据报,同时向源端发送“端口不可达”的ICMP包5.2.2UDP的首部格式24UDP应用简单、简短的应用:如查询操作、网络管理、IPphone、在屏幕上报告股票市场、在屏幕上显示航空信息等一般使用方式:客户/服务器模式服务端:固定守候在特定port:x,提供服务客户端:动态绑定任意port:n,向服务器的port发出请求,获得服务响应5.2.2UDP的首部格式请求(n,x)255.3传输控制协议TCP概述5.3.1TCP最主要的特点TCP是面向连接的运输层协议。每一条TCP连接只能有两个端点(endpoint),每一条TCP连接只能是点对点的(一对一)。TCP提供可靠交付的服务。提供包丢失重发机制、流量控制、拥塞控制TCP提供全双工通信。面向字节流。不支持组播和广播26768HTCP面向流的概念发送TCP报文段发送方接收方把字节写入发送缓存从接收缓存读取字节应用进程应用进程1230181716151419202145131211H109H加上TCP首部构成TCP报文段TCPTCP字节流字节流H表示TCP报文段的首部x表示序号为x的数据字节TCP连接5.3.1TCP最主要的特点27应当注意TCP连接是一条虚连接而不是一条真正的物理连接。TCP对应用进程一次把多长的报文发送到TCP的缓存中是不关心的。TCP根据对方给出的窗口值和当前网络拥塞的程度来决定一个报文段应包含多少个字节(UDP发送的报文长度是应用进程给出的)。TCP可把太长的数据块划分短一些再传送。TCP也可等待积累有足够多的字节后再构成报文段发送出去。5.3.1TCP最主要的特点285.3.2TCP的连接TCP把连接作为最基本的抽象。每一条TCP连接有两个端点。TCP连接的端点不是主机,不是主机的IP地址,不是应用进程,也不是运输层的协议端口。TCP连接的端点叫做套接字(socket)或插口。端口号拼接到(contatenatedwith)IP地址即构成了套接字。29套接字(socket)套接字socket=(IP地址:端口号)(5-1)每一条TCP连接唯一地被通信两端的两个端点(即两个套接字)所确定。即:TCP连接::={socket1,socket2}={(IP1:port1),(IP2:port2)}(5-2)IP地址131.6.23.13131.6.23.13端口号15001500131.6.23.13,1500131.6.23.13,1500插口(socket)5.3.2TCP的连接30同一个名词socket有多种不同的意思应用编程接口API称为socketAPI,简称为socket。socketAPI中使用的一个函数名也叫作socket。调用socket函数的端点称为socket。调用socket函数时其返回值称为socket描述符,可简称为socket。在操作系统内核中连网协议的Berkeley实现,称为socket实现。5.3.2TCP的连接31TCP和UDP的SOCKET机制的工作过程SERVERCLIENTUDP申请SOCKET申请SOCKETSENDTORECVFROMSENDTORECVFROMTCPSERVERCLIENT申请SOCKET申请SOCKETLISTENCALLCONNECTACCE

1 / 121
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功