您好,欢迎访问三七文档
1第3章运输层主要内容:运输层服务运输层和网络层的关系两个实体如何可靠地通信拥塞控制技术位于应用层和网络层之间。为主机上的应用进程提供直接的通信服务。接受网络层提供的服务应用层运输层网络层链路层物理层23.1运输层服务3.2复用与分解3.3无连接传输:UDP3.4可靠数据传输的原理3.5面向连接的传输:TCP3.6拥塞控制的原理3.7TCP拥塞控制小结主要章节33.1运输层服务运输层协议:为运行在不同主机上的应用进程提供逻辑通信功能(主机好像是直接相连的)。进程之间使用逻辑通信功能彼此发送报文,无需考虑具体物理链路。应用层运输层网络层数据链路层物理层网络层数据链路层物理层应用层运输层网络层数据链路层物理层网络层数据链路层物理层网络层数据链路层物理层网络层数据链路层物理层网络层数据链路层物理层4运输层协议运行在端系统,不在路由器中。发送方:将应用进程的报文划分成若干段,封装后传给网络层。接收方:将网络层上传的报文段,重新装配为报文,传向应用层。路由器只根据网络层字段而动作。应用层运输层网络层数据链路层物理层网络层数据链路层物理层应用层运输层网络层数据链路层物理层网络层数据链路层物理层网络层数据链路层物理层网络层数据链路层物理层网络层数据链路层物理层3.1.1运输层和网络层的关系3.1.2运输层概述53.1.1运输层和网络层的关系运输层位于网络层上。网络层提供主机之间的逻辑通信运输层为运行在不同主机上的进程之间提供逻辑通信;依赖、强化网络层服务应用层运输层网络层链路层物理层6家庭通信类比两个家庭的堂兄弟姐妹之间互相通信。每家有一个孩子负责收发邮件,分别为Ann和Bill;每封信通过传统的邮政服务发送。邮政服务为两个家庭间提供逻辑通信:将信件从一家送往另一家。Ann和Bill为堂兄弟姐妹之间提供了逻辑通信:向兄弟姐妹收取或交付信件。Ann和Bill是端到端交付过程的一部分(即端系统部分),是邮件服务。7与网络术语对比应用报文=信封中的信进程=孩子运输协议=Ann和Bill网络层协议=邮政服务应用层运输层网络层链路层物理层主机=家庭8说明Ann和Bill在各自家里工作,不参与邮件分拣及传递:运输层协议工作在端系统中,将来自应用进程的报文移动到网络边界(网络层),不考虑报文在网络核心如何传递;中间路由器既不处理也不识别运输层加在报文上的任何信息。Ann和Bill外出,其他人接替工作,服务方式、效果可能不同:计算机网络中有多种运输层协议,每种协议为应用程序提供不同的服务模型。9Ann和Bill能够提供的服务要受到邮政服务提供服务的限制。运输层协议所能提供的服务受底层网络协议服务模型的限制。如,时延和带宽保证。某些特定服务既使底层网络协议不提供,运输层协议也能提供。如,当底层网络协议是不可靠的(分组丢失、混乱和重复),运输层同样能为应用程序提供可靠的传输服务。103.1.2因特网运输层概述因特网运输层协议:UDP(用户数据报协议):为应用程序提供不可靠、无连接的服务。TCP(传输控制协议):为应用程序提供可靠的、面向连接的服务。术语:报文段(segment):运输层分组。数据报(datagram):网络层分组。11因特网网络层:IP(网际协议):为主机之间提供逻辑通信。IP服务模型:尽力交付服务。尽最大的努力在通信的主机之间交付报文段,但不保证按序交付或数据的完整性。属于不可靠服务。IP地址:主机的网络层地址。每台主机有一个。12UDP和TCP的服务模型:将两个端系统间IP的交付服务扩展为运行在两个端系统上的进程之间的交付服务。可提供完整性检查。UDP是不可靠服务TCP提供可靠数据传输及拥塞控制。运输层的多路复用与分解133.2多路复用与分解将网络层所提供的主机到主机交付服务扩展到在主机上运行的应用程序到应用程序的交付服务。通常,主机上可以有多个应用程序进程运行(如一个HTTP、一个FTP、两个Telnet)。当运输层从底层网络接收数据时,应能正确地定向到相应的一个进程(套接字)HTTPTelnetFTPTelnet运输层数据报14套接字从网络向进程传递数据,或从进程向网络传递数据的门户。运输层和应用进程通过套接字来传递数据。主机上的套接字可以有多个,每个套接字都有惟一的标识符(格式取决于UDP或TCP)。应用层运输层网络层链路层物理层P2P1=进程=套接字15多路复用(发送主机):从不同套接字收集数据块,并为每个数据块封装上首部信息,生成报文段,传递到网络层。多路分解(接收主机):将报文段中的数据交付到正确的套接字。即接收方运输层从报文段的多个字段中,识别出套接字,并将报文段定向到该套接字。例图3-2,进程P3向进程P1发送。16应用层运输层网络层链路层物理层P1应用层运输层网络层链路层物理层应用层运输层network链路层物理层P2P3P4P1主机1主机2主机3主机1上的运输层收集套接字输出的数据,形成运输层报文段,将其传递给下面的网络层(多路复用);主机2的运输层将从其网络层收到的报文段多路分解后通过相应的套接字交给其上的P1进程。17目的主机的分解过程当报文段到达主机时,运输层检查报文段中的目的端口号,将其定向到相应的套接字。报文段中的数据通过套接字进入其所连接的进程。18报文段格式端口号:主机上的每个套接字分配一个端口号。16位(0~65535)。0~1023为周知端口号,保留给固定的应用程序。开发一个新应用时,需选择一个端口号。源端口#目的端口#32bits应用数据(报文)其他首部字段TCP/UDP段格式191、无连接的多路复用与分解创建UDP套接字:自动为该套接字分配一个端口号。如DatagramSocketmySocke=newDatagramSocket()从1024~65535的号码中分配一个主机尚未使用的UDP端口号。直接为套接字指定一个特定的端口号。如DatagramSocketmySocke=newDatagramSocket(19157)客户机端:自动分配端口号服务器端:分配一个特定的端口号。若使用“周知协议”,必须分配一个相应的周知端口号。20例主机A中的一个进程向主机B中的另一进程发送一个应用程序数据块。1915746428主机A的多路复用:运输层创建一个报文段(数据、源端口号、目的端口号)。传递到网络层;网络层将该报文段封装到IP报文中,并尽力交付给接收主机主机B的多路分解:UDP报文段到达接收方,主机B通过检查该报文段中的目的端口号,将报文段定向(多路分解)到相应的套接字,并交给相应进程。21说明UDP套接字组成:二元组(IP地址,端口号);两个具有不同源套接字,但具有相同目的套接字的UDP报文段,可通过相同套接字定向到相同的目的进程(多对一);源端口号的用途:目的方回发报文段中的“返回地址”。222、面向连接的多路复用与分解TCP套接字:四元组(源IP地址,源端口号,目的IP地址,目的端口号)目的主机使用全部四个值来将收到的TCP报文段定向(分解)到相应的套接字。两个具有不同源套接字的TCP报文段,将被定向到两个不同的套接字。23TCP连接及分解服务器应用程序在某个端口上等待TCP客户机连接建立请求。如ServerSocketwelcomeSocke=newserverSocket(6789)TCP客户机在相应端口上产生一个连接建立请求报文段。SocketclientSocke=newSocket(serverHostName,6789)当服务器收到客户机的连接请求后,通知服务器进程,并创建一个连接套接字。如,SocketconnectionSocket=WelcomeSocket.accept()连接套接字通过4个值来标识。TCP连接完成后,客户机和服务器可相互发送数据。当一个TCP报文段到达主机时,根据4个字段值的来定向(多路分解)到相应的套接字。24例主机C向服务器B发起两个HTTP会话;主机A向服务器B发起一个HTTP会话。261457532261458025说明:一个web服务器可以同时与多个客户机连接,并产生多个进程。每个进程都有自己的连接套接字,通过这些套接字可以收到HTTP请求和发送HTTP响应。高性能Web服务器通常只使用一个进程,可以为每个新连接创建一个新线程(是一个轻量级的子进程)。持久HTTP,客户机与服务器之间经由同一个服务器套接字交换HTTP报文。非持久HTTP,每一对请求/响应,都要创建一个新的TCP连接,响应后即关闭。影响Web服务器的性能。263.4可靠数据传输的原理可靠数据传输的问题在运输层、链路层及应用层都会出现。最重要的10个网络主题中之一!可靠数据传输的框架,图3-8。27提供给上层的服务:数据可以通过一条可靠的信道传输。即传输的数据不出错、丢失,并按照发送顺序传送。28服务实现:由可靠数据传输协议负责。由于现实存在的各种干扰,低层信道可能不太可靠,通过使用可靠数据传输协议来保证可靠的数据传输。需要分别设计开发可靠数据传输协议的发送方和接收方。29发送方:通过rdt_send()函数调用可靠数据传输协议的发送方(rdt表示“可靠数据传输”协议)。udt_send()用来发送分组给对方(udt表示“不可靠数据传输”)。接收方:当一个分组从信道抵达时,调用rdt_rcv()接收;调用deliver_data()将数据交付给上层。30说明:只考虑单向数据传输,数据传输从发送方到接收方发送方和接收方可以来回交换控制分组。使用有限状态机(FSM)来定义发送方和接收方3.4.1构造可靠的数据传输协议3.4.2流水线可靠数据传输协议3.4.3Go-Back-N(GBN)3.4.4选择性重传(SR)31有限状态机(FSM)箭头表示协议从一个状态变迁到另一个状态。横线上方:表示引起变迁的事件;横线下方:表示事件发生时所采取的动作;:表示没有事件或未采取动作虚线表示FSM的初始状态。状态1状态2引起状态变迁的事件状态变迁所采取的行动状态:当位于这个“状态时”,下个状态惟一地由下个事件决定事件动作323.4.1构造可靠的数据传输协议1.完全可靠信道上的可靠数据传输2.具有比特差错信道上的可靠的数据传输3.具有比特差错的丢包信道上的可靠的数据传输4.停止等待协议流程331、经可靠信道上的可靠数据传输:rdt1.0假设:底层信道完全可靠,数据传送不出错不丢失;收发双方速率匹配:接收方接收数据的速率和发送方发送数据一样快。所有的分组都是从发送方流向接收方接收方不需反馈信息给发送方,因为不会发生任何差错。rdt1.0发送和接收方的有限状态机FSM,如图3-9。34发送方:将数据发向底层信道从上层接受数据rdt_send(data)封装成分组make_pkt(data)将分组发送到信道中udt_send(packet)接收方:从底层信道读取数据从底层信道接收一个分组rdt_rcv(packet)解封取出数据extract(packet,data)数据传给上层deliver_data(data)等待上层调用packet=make_pkt(data)udt_send(packet)rdt_send(data)extract(packet,data)deliver_data(data)rdt_rcv(packet)发送方接收方等待下层调用封装解封上传352、比特差错信道上的可靠数据传输:rdt2.0信道不完全可靠,有可能产生比特错,但不丢包;所有分组按发送顺序被接收(有些比特可能出错)。类比例:打电话传递一条长信息,收听者:听清每句话后说“OK”(肯定确认);听到不清楚的话,要求对方重复说“请重复一遍”(否定确认)。问题:如何从错误中恢复?36肯定、否定确认作用:使发送方知道哪些内容被正确接收(肯定确认),哪些有误需要重传(否定确认)。基于重传机制的
本文标题:传输层
链接地址:https://www.777doc.com/doc-3301030 .html