传输层概述用户数据报协议UDP

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

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

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

资源描述

潍坊学院计算机与通信工程学院第十一讲传输层2本讲主要内容传输层概述用户数据报协议UDP传输控制协议TCP38.1传输层概述传输层是整个网络体系结构中的关键层次之一,其根本任务是为两个主机中的应用进程提供通信服务。在传输层中共有两个协议,分别是TCP协议与UDP协议,TCP协议的控制机制非常复杂,从而保证了应用进程之间的可靠数据传输。48.1.1传输层的设计问题传输层的最高目标是向其用户(一般是指应用层的进程,即运行着的应用程序),提供有效、可靠且价格合理的服务。为了达到这一目标,传输层利用了网络层所提供的服务。传输层完成这一工作的硬件和软件称为传输实体(transportentity)。传输实体可能在操作系统内核中,或在一个单独的用户进程内,也可能是包含在网络应用的程序库中,或是位于网络接口卡上。网络层、传输层和应用层的逻辑关系如图8-1所示。5图8-1网络层、传输层和应用层的逻辑关系应用层网络层传输实体TPDU应用层网络层传输实体主机1主机2应用/传输接口传输/网络接口传输地址网络地址传输协议6传输层协议通常具有几种责任一种责任就是创建进程到进程的通信,通常使用端口号来完成这种功能。另一种责任是在传输层提供控制机制,比如差错控制、流量控制及拥塞控制等。另外,传输层还应当负责为进程建立连接机制,这些进程应当能够向传输层的发送数据流。7传输层的任务传输层的任务是为两个主机中的应用进程提供通信服务。这与网络层中的IP协议有什么区别呢?IP协议是负责计算机级的通信,换句话说,是提供主机到主机的通信服务。作为网络层协议,IP协议只能将报文交付给目的计算机。但是,这是一种不完整的交付。这个报文还必须送交到正确的进程。这正是传输层协议所要做的事。8图8-2给出了IP协议与传输层协议作用范围的区别。应用进程…应用进程…IP协议的作用范围(提供主机之间的逻辑通信)TCP和UDP协议的作用范围(提供进程之间的逻辑通信)因特网9传输层的任务另外,除了在作用范围上有所区别,传输层还比网络层提供更可靠的传输服务。分组丢失、数据残缺均会被传输层检测到并采取相应的补救措施。108.1.2端口现在的操作系统都支持多用户、多任务的运行环境。一个计算机在同一时间可运行多个进程。在网络上,主机是用IP地址来定义的。要定义主机上的某一个进程,便需要第二个标识符,叫做端口号。端口是个非常重要的概念,因为应用层的各种进程是通过相应的端口与运输实体进行交互的。因此在运输协议数据单元的首部中都要写入源端口号和目的端口号。当运输层收到IP层交上来的数据,就要根据其目的端口号来决定应当通过哪一个端口上交给目的应用进程。11端口号在TCP/IP协议族中,端口号由16位二进制数表示,换算为十进制,则是0-65536之间的整数。端口号只有本地意义,即端口号只是为标志本计算机应用层中的各进程,不同计算机的相同端口号是没有联系的。12端口号分为两类一类是由因特网指派名字和号码公司ICANN负责分配给一些常用的应用层程序固定使用的熟知端口(well-knownport),其数据一般为0-1023,表8-1中便列出了部分常见的熟知端口。“熟知”就表示这些端口号是TCP/IP体系确定并公布的,因而是所有用户进程都知道的。另一类是一般端口,用来随时分配给请求通信的客户进程,一般来说,客户进程所使用的端口号都是临时产生的,通信完成后便释放,所以又称短暂端口号。13表8-1常见的熟知端口协议端口说明FTP21文件传输协议TELNET23远程登录协议SMTP25简单邮件传输协议DNS53域名解析协议DHCP67动态主机配置协议TFTP69快速文件传输协议HTTP80超文本传输协议SNMP161简单网络管理协议14套接字为了在通信时能确定唯一主机的唯一进程,就必须把端口号和主机的IP地址结合起来一起使用,称为套接字地址(socketaddress),或直接称为SOCKET。在实际通信过程中,我们需要一对套接字地址:客户套接字地址和服务器套接字地址,客户套接字地址惟一定义了客户进程,而服务器套接字唯一地定义了服务器进程。这四种信息分别是IP首部与运输协议数据单元首部中的一部分。15套接字的组成IP地址200.10.10.1端口号21200.10.10.1,21168.2用户数据报协议UDP8.2.1UDP概述用户数据报协议UDP是传输层协议之一,其实现功能较为简单,但由于其灵活、开销小等特点,使得它更适合某些应用。UDP提供无连接的服务。这表示UDP发送出的每一个用户数据报都是独立的数据报。用户数据报并不进行编号,也没有建立连接和释放连接的过程,每一个用户数据报可以走不同的路径。UDP是一个不可靠的传输层协议。178.2.2UDP用户数据报UDP分组叫做用户数据报,有8个字节的固定首部。源端口目的端口长度检验和数据首部UDP用户数据报18用户数据报首部中的字段源端口号:这是在源主机上运行的进程所使用的端口号。有16位长,这就是表示端口号的范围为0-65535。目的端口号:这是在目的主机上运行的进程使用的端口号,16位长。总长度:是用户数据报的总长度,即首部加上数据后的总长度,16位长。检验和:这个字段用来检验整个用户数据报出现的差错。198.3传输控制协议TCP8.3.1TCP概述与UDP不同,TCP是一种面向流的协议。在UDP中,进行把一块数据发送给UDP以便进行传递。UDP在这块数据上添加自己的首部,这就构成了数据报,然后再把它传递给IP来传输。这个进程可以一连传递好几个块数据给UDP,但UDP对每一块数据都是独立对待,而并不考虑它们之间的任何联系。TCP则允许发送进程以字节流的形式来传递数据,而接收进程也把数据作为字节流来接收。TCP创建了一种环境,它使得两个进程好像被一个假想的“管道”所连接,而这个管道在Internet上传送两个进程的数据,发送进程产生字节流,而接收进程消耗字节流。20报文段由于发送进程和接收进程产生和消耗数据的速度并不一样,因此TCP需要缓存来存储数据。在每一个方向上都有缓存,即发送缓存和接收缓存。另外,除了用缓存来处理这种速度的差异,在发送数据前还需要一种重要的方法,即将字节流分割为报文段(Segment)。报文段是TCP处理的最小数据单元。报文段的长度可以是不等的。21TCP发送与接收数据过程的示意图如图8-5所示。端口…发送TCP报文段TCPTCP…TCPTCP接收缓存发送缓存报文段报文段…报文段报文段报文段报文段端口发送端接收端向发送缓存写入数据块从接收缓存读取数据块应用进程应用进程端口…发送TCP报文段TCPTCP…TCPTCP接收缓存发送缓存报文段报文段…报文段报文段报文段报文段端口发送端接收端向发送缓存写入数据块从接收缓存读取数据块应用进程应用进程22TCP特点TCP提供全双工服务,即数据可在同时间双向流动,每一个TCP都有发送缓存和接收缓存,而两个方向都可以发送报文段。TCP是面向连接协议,它有连接建立、数据传输、连接释放三个过程。TCP是可靠的传输协议,它使用确认机制来检查数据是否安全和完整地到达。238.3.2TCP报文段TCP报文段同样由首部和数据两部分组成。但其首部要比UDP复杂的多,其首部前20个字节是固定的,后面有4N字节是根据需要而增加的选项(N为整数)。因此,TCP首部长度在20-60字节之间。24图8-6TCP报文段格式TCP首部20字节的固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FIN32bitSYNRSTPSHACKURG比特08162431填充TCP数据部分TCP首部TCP报文段25TCP报文段首部字段源端口和目的端口字段:各占2字节。端口是运输层与应用层的服务接口。运输层的复用和分用功能都要通过端口才能实现。序号字段:占4字节。TCP连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。确认号字段:占4字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。数据偏移:占4bit,它指出TCP报文段的数据起始处距离TCP报文段的起始处有多远。“数据偏移”的单位不是字节而是32bit字(4字节为计算单位)。26TCP报文段首部字段保留字段:占6bit,保留为今后使用,但目前应置为0。紧急比特URG:当URG1时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。确认比特ACK:只有当ACK1时确认号字段才有效。当ACK0时,确认号无效。推送比特PSH(PuSH):接收TCP收到推送比特置1的报文段,就尽快地交付给接收应用进程,而不再等到整个缓存都填满了后再向上交付。27TCP报文段首部字段复位比特RST(ReSeT):当RST1时,表明TCP连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。同步比特SYN:同步比特SYN置为1,就表示这是一个连接请求或连接接受报文。终止比特FIN(FINal):用来释放一个连接。当FIN1时,表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。窗口字段:占2字节。窗口字段用来控制对方发送的数据量,单位为字节。TCP连接的一端根据设置的缓存空间大小确定自己的接收窗口大小,然后通知对方以确定对方的发送窗口的上限。28TCP报文段首部字段检验和:占2字节。检验和字段检验的范围包括首部和数据这两部分。在计算检验和时,要在TCP报文段的前面加上12字节的伪首部。紧急指针字段:占16bit。紧急指针指出:在本报文段中紧急数据共有多少个字节(紧急数据放在本报文段数据的最前面)。选项字段:长度可变。TCP只规定了一种选项,即最大报文段长度MSS(MaximumSegmentSize)。MSS告诉对方TCP:“我的缓存所能接收的报文段的数据字段的最大长度是MSS个字节。”填充字段:这是为了使整个首部长度是4字节的整数倍。298.3.3TCP的可靠性TCP是一种可靠的传输协议。其可靠性体现在它可保证数据按序、无丢失、无重复的到达目的端。TCP报文段首部的数据编号与确认字段为这种可靠传输提供了保障。TCP将所要传送的整个报文看成一个个字节组成的数据流,并使每一个字节对应于一个序号。在连接建立时,双方要商定初始序号。TCP每次发送的报文段的首部中的序号字段数值表示该报文段中的数据部分的第一个字节的序号。30序号的作用接收站点在收到发送方发来的数据后依据序号重新组装所收到的报文段。在一个高速链路与低速链路并存的网络上,可能会出现高速链路上的报文段比低速链路上的报文段提前到达的情况,此时就必须依靠序列号来重组报文段,以保证数据可以按序上交应用进程。TCP的确认是对接收到的数据的最高序号(即收到的数据中的最后一个序号)进行确认。但返回的确认序号ACK是已收到的数据的最高序号再加1,该确认号既表示对已收数据的确认,同时表示期望下次收到的第一个数据字节的序号。31图8-7显示了TCP报文段传输时SEQ和ACK所扮演的角色。SEQ=100ACK=10SEQ=10ACK=101SEQ=101ACK=11SEQ=11ACK=102我发送序号为100的报文段期望收到你的序号为10的字节我收到了序号为100的报文段期望收到你的序号为101的字节主机A主机B32超时和重传在实际通信中,存在着超时和重传两种现象。如果在传输过程中丢失了某个序号的报文段,导致发送端在给定的时间段内得不到相应的确认序号,那么就确认该报文段已被丢失并要求重传。已发送的TCP报文段会被保存在发送端的缓冲区中,直到发送端接收到确认序号才会消除缓冲区中的这个报文段。这种机制称为肯定确认和重新传输(PositiveAcknowledgementandRetransmission,PAR),它是许多通信协议用来确保可信度的一种技术,工作过程如图8-8所示。

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

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

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

×
保存成功