首页计算机计算机系统结构计算机网络 05 传输层.pptx

05 传输层.pptx

页数:53页文件大小:232.0 KB来源: 计算机网络ppt课件

本课件说明传输层为应用进程提供端到端通信的作用与端口寻址机制,比较UDP与TCP,讲解连接建立拆除、编号确认、超时重传与连续ARQ,进而展开滑动窗口流量控制与慢开始、拥塞避免、快重传、快恢复四类机制。

第5章传输层章节封面,概述传输层概念、协议与TCP、UDP两种服务模型
传输层概述概念讲解,在计算机网络中,为进程之间提供通信服务,即为应用层提供端到端的通信服务。
传输层概述概念讲解,传输层为应用层提供的端到端的服务有两种类型:面向连接的TCP服务和无连接的UDP数据报服务。
查看本课件的文字版(共 53 页,供检索与复制)

第1页:第5章传输层章节封面

  • 本章主要介绍传输层相关概念、协议。
  • 对传输协议的实现机制进行详细阐述,如连接的建立、数据的传送以及流量控制和缓冲管理等。
  • 讨论TCP/IP协议族中的TCP和UDP两种服务模型。

第2页:传输层概述

  • 传输层作用
  • 在计算机网络中,为进程之间提供通信服务,即为应用层提供端到端的通信服务。
  • 在计算机网络中,数据传输与接收的主体都是在计算机上运行的进程,而不是计算机。
  • 一台计算机上的传输层为进程准备了多个端口,多个进程可以通过各自申请到的端口同时进行数据通信。
  • 进程是通过端口进行通信的,两个进程之间的通信也可以看成是端口之间的通信,所以进程之间的通信也称为端到端的通信。

第3页:传输层概述

  • 传输层服务
  • 传输层为应用层提供的端到端的服务有两种类型:面向连接的TCP服务和无连接的UDP数据报服务。
  • 端到端的通信是利用网络层提供的IP数据报服务完成的,即TCP和UDP服务都是通过IP数据报服务完成的。
  • 传输层的协议:传输控制协议TCP和用户数据报协议UDP是针对两种服务的协议。

第4页:传输层概述

  • 网络层IP数据报能够将源主机发出的分组交给目的主机,为什么还要设置传输层?
  • 主机间的通信实际是主机中运行的应用进程之间的通信;
  • IP地址只能标识一台主机,无法标识主机上同时运行的多个进程;
  • 通信的两个端点是源主机和目的主机中的进程,进程之间的通信称为端到端的通信;
  • 因为通信的进程必须事先获得一个端口号,所以进程用:主机IP地址+端口号标识;

第5页:传输层概述

  • 网络层和传输层的区别
  • 传输层为应用进程提供端到端的逻辑通信,网络层为主机之间提供点到点的逻辑通信;
  • 传输层对报文数据进行差错检验,网络层只对报文头进行差错检验;
  • 传输层提供面向连接的TCP服务和无连接的UDP服务,网络层只能提供无连接的IP数据报服务。

第6页:传输层概述

  • 传输层向高层屏蔽了下面通信子网的细节,它建立的逻辑通信使两个进程看见的就是在两个传输实体之间有一条端到端的逻辑通信信道。
  • 对于TCP服务,这条通信信道是一条全双工的可靠管道;对于UDP服务,这是一个连接源端和目的端的不可靠的逻辑通信网。
  • 不可靠不是说目的端收到的数据有错,而是说数据包有丢失、重复、错序问题,需要目的端解决。传输层对接收数据进行检验,出错的数据不会交给进程。

第7页:TCP/IP体系中的传输层

  • 传输层中的两个协议
  • TCP:面向连接,传输单元:TCP报文段,可靠服务,看不到(网络层的)路由器,网络层的变化不影响TCP服务,不同于网络层的虚电路
  • UDP:无连接,事先不连接,事后不确认传输单元:UDP报文或用户数据报,不同于IP数据报,逻辑通信网看不见路由器
  • IP数据报采用相同的方法传递TCP报文段和UDP报文

第8页:TCP/IP体系中的传输层

  • 传输层地址
  • 传输层地址=IP地址+端口号IP地址确定主机在网络中的位置,端口号确定进程在主机中的位置。
  • 端口是计算机的一种资源,由操作系统管理,端口是操作系统分配的数据流通道
  • 端口用16比特标识,端口号有0~65535,其中0~1023为专用端口,不分配给一般用户进程
  • 传输层地址又称为插口,套接字。如:插口=(163.43.23.13, 15000)

