计算机网络基础-课件第7章-端到端的数据传输_第1页
计算机网络基础-课件第7章-端到端的数据传输_第2页
计算机网络基础-课件第7章-端到端的数据传输_第3页
计算机网络基础-课件第7章-端到端的数据传输_第4页
计算机网络基础-课件第7章-端到端的数据传输_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

第7章端到端的数据传输(传输层)本章学习目标:了解传输层的概念理解传输层端口号的概念和作用了解UDP协议的作用和数据报文格式掌握TCP协议的作用与UDP协议的区别掌握TCP报文段中每个字段的意义和作用掌握TCP协议连接管理的概念和作用掌握TCP协议连接管理中建立连接和释放连接的过程掌握滑动窗口的概念和TCP中流量控制的机制理解TCP中拥塞控制的方法7.1传输层概述传输层不仅是单独的一层,而且是整个协议层次的核心所在。传输层使用网络层提供的服务,同时向它的上层应用层提供通信服务。7.1.1传输层的作用图7-1传输层的位置

网络中两个节点主机进行通信时,是主机中具体的应用进程在进行通信。应用进程之间的通信叫做端到端的通信。IP协议虽然能够把数据包送达目的主机,但是这个数据包还停留在目的节点的网络层,并没有交付给节点主机中具体的应用进程。传输层的作用就是实现节点主机中,具体应用进程间的端到端的通信。7-2传输层的作用是实现应用进程间端到端的通信传输层为应用层的各种进程提供端到端的逻辑通信,但网络层只是提供主机之间的逻辑通信,并没有把数据交付给具体的应用进程。传输层还要对收到的报文进行差错检测;网络层只检测数据包的首部(校验和字段),而不检测数据部分。端口就是传输层与上层应用层之间的服务访问节点。应用层的各种进程通过相应的端口把数据交付给传输层;传输层也是通过端口把报文段向上交付给应用层相应的进程。端口标识应用层的具体进程。7.1.2端口号图7-3端口的概念端口用一个16bit的端口号标识,可以提供64K个不同的端口号。端口号只是用来区分本地计算机应用层的不同进程,只具有本地意义。网络中不同计算机的相同的端口号是没有任何联系的。端口的分类:周知端口一般端口应用进程FTPTelnetSMTPDNSHTTPNewsSNMP周知端口2123255380119161/162表7-1常用的周知端口7.2用户数据报协议UDP用户数据报协议UDP(UserDatagramProtocol,RFC768),在传输数据前不需要建立连接,是一种无连接的传输协议,也不提供可靠的交付。但是UDP在某些方面也体现出了特殊的优点:(1)无连接,发送数据前不需要建立连接,发送结束也不需要释放链接;减少了系统资源的开销和建立连接所耗费的时延;(2)不使用拥塞控制,虽然不能保证可靠交付数据,但同时主机就不在需要维持复杂的连接状态表。传输协议应用层协议名称应用层协议描述UDPDNS域名系统,完成域名解析RIP路由选择协议DHCPIP地址自动分配TFTP简单文件传输TCPFTP文件传输HTTP超文本传输TELNET远程终端登录表7-2使用UDP和TCP的应用协议UDP报文段包括头部和数据两个部分,头部比较简单,只有四个字段,每个字段占2个字节,一共8个字节。图7-4UDP报文格式报文段头部中各个字段的意义如下:(1)源端口(Sourceport)和目的端口(Destinationport):各占2个字节。用来标识源主机和目的主机内部的端点,一个UDP报文到达传输层时,他的数据部分被交付给与目的端口相关联的应用层进程。(2)长度(UDPLength):占2个字节。指出UDP报文段的长度,包括头部和数据两个部分。(3)校验和(checksum):占2个字节,是可选字段。如果不使用此字段,则此字段的数值全部置0。对于一些对传输质量要求不高的应用(例如,数字语音),可以不使用校验功能。7.2传输控制协议TCPTCP协议是一种面向连接的传输控制协议。TCP协议的目的就是能够适应这种复杂的网络结构,在不可靠的互联网络上提供一个全双工的可靠的端到端的字节流传输服务。RFC793中最早定义了TCP协议的规范,RFC1122修订了协议的一些错误并阐述了一些新的特性,TCP协议传输数据的过程如下:网络中每台支持TCP/IP协议的节点(可以理解为一台安装了TCP/IP协议栈的计算机)上都有一个TCP传输实体(可以理解为一个用户进程),这个传输实体根据需要不断的把数据块写入到TCP的发送缓存中;TCP协议在从发送缓存中取出一定数量的数据块组装成TCP报文段,传送给IP层,然后发送出去;接收端收到IP层提交上来的TCP报文段后,先将其放入接收缓存中然后具体的应用进程从接收缓存中读取属于自己进程的数据块(使用端口号区分),并重构出原始的字节流。TCP报文段分为首部和数据两个部分。首部的前20个字节是固定长度,后面可选项的长度必须是4N个字节(N为整数),所以TCP首部的最小长度是20个字节。首部的各个字段实现了TCP协议的全部功能,只有详细了解各个字段的作用才能掌握TCP协议的工作原理。7.3.1TCP报文段的首部图7-5TCP报文格式(1)源端口(Sourceport)和目的端口(Destinationport):各占2个字节,是传输层和应用层的服务接口。IP地址和端口号构成一个套接字(socket),可以标示网络中唯一的一个端点,原端点和目的端点合起来就可以标示一个连接。(2)序号(Sequencenumber):占4个字节。面向连接的TCP协议传输的是连续的字节流,在一个TCP连接中,每一个被传输的字节都被编一个序号。这里的序号字段指的是本报文段所发送数据的第一个字节的序号。(4)确认号(Acknowledgementnumber):4个字节。是期望收到对方发送的下一个报文段数据的第一个字节的序号,也就是期望收到的发送方下一个报文段首部的序号字段的值。请注意,这个字段指的是下一个期望收到的第一个字节序号,而不是已经接收到的最后一个字节的序号。例如,网络中的节点A已经收到了节点B发送的一个TCP报文段,序号字段是201,携带100个字节的数据,说明A已经收到的数据中字节的编号是201—300一共100个字节;那么A期望收到B发送的下一个字节的序号应该是从301开始(注意不是300),所以A发送给B的响应报文中应该将确认号字段的值设置为301。(5)首部长度(TCPheaderlength):占4bit。指明TCP报文的首部包含多少个32位的字,实际上就是报文首部的长度。由于报文首部包含长度可变的可选项,所以需要用此字段指明首部的长度。同时,这个字段也指明了报文段的数据部分在段内的起始位置(在数值上等于首部的长度)。请注意,这个字段的单位是32bit字,是以4字节长为计算单位;4bit能够表示的最大值是十进制的15,所以首部长度这个字段能表示的最大值是60个字节,也就是TCP首部的最大长度。(6)保留:6bit。留待以后扩展使用,不使用的话全部置0。然后是6个标志位,各占一个bit,数值是1或0。功能如下:(7)紧急指针标识URG(URGent):当URG=1的时候,说明后面的“紧急指针”(Urgentpointer)字段有效。它告诉系统这个报文段有紧急数据,需要尽快传送。(8)确认标识ACK:当ACK=1时,首部的“确认号”字段有效,当ACK=0时,则表明报文段不包含确认信息,首部“确认号”字段无效,应该被忽略。(9)推送标识PSH(PuSH):PSK=1说明报文段带有PUSH标识,接收方收到数据后应立即请求把数据递交给应用进程,而不是存储到接收缓存里面,等到整个缓存都满后才向上交付。设置此字段的目的可能是为了提高传输效率,但一般情况下很少使用。(10)复位标识RST(ReST):RST=1,说明TCP连接出现了混乱或者错误(如主机崩溃等),需要重新建立连接。该字段也可以用来拒绝一个非法的数据段,或者拒绝一个连接请求。(11)同步标识SYN:建立连接的过程中使用。SYN=1,表明是一个连接请求或者连接接受报文。当SYN=1,ACK=0时,表明是一个连接请求报文段;若对方同意建立连接,则在发送的响应报文中设置SYN=1,ACK=1。关于连接的建立和释放,将在后文进行讨论。(12)终止标识FIN(FINal):用于释放一个连接。FIN=1,说明此报文段发送方已经发送完数据,并请求释放连接。(13)窗口大小(Windowsize):2个字节。窗口大小字段指的是发送报文段一方的接收窗口的大小,而不是自己发送窗口的大小;这个字段指明了当前允许对方发送的数据量。窗口大小字段是接收方让发送发设置其发送窗口的依据。字段的值是经常动态变化的。之所以这么设置,是因为接收方的数据缓存空间有限,所以才用接收方的接收能力的大小来控制发送方的数据发送量。例如,节点A向节点B发送一个报文段确认号=301,窗口大小=500,说明发送方A还有能接收500个字节的缓存空间(301—800),B收到此报文后,就使用500作为发送窗口的上限(最多发送500个字节)。注意,B发送给A的报文段中也有窗口大小字段,是B根据自己的接收能力确定的接收窗口的大小(即A的发送窗口上限)。(14)校验和(Checksum):2个字节。检验的范围包括首部和数据两部分,提供了更好的可靠性。(15)紧急指针(Urgentpointer):参照(7)紧急指针标识URG。(16)选项(Options):长度可变。目前已经定义的有以下几个选项:最大报文段长度MSS选项(RFC879),窗口扩大选项和时间戳选项(RFC1323),选择确认选项(RFC2018)。TCP是面向连接的传输协议在每一次通信中,都需要先建立一个TCP连接,然后才能开始传送TCP报文,在报文传输完成后,还需要释放连接。TCP的连接管理,就是在每一次的通信中,使TCP连接的建立和释放都能够正常的进行。当网络性能不稳定,可能丢失、存储或者重复数据报的时候,会大大增加这个问题的复杂性。7.3.2TCP的连接管理三次握手(three-wayhandshake)的方法,解决如何建立连接的问题:图7-6TCP三次握手建立连接数据传输结束后,双方都可以释放连接:图7-7TCP释放连接TCP协议采用大小可变的滑动窗口进行流量控制。滑动窗口以字节为单位,窗口的大小就是TCP报文段首部中“窗口大小”字段的数值。在建立连接的时候,双方协商发送窗口的大小在通信过程中,接收端可以根据自己的数据处理速度和接收缓存的大小随时动态调整对方发送窗口的大小。发送端发送窗口的大小是由接收端控制的。7.3.3TCP的流量控制滑动窗口的概念:图7-8TCP中的滑动窗口接收端使用滑动窗口实现TCP传输的流量控制:图7-9TCP传输的流量控制当网络的负载超出了它的处理能力时,拥塞就会发生。虽然网络层也试图处理拥塞问题,但大多数的拥塞控制是由传输层的TCP协议完成因为解决网络拥塞问题的最根本的方法,是减慢数据发送的速率。7.3.4TCP的拥塞控制解决网络拥塞问题,要考虑两个方面:网络处理能力和接收方的处理能力。每一个TCP连接,都会维持以下两个状态变量:(1)接收方窗口大小rwinsize(riceiverwindowsize):接收方根据当前处理能力所允许的窗口大小,也就是TCP报文段头部中窗口大小字段。这是来自接收方的流量控制。(2)拥塞窗口大小cwinsize(congestionwindowsize):是发送方根据网络拥塞情况自己估算的发送窗口的大小,是来自发送端的流量控制。发送方确定拥塞窗口的原则是:只有网络没有出现拥塞,就把cwinsize的值增大一些,以便把更多的报文段发送出去;如果网络出现了拥塞,就把cwinsize的值减小一些,以减少发送到网络中的数据量。当网络发生拥塞时,路由器就会把一些无法处理的数据包丢弃,所以发送端如果没有收到已发送报文的确认报文,就可以认为网络出现了拥塞。rwinsize<cwinsize时,说明网络的处理能力大于接收的数据处理能力,但是发送方也只能照顾接收端的处理能力,把发送窗口设置为rwinsize大小;rwinsi

温馨提示

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

评论

0/150

提交评论