传输层概述用户数据报协议_第1页
传输层概述用户数据报协议_第2页
传输层概述用户数据报协议_第3页
传输层概述用户数据报协议_第4页
传输层概述用户数据报协议_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

传输层概述用户数据报协议第1页,共43页,2023年,2月20日,星期日本讲主要内容传输层概述用户数据报协议UDP传输控制协议TCP

2第2页,共43页,2023年,2月20日,星期日8.1传输层概述传输层是整个网络体系结构中的关键层次之一,其根本任务是为两个主机中的应用进程提供通信服务。在传输层中共有两个协议,分别是TCP协议与UDP协议,TCP协议的控制机制非常复杂,从而保证了应用进程之间的可靠数据传输。3第3页,共43页,2023年,2月20日,星期日8.1.1传输层的设计问题传输层的最高目标是向其用户(一般是指应用层的进程,即运行着的应用程序),提供有效、可靠且价格合理的服务。为了达到这一目标,传输层利用了网络层所提供的服务。传输层完成这一工作的硬件和软件称为传输实体(transportentity)。传输实体可能在操作系统内核中,或在一个单独的用户进程内,也可能是包含在网络应用的程序库中,或是位于网络接口卡上。网络层、传输层和应用层的逻辑关系如图8-1所示。4第4页,共43页,2023年,2月20日,星期日图8-1网络层、传输层和应用层的逻辑关系5第5页,共43页,2023年,2月20日,星期日传输层协议通常具有几种责任一种责任就是创建进程到进程的通信,通常使用端口号来完成这种功能。另一种责任是在传输层提供控制机制,比如差错控制、流量控制及拥塞控制等。另外,传输层还应当负责为进程建立连接机制,这些进程应当能够向传输层的发送数据流。6第6页,共43页,2023年,2月20日,星期日传输层的任务传输层的任务是为两个主机中的应用进程提供通信服务。这与网络层中的IP协议有什么区别呢?IP协议是负责计算机级的通信,换句话说,是提供主机到主机的通信服务。作为网络层协议,IP协议只能将报文交付给目的计算机。但是,这是一种不完整的交付。这个报文还必须送交到正确的进程。这正是传输层协议所要做的事。7第7页,共43页,2023年,2月20日,星期日图8-2给出了IP协议与传输层协议作用范围的区别。应用进程…应用进程…IP协议的作用范围(提供主机之间的逻辑通信)TCP和UDP协议的作用范围(提供进程之间的逻辑通信)因特网8第8页,共43页,2023年,2月20日,星期日传输层的任务另外,除了在作用范围上有所区别,传输层还比网络层提供更可靠的传输服务。分组丢失、数据残缺均会被传输层检测到并采取相应的补救措施。9第9页,共43页,2023年,2月20日,星期日8.1.2端口现在的操作系统都支持多用户、多任务的运行环境。一个计算机在同一时间可运行多个进程。在网络上,主机是用IP地址来定义的。要定义主机上的某一个进程,便需要第二个标识符,叫做端口号。端口是个非常重要的概念,因为应用层的各种进程是通过相应的端口与运输实体进行交互的。因此在运输协议数据单元的首部中都要写入源端口号和目的端口号。当运输层收到IP层交上来的数据,就要根据其目的端口号来决定应当通过哪一个端口上交给目的应用进程。10第10页,共43页,2023年,2月20日,星期日端口号在TCP/IP协议族中,端口号由16位二进制数表示,换算为十进制,则是0-65536之间的整数。端口号只有本地意义,即端口号只是为标志本计算机应用层中的各进程,不同计算机的相同端口号是没有联系的。11第11页,共43页,2023年,2月20日,星期日端口号分为两类一类是由因特网指派名字和号码公司ICANN负责分配给一些常用的应用层程序固定使用的熟知端口(well-knownport),其数据一般为0-1023,表8-1中便列出了部分常见的熟知端口。“熟知”就表示这些端口号是TCP/IP体系确定并公布的,因而是所有用户进程都知道的。另一类是一般端口,用来随时分配给请求通信的客户进程,一般来说,客户进程所使用的端口号都是临时产生的,通信完成后便释放,所以又称短暂端口号。12第12页,共43页,2023年,2月20日,星期日表8-1常见的熟知端口协议端口说明FTP21文件传输协议TELNET23远程登录协议SMTP25简单邮件传输协议DNS53域名解析协议DHCP67动态主机配置协议TFTP69快速文件传输协议HTTP80超文本传输协议SNMP161简单网络管理协议13第13页,共43页,2023年,2月20日,星期日套接字为了在通信时能确定唯一主机的唯一进程,就必须把端口号和主机的IP地址结合起来一起使用,称为套接字地址(socketaddress),或直接称为SOCKET。在实际通信过程中,我们需要一对套接字地址:客户套接字地址和服务器套接字地址,客户套接字地址惟一定义了客户进程,而服务器套接字唯一地定义了服务器进程。这四种信息分别是IP首部与运输协议数据单元首部中的一部分。14第14页,共43页,2023年,2月20日,星期日套接字的组成IP地址端口号21,2115第15页,共43页,2023年,2月20日,星期日8.2用户数据报协议UDP