第9页:传输协议实现机制(1)

  • 一台主机上有很多进程同时运行
  • 进程只有占据了主机上的一个端口才能通信。
  • 一个通信进程的标识可以用:主机地址+端口号
  • 一个进程进行通信前必须申请并获得一个端口
  • 常用的公共服务进程有固定的端口号,如SMTP服务器端口:25,POP3服务器端口:110

第10页:传输协议实现机制(2)

  • 对于面向连接的TCP服务,有建立连接,数据传输,拆除连接三个步骤。在数据传输的过程中,要进行流量控制、差错控制
  • 对于无连接的UDP服务,由数据报文TPDU携带目的地址,实际是在交换节点的支持下,传输到目的主机,再根据端口号交给进程。

第11页:UDP协议(1)

  • UDP属于无连接的传输协议,在IP的数据报服务之上增加了端口的功能。
  • UDP使用尽最大努力交付,不保证可靠交付,不需要维持连接状态,不对数据做任何处理。

第12页:UDP协议(2)

  • UDP是面向报文的,对进程交下来的数据添加首部后直接交给IP层,由IP数据报进行传输。即对进程报文不组合、不拆分。进程报文的大小由进程负责考虑。
  • UDP不考虑拥塞控制问题,只以自己的速度发送数据。

第13页:UDP协议(3)

用户数据报UDP只有两个字段:数据字段和首部字段。其中首部只有8个字节。170源IP地址UDP长度目的IP地址12字节伪首部源端口目的端口长度检验和UDP数据报首部数据IP数据报8字节数据首部

第14页:UDP协议(4)

  • 首部字段包含:源端口字段、目的端口字段、UDP数据报长度字段、检验和字段。
  • 伪首部:并不是UDP数据报真正的首部,只是在计算检验和时,临时和UDP数据报连接在一起,得到一个过渡的UDP数据报来计算的。
  • 伪首部既不向下传送,也不向上递交。
  • 检验和字段对数据部分进行检验,这一点不同于IP数据报的检验和字段。
  • 接收端通过检验和发现错误,则舍弃UDP整个数据报。

第15页:UDP协议(5)

  • UDP的优点:
  • 发送前不建立连接,减少了开销和发送前的时延;
  • 不使用拥塞控制,也不保证可靠交付,因此主机不需要维持许多参数和状态表;
  • 首部只有8个字节,附加信息少;
  • 没有拥塞控制,不会因为拥塞降低数据发送速率,适用于视频会议等实际应用。

第16页:TCP协议

  • TCP的特点:
  • TCP服务是面向连接的,有建立TCP连接、传输数据、拆除TCP连接三步。
  • 每一条TCP连接只能有两个端点,即是端点对端点连接。
  • TCP服务是可靠的,无差错、无错序、不丢失、不重复。
  • TCP提供全双工通信。
  • TCP传输是面向字节流的。即把数据块看成无结构的字节流,并将字节流以报文段为单位传输。

第17页:TCP连接建立要解决3个问题:(1)

  • TCP连接建立要解决3个问题:
  • 使双方都知道对方的存在。
  • 双方协商一些参数。
  • 对运输实体资源(如缓存大小、连接表中的项目等)进行分配。TCP连接

第18页:进行TCP连接的计算机都会提供一定的缓存

  • 进行TCP连接的计算机都会提供一定的缓存用于输入输出操作,输出进程只需要将输出数据传递给输出缓存,然后由TCP将数据通过网络传输到目的主机的输入缓存;输入进程只需要到缓存中读取数据。
  • 输入输出缓存大小与双方的传输速度有关,缓存大小的设置需要通信双方根据通信速度协商完成。TCP连接

第19页:TCP连接

  • 网络管理中心设有管理信息库,存放各主机的TCP连接表,用于登记本地和远地的IP地址和端口号以及连接状态。
  • TCP连接表信息填写,在TCP连接阶段进行;在拆除阶段则抹去有关信息。

第20页:TCP连接可靠性实现

  • TCP是基于不可靠无连接IP数据报服务之上的传输控制协议。
  • 提供信源机与信宿机之间可靠的端到端的面向连接的服务。
  • 以“确认”和“超时重传”机制保证传输的可靠性。
  • 以流量控制来保证数据不溢出。
  • TCP传输还要以拥塞控制来保证网络不出现拥塞现象。

第21页:TCP连接可靠性实现

  • “确认”、“超时重传”、流量控制、拥塞控制好像属于不同的机制,其实它们在一种机制下分别发挥作用。
  • 从流量控制谈起。

