Ch11传输层协议

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1第十一章传输层协议:TCP和UDPNetworkingtechno;ogy第十一章传输层协议:TCP和UDP功能传输层的目的是在网络层或互联网层提供主机通信服务的基础上,向主机的应用进程之间的提供可靠(如果需要的话)的数据通信。2第十一章传输层协议:TCP和UDPNetworkingtechno;ogy端口Internet传输层与互联网层功能上的最大区别是前者提供进应用程通信能力,后者只提供主机通信功能。为了提供应用进程通信功能,TCP/IP协议提出了端口(port)的概念,用于标识通信的应用进程。3第十一章传输层协议:TCP和UDPNetworkingtechno;ogyInternet端口号分配保留端口在Internet中,每一个标准的服务器都拥有一个众所周知的端口。Internet规定,小于256的端口号被用作保留端口。自由端口自由端口以本地方式进行分配。当某应用进程要与远地进程通信时,首先申请一个自由端口号并与之进行绑定,然后通过该端口与远地进程进行通信。4第十一章传输层协议:TCP和UDPNetworkingtechno;ogyTCP和UDP协议的保留端口UDPTCP11116169252123RPCSNMPTFTPSMTPFTPTELNETIP5第十一章传输层协议:TCP和UDPNetworkingtechno;ogy传输层协议的常用特性保证消息的传输在传输过程中保持消息的顺序最多只传输消息的一份拷贝支持任意长度消息的传输支持发送方与接收方之间的同步允许接收方对发送方进行流量控制支持每个主机上的多个应用进程(多用户操作系统环境)6第十一章传输层协议:TCP和UDPNetworkingtechno;ogyIP网络提供的服务缺陷尽力投递服务(best-effortdeliveryservice)丢失报文对报文进行重排序限制报文的大小报文在网络上可以被延迟任意长时间7第十一章传输层协议:TCP和UDPNetworkingtechno;ogyUDP协议不可靠的数据报(datagram)服务支持多路复用不提供流量控制接收端点通过端口来标识每个标准的UDP服务器都有众所周知的端口号Unix的/etc/services8第十一章传输层协议:TCP和UDPNetworkingtechno;ogyUDP报文格式32位源端口目的端口UDP长度UDP校验和数据……头部数据区9第十一章传输层协议:TCP和UDPNetworkingtechno;ogyUDP校验和UDP校验和覆盖范围伪头部+UDP头部+UDP数据目的验证UDP数据报是否传送到正确的目的端伪头部源IP地址+目的IP地址+协议+UDP长度10第十一章传输层协议:TCP和UDPNetworkingtechno;ogyUDP伪头部(?)32位源IP地址填充(全0)目的IP地址协议UDP长度11第十一章传输层协议:TCP和UDPNetworkingtechno;ogyUDP多路复用应用进程1应用进程2应用进程3端口1端口2端口3UDP基于端口的去复用IP层UDP数据报到达12第十一章传输层协议:TCP和UDPNetworkingtechno;ogyTCP协议面向连接字节流全双工流量控制保证发送方不要“淹没”接收方拥塞控制保证发送方不要“淹没”网络13第十一章传输层协议:TCP和UDPNetworkingtechno;ogy数据链路层与传输层可能与多个不同的主机建立连接需要显式的连接建立和删除过程可能有不同RTT值需要具有适应性的超时机制网络可能引起的很长的延迟需要处理重复报文的问题接收主机可能有不同的处理能力需要处理主机的流量控制问题网络可能有不同的处理能力需要处理网络的拥塞问题14第十一章传输层协议:TCP和UDPNetworkingtechno;ogyTCP连接端点TCP连接端点TCP把端点定义为一对整数,即(host,port),其中host是主机的IP地址,而port则是该主机上的TCP端口号。TCP连接国防科大的一台IP地址为172.26.1.180的主机与清华大学的一台地址为202.192.1.12的主机之间建立连接的话,它可能会由端点定义成:(172.26.1.180,1234)和(202.192.1.12,25)15第十一章传输层协议:TCP和UDPNetworkingtechno;ogy字节流ApplicationprocessWritebytesTCPSendbufferSegmentSegmentSegmentTransmitsegmentsApplicationprocessReadbytesTCPReceivebuffer………ApplicationprocessWritebytesTCPSendbufferSegmentSegmentSegmentTransmitsegmentsApplicationprocessReadbytesTCPReceivebuffer………16第十一章传输层协议:TCP和UDPNetworkingtechno;ogyTCP报文格式32位源端口目的端口发送序号确认序号TCP头长保留URGACKPSHRSTSYNFIN窗口大小校验和紧急指针可选项和填充数据17第十一章传输层协议:TCP和UDPNetworkingtechno;ogy字段含义(1)(1)源端口和目的端口各2个字节,表示源和目的端口号。(2)发送序号4字节,指出报文中数据在发送方的数据流中的位置(以字节编号)。(3)确认序号4字节,指接收方希望下一次接收的字节序号。(4)TCP头长4比特,指出以32比特为单位的报文头部长度。该域是针对变长的“选项”域设计的。18第十一章传输层协议:TCP和UDPNetworkingtechno;ogy字段含义(2)(5)紧急标志位URG(URGent)当URG=1时,表明此报文是紧急数据,应尽快传送出去。(6)确认标志位ACK只有当ACK=1时确认序号字段才有意义。当ACK=0时,确认序号没有意义。(7)急迫标志位PSH(PuSH)当PSH=1时,请求接收方TCP协议将该报文立即交给应用程序。19第十一章传输层协议:TCP和UDPNetworkingtechno;ogy字段含义(3)(8)重建标志位RST(ReSeT)当RST=1时,表明出现严重差错,必须释放连接,然后重新建立连接。(9)同步标志位SYN,当SYN=1而ACK=0时,表明这是一个建立连接请求报文,若对方同意建立该连接,则应在发回的报文中使将SYN和ACK标志位同时置1。(10)终止标志位FIN(FINal)当FIN=1时,表明数据已经发送完毕,并请求释放连接。20第十一章传输层协议:TCP和UDPNetworkingtechno;ogy字段含义(4)(11)窗口2字节。该字段实际上是接收方告诉发送方它的接收窗口大小,其单位为字节。窗口字段主要是用于流量控制和拥塞控制。(12)校验和2字节。校验和字段检验的范围包括TCP报文的头部和数据区这两部分。(13)可选项长度可变。TCP只规定了一种选项,即最长报文段MSS(MaximumSegmentSize)。21第十一章传输层协议:TCP和UDPNetworkingtechno;ogyTCP连接建立ACK=y+1CSYNseq=y,ACK=x+1CT主机2SYNseq=xC主机122第十一章传输层协议:TCP和UDPNetworkingtechno;ogyTCP连接删除接收ACK报文接收ACK报文C(应用程序关闭连接)发送FINseq=y,ACK=x+1C接收FIN报文发送ACK=x+1(通知应用程序)C主机2(应用程序关闭连接)发送FINseq=xC主机1接收FIN报文发送ACK=y+1C23第十一章传输层协议:TCP和UDPNetworkingtechno;ogyTCP协议有限状态机24第十一章传输层协议:TCP和UDPNetworkingtechno;ogyTCP协议采取的可靠性措施连接建立和删除三次握手确认和重传字节确认适应性超时机制流量控制通告窗口拥塞控制拥塞窗口25第十一章传输层协议:TCP和UDPNetworkingtechno;ogy确认和重传字节确认(累计确认)由于TCP协议使用可变长度的报文段发送数据,TCP协议的确认是针对数据流中的字节序列,而不是报文段的。接收方确认已收到的最长的、连续的字节计数,TCP报文的每个确认域指出下一个希望接收的字节。优点确认丢失也不一定导致发送方重传;缺点发送方不能获得所有成功传送的报文段的确认信息。26第十一章传输层协议:TCP和UDPNetworkingtechno;ogy超时和重传(1)TCP软件必须适应两个方面的巨大差异:一是到达各个不同目的站点所需物理传播时间的差异;二是到达某个站点所需时间随网络负载的变化而出现的差异。TCP自适应重传算法TCP监视每一条连接的状态,由此推算出数据在该连接上的往返时间RTT;当网络发生变化时,TCP协议及时修改RTT值。27第十一章传输层协议:TCP和UDPNetworkingtechno;ogy超时和重传(2)基本概念往返时间样本RTS(RoundTripSample);往返时间RTT(RoundTripTime)定时器宽度TimeOutKahn算法无重传情况RTT=α*Old_RTT+(1-α)*RTSTimeOut=β*RTT有重传情况New_TimeOut=γ*TimeOut28第十一章传输层协议:TCP和UDPNetworkingtechno;ogyKahn算法SenderReceiverSampleRTTSenderReceiverSampleRTT29第十一章传输层协议:TCP和UDPNetworkingtechno;ogy流量控制与可变窗口大小在每个确认的TCP报文中,除了指出已经接收到的字节之外,还包括一个窗口通告(windowadvertisement)来说明接收方还能再接收多少字节的数据,发送方根据通告窗口大小来改变发送窗口的大小,从而限制发送方的发送速度。极端的情况下,接收方可以使用零通告值来告诉发送方停止发送任何数据。而在接收方又有缓冲区时,接收方可以通过一个非零的窗口值来再次触发数据传输。30第十一章传输层协议:TCP和UDPNetworkingtechno;ogy拥塞控制TCP如何发现拥塞一条途径是来自ICMP的源抑制报文;另一条途径是发现报文丢失现象。TCP拥塞控制技术快速递减(multiplicativedecrease)一旦发现报文丢失,立即将拥塞窗口大小减半;而对于保留在发送窗口中的报文,按指数增加RTT;慢启动(slow-start)在新建立的连接或拥塞之后增加流量的连接上传输数据时,都仅以1个报文作为拥塞窗口的初始值,之后每当收到一个确认,将拥塞窗口加大1倍。31第十一章传输层协议:TCP和UDPNetworkingtechno;ogyTCP协议的特点(1)提供面向连接的、可靠的、字节流传输TCP协议提供面向连接的、可靠的字节流传输对可靠性的保证首先是它在两个应用进程进行数据传输之前,必须建立TCP连接。TCP协议要求对每一个报文都要进行确认,未经确认的报文被当作是出错报文。流相当于一个管道,发送端从管道的一端放入什么,接收端就可以照原样取出什么。32第十一章传输层协议:TCP和UDPNetworkingtechno;ogyTCP协议的特点(2)TCP支持全双工通信全双工连接意味着包括两个独立的、方向相反的数据流TCP协议支持点到点连接点到点的意思是每个连接只有两个端点TCP协议不支持组播或全广播

1 / 32
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功