版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、传输层向上层提供哪些服务第1页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库Transport Layers task is to provide reliable, cost-effective data transport from the source machine to the destination machine, independently of the physical network or networks currently in use.Chapter 6. The Transport Layer第2页,共107页,2022年,5月20日,
2、15点54分,星期一百度文库 百度文库 Main Topics:1,传输层向上层提供哪些服务?2,服务质量(QoS)如何描述?3,传输层如何向上层提供服务?4,通过哪些原语向应用层提供服务?6.1 The Transport Service第3页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库Two types of transport service connection-oriented connectionless Why do we need transport layer?1、The transport layer service is similar t
3、o the network layer service. 2、The network layer is one part of communication subnet, whose services are provided by ISP. The users have no real control over the network layer.6.1 The Transport Service第4页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库 Why do we need transport layer?3、The only possibility is
4、to put on top of the network layer another layer that improves the quality of the service. 4、Even communication subnet has provided very good services, some users still do reliable work again. For example, band, etc. 6.1 The Transport Service第5页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库 How to use trans
5、port service? Method: service access primitives Site:interface ,TSAP Difference between transport service and network service: Different QoS:network service isnt always reliable.transport layer provide reliable services. Different service objectnetwork service user: transport entityTransport service
6、 user: application. 6.1.2 Transport Service Primitives第6页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库 Establish connections:1、服务器执行LISTEN原语,阻塞自己直到客户请求出现。2、客户端希望与服务器连接,执行CONNECT原语,客户端的传输层发出连接建立请求的TPDU。TPDU: The messages sent from transport entity to transport entity.3、服务器的传输层收到该TPDU,检查服务器的阻塞情况。如阻塞,唤醒服务器,回送
7、连接建立的应答TPDU4、客户端的传输层收到该TPDU ,客户程序被唤醒,连接建立。6.1.2 Transport Service Primitives第7页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库服务器y号TSAP应用程序x号TSAPListenCRTSAPconnectACCTSAP6.1.2 Transport Service Primitives第8页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库 Data transmission:1、任何一方A,执行RECEIVE原语,阻塞自己,等待对方发SEND原语。2、对方B执行
8、SEND原语,传输实体发送数据TPDU,A收到,将数据部分交给A,解除阻塞; Release connections:1、asymmetric:任何一方A执行DISCONNECT原语,发送拆除连接TPDU,到达B,释放空间,连接释放。2、symmetric:一方执行DISCONNECT后,不发送数据但可以接收数据,收到对方的拆除TPDU后,拆除连接。6.1.2 Transport Service Primitives第9页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库服务器y号TSAP应用程序x号TSAPReceiveDATATPDUSend6.1.2 Trans
9、port Service Primitives第10页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库Figure 6-5. The socket primitives for TCP.6.1.3 Berkeley Sockets第11页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库6.1.3 Berkeley Sockets第12页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库Comparability between T layer and DL layer一点到另外一点的问题差错控制、PDU顺序、流量
10、控制问题等Difference between T layer and DL layer 1、Main reason:different running environmentDL层实体之间: physical lineT层实体之间: communication subnet6.2 Elements of Transport Protocols第13页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库 Difference between T layer and DL layer2、Addressing:DL层:和相邻的DL层实体通信(线路的另外一端),明确T层:和哪
11、个主机的哪个应用通信?3、连接建立与拆除DL层:简单(线路那一端就是对等层实体,连接建立帧丢失和出错都可以完美地解决)T层:复杂(子网的分组存储能力,使得旧的重复的分组导致错误的连接建立)4、数据缓存和流量控制DL层:为每一个连接分配的缓存区是固定的T层:为每一个连接动态分配缓存区6.2 Elements of Transport Protocols第14页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库寻址在传输层的表现:一个应用程序指定与哪个远程的应用程序进行连接子网上的主机很多,和哪台主机连接主机上的应用很多,和哪个应用连接寻址的一般技术:采用TSAP TCP
12、/IP:TSAP=(NSAP, Port) (IP,Port)服务守侯在TSAP(某IP的某个端口上),等待着客户(已分配了IP,Port)和它建立连接6.2.1 Addressing第15页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库NSAP,TSAP, N(网络连接)和T(传输连接)的关系2个应用(Host1和Host2)通过1个T连接联系起来1个T连接由2个TSAP决定2个传输实体通过1个N连接连接起来1个T连接建立在1个N连接之上第16页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库服务器122号TSAP应用程序6号TSAP
13、connect.request6-122TSAPConnect.indication网络连接寻址的过程第17页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库一个应用如何知道远程的服务器的TSAP。方案1:每一种服务都有一个固定的TSAP,并且公之于众。例如:FTP Server的端口号为 21,Telnet的端口为23,HTTP Server的端口为80。问题1:只适用于数量少、固定的服务;问题2:某些服务很少被使用,服务进程整天守侯在固定TSAP,浪费资源。6.2.1 Addressing第18页,共107页,2022年,5月20日,15点54分,星期一百度文库
14、 百度文库方案2:initial connection protocol(初始连接协议:机器上负载较轻的服务器平时不运行,而是在机器上运行一个 process server,守侯在一个知名TSAP,作为其它服务的代理。如果客户进程试图和一些服务连接,如果服务器没有运行,首先和进程服务器连接,进程服务器启动相应服务器,完成转交连接。)问题:对有些服务不能够仓促创建,则不适合使用该协议。6.2.1 Addressing第19页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库方案3:名字服务器(name server) 或目录服务器(directory server)na
15、me server 维护它所提供的服务和TSAP的对应关系用户首先和name server建立连接用户询问指定名字的TSAP,name server返回TSAP用户拆除与name server的连接用户和指定TSAP建立连接类比:电话查询台其它:新的服务需要向名字服务器注册6.2.1 Addressing第20页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库本地传输实体知道TSAP,如何知道该TSAP所在的机器(NSAP)层次型地址(hierarchical address):TSAP中包括NSAP地址例如:TSAP=(NSAP, PORT)平面性地址(flat
16、address):需要TSAP到NSAP的映射的服务6.2.1 Addressing第21页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库The Internet has two main protocols in the transport layer:1. UDP connectionless protocol2. TCPconnection-oriented protocol6.4 The Internet Transport Protocols: UDP第22页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库Main funct
17、ion:Provide connectionless data transmission for upper layer.Application:很多交互只有一个请求和一个响应,数据库访问对这些应用建立一个连接效率低Main idea:Users data is encapsulated into UDPS data field.Pass UDP packet to IP Layer.Transmit UDP packet to object host. Pass the data part to different application process through different
18、port number.6.4.1 Introduction to UDP第23页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库UDP头格式 UDP只在IP的数据报服务之上增加了很少一点的功能,即端口的功能和差错检测。6.4.1 Introduction to UDP第24页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库 虽然UDP用户数据报只能提供不可靠的交付,但UDP在某些方面有其特殊的优点:发送数据之前不需要建立连接UDP的主机不需要维持复杂的连接状态表。UDP用户数据报只有8个字节的首部开销。网络出现的拥塞不会使源主机的发送速
19、率降低,这对某些实时应用非常重要。6.4.1 Introduction to UDP第25页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库6.4.2 Remote Procedure Call 在传统的编程概念中,过程是由程序员在本地编译完成,并只能局限在本地运行的一段代码,也即其主程序和过程之间的运行关系是本地调用关系。因此这种结构在网络日益发展的今天已无法适应实际需求。 传统过程调用模式无法充分利用网络上其他主机的资源(如CPU、Memory等),也无法提高代码在实体间的共享程度,使得主机资源大量浪费。 第26页,共107页,2022年,5月20日,15点54
20、分,星期一百度文库 百度文库When a process on machine 1 calls a procedure on machine 2, the calling process on 1 is suspended and execution of the called procedure takes place on 2. 6.4.2 Remote Procedure Call第27页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库Information can be transported from the caller to the callee in
21、 the parameters and can come back in the procedure result. No message passing is visible to the programmer. 6.4.2 Remote Procedure Call第28页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库This technique is known as RPC (Remote Procedure Call) and has become the basis for many networking applications.6.4.2 Remo
22、te Procedure Call第29页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库 通过RPC我们可以充分利用非共享内存的多处理器环境(例如通过局域网连接的多台工作站),这样可以简便地将应用分布在多台工作站上,应用程序就像运行在一个多处理器的计算机上一样。你可以方便的实现过程代码共享,提高系统资源的利用率,也可以将以大量数值处理的操作放在处理能力较强的系统上运行,从而减轻前端机的负担。 6.4.2 Remote Procedure Call第30页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库 RPC其实也是一种C/S的编程模式
23、,有点类似C/S Socket 编程模式,但要比它更高一层。当我们在建立RPC服务以后,客户端的调用参数通过底层的RPC传输通道,可以是UDP,也可以是TCP,并根据传输前所提供的目的地址及RPC上层应用程序号转至相应的RPC Application Porgramme Server ,且此时的客户端处于等待状态,直至收到应答或Time Out超时信号。 6.4.2 Remote Procedure Call第31页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库 RPC是把传统本地过程调用的概念加以扩充后引入分布式环境的一种形式。RPC的形式和行为与传统本地过程调
24、用极为相似, 差别仅在于被调用的procedure(过程)实际运行在与调用者的场点不同的场点上(如图1). 也正是由于这一差别, 得通过编写程序来实现两场地之间的连接和信息沟通。 6.4.2 Remote Procedure Call第32页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库6.4.2 Remote Procedure Call第33页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库 RPC机制的实质是实现OSI七层模型中的会话层功能. 它在两个试图进行通信的场点之间建立一条逻辑信道(即会话连接), 并利用这个信道交换信息,
25、 不用时就释放连接. 下面我们就来看看RPC的通信模型。6.4.2 Remote Procedure Call第34页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库6.4.2 Remote Procedure Call第35页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库Client端: 1)发送远程过程调用的消息(以消息包形式)给远程的server端; 2)等待, 直到收到server端对该请求的回复; 3)一旦接收到来自server端的返回执行结果, 就继续执行后面的程序。Server端: 1)倾听状态, 等待client端发送过
26、程调用消息; 2)一旦接收到过程调用消息, server就抽取参数并分析它, 然后执行所请求的过程; 3) 将执行结果以消息包形式回送给client。 6.4.2 Remote Procedure Call第36页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库 其中stub是一组RPC机制的操作原语, 这些原语构成了RPC的实现细节, 它可以独立于client、server编程. Fig 6.24 Steps in making a remote procedure call.6.4.2 Remote Procedure Call第37页,共107页,2022年,
27、5月20日,15点54分,星期一百度文库 百度文库1)调用者调用本地stub中的一个过程(开始远程过程调用请求)。6.4.2 Remote Procedure Call第38页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库2)这个stub过程把有关的参数组装成一个消息包或一组消息包, 形成一条消息。运行此执行过程的远程场点的IP地址和执行该过程的进程ID号也包含在这条消息中。6.4.2 Remote Procedure Call第39页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库3)将这条消息发送给对应的RPC runtime(RP
28、C运行库)子程序, 由这个子程序将消息发送到远程场点。6.4.2 Remote Procedure Call第40页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库4)在接收到这条消息时, server端的RPC runtime子程序调用与被调用者对应的stub中的一个子程序, 并让它来处理消息。6.4.2 Remote Procedure Call第41页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库5)与被调用者对应的stub中的这个子程序解封装消息, 解析出相关参数, 并用本地调用方式执行所指定的过程。6.4.2 Remote P
29、rocedure Call第42页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库6)返回调用结果,调用者对应的stub子程序执行return语句返回到用户, 整个RPC过程结束。6.4.2 Remote Procedure Call第43页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库 实际上,从上面这个执行过程中,我们可以看到RPC的实现主要有两个问题需要解决。 一个是在远程过程调用时,如何定位远程场点;另外一个就是相关的两个场点必须能协同工作,所有这些工作对用户都是透明的,依次执行。 6.4.2 Remote Procedure
30、Call第44页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库 RTP被定义为传输音频、视频、模拟数据等实时数据的传输协议。1、应用领域:实时多媒体2、流动的媒体在网络上传输音/视频(A/V)等多媒体信息,有下载和流式传输两种方案。采用下载方式,用户必须考虑两个因素:对客户端的存储需求和播放启动延时。因为A/V文件一般都较大,所以需要的存储容量也较大;同时由于网络带宽的限制,下载常常要花数分钟甚至数小时。 6.4.3 The Real-Time Transport Protocol第45页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库
31、流媒体简单来说就是应用流技术在网络上传输的多媒体文件. 流技术就是把连续的影象和声音信息经过压缩处理后放上网站服务器,让用户一边下载一边观看、收听,而不需要等整个压缩文件下载到自己机器后才可以观看的网络传输技术。 流技术先在使用者端的电脑上创建缓冲区,于播放前预先下载一段数据作为缓冲,当网路实际连线速度小于播放所耗用资料的速度时,播放程序就会取用这一小段缓冲区内的数据,避免播放的中断,使得播放品质得以维持。6.4.3 The Real-Time Transport Protocol第46页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库支持流媒体传输的网络协议:(1
32、)实时传输协议RTP(Real-time Transport Protocol),一种用于Internet上针对多媒体数据流的一种传输协议。(2)实时传输控制协议RTCP(Real-time Transport Control Protocol),和RTP一起提供流量控制和拥塞控制服务。(3)实时流协议RTSP(Real Time Streaming Protocol ) ,定义了一对多的应用程序如何有效地通过IP网络传送多媒体数据。(4)RSVP协议(Resource Reserve Protocol),正在开发的Internet上的资源预订协议。 6.4.3 The Real-Time T
33、ransport Protocol第47页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库Figure 6-25. (a) The position of RTP in the protocol stack. (b) Packet nesting.6.4.3 The Real-Time Transport Protocol第48页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库 前面讲到UDP,它是一种无连接、不可靠的服务,一般应用在多媒体或C/S模型中,但大多数情况下需要可靠的数据传输服务。 6.5 The Internet Trans
34、port Protocols: TCP第49页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库功能:提供可靠的,面向连接的数据传输服务,定义在RFC 793。TCP协议的设计目标:IP协议提供的数据传输服务不可靠。 TCP协议在IP协议提供的数据传输服务基础上,提供可靠的、端到端的字节流服务。 6.5.1 Introduction to TCP第50页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库TSAP:套接字(socket) Port:一个UDP、TCP实体可以向多个高层用户提供服务,使用端口区分不同的用户。 小于1024的端口是知
35、名端口(well-known port), 例: HTTP 80;FTP 21; TELNET 23TSAP=IP 地址+16bit端口号 服务器守侯在哪个IP地址的哪个Port? 一个客户应用程序在哪个IP地址的机器上,并且使用什么端口? 套接字(socket):TCP/UDP协议中的TSAP6.5.2 The TCP Service Model第51页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库TCP connection:发送方套接字+接收方套接字(2 end points)一个套接字可以被多个连接使用,例子ftp ServerTCP factors: A
36、 sender,a receiver Reliable, ordered byte stream. full duplex:Traffic can go in both directions at the same time. connection-oriented:在通信之前,交换控制信息,初始化表空间等操作。 Flow control:发送端不会淹没接收端6.5.2 The TCP Service Model第52页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库TCP协议交换的数据单位:段(segment)段的结构:20字节的头部+一些字节的选项0或多个字节的
37、数据段的大小:由TCP实体确定,但是要受到两个限制形成的数据段不大于65515个字节数据段的长度网络MTU(一般为1500)时将该IP分组分段每一个fragment都有TCP头和IP头6.5.3 The TCP Protocol第53页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库段和应用数据的关系应用数据作为段的数据部分应用数据可以几块一起作为一个段的数据部分也可以将一块应用数据分解成几个部分,分别作为段的数据部分Figure 6-28. (a) Four 512-byte segments sent as separate IP datagrams. (b)
38、The 2048 bytes of data delivered to the application in a single READ call.6.5.3 The TCP Protocol第54页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库TCP协议的流量控制使用滑动窗口协议,窗口的大小由发送端向接收端申请,由接收端确定。发送窗口的大小是动态地由接收端调整的,最大尺寸是变化的。使用32位序号(段的标识、确认、流量控制)发送段给对方,对方将确认信息和窗口信息通过反向数据捎带过来6.5.3 The TCP Protocol第55页,共107页,2022年,5月2
39、0日,15点54分,星期一百度文库 百度文库 TCP协议的复杂性 IP协议提供的服务不可靠而TCP协议要在IP协议的基础上向应用层提供可靠的数据传递服务一些复杂的情况分组丢失或因为拥塞而延迟,超时重发可能要分段,目标端TCP重组失序,目标端TCP排序6.5.3 The TCP Protocol第56页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库Source port: 源端口 Des Port:目标端口6.5.4 The TCP Segment Header第57页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库sequence nu
40、mber:顺序号6.5.4 The TCP Segment Header第58页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库acknowledgement number:希望对方下一个传输的字节号是从ACK NUM开始6.5.4 The TCP Segment Header第59页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库Header len: 指明TCP的头部长度,4字节为单位,也指数据开始的地方6.5.4 The TCP Segment Header第60页,共107页,2022年,5月20日,15点54分,星期一百度文库
41、百度文库6bit未用6.5.4 The TCP Segment Header第61页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库6个1bit标志6.5.4 The TCP Segment Header第62页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库URG:紧急指针被使用的话,置为16.5.4 The TCP Segment Header第63页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库ACK:当ACK=1时,ACK NUM是有效的;6.5.4 The TCP Segment Header第64
42、页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库PSH:PSH=1,接收端TCP实体立即将数据交付给应用层实体,而不是等缓冲区满6.5.4 The TCP Segment Header第65页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库RST:表示拒绝连接或拒绝非法的数据段,由于复位或主机崩溃造成的错误的连接出现6.5.4 The TCP Segment Header第66页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库SYN:用于连接管理,连接建立; 当SYN=1,ACK=0时:连接请求; 当SYN=
43、1,ACK=1时:连接接受6.5.4 The TCP Segment Header第67页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库FIN:用于连接管理,连接释放; FIN=1,表明,本方已没有数据发送了,但可以接收数据,单向连接状态6.5.4 The TCP Segment Header第68页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库Win size:窗口大小,接收端愿意接收的byte个数Checksum:校验和,增加可靠性6.5.4 The TCP Segment Header第69页,共107页,2022年,5月20日
44、,15点54分,星期一百度文库 百度文库校验范围:将整个段和伪头部计算校验和的技术:以16bit为单位(如果不足补1个byte),以补码形式相加,最后对结果求补违反了分层的原则。Checksum:校验和,增加可靠性第70页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库Option:选项: 增加额外设置,变长6.5.4 The TCP Segment Header第71页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库传输层连接建立的复杂性1、传输层实体之间是整个子网;2、子网的存储能力,会造成延迟的重复分组问题6.5.5 TCP Con
45、nection Establishment第72页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库传输层连接技术:three-way hand shakeCR:主机1选择一个初始序号x,向主机2发送一个连接请求的TPDUACC:主机2接收该TPDU,并回送一个确认TPDU,包含了自己的序号yDATA:主机1向主机2发送的第一个数据TPDU中确认了主机2的序号y6.5.5 TCP Connection Establishment第73页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库Three-way hand shake:情况1:延迟重复
46、分组CR是延迟的重复分组主机2接收主机1的请求,并回应ACC,序号为y主机1拒绝连接的建立主机2释放半连接有错6.5.5 TCP Connection Establishment第74页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库情况2:延迟重复分组 存在延迟的CR和对ACC确认,而且它们的时序配合的很好 主机2收到CR,回应一个确认ACK,序号为 y。 来了一个对ACK的确认-DATA(延迟的),序号为x,但是ACK序号为不同于Y 主机2拒绝这个连接 主机1拒绝这个连接Three-way hand shake:6.5.5 TCP Connection Esta
47、blishment第75页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库释放连接的两种方式非对称释放 当一方发出DR(Disconnect Request) 后,双方通信中断 非常突然,可能会造成数据丢失不适合于传输层数据通信6.5.6 TCP Connection Release第76页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库释放连接的两种方式对称释放(四次挥手)将一个双向连接看成两个方向的单向连接构成一方发出DR后,不发送数据,但能够接收数据(结束了这一方向到 对方的单向连接)另外一方在发出DR后,结束了另一个方向的单向连接
48、整个通信终止DRDR6.5.6 TCP Connection Release第77页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库释放连接(正常情况)1、主机1发出DR,启动定时器2、主机2收到DR,启动定时器,并回应3、主机1收到回应,再发送一个对回应的确认ACK,释放连接4、主机2收到ACK,释放连接6.5.6 TCP Connection Release第78页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库释放连接(异常)ACK丢失1、主机2定时器超时2、主机2释放连接6.5.6 TCP Connection Release第7
49、9页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库释放连接(异常)第二个DR丢失1、主机1的定时器超时2、再次要求释放连接6.5.6 TCP Connection Release第80页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库释放连接(异常)第二个DR丢失,且主机1重发的DR也丢失1、N次超时之后,主机1释放2、主机2定时器超时,释放连接6.5.6 TCP Connection Release第81页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库释放连接的三次握手技术失败的情况主机1的DR丢失,并且
50、以后重发的DR都丢失。主机1重发N次之后,释放连接。主机2没有收到释放连接的要求,维持连接。半连通状态。不好的解决办法主机1重发N次之后,仍然维持连接。问题 主机2有可能收到DR(主机2的DR丢失),已经释放解决办法在一段时间内没有收到任何TPDU,连接自动释放。要求双方,在没有数据发送期间,通过定时器的触发,发送一些伪TPDU。6.5.6 TCP Connection Release第82页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库6.5.8 TCP Transmission Policy第83页,共107页,2022年,5月20日,15点54分,星期一百度
51、文库 百度文库DL层的数据传输策略发送端有帧落入发送窗口,允许就发送接收端只要将帧收到并交付给上层就发确认给对方,让发送窗口向前走。DL层的传输策略不适合传输层主要问题:效率太低。一个例子: 客户端是telnet客户程序;服务器是交互式编辑器。6.5.8 TCP Transmission Policy第84页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库客户每输入一个字符,交给TCP,形成一个IP分组,41字节接收端TCP,每收到一个IP分组,发确认分组,40B1:Type a char2:to tcp3:DATA PDU4:ACK6:Buffer8:result
52、7:result5:to Server一个例子第85页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库接收端服务器接受1个字符,发一个分组告诉发送端缓冲区向前移动,40Bytes处理结果返回客户端(回显),41Bytes对每个输入的字符共162B,并发送4个数据段。6.5.8 TCP Transmission Policy1:Type a char2:to tcp3:DATA PDU4:ACK6:Buffer8:result7:result5:to Server第86页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库1:Type a ch
53、ar2:to tcp3:DATA PDU4:ACK6:Buffer8:result7:result5:to Server第87页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库 Nagles algorithm 目的:使发送方不再发送小的数据段原理:1, When data come into the sender one byte at a time, just send the first byte and buffer all the rest until the outstanding byte is acknowledged. 2, Then send a
54、ll the buffered characters in one TCP segment and start buffering again until they are all acknowledged.6.5.8 TCP Transmission Policy第88页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库1、接收TCP收到很大的数据块,将它的缓存用完silly window syndrome 第89页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库2、接收端的应用一次只从TCP中取走一个字符silly window syn
55、drome 第90页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库3、接收TCP向发送端TCP报告它出现了一个字符的可用缓存silly window syndrome 第91页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库4、发送端发送一个字符,缓存用完,停止发送silly window syndrome 第92页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库5、接收端的应用再次从TCP中取走一个字符silly window syndrome 第93页,共107页,2022年,5月20日,15点54分,星
56、期一百度文库 百度文库6、接收端TCP向发送端TCP报告它出现了一个可用的缓存silly window syndrome 第94页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库Solution:clark algorithm 禁止接收端发送较少字节的窗口更新信息 等到缓存有最大段大小的空间; 或缓存区有1/2空闲时; 以上两者的最小值。发送端和接收端相互配合 解决问题:一次发送一个字符的问题,效率低。 发送端:采用nagle算法,或发送端积攒一个完整的数据段或接收缓存区的1/2时发送,解决发送方不要发送太小的数据段。 接收端:clark算法,解决接收方不要请求太小
57、的数据段。silly window syndrome 第95页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库Congestion 拥塞:分组的数量已超过了子网的处理能力。 拥塞控制主要思想:降低向子网中发送分组的速率。分组的来源 网络层的数据大都来源于传输层,传输层是源。 最终来源于应用,对于用户而言,不可能要求他们减少数据产生的速率。6.5.9 TCP Congestion Control第96页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库原因:应用很多,假如在应用层进行拥塞控制,将用户的数据缓存起来不是一个很有效的方案。在传输层
58、实体中体现拥塞控制,缓存所有应用产生的数据,减少发往子网的速率,是很有效的方法。拥塞的检测以定时器超时作为拥塞的指标定时器超时的原因分组由于出错而丢失,情况比较少分组由于拥塞而被路由器丢弃,情况比较多分组由于接收端缓存不够而被目标主机抛弃,通过预留缓存区办法很少发生分组被丢弃的原因接收端缓存有限,一次发送分组的数量缓存区网络处理能力有限,超过了网络的容量6.5.9 TCP Congestion Control第97页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库Figure 6-36. (a) A fast network feeding a low-capacity receiver. (b) A slow network feeding a high-capacity receiver.6.5.9 TCP Congestion Control第98页,共107页,2022年,5月20日,15点54分,星期一百度文库 百度文库发送方维持的两个窗口拥塞窗口(congestion window):目的是不让发送速率超过子网处理能力接收窗口(receiving window): 从接收端获得的信息,告诉发送端接收端有多
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年医疗场所装修安全卫生合同
- 2024年变电站安装工程合同
- 老年人健康管理案例研讨方案
- 女生安全自我保护
- 造纸厂员工培训课件
- 市政工程开荒保洁实施方案
- 济宁学院《电路理论》2021-2022学年期末试卷
- 济宁学院《Python程序设计》2021-2022学年期末试卷
- 济南大学《专题片与纪录片创作》2021-2022学年第一学期期末试卷
- 桥梁建设管沟开挖支护方案
- 沪教牛津版八上英语Unit-6-单元完整课件
- 电力电子技术在新能源领域的应用
- 结婚审批报告表
- 2022江苏交通控股有限公司校园招聘试题及答案解析
- 装配式建筑预制构件吊装专项施工方案
- 绘本分享《狐狸打猎人》
- 防诈骗小学生演讲稿
- 小学英语-Unit4 There is an old building in my school教学设计学情分析教材分析课后反思
- 《汽车电气设备检测与维修》 课件 任务14、15 转向灯故障诊断与维修(一、二)
- 离职申请表(完整版)
- 项目5 S7-1200 PLC控制步进电机与伺服电机
评论
0/150
提交评论