第5章运输层与TCP协议.ppt

上传人:豆**** 文档编号:60619212 上传时间:2022-11-17 格式:PPT 页数:43 大小:744.50KB
返回 下载 相关 举报
第5章运输层与TCP协议.ppt_第1页
第1页 / 共43页
第5章运输层与TCP协议.ppt_第2页
第2页 / 共43页
点击查看更多>>
资源描述

《第5章运输层与TCP协议.ppt》由会员分享,可在线阅读,更多相关《第5章运输层与TCP协议.ppt(43页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第5章运输层与TCP协议 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望第第5 5章章 运输层与运输层与TCPTCP协议协议本章内容:本章内容:5.1 5.1 运输层概述运输层概述5.2 TCP5.2 TCP协议协议5.3 UDP5.3 UDP协议协议5.4 5.4 计算机网络性能计算机网络性能5.5 5.5 实训项目实训项目 运输层位于七层模型的第四层,属于资源子网,但其所起的作用却好像是通信子网的代理。运输层屏蔽了通信子网的复杂性,它的作用是从端到端经网络透明

2、地传送报文,完成端到端通信链路的建立、维护和管理。所谓端到端就是从进程到进程。传输层向高层用户屏蔽了下面通信子网的细节,使高层用户看不见实现通信功能的物理链路是什么,看不见数据链路采用什么控制规程,也看不见下面到底有几个子网以及这些子网是怎样互连起来的。数据链路层物理层运输层网络层数据链路层物理层运输层网络层 客户发起连接建立请求 服务器接受连接建立请求应用层应用层因特网客户客户服务器服务器以后就逐级使用下层提供的服务(使用 TCP 和 IP)5.1 5.1 运输层概述运输层概述n运输层所处的位置决定了其承上启下的作用。n运输层以下的三层(物理层、数据链路层、网络层)实现面向数据的通信。n运输

3、层以上三层(会话层、表示层、应用层)实现面向信息的处理。运输层是数据传送的最高层,是七层模型中最重要和最复杂的一个层次。5.1 5.1 运输层概述运输层概述美国国防部为网络设计了两个运输层协议:一:传输控制协议(TCP)TCP是面向连接的协议,提供可靠的数据传输,是使用比较广的的运输层协议二:用户数据报协议(UDP)UDP是无连接的,不可靠的运输层协议(如DNS、SNMP)运输层其主要功能如下:(1)连接管理:传输连接的创建、维护与撤销,建立过程称为“握手”(2)流量控制:端到端的控制,可用于网络拥塞的控制(3)差错检测与恢复:端到端的差错控制(4)提供用户要求的服务质量:高吞吐量、低延迟、低

4、费用、高可靠性服务。(5)提供端到端的可靠通信5.1.1运输层协议TCP与UDP协议n传输控制协议TCP:为应用程序提供可靠的面向连接的通信服务,适用于要求得到响应的应用程序。目前,许多流行的应用程序都使用TCP。n用户数据报协议UDP:提供了无连接通信,且不对传送数据包进行可靠的保证。适合于一次传输小量数据,可靠性则由应用层来负责。二者的区别:二者的区别:5.1.2 端口的概念与作用nTCP协议和UDP协议使用16bits端口号,网络用IP地址与端口号组成的套接字(socket)来表示和区别网络中的不同应用程序。n不同的操作系统对端口的具体实现方法可能有很大的差别,但其基本概念是一致的:应用

5、程序的源进程将报文发给运输层的某个端口,而应用层的目的进程从端口接收报文。端口号的分配n任何TCP/IP实现所提供的服务都是11023之间的端口号,这些端口号由IANA(Internet Assigned Numbers Authority,Internet地址分配机构)分配管理。其中,低于255的端口号保留用于公共应用;255到1023的端口号分配给各个公司,用于特殊应用;对于高于1023的端口号,称为临时端口号,IANA未做规定。常用应用程序的端口号n常用的TCP端口号有:HTTP 80,FTP 20/21,Telnet 23,SMTP 25,DNS 53等;常用的保留UDP端口号有:DN

6、S 53,BootP 67(server)/68(client),TFTP 69,SNMP 161等。HTTPSMTPDNSRTPTCPUDPIP网际层网络接口层运输层应用层网络接口 1网络接口 2网络接口 35.2 TCP协议nTCP是专门设计用于在不可靠的Internet上提供可靠的、端到端的字节流(非报文流)通信的协议。nTCP提供面向连接的服务,所以在进行传输任务之前,必需先建立连接nTCP提供可靠的服务,所以在传输过程中,需要有重传的机制,另外,TCP采用连续ARQ方式传输数据n在传输任务完成后,要释放TCP连接TCP可靠传输nTCP协议通过以下过程来保证端到端数据通信的可靠性:n1

7、、TCP实体把应用程序划分为合适的数据块,加上TCP报文头,生成数据段;n2、当TCP实体发出数据段后,立即启动计时器,如果源设备在计时器清零后仍然没有收到目的设备的确认报文,重发数据段;n3、当对端TCP实体收到数据,发回一个确认。n4、TCP包含一个端到端的校验和字段,检测数据传输过程的任何变化。如果目的设备收到的数据校验和计算结果有误,TCP将丢弃数据段,源设备在前面所述的计时器清零后重发数据段。n5、由于TCP数据承载在IP数据包内,而IP提供了无连接的、不可靠的服务,数据包有可能会失序。TCP提供了重新排序机制,目的设备将收到的数据重新排序,交给应用程序。n6、TCP提供流量控制。T

8、CP连接的每一端都有缓冲窗口。目的设备只允许源设备发送自己可以接收的数据,防止缓冲区溢出。n7、TCP支持全双工数据传输。TCP 的主要功能:n数据流的多路复用n检测数据段的完整性n重新排序n流量控制n复杂的时钟机制n高效的确认方式TCP的基本数据单元nTCP实体交换数据的基本单元(TPDU)称作数据段(segment)。每个数据段包含一个固定的20字节的头(还可加一个可选部分)和若干数据字节,其总长度可在建立连接时通过互向声明自己所能接收的最大段长MSS(maximum segment size)来选定或双方使用一个缺省的MSS(536字节),但MSS的选取应使得每个段封装成IP分组后,其长

9、度不超过IP分组的载荷能力(65535字节)及相应网络的最大传输单元MTU(maximum transfer unit)。n一个段超过网络的MTU限制时会被分段(fragmentation),每个小分段(分组)都有TCP头(20字节)和IP头(20字节)TCP dataTCP headerIP header20字节20字节TCP segmentIP packetTCP数据段的头结构源端口(16)目的端口(16)发送序号(32)确认号(32)窗口大小(16)检验和(16)紧急指针(16)选项(0或32)TCP数据段头的说明-1n源端口和目的端口用来标识本地和对方的应用进程(端连接点)。端口号加上

10、其主机的IP地址构成一个48比特的用于标识报文的返回地址。n发送序号指示TCP段中第一个字节的序号。建立一个新的TCP连接时(SYN标志为1),该域是主机为该连接选择的初始序号,连接建立后发送的第一个字节将具有的序号为sequence number+1。由于全双工,每个连接的端点都必须单独维持一个序号。n确认号表示发送该TCP段的主机准备从对方接收的下一个字节序号,即该序号之前的字节已全部正确收到。TCP数据段头的说明-2n报头长度指示TCP头的长度(以4字节为单位),最大值为15(60字节)。nURG标志指示urgent pointer(紧急指针)域是否有效,urgent pointer用来

11、指示紧急数据距当前字节序号的偏移字节数。当接收方收到一个URG为1的段后,立即中断当前正在执行的程序,根据urgent pointer找到段中的紧急数据,优先进行处理。TCP数据段头的说明-3nACK标志为1时表示acknowledgement number中是一个有效的应答序号。nPSH标志为1时表示接收方收到数据后应尽快交给应用程序,而不是等接收缓冲区满后再递交。nRST标志为1时表示复位一个连接。通常在主机崩溃后复位连接,也可表示拒绝建立一个连接或拒绝接收一个非法的段。nSYN标志为1时表示建立一个连接。nFIN标志为1时表示数据发送结束,但仍可继续接收另一个方向的数据。TCP数据段头的

12、说明-4n窗口大小表示发送方可以发送的字节数,为0时表示接收缓冲区满。用于TCP的流量控制。n校验和对TCP头、TCP数据域及TCP伪头(pseudoheader,12字节长,其中的内容来自于IP分组的头)进行校验。n选项用于提供一种增加额外设置的方法,在常规的TCP头中并不包括。重要的选择有:MSS(最在段长)选项(设定能接受的最大TCP载荷能力;窗口比例选项(可扩大窗口尺寸);选择重发选项等。TCP的报文头部主要字段每个TCP报文头部都包含源端口号(source port)和目的端口号(destination port),用于标识和区分源端设备和目的端设备的应用进程。在TCP/IP协议栈中

13、,源端口号和目的端口号分别与源IP地址和目的IP地址组成套接字(socket),唯一的确定一条TCP连接。序列号(Sequence number)字段用来标识TCP源端设备向目的端设备发送的字节流,它表示在这个报文段中的第一个数据字节。如果将字节流看作在两个应用程序间的单向流动,则TCP用序列号对每个字节进行计数。序列号是一个32bits的数。n确认序号(Acknowledgement number,32bits)包含发送确认的一端所期望接收到的下一个序号。事实上,确认序号应该是上次已成功收到的数据字节序列号加1。nTCP的流量控制由连接的每一端通过声明的窗口大小(windows size)来

14、提供。窗口大小用数据包来表示,例如Windows size=3,表示一次可以发送三个数据包。窗口大小起始于确认字段指明的值,是一个16bits字段。窗口大小可以调节。n校验和(checksum)字段用于校验TCP报头部分和数据部分的正确性。n最常见的可选字段是MSS(Maximum Segment Size,最大报文大小)。TCP采用三次握手的方法建立连接n客户请求连接TCP段:SYN=1,ACK=0,seq=xn服务器响应连接TCP段:SYN=1,ACK=1,seq=y,ack=x+1n客户响应连接TCP段:ACK=1,seq=x+1,ack=y+1初始连接序号的选择采用基于时钟的方案,每隔

15、4微妙初始连接序号加1。分组的最长寿命为120秒。TCP采用对称释放法释放连接nTCP的全双工连接可看成一个双单工的连接,每个单工连接都独立地释放。n通信双方必须都向对方发送FIN=1的TCP段并得到对方的应答,连接才能被释放,有四个阶段。FINACK of FINFINACK of FINHost1Host2Time可以将第一个ACK数据段和第二个FIN数据段合并,从而变为三次握手。为防止半连接,必须使用定时器计时,对FIN数据段的应答在两个最大分组生命期内未到达,就释放连接。对方也会超时释放。TCP的流量控制nTCP采用滑动窗口机制进行流量控制。n建立连接时,每端都为该连接分配一块接收缓冲

16、区。接收方通过将缓冲区的剩余空间大小放入windows size域来通知发送方。当接收方将数据交给应用程序后,发送一个ACK段(称为窗口更新)来告知发送方新的接收窗口大小。发送方每次发送的数据量不能超过windows size中指定的字节数。n为了避免发送太短的段,TCP实体有时在收集够一定数量的数据(如可构成一个最大长度的段或达到接收窗口一半大小)后再发送。可大大减少额外开销。n对于交互式应用程序来说,应及时发送数据而不要等待收集。另外接收方应攒够一定数量的空间再发送窗口更新的ACK段。滑动窗口技术nTCP滑动窗口技术通过动态改变窗口大小来调节两台主机间数据传输。每个TCP/IP主机支持全双

17、工数据传输,因此TCP有两个滑动窗口:一个用于接收数据,另一个用于发送数据。TCP使用肯定确认技术,其确认号指的是下一个所期待的字节。n采用滑动窗口技术,可以对流量进行控制。滑动窗口如何实现流量控制n假定发送方设备以每一次三个数据包的方式发送数据,也就是说,窗口大小为3。发送方发送序列号为1、2、3的三个数据包,接收方设备成功接收数据包,用序列号4确认。发送方设备收到确认,继续以窗口大小3发送数据。当接收方设备要求降低或者增大网络流量时,可以对窗口大小进行减小或者增加,本例降低窗口大小为2,每一次发送两个数据包。当接收方设备要求窗口大小为0,表明接收方已经接收了全部数据,或者接收方应用程序没有

18、时间读取数据,要求暂停发送。发送方接收到携带窗口号为0的确认,停止这一方向的数据传输。TCP的拥塞控制n由于当前网络传输介质的可靠性越来越高,所以TCP实体认为超时就是网络拥塞造成的,可根据超时来判断是否发生拥塞。网络和接收方的容量是造成拥塞的两个潜在问题,发送方必须维持两个窗口:接收方承认的窗口和拥塞窗口(congestion window),发送的有效窗口便是这两个窗口中较小的那一个。拥塞控制算法n慢启动(slow start)算法:建立连接时,拥塞窗口被初始化成该连接支持的最大段长度,发送一个最大长度的段,若没有超时,则对拥塞窗口加倍扩大,发送两个最大长度的段,重复此过程,直至最终达到接

19、收窗口大小(即为发送的有效窗口)或发生超时(取此时拥塞窗口的一半作为发送的有效窗口)。nInternet的拥塞控制算法:初始设置临界值(threshold)为64kB,若发生超时,将临界值设为当前拥塞窗口的1/2,并将拥塞窗口恢复为最大段长度,执行慢启动算法,直至拥塞窗口达到临界值,此后要求拥塞窗口按线性增加(每次只增加一个最大段长度),直至最终达到接收窗口大小或发生超时;若超时再将临界值设为当前拥塞窗口的1/2,重复上述过程。Internet拥塞控制算法的实例TCP的重传机制nTCP采用正向应答进行确认,当收到出错的TCP段后,只能将其丢弃而不作应答,发送方必须采用超时重传的机制来重发久未应

20、答的段。由于网络的复杂性使得选择合适的超时时间非常困难。n下面分别是数据链路层(a)和TCP(b)中确认到达时间的概率密度。TCP的超时间隔nTCP使用一种动态算法随时调整超时间隔。n每个连接都维持一个变量RTT(当前往返时间的最佳估算值)。发送方的计时器(发送时启动)在达到超时间隔时触发重发机制;若在超时之前收到确认,则测量出往返时间M:n修正RTT=RTT+(1-)M其中为一个平滑因子(一般为7/8)n修正实际往返时间M同估算值RTT的偏差|RTT-M|D=D+(1-)|RTT-M|这里的可能不同前面的n确定当前的超时间隔Timeout=RTT+4Dn补充算法:对已重发的数据段无需修正RT

21、T,而在传输失败时将超时时间加倍。n效果:n在网络拥塞或收发双方距离较远时能够自动延长超时间隔,减少不必要的重发;n网络较为空闲或双方距离较近时又能迅速减小超时间隔,及时重发出错的段。5.3 UDP协议nUDP向应用程序提供一种发送封装的IP数据报的方法(一个UDP数据报封装在一个IP分组中),并且无需建立连接。nUDP实现的是不可靠、无连接的数据报服务,通常用于不要求可靠传输的场合。也省去了客户-服务器模式中建立拆除连接的额外开销。n使用UDP的标准应用主要有:TFTP,DNS,RPC,SNMP,LDAP等。UDP数据报的格式nUDP基本上是在IP的基础上增加一个短的报头而已。在UDP数据段

22、(segment)中:n端口用来标识收发进程;nUDP长度指明包括8字节的头及数据域(可为0)在内的数据段长度;nUDP校验和对UDP头、UDP的伪头(12字节长,其中的内容来自于IP分组的头和UDP的头)及UDP数据域三部分进行校验,目的是为了进一步证实数据被送到了正确的目的。这是一个可选项,在大多数的实现中都使用该项,若接收方判断收到的数据段有错,则只是简单地将数据段丢弃,并不向源报告。若不选,则记为0。UDP协议的特点n用户数据报协议UDP只在IP的数据报服务上增加了很少一点的功能,这就是端口的功能和差错检测的功能。虽然UDP用户数据报只能提供不可靠的交付,但UDP在某些方面有其特殊的优

23、点。n(1)发送前不需要建立连接,也没有必要释放连接,因此减少了开销与发送数据之前的时延。n(2)UDP不使用拥塞控制,也不保证可靠交付,因此主机不需要维持具有许多参数的、复杂的连接状态表n(3)UDP只有8个字节的首部开销,比TCP的20个字节的首部要短n(4)由于UDP没有拥塞控制,因此网络出现的拥塞不会使源主机的发送速率降低。这对某些实时应用是很重要的。很多的实时应用要求源主机以恒定的速率发送数据,并且允许在网络发生拥塞时丢失一些数据,却不允许有太大的时延。UDP正好适合这种的要求。TCP协议与UDP协议的报文格式nTCP协议为了保证数据传输的可靠性,相对于UDP报文,TCP报文头部有更

24、多的字段选项。n相对于TCP报文,UDP报文只有少量的字段:源端口号、目的端口号、长度、校验和等,各个字段功能和TCP报文相应字段一样。2.2.2 UDP的报文头部主要字段n比TCP协议的报文简单,有源端口号、目的端口号、长度、校验和等字段,各个字段功能和TCP报文相应字段一样。n UDP报文没有可靠性保证和顺序保证字段,流量控制字段等,可靠性较差。当然,使用传输层UDP服务的应用程序也有优势。正因为UDP协议较少的控制选项,在数据传输过程中,延迟较小,数据传输效率较高,适合于对可靠性要求并不高的应用程序,或者可以保障可靠性的应用程序像DNS、TFTP、SNMP等;UDP协议也可以用于传输链路可靠的网络。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