您好,欢迎访问三七文档
1第8章运输层主要内容运输层概念TCP/IP中的运输层UDPTCP28.1运输协议概述引入运输层的原因消除网络层的不可靠性;提供从源端主机到目的端主机的可靠的、与实际使用的网络无关的信息传输。运输服务运输实体(transportentity):完成传输层功能的硬软件;运输层实体利用网络层提供的服务向高层提供有效、可靠的服务;34运输层服务过程(p229图8-2)应用进程间通信:不同应用进程的报文通过不同的端口进行传输。运输层的复用和分用复用:应用层不同进程的报文通过不同的端口向下交到网络层,并共用网络层提供的服务。分用:目的主机的运输层通过不同端口将报文分别交付到相应的应用进程。56网络层与运输层的区别(p229图8-3)网络层为主机提供逻辑通信。运输层为进程之间提供逻辑通信。78运输层与相邻层间关系(p230图8-4)向应用层提供运输服务的称为运输服务提供者(transportserviceprovider)即运输实体;使用运输服务的称为运输服务用户(transportserviceuser)。OSI中,1~4层称为运输服务提供者(transportserviceprovider);4层以上称为运输服务用户(transportserviceuser)。TSAP和NSAP910运输层提供两种服务(p230图8-5)面向连接的传输服务:连接建立,数据传输,连接释放。(TCP)无连接的传输服务。(UDP)118.2TCP/IP体系中的运输层1、TCP、UDP用户数据报协议(UDP)不需建立连接尽最大努力交付TCP面向连接可靠的全双工服务应用层UDPTCPIP与各种网络接口连接TCP/IP中运输层协议122、端口的概念端口即运输层服务访问点(TSAP),用来标识应用进程的。应用层的源进程将报文发送给运输层的某个端口,而应用层的目的进程从端口接收报文。1314端口号:16bit用来标识本计算机应用层中的各进程。端口号分类熟知端口:TCP/IP体系确定并公布。数值0-1023,FTP21、TELNET23、SMTP25、DNS53、HTTP80一般端口:随时分配给请求通信的客户进程。1516插口(Socket)或套接字:由IP地址和端口号组成,是TCP连接的方式。插口的含义:运输层通信的一对插口必须唯一。例如:(131.6.23.13,1500)和(130.42.85.15.25)Socket的几种不同含义。17188.3用户数据报协议UDP8.3.1UsageofUDPWhyisthereaUDP?noconnectionestablishment(whichcanadddelay)nocongestioncontrol:UDPcanblastawayasfastasdesiredsmallsegmentheadersimple:noconnectionstateatsender,receiver198.3用户数据报协议UDP8.3.1用户数据报的用途虽然UDP用户数据报只能提供不可靠的交付,但UDP在某些方面有其特殊的优点,例如:(1)发送数据之前不需要建立连接(当然发送数据结束时也没有连接需要释放),因而减少了开销和发送数据之前的时延。20(2)UDP没有拥塞控制,也不保证可靠交付,因此主机不需要维持具有许多参数的、复杂的连接状态表。(3)UDP用户数据报只有8个字节的首部开销,比TCP的20个字节的首部要短。(4)由于UDP没有拥塞控制,因此网络出现的拥塞不会使源主机的发送速率降低。表8-1给出了一些应用和应用层协议主要使用的运输层协议(UDP或TCP)。21表8-1使用UDP和TCP协议的各种应用和应用层协议应用应用层协议运输层协议名字转换DNSUDP路由选择协议RIPUDP网络管理SNMPUDP远程文件服务器NFSUDPIP电话专用协议UDP流式多媒体通信专用协议UDP多播IGMPUDP电子邮件SMTPTCP远程终端接入TELNETTCP万维网HTTPTCP文件传送FTPTCP22通常用UDP的报文队列来具体实现一个UDP端口,如图8-10所示。23248.3.2用户数据报的格式用户数据报UDP有两个字段:数据字段和首部字段。首部字段很简单,只有8个字节,如图8-11所示,由4个字段组成,每个字段都是两个字节。各字段意义如下所述。(1)源端口字段:源端口号。(2)目的端口字段:目的端口号。(3)长度字段:UDP用户数据报的长度。(4)检验和字段:防止UDP用户数据报在传输中出错。2526图8-12给出了一个计算UDP检验和的例子。278.4传输控制协议TCP协议按字节分配序号,每个字节有一个32位的序号;保证了可靠传输。使用序号和确认传输实体之间使用段(segment)(TPDU)交换数据;288.4.1TCP报头每个段包含一个20字节的首部(选项部分另加)和0个或多个数据字节。段的大小必须首先满足65535字节的IP包数据净荷长度限制满足底层网络传输介质的最大传输单元(MTU)的限制,比如以太网的MTU为1500字节;TCP实体使用滑动窗口协议,确认序号等于接收方希望接收的下一个序号。2930源端口和目的端口:各16位;插口对(socketpair)(包含客户IP地址、客户端口号、服务器IP地址和服务器端口号的四元组)可唯一确定互联网络中每个TCP连接的双方。序号:标识从TCP发端向TCP收端发送的数据字节流,它表示在这个报文段中的的第一个数据字节。确认号:期望收到对方的下一个报文段的数据的第一个字节的序号。应当是上次已成功收到数据字节序号加1。31数据偏移:即TCP首部的长度:4位,偏移长度的单位为4字节32Bit,因此偏移的最大值为60字节(15*4)。6位的保留域326位的标识位:置1表示有效URG:和紧急指针配合使用,发送紧急数据;ACK:确认号是否有效;PSH:指示发送方和接收方将数据不做缓存,立刻发送或接收;RST:由于不可恢复的错误重置连接;SYN:同步比特,用于连接建立指示;FIN:终止比特,用于连接释放指示33窗口大小:用来控制对方发送的数据量。指示发送方从确认号开始可以再发送窗口大小的字节流;校验和:为增加可靠性,对TCP首部、数据和伪首部头计算校验和;可选项域。建立连接时设定最大载荷能力,即MSS.34思考题1、TCP提供了一种字节流服务,而收发双方都不保持记录的边界。应用程序如何提供它们自己的记录标识?2、为什么在TCP首部的开始便是源和目的的端口号?3、为什么TCP首部有一个数据偏移(首部长度)字段而UDP首部(p236图8-11)中却没有?358.4.2TCP的数据编号与确认TCP报文是一种字节流,每一个字节对应一个序号,建立连接时双方双定初始序号。TCP确认是对接收到的数据的最高序号表示确认。报文发送和接收过程(p241图81-4)3637报文发送的控制机制:达到MSS时,组装TCP报文段,并发送。发送端PSH置1,推送操作,立即发送。发送端记时器时间到,把当前已有的缓存数据装入报文段发送出去。38如何改进传输层的性能?策略1:发送方缓存应用程序的数据,等到形成一个比较大的段再发出;策略2:在没有可能进行“捎带”的情况下,接收方延迟发送确认段;策略3:使用Nagle算法:若发送端应用进程将欲发送数据发送到TCP缓存,则发送端将第一个字节先发送出去,并缓存所有其后的字节直至收到对第一个字节的确认;然后将已缓存的所有字节组段发出,并对再收到的字节缓存,直至收到下一个确认后才发送下一报文。39策略4:使用Clark算法解决糊涂窗口综合症(sillywindowsyndrome)糊涂窗口综合症:接收端缓存已满,当应用进程一次只能从缓存读出一个字节时,(缓存产生一个字节空),然后向发送端发送确认,并将窗口设置为1,使得发送方只能发送一个字节。Fig.6-30解决办法:限制收方只有在具备一半的空缓存或最大段长的空缓存时,才产生一个窗口更新段。428.4.3TCP的流量控制与拥塞控制TCP的窗口管理机制基于确认和可变窗口大小(p243图8-15)TCP报文首部窗口值是当前给对方设置的窗口数值。接收端可动态调整对方的发送窗口。Fig.6-29(Animation20.3、20.4)窗口大小为0时,正常情况下,发送方不能再发TCP段,但有两个例外紧急数据可以发送;为防止死锁,发送方可以发送1字节的TCP段,以便让接收方重新声明确认号和窗口大小。434445TCP拥塞控制出现拥塞的两种情况快网络小缓存接收者慢网络大缓存接收者Fig.6-31导致网络拥塞的两个潜在因素是:网络能力和接收能力。TCP处理第一种拥塞的措施在连接建立时声明最大可接受段长度;利用可变滑动窗口协议防止出现拥塞;47TCP处理第二种拥塞的措施发送方维护两个窗口:通知窗口和拥塞窗口,按两个窗口的最小值发送;拥塞窗口依照慢启动(slowstart)算法和拥塞避免(congestionavoidance)算法变化。慢启动(slowstart)算法连接建立时拥塞窗口(congwin)初始值为该连接允许的最大段长,阈值(threshold)为64K;发出一个最大段长的TCP段,若正确确认,拥塞窗口变为两个最大段长;发出(拥塞窗口/最大段长)1个最大长度的TCP段,若都得到确认,则拥塞窗口加倍;重复上一步,直至发生丢包超时事件,或拥塞窗口大于阈值。488.4.4TCP的重传机制TCP重传TCP每送一个报文,就设置一次计时器。只要重传时间到,没有收到确认报文,就要重传这一报文。TCP重传自适应算法平均往返时延T=a(旧的往返时延T)+(1-a)(新的往返时延)计时器设置的重传时间应略大于平均往返时延重传时间β(平均往返时延)4950往返时延的测算和Karm算法只要报文重传了,就不采用其往返时延样本。Karm算法的修正报文每重传一次,就将重传时间增大一些。新的重传时间γ(旧的重传时间)(8-4)系数γ的典型值是2。当不再发生报文段的重传时,才根据报文段的往返时延更新平均往返时延和重传时间的数值。实践证明,这种策略较为合理518.4.5TCP的运输连接管理运输连接管理管理运输连接的建立和释放。连接建立要解决的问题确知对方存在双方协商参数解决资源分配52客户/服务器主动发起连接建立的进程为客户(Client)被动等待连接的为服务器(Server),服务器方执行LISTEN和ACCEPT原语,被动监听。53三次握手建立连接(p247图8-19)客户方执行connect原语,产生一个SYN为1、ACK为0、SEQ=X的TCP段,表示连接请求;(首次)服务器方的传输实体接收到这个TCP段后,首先检查是否有服务进程在所请求的端口上监听,若没有,回答RST置位的TCP段;若有服务进程在所请求的端口上监听,该服务进程可以决定是否接受该请求。在接受后,发出一个SYN置1和ACK置1的TCP段表示连接确认,并请求与对方的连接;(第二次)发起方收到确认后,发出一个SYN置0和ACK置1的TCP段表示给对方的连接确认;(第三次)5455连接释放(p248图8-20)释放连接时,发出FIN位置1的TCP段并启动定时器,在收到确认后关闭连接。若无确认并且超时,也关闭连接。56578.4.6TCP的有限状态机为了管理因特网,在网络管理中心设有管理信息库MIB(ManagementInformationBase)。管理信息库存放着各主机的TCP连接表(ConnectionTable),其格式如表8-2所示。TCP连接表对每个连接都登记了其连接信息。除本地和远地的IP地址和端口号外,还要记录每一个连接所处的状态。58表8-2TCP连接表连接状态本地IP地址本地端口远地IP地址远地端口连接1连接2…连接n59
本文标题:第8章运输层
链接地址:https://www.777doc.com/doc-235023 .html