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












