1、TCP/IP协议分析 课件制作:邹延平 2009年9月,传输层-TCP/UDP协议分析,TCP/IP协议分析 课件制作:邹延平 2009年9月,传输层协议概述,从通信和信息处理的角度看,传输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。,物理层,网络层,传输层,应用层,数据链路层,面向信息处理,面向通信,用户功能,网络功能,TCP/IP协议分析 课件制作:邹延平 2009年9月,传输层为相互通信的应用进程提供了逻辑通信,54321,运输层提供应用进程间的逻辑通信,主机 A,主机 B,应用进程,应用进程,路由器 1,路由器 2,AP1,LAN2,WAN,
2、AP2,AP3,AP4,IP 层,LAN1,AP1,AP2,AP4,端口,端口,54321,IP 协议的作用范围,运输层协议 TCP 和 UDP 的作用范围,AP3,TCP/IP协议分析 课件制作:邹延平 2009年9月,传输层协议和网络层协议的主要区别,应用进程,应用进程,IP 协议的作用范围(提供主机之间的逻辑通信),TCP 和 UDP 协议的作用范围(提供进程之间的逻辑通信),因 特 网,TCP/IP协议分析 课件制作:邹延平 2009年9月,传输层向上提供可靠的和不可靠的逻辑通信信道,?,应用层,运输层,发送进程,接收进程,接收进程,数据,数据,全双工可靠信道,数据,数据,使用 TCP
3、 协议,使用 UDP 协议,不可靠信道,发送进程,TCP/IP协议分析 课件制作:邹延平 2009年9月,传输层的主要功能,传输层为应用进程之间提供端到端的逻辑通信(但网络层是为主机之间提供逻辑通信)。传输层还要对收到的报文进行差错检测。传输层需要有两种不同的运输协议,即面向连接的 TCP 和无连接的 UDP。,TCP/IP协议分析 课件制作:邹延平 2009年9月,TCP/IP 体系中的传输层协议,TCP,UDP,IP,应用层,与各种网络接口,传输层,TCP/IP 的传输层有两个不同的协议:(1)用户数据报协议 UDP(User Datagram Protocol)(2)传输控制协议 TCP
4、(Transmission Control Protocol),TCP/IP协议分析 课件制作:邹延平 2009年9月,两个对等传输实体在通信时传送的数据单位叫作传输协议数据单元 TPDU(Transport Protocol Data Unit)。TCP 传送的数据单位协议是 TCP 报文段(segment)UDP 传送的数据单位协议是 UDP 报文或用户数据报。,TCP 与 UDP,TCP/IP协议分析 课件制作:邹延平 2009年9月,TCP 与 UDP,UDP 在传送数据之前不需要先建立连接对方的传输层在收到 UDP 报文后,不需要给出任何确认。虽然 UDP 不提供可靠交付,但在某些情
5、况下 UDP 是一种最有效的工作方式。TCP 则提供面向连接的服务TCP 不提供广播或多播服务。由于 TCP 要提供可靠的、面向连接的传输服务,因此不可避免地增加了许多的开销。这不仅使协议数据单元的首部增大很多,还要占用许多的处理机资源。,TCP/IP协议分析 课件制作:邹延平 2009年9月,TCP/UDP的端口,端口就是传输层服务访问点端口的作用就是让应用层的各种应用进程都能将其数据通过端口向下交付给传输层,以及让传输层知道应当将其报文段中的数据向上通过端口交付给应用层相应的进程。从这个意义上讲,端口是用来标志应用层的进程端口用一个 16 位端口号进行标志。端口号只具有本地意义,即端口号只
6、是为了标志本计算机应用层中的各进程。在因特网中不同计算机的相同端口号是没有联系的。,TCP/IP协议分析 课件制作:邹延平 2009年9月,端口在进程之间的通信中所起的作用,应用层,运输层,网络层,TCP 报文段,UDP用户数据报,应用进程,TCP 复用,IP 复用,UDP 复用,TCP 报文段,UDP用户数据报,应用进程,端口,端口,TCP 分用,UDP 分用,IP 分用,发送方,接收方,TCP/IP协议分析 课件制作:邹延平 2009年9月,三类端口,熟知端口,数值一般为 01023。登记端口号,数值为102449151,为没有熟知端口号的应用程序使用的。使用这个范围的端口号必须在 IAN
7、A 登记,以防止重复。客户端口号或短暂端口号,数值为4915265535,留给客户进程选择暂时使用。当服务器进程收到客户进程的报文时,就知道了客户进程所使用的动态端口号。通信结束后,这个端口号可供其他客户进程以后使用。,TCP/IP协议分析 课件制作:邹延平 2009年9月,插口(socket),TCP 使用“连接”(而不仅仅是“端口”)作为最基本的抽象,同时将 TCP 连接的端点称为插口(socket),或套接字、套接口。插口和端口、IP 地址的关系是:,TCP/IP协议分析 课件制作:邹延平 2009年9月,TCP连接与端口,TCP端口:一个TCP连接两端的端点 TCP端口的表示:16位的
8、二进制数 利用TCP端口可以提供多路复用功能,TCP/IP协议分析 课件制作:邹延平 2009年9月,著名的TCP端口号,TCP/IP协议分析 课件制作:邹延平 2009年9月,UDP使用端口对给定主机上的多个目标进行区分 UDP端口使用16位二进制数表示 TCP和UDP各自拥有自己的端口号,著名的UDP端口号,TCP/IP协议分析 课件制作:邹延平 2009年9月,UDP(用户数据报协议)简介,UDP协议是英文User Datagram Protocol的缩写,即用户数据报协议,主要用来支持那些需要在计算机之间高速传输数据的网络应用。包括网络视频会议系统在内的众多的客户/服务器模式的网络应用
9、都需要使用UDP协议。UDP不失为一项非常实用和可行的网络传输层协议。UDP协议不提供端到端的确认和重传功能,它不保证信息包一定能到达目的地,因此称为不可靠协议。,TCP/IP协议分析 课件制作:邹延平 2009年9月,UDP 的主要特点,1)UDP是面向事务的协议,它用最少的传输服务为应用向其他程序发送报文提供了一个途径。2)UDP是无连接的、不可靠的传输机制。在发送数据报前,UDP在发送和接收两者之间不建立连接。3)数据分组的封装和解包都建立在UDP使用的协议端口上。4)UDP让应用能直接访问Internet层的数据报服务,例如分段和重组等Internet层所提供的数据报服务,UDP应用也
10、提供。5)UDP使用IP协议作为数据传输机制的底层协议。6)UDP报头和数据都以与最初传输时相同的形式被传送到最终目的地。7)UDP不提供确认,也不对数据的到达顺序加以控制。因此UDP报文可能会丢失。8)不实现数据分组的传送和重复检测。9)当分组没有被传送时,UDP不能报告错误。10)吞吐量不受拥挤控制算法的调节,只受应用软件生成数据的速率、传输带宽、发送端和接收端主机性能的限制。,TCP/IP协议分析 课件制作:邹延平 2009年9月,UDP应用,既然UDP是一种不可靠的网络协议,那么还有什么使用价值或必要呢?其实不然,在有些情况下UDP协议可能会变得非常有用。因为UDP具有TCP所望尘莫及
11、的速度优势。虽然TCP协议中植入了各种安全保障功能,但是在实际执行的过程中会占用大量的系统开销,无疑使速度受到严重的影响。反观UDP由于排除了信息可靠传递机制,将安全和排序等功能移交给上层应用来完成,极大降低了执行时间,使速度得到了保证。关于UDP协议的最早规范是RFC768,1980年发布。尽管时间已经很长,但是UDP协议仍然继续在主流应用中发挥着作用。包括视频电话会议系统在内的许多应用都证明了UDP协议的存在价值。因为相对于可靠性来说,这些应用更加注重实际性能,所以为了获得更好的使用效果(例如,更高的画面帧刷新速率)往往可以牺牲一定的可靠性(例如,画面质量)。这就是UDP和TCP两种协议的
12、权衡之处。,TCP/IP协议分析 课件制作:邹延平 2009年9月,UDP 是面向报文的,IP 数据报的数据部分,IP 首部,IP 层,UDP 首部,UDP 用户数据报的数据部分,传输层,应用层报文,应用层,TCP/IP协议分析 课件制作:邹延平 2009年9月,UDP 的首部格式,伪首部,源端口,目的端口,长 度,检验和,数 据,首 部,UDP长度,源 IP 地址,目的 IP 地址,0,17,IP 数据报,字节,4,4,1,1,2,12,2,2,2,2,字节,发送在前,数 据,首 部,UDP 用户数据报,TCP/IP协议分析 课件制作:邹延平 2009年9月,伪首部,源端口,目的端口,长 度
13、,检验和,数 据,首 部,UDP长度,源 IP 地址,目的 IP 地址,0,17,IP 数据报,字节,4,4,1,1,2,12,2,2,2,2,字节,发送在前,数 据,首 部,UDP 用户数据报,用户数据报 UDP 有两个字段:数据字段和首部字段。首部字段有 8 个字节,由 4 个字段组成,每个字段都是两个字节。,TCP/IP协议分析 课件制作:邹延平 2009年9月,伪首部,源端口,目的端口,长 度,检验和,数 据,首 部,UDP长度,源 IP 地址,目的 IP 地址,0,17,IP 数据报,字节,4,4,1,1,2,12,2,2,2,2,字节,发送在前,数 据,首 部,UDP 用户数据报,
14、在计算检验和时,临时把“伪首部”和 UDP 用户数据报连接在一起。伪首部仅仅是为了计算检验和。,TCP/IP协议分析 课件制作:邹延平 2009年9月,TCP/UDP伪首部,伪首部并非TCP&UDP数据报中实际的有效成分。伪首部是一个虚拟的数据结构,其中的信息是从数据报所在IP分组头的分组头中提取的,既不向下传送也不向上递交,而仅仅是为计算校验和。这样的校验和,既校验了TCP&UDP用户数据的源端口号和目的端口号以及TCP&UDP用户数据报的数据部分,又检验了IP数据报的源IP地址和目的地址。伪报头保证TCP&UDP数据单元到达正确的目的地址。因此,伪报头中包含IP地址并且作为计算校验和需要考
15、虑的一部分。最终目的端根据伪报头和数据单元计算校验和以验证通信数据在传输过程中没有改变而且到达了正确的目的地址。.伪首部,更确切的说是校验和包含的个96位的伪首标,是个理论上的值,只是理论上它位于TCP&UDP首标的前面。这个伪首标包含了源地址、目的地址、协议和TCP&UDP长度等字段,这使得TCP&UDP能够防止出现路由选择错误的数据段。这些信息由网际协议(IP)承载,通过TCP&UDP网络接口,在IP上运行的TCP&UDP调用参数或者结果中传递。,TCP/IP协议分析 课件制作:邹延平 2009年9月,UDP伪首部,为了计算校验和,UDP把伪首部(PSEUDO-HEADER)引入数据报中,
16、在伪首部中有一个值为零的填充八位组用于保证整个数据报的长度为16比特的整数倍。使用伪首部的的目的是检验UDP数据报已达到正确的目的地。在UDP校验和的计算过程中用到的伪首部长度为12字节,如下表所示。,伪首部的源IP地址字段和目的IP地址字段记录了发送UDP报文时使用的源IP地址和目的IP地址。协议字段指明了所使用的协议类型代码(UDP是17),而UDP长度字段是UDP数据报的长度(伪首部的长度不计算在内)。,TCP/IP协议分析 课件制作:邹延平 2009年9月,TCP/UDP伪首部,UDP为17TCP为06,TCP/IP协议分析 课件制作:邹延平 2009年9月,问题,在可靠性不是最重要的情况下,UDP可能是一个好的传输协议。试给出这种特定情况的一些示例。UDP和IP的不可靠程度是否相同?为什么是或为什么不是?UDP协议本身是否能确保数据报的发送和接收顺序?伪首部有哪些部分?有什么作用?,TCP/IP协议分析 课件制作:邹延平 2009年9月,TCP(传输控制协议)简介,TCP是TCP/IP协议栈中的传输层协议,TCP称为面向字节流连接的和可靠的传输层协议。它给IP协议提供了面向连
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1