第22页:流量控制

  • 两个终端设备进行网络通信时,必须在其内存中设置一定容量的缓冲区,以解决数据在设备内部从应用层到物理层传输速率不一致的矛盾,即发送方设置一个发送缓冲区,而在接收方设置一个接收缓冲区。
  • 如果不进行专门的流量控制,当接收方向上层传输数据的速率低于发送方发送数据的速率时,接收方的数据缓冲区存放的数据就会逐渐堆积起来,最后造成接收方数据缓冲区溢出,从而导致数据的丢失。
  • 流量控制的三个协议

第23页:简单流量控制的停-等协议

  • 发送方每发送一个数据单元,就暂停。
  • 接收方收到数据后,检查数据单元。
  • 如果没有错误,将接收到的数据传送给上层应用,并发送一个确认信息给发送方,表示已经接收到发送方发来的数据。(确认机制)
  • 发送方接收到确认信息后,再发送下一个数据单元。

第24页:问题发送方:发出数据,等待确认

问题发送方:发出数据,等待确认;收到确认,发送下一个。接收方:接收到数据,检查,检查通过,发确认;没收到数据,不发送确认

第25页:问题收到,发送

问题收到,发送;没收到,不发送,等待出问题,死锁

第26页:问题出问题,死锁--对策:超时重发

问题出问题,死锁死锁----对策:超时重发(重传机制)超时重传:发送方每发送一个数据单元就开始计时,在规定的时间内没有收到对该数据单元的确认就认为该数据单元已经丢失,将该数据单元再发送一次。新的问题:重复数据单元----对策:数据单元编号,丢弃具有相同编号的重复数据单元

第27页:连续ARQ协议

  • 停等协议每发送一个数据单元,停下来等待确认,通信信道的利用率不高。
  • ARQ协议连续发若干数据单元后,等待接收端返回的确认,提高了通信的吞吐能力。
  • 接收方发送应答信息时,需要说明是对哪一数据单元的确认,即对每一数据单元都发送确认。
  • 如果某一数据单元需要重传,则重新传输后续的所有数据单元。

第28页:选择重传ARQ协议

  • 连续ARQ协议,需要重复多次发送数据单元,这种做法又降低了数据传送的效率。
  • 选择重传ARQ只重传出错的数据单元或是超时后仍未返回确认信息的数据单元。

第29页:流量控制----滑动窗口控制

  • 连续发送协议效率高,但要控制发送速度,避免数据溢出。一般采用滑动窗口控制进行流量控制。
  • 各种连续发送协议使用的滑动窗口控制基本类似,都是数据单元在发送端排队,在队列上设置滑动窗口,在滑动窗口内的数据单元可以发送,在滑动窗口外的数据单元不能发送。

第30页:TCP报文段格式

TCP报文段的格式包括首部和数据。首部的前20个字节是固定的,后面有4N字节是可选项。发送序号确认序号源端口目的端口检验和紧急指针选项和填充(长度可变)数据数据偏移FSRPAU保留窗口20字节TCP首部32比特

第31页:TCP协议功能(1)

TCP的编号与确认1.TCP将所要传送的整个报文看作一个个字节组成的数据流,对每一个字节编号;同时,将整个报文划分成若干个大小相同的报文段。报文段1报文段2报文段3报文段4报文段5……….报文段m报文

第32页:TCP协议功能(1)

  • TCP协议功能(1)
  • 以报文段为单位进行传送,传送的报文段中的第一个数据字节的序号放在TCP首部的发送序号字段中。
  • 接收方每接受一个字节将发送序号加1,接收完一个报文段并确认无误后发回确认信号:发送序号+1报文段1报文段2……….报文段m1nn+1不一定是1,可以是双方商量好的一个正整数确认报文中所含的序号,也是下一个将要接收到的字节序号,因此又叫期待序号

第33页:TCP协议功能(2)

  • TCP协议功能(2)
  • 如发送方在规定的时间内没有收到确认,就将未被确认的报文段重新发送。
  • 接收方若收到有差错的报文段,则丢弃之。若收到重复的报文段,也将其丢弃,但要发回确认信息。

第34页:TCP协议功能(2)

TCP协议功能(2)6.如收到未按序号到达的报文段且无差错,则由TCP的实现者自行确定:可将该报文丢弃或存于接收缓冲区内,待所缺序号的报文段收齐后再一起上交给应用层。