8.2.1UDP概述用户数据报协议UDP是传输层协议之一,其实现功能较为简单,但由于其灵活、开销小等特点,使得它更适合某些应用。UDP提供无连接的服务。这表示UDP发送出的每一个用户数据报都是独立的数据报。用户数据报并不进行编号,也没有建立连接和释放连接的过程,每一个用户数据报可以走不同的路径。UDP是一个不可靠的传输层协议。16第16页,共43页,2023年,2月20日,星期日8.2.2UDP用户数据报UDP分组叫做用户数据报,有8个字节的固定首部。源端口目的端口长度检验和数据首部UDP用户数据报17第17页,共43页,2023年,2月20日,星期日用户数据报首部中的字段源端口号:这是在源主机上运行的进程所使用的端口号。有16位长,这就是表示端口号的范围为0-65535。目的端口号:这是在目的主机上运行的进程使用的端口号,16位长。总长度:是用户数据报的总长度,即首部加上数据后的总长度,16位长。检验和:这个字段用来检验整个用户数据报出现的差错。18第18页,共43页,2023年,2月20日,星期日8.3传输控制协议TCP

8.3.1TCP概述与UDP不同,TCP是一种面向流的协议。在UDP中,进行把一块数据发送给UDP以便进行传递。UDP在这块数据上添加自己的首部,这就构成了数据报,然后再把它传递给IP来传输。这个进程可以一连传递好几个块数据给UDP,但UDP对每一块数据都是独立对待,而并不考虑它们之间的任何联系。TCP则允许发送进程以字节流的形式来传递数据,而接收进程也把数据作为字节流来接收。TCP创建了一种环境,它使得两个进程好像被一个假想的“管道”所连接,而这个管道在Internet上传送两个进程的数据,发送进程产生字节流,而接收进程消耗字节流。19第19页,共43页,2023年,2月20日,星期日报文段由于发送进程和接收进程产生和消耗数据的速度并不一样,因此TCP需要缓存来存储数据。在每一个方向上都有缓存,即发送缓存和接收缓存。另外,除了用缓存来处理这种速度的差异,在发送数据前还需要一种重要的方法,即将字节流分割为报文段(Segment)。报文段是TCP处理的最小数据单元。报文段的长度可以是不等的。20第20页,共43页,2023年,2月20日,星期日TCP发送与接收数据过程的示意图如图8-5所示。21第21页,共43页,2023年,2月20日,星期日TCP特点TCP提供全双工服务,即数据可在同时间双向流动,每一个TCP都有发送缓存和接收缓存,而两个方向都可以发送报文段。TCP是面向连接协议,它有连接建立、数据传输、连接释放三个过程。TCP是可靠的传输协议,它使用确认机制来检查数据是否安全和完整地到达。22第22页,共43页,2023年,2月20日,星期日8.3.2TCP报文段TCP报文段同样由首部和数据两部分组成。但其首部要比UDP复杂的多,其首部前20个字节是固定的,后面有4N字节是根据需要而增加的选项(N为整数)。因此,TCP首部长度在20-60字节之间。23第23页,共43页,2023年,2月20日,星期日图8-6TCP报文段格式TCP首部20字节的固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FIN32bitSYNRSTPSHACKURG比特08162431填充TCP数据部分TCP首部TCP报文段24第24页,共43页,2023年,2月20日,星期日TCP报文段首部字段源端口和目的端口字段:各占2字节。端口是运输层与应用层的服务接口。运输层的复用和分用功能都要通过端口才能实现。序号字段:占4字节。TCP连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。确认号字段:占4字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。数据偏移:占4bit,它指出TCP报文段的数据起始处距离TCP报文段的起始处有多远。“数据偏移”的单位不是字节而是32bit字(4字节为计算单位)。25第25页,共43页,2023年,2月20日,星期日TCP报文段首部字段保留字段:占6bit,保留为今后使用,但目前应置为0。紧急比特URG:当URG1时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。确认比特ACK:只有当ACK1时确认号字段才有效。当ACK0时,确认号无效。推送比特PSH(PuSH):接收TCP收到推送比特置1的报文段,就尽快地交付给接收应用进程,而不再等到整个缓存都填满了后再向上交付。26第26页,共43页,2023年,2月20日,星期日TCP报文段首部字段复位比特RST(ReSeT):当RST1时,表明TCP连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。同步比特SYN:同步比特SYN置为1,就表示这是一个连接请求或连接接受报文。终止比特FIN(FINal):用来释放一个连接。当FIN1时,表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。窗口字段:占2字节。窗口字段用来控制对方发送的数据量,单位为字节。TCP连接的一端根据设置的缓存空间大小确定自己的接收窗口大小,然后通知对方以确定对方的发送窗口的上限。27第27页,共43页,2023年,2月20日,星期日TCP报文段首部字段检验和:占2字节。检验和字段检验的范围包括首部和数据这两部分。在计算检验和时,要在TCP报文段的前面加上12字节的伪首部。紧急指针字段:占16bit。紧急指针指出:在本报文段中紧急数据共有多少个字节(紧急数据放在本报文段数据的最前面)。选项字段:长度可变。TCP只规定了一种选项,即最大报文段长度MSS(MaximumSegmentSize)。MSS告诉对方TCP:“我的缓存所能接收的报文段的数据字段的最大长度是MSS个字节。”

