您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 工作范文 > m7运输层协议及分析_XXXX11
第7章运输层协议及分析7.1运输层协议概述7.2TCP/IP体系中的运输层7.3用户数据报协议UDP7.4传输控制协议TCP7.4.1TCP概述7.4.2TCP可靠传输的工作原理7.4.3TCP报文段的首部格式7.4.4TCP的流量控制与拥塞控制7.4.5TCP的重传机制7.4.6TCP的运输连接管理7.5流控制传输协议(SCTP)7.1运输层协议概述运输层向它上面的应用层提供通信服务,属于面向通信部分的最高层,用户功能中的最低层。物理层网络层运输层应用层数据链路层面向信息处理面向通信用户功能网络功能一、运输层在网络体系结构中的作用运输层为相互通信的应用进程提供了逻辑通信54321运输层端到端的逻辑通信主机A主机B应用进程应用进程路由器1路由器2AP1LAN2WANAP2AP3AP4IP层LAN1AP1AP2AP4端口端口54321IP协议的作用范围运输层协议TCP和UDP的作用范围AP3二、运输层要解决的问题要提供端到端的可靠通信必需解决的问题在一个连接上实现多对进程间通信的复用弥补通信子网提供的差异和不足解决通信子网自身无法解决的传输错误总之,运输层填补了高层用户的要求与通信子网提供的服务之间的间隙。通信子网提供的服务越多,运输层就越简单。通信子网提供的服务越少,运输层就越复杂。三、运输层的主要功能运输层的两项主要功能:流量控制:通过滑动窗口实现;可靠传输:由序号和确认来实现。运输层主要提供TCP和UDP两种传输协议:TCP是面向连接的、可靠的传输协议。它把报文分解为多个段进行传输,在目的站再重新装配这些段,必要时重新发送没有收到的段。UDP是无连接的。由于对发送的段不进行校验和确认,因此它是“不可靠”的。运输层协议和网络层协议的主要区别应用进程…应用进程…IP协议的作用范围(提供主机之间的逻辑通信)TCP和UDP协议的作用范围(提供进程之间的逻辑通信)因特网运输层为应用进程之间提供端到端的逻辑通信网络层是为主机之间提供逻辑通信运输层向上提供的两种服务?应用层运输层发送进程接收进程接收进程数据数据全双工可靠信道数据数据使用TCP协议使用UDP协议不可靠信道发送进程TCP/IP的运输层有两个不同的协议:用户数据报协议UDP(UserDatagramProtocol)传输控制协议TCP(TransmissionControlProtocol)两个对等运输实体在通信时传送的数据单位叫作运输协议数据单元TPDU(TransportProtocolDataUnit)。TCP传送的数据协议单元是TCP报文段(segment)UDP传送的数据协议单元是UDP报文或用户数据报。7.2TCP/IP体系中的运输层7.2.1运输层中的两个协议TCP/IP体系中的运输层协议TCPUDPIP应用层与各种网络接口运输层UDP不提供可靠交付,但UDP是一种高效的工作方式。TCP提供面向连接的服务,传送数据之前需要先建立连接。TCP提供可靠交付,但增加了许多的开销。使协议数据单元的首部增大很多,占用许多的处理机资源。SCTP是流控制传输协议,面向报文,可靠。SCTP具有UTP和TCP最好的一些特点。SCTP7.2.2端口的概念运输控制层最主要任务是实现进程通信功能,要进行进程通信是通过端口来实现的。在协议栈层间的抽象的协议端口是软件端口。路由器或交换机上的端口是硬件端口。硬件端口是不同硬件设备进行交互的接口,软件端口是应用层的各种协议进程与运输实体进行层间交互的一种地址。端口的作用就是让各种应用进程都能将其数据通过端口向下交付给运输层,让运输层知道应当将其报文段中的数据向上通过端口交付给应用层相应的进程。端口用一个16bit端口号进行标志。端口号只具有本地意义。在因特网中不同计算机的相同端口号是没有联系的。端口在进程之间的通信中所起的作用应用层运输层网络层TCP报文段UDP用户数据报应用进程TCP复用IP复用UDP复用TCP报文段UDP用户数据报应用进程端口端口TCP分用UDP分用IP分用IP数据报IP数据报发送方接收方三类端口熟知端口:TCP/IP体系确定并公布的,其数值一般为0~1023。用来表示公共应用程序。指示了正在使用的上层协议。登记端口号,数值为1024~49151,为没有熟知端口号的应用程序使用的。使用这个范围的端口号必须登记,以防止重复。客户端口号或短暂端口号,数值为49152~65535,留给客户进程选择暂时使用。当服务器进程收到客户进程的报文时,就知道了客户进程所使用的动态端口号。IPFTPSMTPTFTPDNSTelnetSNMP2123255369161TCPUDP应用层传输层保留的端口号:<255,公共应用255-1023,公司176网络层常用的默认端口代理服务器常用端口:(1).HTTP协议代理服务器常用端口号:80/8080/3128/8081/9080(2).SOCKS代理协议服务器常用端口号:1080(3).FTP协议代理服务器常用端口号:21(4).Telnet协议代理服务器常用端口:237.3用户数据报协议UDP7.3.1UDP概述UDP只在IP的数据报服务之上增加了很少一点的功能,即端口的功能和差错检测的功能。虽然UDP用户数据报只能提供不可靠的交付,但UDP在某些方面有其特殊的优点。发送数据之前不需要建立连接UDP的主机不需要维持复杂的连接状态表。UDP用户数据报只有8个字节的首部开销。UDP可支持一对一、一对多、多对一和多对多的交互通信。网络出现的拥塞不会使源主机的发送速率降低。这对某些实时应用是很重要的。端口是用报文队列来实现UDP端口51000UDP端口69出队列入队列出队列入队列TFTP服务器TFTP客户UDP用户数据报应用层运输层服务器端用熟知端口,客户端请求用一般端口7.3.2UDP用户数据报的首部格式伪首部源端口目的端口长度检验和数据首部UDP长度源IP地址目的IP地址017IP数据报字节44112122222字节发送在前数据首部UDP用户数据报伪首部源端口目的端口长度检验和数据首部UDP长度源IP地址目的IP地址017IP数据报字节44112122222字节发送在前数据首部UDP用户数据报用户数据报UDP有两个字段:数据字段和首部字段。首部字段有8个字节,由4个字段组成,每个字段都是两个字节。伪首部源端口目的端口长度检验和数据首部UDP长度源IP地址目的IP地址017IP数据报字节44112122222字节发送在前数据首部UDP用户数据报检验和检验部分包括首部和数据。在计算检验和时,临时把“伪首部”和UDP用户数据报连接在一起。伪首部仅仅是为了计算检验和。不向上和向下传输。1001100100010011→153.190000100001101000→8.1041010101100000011→171.30000111000001011→14.110000000000010001→0和170000000000001111→150000010000111111→10870000000000001101→130000000000001111→150000000000000000→0(检验和)0101010001000101→数据0101001101010100→数据0100100101001110→数据0100011100000000→数据和0(填充)1001011011101011→求和得出的结果0110100100010100→检验和153.19.8.104171.3.14.1112字节伪首部8字节UDP首部7字节数据填充按二进制反码运算求和将得出的结果求反码全0171510871315全0数据数据数据数据数据数据数据全0TCP是面向连接的运输层协议。每一条TCP连接只能有两个端点(endpoint),每一条TCP连接只能是点对点的(一对一)。TCP提供可靠交付的服务。TCP提供全双工通信。面向字节流。7.4传输控制协议TCP7.4.1TCP概述768HTCP面向流的概念发送TCP报文段发送方接收方把字节写入发送缓存从接收缓存读取字节应用进程应用进程1230181716151419202145131211H109H加上TCP首部构成TCP报文段TCPTCP字节流字节流H表示TCP报文段的首部x表示序号为x的数据字节TCP连接每一条TCP连接有两个端点。TCP连接的端点不是主机,不是主机的IP地址,不是应用进程,也不是运输层的协议端口。TCP连接的端点叫做套接字(socket)或插口。端口号拼接到(contatenatedwith)IP地址即构成了套接字。套接字和端口、IP地址的关系是:IP地址131.6.23.13端口号1500131.6.23.13,1500套接字(socket)TCP的连接7.4.2可靠传输的工作原理(a)无差错情况A发送M1确认M1B发送M2发送M3确认M2确认M3A发送M1B超时重传M1发送M2确认M1丢弃有差错的报文(b)超时重传tttt确认丢失和确认迟到A发送M1B超时重传M1发送M2丢弃重复的M1重传确认M1(a)确认丢失确认M1A发送M1B超时重传M1发送M2丢弃重复的M1重传确认M1(b)确认迟到确认M1收下迟到的确认但什么也不做tttt流水线传输发送方可连续发送多个分组,不必每发完一个分组就停顿下来等待对方的确认。由于信道上一直有数据不间断地传送,这种传输方式可获得很高的信道利用率。BttA累积确认接收方一般采用累积确认的方式。即不必对收到的分组逐个发送确认,而是对按序到达的最后一个分组发送确认,这样就表示:到这个分组为止的所有分组都已正确收到了。累积确认有的优点是:容易实现,即使确认丢失也不必重传。缺点是:不能向发送方反映出接收方已经正确收到的所有分组的信息。TCP可靠通信的具体实现TCP连接的每一端都必须设有两个窗口——一个发送窗口和一个接收窗口。TCP的可靠传输机制用字节的序号进行控制。TCP所有的确认都是基于序号而不是基于报文段。TCP两端的四个窗口经常处于动态变化之中。TCP连接的往返时间RTT也不是固定不变的。需要使用特定的算法估算较为合理的重传时间。TCP首部20字节的固定首部32bit比特08162431目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG填充TCP数据部分TCP首部TCP报文段IP数据部分IP首部发送在前7.4.3TCP报文段的首部格式TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充源端口和目的端口字段——各占2字节。端口是运输层与应用层的服务接口。运输层的复用和分用功能都要通过端口才能实现。TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充序号字段——占4字节。TCP连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG填充确认号字段——占4字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG填充数据偏移——占4bit,它指出TCP报文段的数据起始处距离TCP报文段的起始处有多远。“数据偏移”的单位是32bit字。TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG填充保留字段——占6
本文标题:m7运输层协议及分析_XXXX11
链接地址:https://www.777doc.com/doc-407211 .html