第35页:TCP协议功能(2)

  • TCP协议功能(2)
  • 接收方发回的确认序号是期待发送方下一次发送的段首字节号,又叫期待序号,意味着前面的字节都已收到;发送方接到确认信息后,按照期待序号发送报文段。
  • 接收方不必为每一个报文段发确认信息。

第36页:TCP协议功能(3)

  • 超时重传机制
  • 发送方在设定的时间内没有收到对一个报文段的确认,便要将该报文段重发一次。
  • 产生的问题是可能导致某个报文重复出现。
  • 接收方按上述方法处理重复出现报文段。

第37页:TCP协议功能(5)

  • TCP的流量控制机制
  • TCP以字节为单位组织报文,整个报文组成一个字节流,每个字节都有序号,首字节的序号由双方约定;
  • 整个报文字节流划分成若干个报文段;

第38页:TCP协议功能(5)

  • TCP协议功能(5)
  • 在发送端字节流上设置滑动窗口控制流量;
  • 流量窗口大小rwnd由目的端根据自身空闲缓冲区大小确定;
  • 目的端在发送确认报文时将窗口参数放在首部窗口字段。

第39页:TCP协议功能(6)报文段1报文段2报文

TCP协议功能(6)报文段1报文段2报文段3报文段4报文段5……….报文段n字节流向窗口滑动方向发送字节指针

第40页:TCP协议功能(发送端)报文段1报文段

TCP协议功能(发送端)报文段1报文段2报文段3报文段4报文段5……….报文段n可发送不可发送报文段1报文段2报文段3报文段4报文段5……….报文段n可发送不可发送已发送并确认已发送未确认

第41页:TCP协议功能(发送端)报文段1报文段

TCP协议功能(发送端)报文段1报文段2报文段3报文段4报文段5……….报文段n未确认不可发送已发送并确认已发送已确认可以移动窗口报文段1报文段2报文段3报文段4报文段5……….报文段n已确认不可发送已发送并确认已发送未确认不能移动窗口

第42页:TCP协议功能(接收端)报文段1报文段

TCP协议功能(接收端)报文段1报文段2报文段3报文段4报文段5……….报文段n未收到已接收并确认已收到可确认已收到发对报文段3的确认未收到

第43页:TCP协议功能(7)

  • TCP的拥塞控制机制
  • TCP的发送端采用拥塞窗口cwnd进行控制;
  • 当拥塞发生时减小cwnd,当无拥塞时线性增加cwnd;

第44页:TCP协议功能(7)

TCP协议功能(7)3.传输层无法直接感知网络是否发生拥塞,但可以通过能否及时收到确认报文间接感知。

第45页:TCP协议功能(8)

  • TCP的拥塞控制使用滑动窗口实现,实际上TCP的拥塞控制和流量控制综合在一起
  • 发送窗口大小=min(rwnd,cwnd)

第46页:TCP协议功能(8)

  • TCP的流量与拥塞控制使用4种机制共同完成:
  • 慢开始
  • 拥塞避免
  • 快重传
  • 快恢复

第47页:TCP协议功能(9)

  • 慢开始
  • 开始时,设置cwnd=1,即只发送一个报文段,防止网络出现拥塞;
  • 很快收到接收端的确认(期望)报文后,设置cwnd=2*cwnd。

第48页:TCP协议功能(10)

  • 拥塞避免
  • 当cwnd超过慢开始门限时进入拥塞避免阶段;
  • 在一个往返时延内收到确认报文,设置cwnd=cwnd+1;

第49页:TCP协议功能(10)

TCP协议功能(10)3.在若干个往返时延内没有收到确认报文,判断网络发生拥塞,设置cwnd=1,进入慢开始状态。

第50页:TCP协议功能(11)

快重传1.如果中间某个报文段没有收到,例如收到了1,2,3,5,6,7号报文段,则接收端在收到后面的(如5,6,7)报文段时,发送3号确认报文(表示3号以前的报文段已收到),正常后直接发7号确认报文(表示7号以前的报文段收到);

第51页:TCP协议功能(11)

TCP协议功能(11)2.发送端在累计收到3个3号确认报文后,可以断定有分组丢失,以较高优先级立即发送4号报文段

第52页:TCP协议功能(12)

快恢复1.在慢开始阶段,cwnd=1,cwnd的增加必须满足一些条件;

第53页:TCP协议功能(12)

  • TCP协议功能(12)
  • 但在发送端收到三个重复确认报文时,设置cwnd=3,因为三个确认报文说明3个分组已经离开网络,再多发3个分组不会加剧拥塞,有利于快重传;
  • 收到新的确认报文后,恢复慢开始阶段。
顶部目录