您好,欢迎访问三七文档
1运输层武汉大学测绘学院测量工程研究所张鹏18071086877pzhang@sgg.whu.edu.cn2主要内容概述和运输层服务多路复用与多路分解无连接传输:UDP构造可靠数据传输协议面向连接的运输:TCP拥塞控制3运输层协议为运行在不同主机上的应用程序彼此之间提供了逻辑通信功能通过逻辑通信,运行不同进程的主机好像直接相连,无需考虑实际的通信链路和通信细节applicationtransportnetworkdatalinkphysicalapplicationtransportnetworkdatalinkphysicalnetworkdatalinkphysicalnetworkdatalinkphysicalnetworkdatalinkphysicalnetworkdatalinkphysicalnetworkdatalinkphysical4运输层协议是在端系统中,而不是在网络中的路由器中实现。在发送方,运输层将接收到的来自发送应用程序进程的报文转换成运输层分组,术语称运输层报文段,然后将报文段传递给网络层,网络层将其封装成网络层分组(数据数据报)并向目的地发送。在目的地进行相反的操作网络路由器仅作用于该数据报的网络层字段,不会处理运输层字段5两种运输层协议:TCP(面向连接)和UDP(无连接)TCPUDPIP应用层与各种网络接口运输层6例子两个家庭分别位于东西海岸,各有12个孩子,喜欢彼此通信每个家庭的每个孩子每周要给另一个家庭里的12个孩子每人写一封信,因此每个家庭每周要寄144封信每个家庭里有一个孩子负责收发邮件,西海岸家庭是Ann,东海岸家庭是Bill7主机=家庭应用层报文=信的内容进程=不同的孩子运输层协议=Ann和Bill网络层协议=邮政服务8邮政服务为两个家庭提供逻辑通信,邮政将信件从一家送往另一家Ann和Bill为孩子们提供了逻辑通信从其他孩子的角度来看,Ann和Bill就是邮政服务,尽管他们只是端到端交付过程的一部分9继续观察Ann和Bill只在各自的家里,所以运输层只工作在端系统Ann和Bill能够提供的服务受到邮政能够提供的服务的限制,所以不能保证传递信件的时间,同理,运输层协议也不能保证数据传输的时延和带宽10主要内容概述和运输层服务多路复用与多路分解无连接传输:UDP构造可靠数据传输协议面向连接的运输:TCP拥塞控制11将运输层报文段的数据交付到正确的套接字的工作称为多路分解从不同套接字中收集数据块,并为每个数据块封装上首部信息从而生成运输层报文段,然后将报文段传递到网络层的工作称为多路复用当Bill从邮递员处收到一批信件,通过查看收件人的姓名交给相应的孩子时,执行的就是多路分解操作;当Ann将从其他孩子们那里收集邮件并交给邮递员时,执行的就是多路复用操作12设想你坐在计算机旁下载web页面,同时运行一个FTP会话,此时会有两个网络应用程序在运行试思考如何将一个收到的运输层报文段定向到适当的应用程序?利用端口号和IP地址来定位具体的应用程序13sourceport#destport#32bitsapplicationdata(message)otherheaderfieldsTCP/UDPsegmentformat14有连接的情况(TCP)ClientIP:BP1clientIP:AP1P2P4serverIP:CSP:9157DP:80SP:9157DP:80P5P6P3D-IP:CS-IP:AD-IP:CS-IP:BSP:5775DP:80D-IP:CS-IP:B15TCP的sockets是通过一个四元组(源IP地址,源端口号,目的IP地址,目的端口号)来标识的与UDP不同,两个具有不同源IP地址或源端口号的到达的TCP报文段将被定向到两个不同的套接字16无连接的情况(UDP)ClientIP:BP2clientIP:AP1P1P3serverIP:CSP:6428DP:9157SP:9157DP:6428SP:6428DP:5775SP:5775DP:6428DatagramSocketserverSocket=newDatagramSocket(6428);17UDP的sockets是通过一个二元组(目的IP地址,目的端口号)如果两个UDP的Sockets有不同的源IP地址和/或源端口号,但具有相同同的目的IP地址和目的端口号,那么两个报文段会通过相同的目的套接字定向到相同的目的进程UDP在多路分解时只关心目的IP和目的端口号,而不考虑源IP和源端口号18主要内容概述和运输层服务多路复用与多路分解无连接传输:UDP构造可靠数据传输协议面向连接的运输:TCP拥塞控制19UDP只是做了运输协议能够做的最少工作,除了多路复用和多路分解,以及一些轻微的差错检查之外,几乎没有对IP增加别的东西,UDP数据报的首部只有8个字节使用UDP时,发送和接收之间没有握手,所以被称为无连接的典型的UDP的应用是DNS,IP电话20UDP报文格式源端口目的端口长度检验和数据首部IP数据报2222字节发送在前数据首部UDP用户数据报21UDP的优点无需建立连接,不需要保存连接状态分组首部的开销小(8个字节)应用层能够更好的控制发送数据和时间(网络出现的拥塞不会使源主机的发送速率降低。这对某些实时应用是很重要的)22主要内容概述和运输层服务多路复用与多路分解无连接传输:UDP构造可靠数据传输协议面向连接的运输:TCP拥塞控制23ARQ:AutomaticRepeatreQuest差错检验+接收反馈+重传停止等待协议24停止等待协议firstpacketbittransmitted,t=0senderreceiverRTTlastpacketbittransmitted,t=L/Rfirstpacketbitarriveslastpacketbitarrives,sendACKACKarrives,sendnextpacket,t=RTT+L/R25随堂作业两个端系统之间的距离为4500公里链路的传播速率为1Gb/s,每个分组报文的长度为1000字节(即8000比特)采用停止等待协议,发送方从发送分组报文开始到收到应答报文(长度忽略不计)为止经历的时间是多少?26传输时延为8微秒对于停止等待协议,如果发送方在0时刻发送数据,则8微秒后,最后1比特进入发送信道。该分组经过15ms到达接收端,最后1比特到达接收端的时间为15.008ms接收端马上回复ACK信息(忽略长度),该信息到达发送端的时间为30.008ms发送方利用率为0.0002727有效的吞吐量仅为267kb/s(尽管有1Gb/s的链路资源可以使用)28流水线协议firstpacketbittransmitted,t=0senderreceiverRTTlastbittransmitted,t=L/Rfirstpacketbitarriveslastpacketbitarrives,sendACKACKarrives,sendnextpacket,t=RTT+L/Rlastbitof2ndpacketarrives,sendACKlastbitof3rdpacketarrives,sendACK29采用流水线技术的条件每个传输的分组必须有一个唯一的序号发送方和接收方必须能够缓存多个分组。发送方的最低限度是应当缓存那些已传输但没有确认的分组采用流水线技术带来发送效率提高的同时也带来了相应的问题,如果传输过程出了错怎么办?30ARQ(差错检验+接收反馈+重传)停止等待协议流水线协议Go-Back-N协议(滑动窗口协议)收到确认即可前移1002003004005006007008009001012013014015016017018011发送窗口可发送不可发送指针发送端要发送900字节长的数据,划分为9个100字节长的报文段,而发送窗口确定为500字节。发送端只要收到了对方的确认,发送窗口就可前移。发送TCP要维护一个指针。每发送一个报文段,指针就向前移动一个报文段的距离。Go-Back-N协议(滑动窗口协议)收到确认即可前移1002003004005006007008009001012013014015016017018011可发送不可发送指针1002003004005006007008009001012013014015016017018011发送窗口可发送不可发送指针发送窗口前移发送端已发送了400字节的数据,但只收到对前200字节数据的确认,同时窗口大小不变。现在发送端还可发送300字节。已发送并被确认已发送但未被确认33尽管解决了信道利用率的问题,但一个分组的差错可能引起重传大量的分组,很多分组也许根本没有必要重传滑动窗口协议不需要在接收侧缓存报文34主要内容概述和运输层服务多路复用与多路分解无连接传输:UDP构造可靠数据传输协议面向连接的运输:TCP拥塞控制35端口…发送TCP报文段TCP…TCP接收缓存发送缓存报文段…报文段报文段端口发送端接收端向发送缓存写入数据块从接收缓存读取数据块应用进程应用进程36TCP是面向连接的可靠运输协议,两个进程在发送数据之前必须先握手(三次握手)连接双方将初始化很多与TCP连接相关的TCP状态变量,TCP连接的状态将只保存在两个端系统中中间的路由器对TCP连接毫不知情,它们看到的只是数据报,而不是连接TCP是全双工的,点对点的TCP具备流量控制和拥塞控制的功能37TCP首部20字节的固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FIN32bitSYNRSTPSHACKURG比特08162431填充TCP数据部分TCP首部TCP报文段IP数据部分IP首部发送在前38TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充源端口和目的端口字段——各占2字节。端口是运输层与应用层的服务接口。运输层的复用和分用功能都要通过端口才能实现。39TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充序号字段——占4字节。TCP连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。40举例子:一个文件50万字节,假设每个报文中数据字段的最大为1000字节,则要分为500个报文段。第一个报文段的序号为0,第二个报文段的序号为100041TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充确认号字段——占4字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。42TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充数据偏移——占4bit,它指出TCP报文段的数据起始处距离TCP报文段的起始处有多远。“数据偏移”的单位不是字节而是32bit字(4字节为计算单位)。43TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充确认比特ACK——只有当ACK1时确认号字段才有效。当ACK0时,确认号无效。44TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充同步比特SYN——同步比特SYN置为1,就表示这是一个连接请求或连接接受报
本文标题:运输层
链接地址:https://www.777doc.com/doc-234941 .html