




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第七章节传输层协议7.1进程通信与端口网络层或互联网层提供主机通信服务传输层提供程通信服务为了提供进程通信功能,TCP/IP协议族提出了端口(port)的概念,用于标识进程。传输层与网络层或互联网层的关系网络层与互联网层功能:主机通信协议:IP、CLNP(ISO/OSI)特点:hop-by-hop传输层功能:进程通信协议:UDP和TCP、TP0~4(ISO/OSI)特点:end-to-endIP地址和端口端口分配方法第一种叫全局分配这是一种集中控制方式,由IANA进行统一分配,并将结果公布于众。众所周知端口就是属于这一类。第二种是本地分配注册端口动态分配动态绑定TCP/UDP众所周知端口号7.2UDP协议提供主机通信IP服务特性报文可能丢失报文可能出错报文可能乱序到达报文在网络上可能被延迟任意长时间支持多路复用提供进程通信UDP服务特性报文可能丢失报文可能出错报文可能乱序到达报文在网络上可能被延迟任意长时间支持多路复用IP与UDP关系IP提供主机通信通信对象命名是IP地址IP地址定位到主机UDP提供进程通信通信对象命名是Port号Port号定位到进程1、报文格式2、多路复用3、伪头部7.3TCP协议7.3.1服务特性7.3.2报文格式7.3.3连接建立和终止7.3.4差错控制7.3.5重传定时器7.3.6流量控制7.3.7拥塞控制7.3.8TCP扩展7.3.9触发传输7.3.10记录边界7.3.1服务特性(1)面向连接全双工点到点可靠字节流服务多路复用服务特性(2)流量控制保证发送方不要“淹没”接收方拥塞控制保证发送方不要“淹没”网络字节流(1)字节流(2)1)发送和接受,TCP都使用缓存2)应用进程发送的数据首先保留在TCP发送缓存中,当数据量达到一个报文段大小时,TCP就向外发送数据。3)应用进程的多个发送请求,可能对应一个TCP数据发送;字节流(3)4)可以使用PUSH机制使应用进程的每个发送请求都对应一个TCP数据发送;5)TCP收到保文后存放在接收缓存中,等待应用进程读取;6)一个TCP发送可以对应多个TCP读操作;多个TCP发送可以对应一个读操作。7.3.2报文格式字段含义(1)(1)源端口和目的端口各2个字节,表示源和目的端口号。(2)发送序号4字节,指出报文中数据在发送方的数据流中的位置(以字节编号)。(3)确认序号4字节,指接收方希望下一次接收的字节序号。(4)TCP头长4比特,指出以32比特为单位的报文头部长度。该域是针对变长的“选项”域设计的。字段含义(2)(5)同步标志位SYN,当SYN=1而ACK=0时,表明这是一个建立连接请求报文,若对方同意建立该连接,则应在发回的报文中使将SYN和ACK标志位同时置1。(6)确认标志位ACK只有当ACK=1时确认序号字段才有意义。当ACK=0时,确认序号没有意义。(7)终止标志位FIN(FINal) 当FIN=1时,表明数据已经发送完毕,并请求释放连接。字段含义(3)(8)重建标志位RST(ReSeT)当RST=1时,表明出现严重差错,必须释放连接,然后重新建立连接。(9)紧急标志位URG(URGent)当URG=1时,表明此报文是紧急数据,应尽快传送出去。(10)急迫标志位PSH(PuSH)当PSH=1时,请求接收方TCP协议将该报文立即交给应用程序。字段含义(4)(11)通告窗口2字节。该字段实际上是接收方告诉发送方它的接收窗口大小,其单位为字节。通告窗口字段主要是用于流量控制。(12)校验和2字节。校验和字段检验的范围包括TCP报文的头部和数据区这两部分。(13)可选项长度可变。最常用的选项,即最大报文长度MSS(MaximumSegmentSize)。7.3.3连接建立和终止TCP状态变换图7.3.4差错控制字节编号字节确认超时重传1、字节编号每个TCP连接传输的字节数据由TCP进行随机编号,即每个TCP连接开始时第一个TCP报文段第一字节数据的编号是随机选取的(避免初始序列号ISN攻击)。举例假设某条TCP连接要传送5000字节的文件,TCP对第一个字节的编号从10001(随机选取的)开始。假设这个文件分为5个TCP报文段进行传送,每个TCP报文段携带1000字节,那么每个TCP报文段的字节编号如下所示:报文段1➡顺序号:10,001(范围:10,001到11,000)报文段2➡顺序号:11,001(范围:11,001到12,000)报文段3➡顺序号:12,001(范围:12,001到13,000)报文段4➡顺序号:13,001(范围:13,001到14,000)报文段5➡顺序号:14,001(范围:14,001到15,000)2、字节确认TCP采用的是字节确认,一般情况下,接收方确认已收到的最长的、连续的字节计数,TCP报文的每个确认序号字段指出下一个希望接收的字节,实际上就是对已经收到的所有字节的确认。字节确认的优点是即使确认丢失也不一定导致发送方重传。3、超时重传发送方TCP为了恢复丢失或者损坏的报文段,必须对丢失或者损坏的报文段进行重传。事实上,发送方TCP每发送一个TCP报文段,就启动一个重传定时器,如果在规定的时间之内没有收到接收方TCP返回的确认报文,重传定时器超时,与于是发送重传该TCP报文。7.3.5重传定时器1、原始算法2、Karn/Partridge算法1、原始算法EstimatedRTT=α×EstimatedRTT+(1-α)×SampleRTTα因子决定了EstimatedRTT对延迟变化的反应速度;当α接近1时,短暂的延迟变化对EstimatedRTT几乎不起作用;而当α接近0时,EstimatedRTT紧随延迟的变化而变化。原始的TCP协议规范建议α值在0.8到0.9之间。超时定时器计算TimeOut=β×EstimatedRTT当β接近1时,TCP能迅速检测到报文丢失并及时重传,从而减少等待时间,但可能引起不必要的重传。当β太大时,重传报文的数目减少,但等待确认的时间太长。作为折衷,原始的TCP协议规范一般推荐β取2。2、Karn/Partridge算法产生超时后当重传一个报文时,TCP停止计算机RTT采样值;TCP只为没有重传的报文测量RTT采样值。即每当TCP有超时重传时,它下次的超时定时器的值设置成上次的两倍,而并不以上次的EstimatedRTT为基础。7.3.6流量控制1、滑动窗口机制2、坚持定时器3、保持定时器1、滑动窗口机制与数据链路层不同的是:TCP不是使用一个固定大小的滑动窗口,而是由接收方通过TCP报文头部的通告窗口AdvertisedWindow字段向发送方通告它的窗口大小。发送方在任意时刻没有确认的字节数不能超过通告窗口AdvertisedWindow的值。接收方根据分配的缓冲区的大小来为通告窗口AdvertisedWindow选择一个合适的值。发送和接收缓冲区(1)发送方的TCP维护一个发送缓冲区。发送缓冲区用来保存那些已经发送出去但是还没有收到对方确认的数据以及发送方应用进程写入但尚未发送的数据。而接收方的TCP也同样维护着一个接收缓冲区。接收缓冲区保存那些保留那些乱序到达接收方的数据以及那些按顺序到达接收方(即该字节流前面的字节都没有丢失)但接收进程来不及读出的数据。发送和接收缓冲区(2)发送方TCP维持着3个指针,分别是:LastByteAcked、LastByteSent和LastByteWritten。LastByteAcked表示已经应答的字节编号LastByteSent表示已经发送但尚未收到确认的字节编号LastByteWritten表示发送方应用进程写到发送方TCP但还没有发送的字节编号在LastByteAcked左边的缓冲区可以释放了,因为这些字节是已经发送出去而且已经收到确认了。接收方TCP维持着3个指针,分别是LastByteRead、NextByteExpexcted和LastByteRcvd。LastByteRead表示接收方应用进程一定读走的字节编号NextByteExpexcted表示接收方TCP期望接收的字节编号LastByteRcvd表示到目前已经接收到最大字节编号。在LastByteRead左边的缓冲区可以释放了,因为这些字节是已经被接收方应用进程读出了。流量控制机制发送方TCP和接收方TCP的缓冲区大小是有限的,我们分别用MaxSendBuffer和MaxRcvBuffer表示。接收方的通告窗口接收方的通告窗口AdvertisedWindow=MaxRcvBuffer–(LastByteRcvd–LastByteRead)这个值就代表接收方TCP缓冲区剩下的可用缓冲区的大小发送方的发送窗口发送方的发送窗口EffectiveWindow=AdvertisedWindow-(LastByteSend–LastByteAcked)发送方计算只有EffectiveWindow大于0,发送方才能发送数据。发送方的动作首先,由于接收方应用进程处理速度慢,最终导致接收方TCP缓冲区满,这就意味着接收方发给发送方的通告窗口为0。发送方TCP一看到通告窗口为0,就立即停止发送数据。但是,发送方应用进程会一直往发送方TCP缓冲区里填入数据,最终会将发送方TCP缓冲区填满,从而导致发送方TCP将发送方应用进程阻塞。接收方的动作而在接收方,一旦接收方应用进程开始从接收方TCP的接收方缓冲区读取数据,那么接收方TCP就可以打开它的窗口,亦即接收方TCP缓冲区可用空间不再为0,从而允许发送方TCP把数据从它的发送缓冲区发送出去。而当发送方收到返回的确认后,就可以释放部分发送缓冲区的空间,从而发送方TCP不再阻塞发送方应用进程并允许发送方应用进程继续往发送缓冲区里写入数据。2、坚持定时器(1)因为,一旦接收方的通告窗口变为0,就不允许发送方发送任何数据,直到接收到接收方TCP的确认,并宣告非零窗口值。但是这个确认可能丢失。需要引起注意的是,在TCP中,对确认是不需要确认的。假如确认丢失了,接收方TCP仍然认为这个确认已经正确到达发送方,因此接收方就等待发送方TCP发送更多的报文段。发送方TCP由于没有收到确认,就一直等待接收方TCP发送确认以及非零通告窗口值,双方进入死锁状态。坚持定时器(2)要打开这种死锁,TCP为每一个连接使用坚持定时器。当发送方TCP接收到通告窗口值为0的确认时,就启动坚持定时器。当坚持定时器超时,发送方TCP就发送一个特殊的报文段,叫探测报文。探测报文只有1字节数据,它有序号,但它的序号永远不需要确认。探测报文的目的是提醒接收方TCP,确认已经丢失,必须重传。坚持定时器(3)坚持定时器的定时宽度通常设置为重传定时器的宽度。如果在坚持定时器超时后还没有收到对方的应答,则将定时宽度加倍,重新发送1个新的探测报文,直到增加到门限值(通常是60s)为止。以后,发送方每隔60s就发送一个探测报文,直到接收窗口重新打开。3、保活定时器(1)在某些TCP实现中要使用保活(keepalive)定时器来防止TCP连接的长时间空闲。假定客户建立了到服务器的TCP连接,并且发送了一些数据,然后就出故障了。在这种情况下,这个TCP连接就永远地处于打开状态。保活定时器(2)要解决这个问题,就必须在服务器使用保活定时器。每当服务器收到客户的信息,就将保活定时器复位。保活定时器通常设置为2小时,若服务器超过了2小时还没有收到客户的信息,服务器就不断地(每隔75s)发送探测报文,若服务器发送了10个探测报文还没有收到客户的响应,服务器就终止TCP连接。7.3.7拥塞和拥塞控制从拥塞的表现形式定义,拥塞是指由于路由器中排队的报文足够多,导致缓冲区溢出,路由器开始丢弃报文的现象;从拥塞对网络的影响来定义,拥塞是指网络中存在过多的报文时,导致网络性能下降的现象;从拥塞产生的根本原因来定义,拥塞是指当报文到达速率大于路由器的转发速率时发生的一种现象。TCP拥塞控制拥塞控制的源算法中使用最广泛的是TCP拥塞控制机制。与TCP类似的、主要依靠端节点执行拥塞控制的机制统称为端到端拥塞控制。1、慢启动2、拥塞避免TCP为每个连接维持一个新的状态变量,成为拥塞窗口cwnd(CongestionWindow)。MaxWindow=MIN(cwnd,AdvertisedWindow)EffectiveWindow=MaxWindow-(LastByteSent-LastByteAcked)拥塞避免阶段3、快速重传4、快速恢复在快速重传期间发送方接收到重复ACK后
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 绿色投入对污染企业财务绩效的影响研究
- 2024年临沧市永德县公安局招聘警务辅助人员真题
- 改造提升商业步行街和旧商业街区实施方案
- 企业财务分析对成本控制的有效性分析
- 信用异议管理制度
- 信贷门店管理制度
- 健身房公司管理制度
- 公司工作室管理制度
- 公司禁零食管理制度
- 合伙办公司管理制度
- 第4章 颌位(双语)
- 课程综述(数电)
- 塔吊负荷试验方案
- 购买社区基本公共养老、青少年活动服务实施方案
- 伤口和伤口敷料基础知识.ppt
- 安徽省中等职业学校学历证明书办理申请表
- 《慢性肾脏病》PPT课件.ppt
- 例析物理竞赛中纯电阻电路的简化和等效变换
- 六年级下册美术课件第13课《祖国美景知多少》浙美版
- 智能照明系统的外文文献原稿和译文.doc
- 气象观测场坪防雷设计
评论
0/150
提交评论