版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
传输层第五章白话计算机网络——计算机网络考研辅导01传输层概述传输服务传输层概述传输层服务与网络层服务很相似,既然如此,计算机网络又为何要分传输层与网络层呢?答案就是“可靠性”。网络层并不提供可靠性,路由器可能丢失分组,用户无法控制中间的网络设备,用户不能选择性能更好的路由器或质量更好的数据链路,那么如何保证数据可以正常传输呢?就要添加一个传输层。传输层应能检测到各种问题,并采取补救措施,从而提供可靠的数据传输。传输层要弥补网络层技术、设计方面的各种缺陷。传输层就是用于“填坑”的,将网络层与应用层之间的“坑”填平。打个比方,传输层服务前,网络是遍布坑的公路,传输层服务后,网络是平坦的公路。再谈谈“低价格”这个关键词。如果在设计网络时,由网络层提供可靠性,会如何呢?如果由网络层提供可靠性,就要在路由器上添加可靠性功能,路由器网络的复杂性会极大地提高,数据传输的成本也会极大地提高,那就与电话通信网的成本差别不大了。传输层概述传输层概述可靠性由通信网承担还是由端用户的计算机承担,二者在价格方面的差别太大了。可靠性由端用户的计算机承担,才能实现低成本的数据传输,低价格是计算机网络将其他通信技术淘汰的本质原因。要想实现低价格,可靠性显然由操作系统内部实现更加合理,直接由操作系统对应用程序提供可靠的数据传输服务是非常自然的选择。传输层封装在端计算机的操作系统内。打个比方,网络如同封装在房间内的电线,在装修时已经埋好了,只是在墙上留了许多插座,人们看到的是插座。将房子装修好,在墙上预留插座,这是工程队做的事;将洗衣机、电冰箱等电器接在插座上,使用洗衣机、电冰箱是用户的事。传输层概述对计算机网络来说,“可靠性”的关键是什么?或者反过来说,造成数据传输不可靠的最主要原因是什么?是网络拥塞。当网络拥塞时,路由器就会丢弃分组。因为要解决网络拥塞问题,所以传输层需要具有“调控网络”的功能。传输层在端计算机内,而端计算机是无法控制中间的网络设备的,“调控网络”从何谈起呢?主机控制不了外部的路由器,只能控制主机自己。如同生活中我们常说的一句话,“你改变不了外部环境,只能改变你自己。”在网络拥塞时,主机“改变自我”恰恰是解决问题的关键。所谓的“调控网络”,就是指主机的“改变自我”,而不是指控制中间的路由器。主机如何“改变自我”呢?主机的传输层要能感知到网络状态,能感知到当前通信网络的态势,若发现网络拥塞,则少发数据,让中间网络尽快恢复传输能力;若发现网络通畅,则多发数据。传输层概述传输层概述端口最常用的从进程到进程的通信模式是客户端与服务器模式。我们这里说的客户端与服务器都是指一个应用进程,而不是机器。客户端是请求服务、主动发起呼叫的进程。服务器是提供服务、被动等待的进程。由客户端呼叫服务器,绝不可能由服务器呼叫客户端。传输层概述端口范围划分如图5-1所示。01熟知端口,端口范围是0~1023,由ICANN分配和控制。03动态端口,端口范围是49152~65535,既不用指派,也不需要注册,可以由任何进程使用。最初建议客户端使用的临时端口应该在这个范围内,但许多程序员没有遵守这个建议。02注册端口,端口范围是1024~49151,ICANN不分配也不控制,但必须在ICANN登记,以防止重复。通常被没有熟知端口的应用程序使用。传输层概述传输层概述当一个实体接收来自多个源的输入时,就称为复用(多到一),而当一个实体将数据交到多个源时,就称为分用(一到多)。源点的传输层执行的是复用,而终点的传输层执行的是分用,如图5-2所示。传输层概述针对应用层的不同需求,传输层有两个主要协议,即面向连接的传输控制协议(TransmissionControlProtocol,TCP)和无连接的用户报文协议(UserDatagramProtocol,UDP),如图5-3所示。02简单的UDP简单的UDPUDP是无连接、不可靠的传输层协议。它只在IP数据报服务之上增加了很少的功能,即端口功能和校验和功能,其中校验和功能是可选的。UDP的缺点是不可靠;优点是开销小,在发送数据之前不需要建立连接,这对某些实时应用是很重要的。当网络出现拥塞时,其无须调整,不会降低发送速率。简单的UDPUDP报文格式如图5-4所示。总长度:16位,头部加数据的长度。校验和:16位,在下文介绍。UDP头部的说明如下。源端口号:16位,标识源端应用进程。目的端口号:16位,标识目的端应用进程。简单的UDP简单的UDP如果不选择UDP校验和功能,那么校验和全为0,否则,计算校验和。计算时包含三部分:伪头部、头部、数据。注意:在UDP中,计算校验和时包含数据部分。伪头部格式如图5-5所示。03复杂的TCP复杂的TCPTCP是面向连接的、可靠的协议。TCP协议首先建立连接,然后传输数据,最后删除连接。TCP协议中包含了GBN与SR两种协议的思想,使用了校验和、累积确认、超时-重传等机制。TCP是最重要的传输层协议。一个TCP报文段分为TCP头部和数据两部分,TCP头部的前20字节是固定的,后面有4n字节是根据需要而增加的选项(n是整数)。因此TCP头部的最小长度是20字节。而TCP的全部功能都体现在它头部各字段上。复杂的TCPTCP报文段格式如图5-7所示。复杂的TCP图5-8中给出了TCP控制位的简要说明。04TCP差错控制TCP是可靠的传输层协议,就是说TCP向应用层交付的是按顺序的、没有差错的、没有丢失的数据。TCP通过三种机制进行差错控制:校验和、确认与超时-重传。校验和TCP规定每个报文段都必须使用16位的校验和。TCP校验计算时包含三部分:伪头部、头部、数据,计算方法与UDP一样。TCP差错控制确认累积确认ACKTCP差错控制TCP采用确认的方式来证实收到报文段。接收方可以在合适的时候单独发送确认报文段,也可以在自己有数据要发送时把确认信息捎带上。TCP使用肯定的累积确认。先解释“肯定”,ACK就是“肯定”的意思。就是只在正确的情况下才发送确认报文段。当发生报文段丢弃、丢失、重复这些错误时,就什么也不做,即“报喜不报忧”。TCP差错控制超时-重传差错控制的核心就是超时-重传机制。具体来说,就是每发送一个报文段,就设置一个重传计时器,如果重传时间到,但还没有收到确认报文段,就要重传这一报文段。怎么设置重传计时器的值(RTO)是TCP中最复杂的事情之一。现在我们只需要知道,对重传计时器的值的估算要尽可能准确,主教材中介绍的重传计时器的值设置算法,大多读者觉得不好理解,本书对其进行如下解读。05TCP流量控制TCP流量控制图5-10是一个发送窗口的例子,TCP中的窗口大小以字节为单位。窗口传输的实际是一个个报文段,但控制窗口的变量是以字节为单位的。TCP只使用一个重传计时器。为方便说明,字节序号取得很小。接收窗口在TCP中,在接收数据时涉及两种变化。一是分配的接收缓冲区(缓存)的变化,二是接收窗口的变化。接收缓冲区和接收窗口都在滑动,在理解的时候有一点困难。接收方会分配一段内存空间作为接收缓冲区。通常情况下,接收方的接收缓冲区中包含已接收且确认的数据,它们正在等待应用进程将它们拉取走,这里将其称为未交付数据。TCP流量控制TCP流量控制来接收新数据的空间称为接收窗口,如图5-11所示。TCP流量控制接收方每次正确接收一部分数据后,发送对这部分数据的确认报文段,发出确认报文段后,接收窗口的后沿Rn就向前滑动。正确接收的数据存储在接收缓冲区内,若应用进程不将其拉取走,随着不断接收新数据,接收窗口(可用的接收缓存)就会越来越小,直到为零。当应用进程拉取走一些已接收数据,释放了对应的缓存空间时,接收窗口前沿向前滑动。任何时刻,总有:rwnd(接收窗口大小)=接收缓冲区大小–未交付数据字节数TCP流量控制TCP通过滑动窗口机制实现流量控制。我们先忽略差错、拥塞等其他因素,只简单讨论一个方向的数据传输。图5-12描述了一个例子,客户端发送数据,服务器确认。窗口的收缩TCP流量控制TCP协议强烈不建议进行发送窗口的前沿收缩操作。但是,如果接收方通告的rwnd会导致发送窗口的前沿向后滑动,那么发送窗口的前沿就会向后收缩。为了保证发送窗口不收缩,接收窗口就不允许收缩。接收窗口必须始终要保证:新前沿≥旧前沿。TCP流量控制见图5-13,发送方最近一次收到通告,ackNo=206,rwnd=12,表示接收方已经正确接收206号字节之前的数据,发送方就将发送窗口的后沿向前滑动到206,前沿向前滑动到206+12=218处。TCP流量控制零窗口与死锁上文说,接收方通告rwnd时,要保证“新前沿≥旧前沿”。但是,TCP允许一个例外,就是rwnd=0。接收方用rwnd=0的报文段暂时关闭窗口,此刻,发送方实际并没有收缩发送窗口,而是暂停发送数据,直到新的rwnd通告到来。由发送方产生的糊涂窗口综合征如果发送方TCP正在为一个产生数据很缓慢的应用进程服务,例如,一次产生1字节数据,就有可能产生糊涂窗口综合征。解决方法是使用Nagle算法。由接收方产生的糊涂窗口综合征如果接收方TCP正在为一个消耗数据很缓慢的应用进程服务,例如,一次消耗1字节数据,接收方每次发送rwnd=1的通告,就有可能产生糊涂窗口综合征。解决方法是使用Nagle算法推迟确认。TCP流量控制01Nagle算法步骤1:发送方TCP把它从应用进程收到的第一个数据发送出去,即使只有1字节。03步骤3:重复步骤2。02步骤2:在发送一个报文段后,发送方TCP就在接收缓冲区中累积数据并等待,直至收到接收方发来的确认,或者已积累了足够的数据已达到报文段的最大长度时,就立即发送一个报文段。TCP流量控制Nagle算法推迟确认TCP流量控制报文段到达时,不立即发送确认报文段,接收方等待一段时间,直到输入缓冲区中有足够的空间(或者接收缓冲区中已有一个最长报文段的空间,又或者接收缓冲区已有一半空闲的空间),就发送确认报文段。但推迟确认等待时间不能超过500ms。06TCP拥塞控制TCP拥塞控制两主机通过中间的一个传输网络连接在一起,如图5-14所示。正是因为中间有网络,就有了网络拥塞问题。在谈网络拥塞之前,先回忆一下路由器的原理。TCP拥塞控制我们将数据传输比喻为流水,发送方如同水龙头,中间水管如同传输网络,接收方如同水桶,如图5-15所示。多个水龙头的水管网如图5-16所示。拥塞窗口TCP拥塞控制上文讨论过流量控制,流量控制是要保证接收方能顺利接收数据。发送方能发送多少数据,由接收方接收能力决定。接收方通告一个接收窗口大小(rwnd),是接收方的可用缓冲区空间,发送方的发送窗口大小不能大于rwnd。现在,我们说的是中间传输网络的传输能力。TCP中有一个控制变量,这个控制变量是根据中间传输网络的拥塞状态来调整的。拥塞窗口(CongestionWindow)大小(cwnd)根据当前网络的拥塞程度动态地变化,发送窗口大小不能大于cwnd。超时上文已经解释过网络拥塞的现象,我们现在简单理解为:发送方的超时事件就表示中间传输网络全部堵死了。3-ACK3-ACK也称为“快重传”(FastRetransmission),发送方发送2个段后,正常收到ACK,这个ACK是初始的ACK,重传计时器清零。TCP拥塞控制TCP拥塞控制策略基于两个阶段:02拥塞避免(CongestionAvoidance,CA)阶段。01慢启动(Slow-Start,SS)阶段和。TCP拥塞控制TCP拥塞控制慢启动,指数增大拥塞窗口大小(cwnd)从1个最大报文段MSS开始。每收到一个ACK,拥塞窗口大小增加一个MSS。慢启动算法开始时,cwnd增大得很慢,但它是以指数形式增大的。拥塞避免,加法增大在拥塞避免阶段,cwnd按加法形式增大。每次整个窗口的所有段都被确认后,cwnd增加1。01拥塞控制策略的转换通畅:无事件发生。拥塞避免阶段持续,cwnd继续按加法形式增大。03全拥塞:标志事件是发送方超时。02半拥塞:标志事件是发送方收到三个重复的ACK。TCP拥塞控制07TCP连接管理TCP连接管理TCP连接建立的过程称为三次握手(Three-WayHandshaking),如图5-24所示。服务器首先打开一个端口,端口处于监听态,称为被动打开。客户端发起连接请求,连接到服务器打开的端口上,连接就建立了。TCP连接管理连接建立后,可进行双向的数据传输,如图5-25所示。客户端和服务器都可以发送数据和ACK。TCP连接使用了序号和确认号的机制。序号TCP把要发送的数据都按字节编上号,两个方向的序号是相互独立的。序号并不是从0开始的,使用一个随机数作为初始序号,初始序号在建立连接的第1个SYN报文段中通告给对方。确认号当报文段中ACK置1时,报文的确认号字段有效,TCP的确认是累积确认,确认号字段值是完全接收到的数据的最后1字节的序号+1,表示此值前的数据已收到,期望接收的下一字节是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑改造翰林府工程合同
- 通信基站维护员聘用合同范文
- 箱包厂租赁合同
- 小学教学楼电气系统改造合同
- 海参养殖环保合同
- 投标联合体技术更协议
- 科技企业孵化器租赁协议水电费
- 大坝加固工程合同监控台账
- 咖啡馆经营文艺空间租赁合同
- 矿产资源评估协议
- 应急救援人员培训计划
- 中考字音字形练习题(含答案)-字音字形专项训练
- 食品安全与营养健康自查制度(学校食堂)
- 安全文明施工奖罚明细表
- HG/T 2782-2024 化工催化剂颗粒抗压碎力的测定(正式版)
- CTD申报资料撰写模板:模块三之3.2.S.4原料药的质量控制
- 大学生视觉传达职业规划
- 人工智能算力中心平台建设及运营项目可行性研究报告
- 2024-医院的合同管理制度
- 中国民航发展史智慧树知到期末考试答案章节答案2024年中国民航大学
- MOOC 数据挖掘-国防科技大学 中国大学慕课答案
评论
0/150
提交评论