填充字段:这是为了使整个首部长度是4字节的整数倍。28第28页,共43页,2023年,2月20日,星期日8.3.3TCP的可靠性TCP是一种可靠的传输协议。其可靠性体现在它可保证数据按序、无丢失、无重复的到达目的端。TCP报文段首部的数据编号与确认字段为这种可靠传输提供了保障。TCP将所要传送的整个报文看成一个个字节组成的数据流,并使每一个字节对应于一个序号。在连接建立时,双方要商定初始序号。TCP每次发送的报文段的首部中的序号字段数值表示该报文段中的数据部分的第一个字节的序号。29第29页,共43页,2023年,2月20日,星期日序号的作用接收站点在收到发送方发来的数据后依据序号重新组装所收到的报文段。在一个高速链路与低速链路并存的网络上,可能会出现高速链路上的报文段比低速链路上的报文段提前到达的情况,此时就必须依靠序列号来重组报文段,以保证数据可以按序上交应用进程。TCP的确认是对接收到的数据的最高序号(即收到的数据中的最后一个序号)进行确认。但返回的确认序号ACK是已收到的数据的最高序号再加1,该确认号既表示对已收数据的确认,同时表示期望下次收到的第一个数据字节的序号。30第30页,共43页,2023年,2月20日,星期日图8-7显示了TCP报文段传输时SEQ和ACK所扮演的角色。31第31页,共43页,2023年,2月20日,星期日超时和重传在实际通信中,存在着超时和重传两种现象。如果在传输过程中丢失了某个序号的报文段,导致发送端在给定的时间段内得不到相应的确认序号,那么就确认该报文段已被丢失并要求重传。已发送的TCP报文段会被保存在发送端的缓冲区中,直到发送端接收到确认序号才会消除缓冲区中的这个报文段。这种机制称为肯定确认和重新传输(PositiveAcknowledgementandRetransmission,PAR),它是许多通信协议用来确保可信度的一种技术,工作过程如图8-8所示。32第32页,共43页,2023年,2月20日,星期日图8-8超时和重传过程中序号与确认号的作用33第33页,共43页,2023年,2月20日,星期日序号的作用序号的另一个作用是消除网络中的重复包(同步复制)。例如在网络阻塞时,发送端迟迟没有收到接收端发来的对于某个报文段的ACK信息,它可能会认为这个序号的报文段丢失了。于是它会重新发送这一报文段,这种情况将会导致接收端在网络恢复正常后收到两个同样序号的报文段,此时接收端会自动丢弃重复的报文段。序号和确认号为TCP提供了一种纠错机制,提高了TCP的可靠性。34第34页,共43页,2023年,2月20日,星期日8.3.4TCP连接管理TCP是面向连接的协议。面向连接的协议在源端和目的端之间建立一条虚路径。属于一个报文的所有报文段都沿着这条虚路径发送。在TCP通信中,整个过程分为三个阶段:连接建立、数据传送和连接释放。35第35页,共43页,2023年,2月20日,星期日1.建立连接TCP以全双工方式传送数据。当两个机器中的两个TCP进程建立连接后,它们应当都能够同时向对方发送报文段。主动发起连接建立的应用进程叫做客户方,而被动等待连接建立的应用进程叫做服务器方。在连接建立过程中要解决以下三个问题: (1)要使每一方能够确知对方的存在。 (2)要允许双方协商一些参数(如最大报文段长度,最大窗口大小,服务质量等)。 (3)能够对运输实体资源(如缓存大小,连接表中的项目等)进行分配。36第36页,共43页,2023年,2月20日,星期日用三次握手建立TCP连接SYN,SEQ=x主机BSYN,ACK,SEQ=y,ACK=x1ACK,SEQ=x+1,ACK=y1被动打开主动打开确认确认主机A连接请求37第37页,共43页,2023年,2月20日,星期日2.释放连接传输数据的双方中的任何一方都可以关闭连接。当一个方向的连接被终止时,另外一方还可继续向对方发送数据。因此,要在两个方向都关闭连接就需要四个动作,被释放连接的过程被称为四向握手。38第38页,共43页,2023年,2月20日,星期日TCP连接释放的过程FIN,SEQ=xACK,SEQ=y,ACK=x1ACK,SEQ=x+1,ACK=y1应用进程释放连接A不再发送报文FIN,ACK,SEQ=y,ACK=x+1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论