您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > CH5-5ed 运输层
计算机网络(第5版)第5章运输层5.1运输层协议概述5.1.1进程之间的通信TCP/IP体系中最复杂的一层。引入运输层原因:消除网络不可靠性,提供与网络无关的信息传输。功能概述:为上层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。只有端点主机的协议栈才有运输层,而网络核心部分中,路由器在转发分组时都只用到下三层的功能。连接端点与网络的接口层次!运输层主要功能复用与分用连接管理数据分割与重组差错检测与恢复流量及拥塞控制站在运输层来看,谁是真正通信端点?主机OR应用进程?两个主机进行通信实际上就是两个主机中的应用进程互相通信(端到端)。如果应用进程的数据直接与IP层交互,会怎样?即,如果没有运输层,会怎样?没有可靠性保证!IP层需要区分不同AP对,加重负担!因此,有必要设置运输层。是否存在特例?ICMP、OSPF等复用与分用网络层看不见AP数据,也不需要看见。运输层负责区分进行通信的不同AP。发送前统一打包接收后分别区分复用分用运输层为相互通信的应用进程提供了逻辑通信54321运输层提供应用进程间的逻辑通信主机A主机B应用进程应用进程路由器1路由器2AP1LAN2WANAP2AP3AP4IP层LAN1AP1AP2AP4端口端口54321IP协议的作用范围运输层协议的作用范围AP35.1.3运输层的端口主机中的进程用进程标识符标志,但它们不能用于在网络通信中区分不同的AP。因为OS不同,进程标识符的格式、含义均不同。可类比路由协议中的度量。为了使运行不同OS计算机的AP能互相通信,必须用统一的方法对其进行标志。考虑:能否用特定进程的名称?同样不可取,同一进程可能实现不同功能,而不同进程可能合作实现同一功能;且进程具备动态性。归根结底:在本层中,以功能来区分作为通信端点进程!解决办法:端口什么是端口(port)?非硬件接口指运输层与应用层交互的抽象软件端口端口的作用:对不同AP在运输层上加以功能性的标志和区分。虽然通信的真正终点是AP,但在运输层上,只需将不同AP的数据提交到端口即可。SAPAP与端口绑定AP通过系统调用与某端口绑定。AP发给运输层的数据都通过该端口发送。运输层传给AP的数据都从该端口接收。端口的定义端口用一个16位端口号进行标志。端口号通常只具有本地意义,即端口号只是为了标志本机应用层中的各进程。在因特网中不同主机的相同端口号可能是没有联系的。那到底如何通信呢?三类端口熟知端口:数值一般为0~1023。登记端口号:1024~49151,为没有熟知端口号的应用程序使用的。使用这个范围的端口号必须在IANA登记,以防止重复。客户端口号或短暂端口号,49152~65535,留给客户进程选择暂时使用。当服务器进程收到客户进程的报文时,就知道了客户进程所使用的动态端口号。通信结束后,这个端口号可供其他客户进程以后使用。静态端口动态端口动态端口TCP/IP的运输层有两个不同的协议:(1)用户数据报协议UDP(UDP报文或数据报)(2)传输控制协议TCP(TCP报文段)5.1.2运输层的两个主要协议TCP与UDPUDP提供无连接服务,不提供可靠交付。TCP提供面向连接的服务。TCP不提供广播或多播服务。由于TCP要提供可靠的、面向连接的运输服务,因此不可避免地增加了许多的开销。这不仅使协议数据单元的首部增大很多,还要占用许多的处理机资源。选择TCP还是UDP?5.2用户数据报协议UDP5.2.1UDP概述UDP只在IP数据报服务之上增加了很少一点的功能,即端口的功能和差错检测的功能。虽然UDP用户数据报只能提供不可靠的交付,但UDP在某些方面有其特殊的优点。实时通信。RIP。UDP的主要特点无连接。尽最大努力交付。面向报文。无拥塞控制,很适合实时多媒体通信的要求。支持一对一、一对多、多对一和多对多的交互通信。首部开销小,只有8个字节。UDP是面向报文的IP数据报的数据部分IP首部IP层UDP首部UDP用户数据报的数据部分运输层应用层报文应用层5.2.2UDP的首部格式伪首部源端口目的端口长度检验和数据首部UDP长度源IP地址目的IP地址017IP数据报字节44112122222字节发送在前数据首部UDP用户数据报伪首部源端口目的端口长度检验和数据首部UDP长度源IP地址目的IP地址017IP数据报字节44112122222字节发送在前数据首部UDP用户数据报用户数据报UDP有两个字段:数据字段和首部字段。首部字段有8个字节,由4个字段组成,每个字段都是两个字节。伪首部源端口目的端口长度检验和数据首部UDP长度源IP地址目的IP地址017IP数据报字节44112122222字节发送在前数据首部UDP用户数据报在计算检验和时,临时把“伪首部”和UDP用户数据报连接在一起。伪首部仅仅是为了计算检验和。计算UDP检验和的例子1001100100010011→153.190000100001101000→8.1041010101100000011→171.30000111000001011→14.110000000000010001→0和170000000000001111→150000010000111111→10870000000000001101→130000000000001111→150000000000000000→0(检验和)0101010001000101→数据0101001101010100→数据0100100101001110→数据0100011100000000→数据和0(填充)1001011011101101→求和得出的结果0110100100010010→检验和153.19.8.104171.3.14.1112字节伪首部8字节UDP首部7字节数据填充按二进制反码运算求和将得出的结果求反码全0171510871315全0数据数据数据数据数据数据数据全0UDP基于端口的分用IP层UDP数据报到达端口2端口3端口1UDP分用5.3TCP概述5.3.1TCP最主要的特点TCP是面向连接的运输层协议。每一条TCP连接只能有两个端点,即只能是点对点的(一对一)。TCP提供可靠交付的服务。TCP提供全双工通信。三次握手、四次挥手TCP只能单播TCP的缓存与窗口TCP双方均设置发送与接收缓存。发送方进程将数据送至发送缓存,接收方进程从接收缓存读取数据。通信时缓存中哪些数据可发,哪些数据可取,受到窗口限制,窗口为缓存的子集。TCP双方均有发送窗口及接收窗口,发送方根据对方通知的接收窗口大小设置自己的发送窗口以实现流量控制。窗口总是动态变化的。为什么设置缓存?768HTCP面向字节流发送TCP报文段发送方接收方把字节写入发送缓存从接收缓存读取字节应用进程应用进程1230181716151419202145131211H109H加上TCP首部构成TCP报文段TCPTCP字节流字节流H表示TCP报文段的首部x表示序号为x的数据字节TCP连接对每一个字节均编号应当注意TCP连接是虚连接而不是真正的物理连接。TCP根据对方及当前网络状况决定报文段长度(UDP发送的报文长度是应用进程给出的)。TCP可把太长的数据块划分短一些再传送,也可等待积累有足够长度后再构成报文段发送出去。动态性!5.3.2TCP的连接每一条TCP连接有两个端点。套接字(socket)或插口。(IP地址:端口号)即构成了套接字。主机AP5.4可靠传输的工作原理什么是可靠传输?发送什么,接收什么。理想情况下无差错,无速率限制。5.4.1停止等待协议(a)无差错情况A发送M1确认M1B发送M2发送M3确认M2确认M3A发送M1B超时重传M1发送M2确认M1接收方终未收下(b)超时重传tttt1.检验出错丢弃。2.丢失。超时计时器发送方的问题,接收方未正确收到在发送完一个分组后,必须暂时保留已发送的分组的副本。分组和确认分组都必须进行编号。超时计时器的重传时间应当比数据在分组传输的平均往返时间(RTT)更长一些。接收方问题:确认丢失和确认迟到A发送M1B超时重传M1发送M2丢弃重复的M1(a)确认丢失确认M1A发送M1B超时重传M1发送M2丢弃重复M1重传确认M1(b)确认迟到确认M1收下迟到的确认但什么也不做tttt重传确认M1可靠通信的实现使用上述的确认和重传机制,我们就可以在不可靠的传输网络上实现可靠的通信。这种可靠传输协议常称为自动重传请求ARQ。特点:通过超时计时器自动重传,接收方无需干预。停止等待协议属于ARQ的一种。优点:简单。信道利用率TDRTTATD+RTT+TABtt信道的利用率UADDTTTURTT(5-3)信道利用率低(当RTTTD时)。流水线传输发送方可连续发送多个分组,不必“一停一等”。由于信道上一直有数据不间断地传送,这种传输方式可获得很高的信道利用率。连续ARQ或滑动窗口协议。BttA5.4.2连续ARQ协议123456789101112(a)发送方维持发送窗口(发送窗口是5)发送窗口(b)收到一个确认后发送窗口向前滑动向前123456789101112发送窗口发送方接收方:累积确认不必对收到的分组逐个确认,而是对按序到达的最后一个分组发送确认,这样就表示:到这个分组为止的所有分组都已正确收到了。累积确认的优点:确认丢失也不必重传。缺点:不能向发送方反映出接收方已经正确收到的所有分组的信息。Go-back-N(回退N)对连续发送的S个分组,若中间第m个分组丢失。则接收方只能对前m-1个分组发出确认。发送方只好把后面分组都再重传一次。Go-back-N(回退N):需要再退回重传已发送过的若干分组。TCP首部20字节的固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FIN32位SYNRSTPSHACKURG位08162431填充TCP数据部分TCP首部TCP报文段IP数据部分IP首部发送在前5.5TCP报文段的首部格式TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG位08162431填充源端口和目的端口字段——各占2字节。端口是运输层与应用层的服务接口。运输层的复用和分用功能都要通过端口才能实现。TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG位08162431填充序号字段——占4字节。TCP连接中传送的数据流中的每一个字节都编号。序号字段的值则指的是本报文段所发送的数据的第一个字节的编号。TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG位08162431填充确认号字段——占4字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。理解TCP连接中的双向交互关系!EX:报文段序号seq=20,确认号ackn=10000是指:此报文段数据部分第一个字节编号20此报文段的发送方通知对方已收到编号为9999的字节,希望收到从10000开始的若干字节。一个指自己,一个用来通知对方,没有直接联系。TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG位08162431填充数据偏移(即首部长度)——占4位,指出TCP报文段的数据起始处距离TCP报文段的起始处有多远。“数据偏移”的单位是32位字(以4字节为计算单位)。TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG位08162431填充保留字段——占6位,保留为今后使用,但目前应置为0。TCP首部20字节固定首部目的端口数据偏移检验和选项(
本文标题:CH5-5ed 运输层
链接地址:https://www.777doc.com/doc-219435 .html