【学习课件】第十章UDP与TCP协定网路概论_第1页
【学习课件】第十章UDP与TCP协定网路概论_第2页
【学习课件】第十章UDP与TCP协定网路概论_第3页
【学习课件】第十章UDP与TCP协定网路概论_第4页
【学习课件】第十章UDP与TCP协定网路概论_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第十章UDP与TCP协定网络概论·传输层协议深度解析Contents课程目录从传输层基础到协议实战,系统掌握网络通信核心原理01传输层概述与数据封装02UDP协议详解03TCP协议核心机制04Wireshark抓包实战05协议对比与应用场景Chapter01传输层概述与数据封装理解网络体系结构中传输层的定位与数据流转机制NETWORKARCHITECTURE五层网络体系结构传输层位于五层网络体系结构的中间层级,是真正的端到端层。它负责将应用层数据传递给网络层,并确保数据能够正确到达目标主机的目标进程,是实现网络通信可靠性的关键环节。L5应用层直接为用户应用程序提供网络服务接口,如HTTP、FTP、DNS等协议HTTP·FTP·DNSL4传输层为进程间通信提供端到端服务,TCP和UDP是两大核心协议TCP·UDPL3网络层负责数据包的路由选择和转发,IP协议实现主机间的逻辑通信IPL2链路层在相邻节点间传输数据帧,处理物理寻址和差错检测EthernetL1物理层在传输介质上传输比特流,定义电气、机械和过程规范BitStreamTRANSPORTLAYER传输层核心功能传输层通过端口号机制实现复用与分用,使多个应用进程能共享网络资源;同时提供端到端的进程间通信服务,弥补了网络层只能实现主机间通信的不足。复用与分用机制复用机制发送方多个应用进程可使用同一传输层协议(TCP/UDP)发送数据TCP/UDP分用机制接收方通过端口号识别数据归属,将报文正确交付给对应应用进程按端口交付端口号标识端口号是16位整数(0-65535),用于唯一标识主机上的应用进程0–65535端到端通信服务通信扩展网络层只提供主机到主机的通信,传输层扩展到进程到进程的通信进程级透明传输传输层是源端到目的端的完整通路,中间路由器不参与传输层处理端到端套接字标识通过套接字(IP地址+端口号)唯一标识通信双方的一对进程IP+Port网络协议·数据传输数据包封装过程数据在网络传输中经历逐层封装:应用层数据依次添加传输层首部、网络层首部、链路层首部和尾部,形成完整的传输单元。接收端则反向逐层解封,最终将原始数据交付给应用进程。01Segment应用层数据传递给传输层,添加TCP/UDP首部后称为报文段02Datagram报文段传递给网络层,添加IP首部后称为数据报,IP首部通常为20字节03Frame数据报传递给链路层,添加以太网首部(14字节)和尾部(4字节CRC校验)后称为帧04Decapsulate接收端反向操作:链路层去帧头帧尾→网络层去IP首部→传输层去TCP/UDP首部→应用层获得原始数据数据在网络协议栈中逐层封装过程示意ProtocolStack各层数据单元对照不同协议层对数据包有专门的称谓,了解各层数据单元的名称、首部长度和功能边界,是理解网络协议栈工作原理的基础。网络协议栈各层数据单元协议层数据单元名称首部大小主要协议应用层报文(Message)可变HTTP,FTP,DNS,SMTP传输层报文段(Segment)TCP:20B/UDP:8BTCP,UDP网络层数据报(Datagram)通常20BIP,ICMP,ARP链路层帧(Frame)首部14B+尾部4BEthernet,Wi-Fi数据来源:计算机网络协议栈标准定义·各层协议对数据包有不同称谓,传输层使用报文段,首部大小因协议而异CHAPTER02UDP协议详解用户数据报协议的特点、格式与应用场景TransportProtocolUDP协议核心特点UDP是一种轻量级传输协议,以无连接、不保证可靠性为代价换取低延迟和小开销,特别适合实时音视频、在线游戏等对时延敏感的应用场景。无连接与尽最大努力交付发送数据前无需建立连接,结束时也无需释放连接,大幅减少通信开销不保证数据可靠到达,主机无需维持复杂的连接状态表和参数0连接面向报文与无拥塞控制应用层交付的报文不拆分不合并,保留报文边界,一次交付完整报文网络拥塞不会降低发送速率,适合实时应用如IP电话、视频会议等场景实时优先多模式通信与小首部开销支持一对一、一对多、多对一、多对多的灵活交互通信模式首部仅8字节,远小于TCP的20字节,协议开销极低8BytesTRANSPORTLAYERUDP数据包格式UDP首部仅8字节,由源端口、目的端口、长度和校验和四个2字节字段组成。这种极简设计使UDP协议开销极低,但也意味着它缺乏TCP那样的序号、确认号等可靠性控制机制。01源端口2BYTES标识发送方应用进程,需要回信时使用,不需要时可填全002目的端口2BYTES标识接收方应用进程,终点交付报文时必须使用03长度2BYTES表示UDP数据报总长度(首部+数据),最小值为8字节04校验和2BYTES检测数据报在传输中是否出错,出错则接收方直接丢弃该报文UDPHEADERSTRUCTURE0151631源端口SOURCEPORT·16bit目的端口DESTPORT·16bit长度LENGTH·16bit校验和CHECKSUM·16bit首部总计8字节TRANSPORTLAYERUDP首部字段详解UDP首部四个字段各司其职:端口号实现进程定位,长度字段约束报文边界,校验和提供基本的差错检测能力。理解各字段的取值范围和作用是分析网络数据的基础。UDP首部字段详细说明字段名称大小取值范围功能说明源端口2字节0–65535发送方进程端口,可选字段,不需要时可填0目的端口2字节0–65535接收方进程端口,必须字段,用于分用交付长度2字节8–65535UDP数据报总字节数,最小值8表示仅有首部校验和2字节0–65535检测传输差错,IPv4可选,IPv6强制使用TransportLayerUDP面向报文特性分析UDP面向报文的特性要求应用层必须合理控制报文大小。报文过长会导致IP层分片降低效率,过短则首部占比过大。同时,缺乏拥塞控制机制可能在大规模实时应用时引发网络问题。报文边界保留机制UDP对报文不拆分不合并,端到端保留完整边界发送方原样交付—UDP对应用层报文不拆分不合并,添加首部后原样交付给IP层处理,确保数据完整性接收方完整交付—去除首部后将完整报文原封不动交付给上层应用进程,保持边界清晰应用层自选大小—必须自行选择合适大小的报文,避免过长导致分片或过短导致首部开销过大发送方原样交付—UDP对应用层报文不拆分不合并,添加首部后原样交付给IP层处理接收方完整交付—去除首部后将完整报文原封不动交付给上层应用进程应用层自选大小—必须自行选择合适大小的报文,避免过长或过短影响传输效率无拥塞控制的潜在风险缺乏拥塞控制可能引发大规模网络问题速率不降低—网络拥塞时UDP不会降低发送速率,这对实时应用如视频会议是优势,但也隐含风险拥塞风险—大量主机同时发送高速率实时视频流时,可能引发严重网络拥塞甚至崩溃应用层控制—实际应用中通常需要在应用层实现简单的速率控制或自适应机制来规避风险速率不降低—网络拥塞时UDP不会降低发送速率,这对实时应用如视频会议是优势拥塞风险—大量主机同时发送高速率实时视频流时,可能引发严重网络拥塞问题应用层控制—实际应用中通常需要在应用层实现简单的速率控制机制CHAPTER03TCP协议核心机制传输控制协议的可靠性保障与连接管理深度解析TRANSPORTLAYERTCP协议核心特点TCP是一种面向连接的、可靠的、全双工的字节流传输协议。它通过连接管理、确认重传、序号排序等复杂机制保证数据可靠交付,适用于对数据完整性要求高的应用场景。面向连接通信前必须通过三次握手建立连接,结束后通过四次挥手释放连接。连接建立后双方才能开始数据传输,确保通信的确定性。三次握手点对点通信每条TCP连接仅有两个端点,不支持一对多或多对多通信模式。连接是严格的一对一关系,确保通信路径的明确性。两端可靠交付通过确认、重传、序号、校验等机制保证数据无差错、不丢失、不重复、按序到达。接收方需发送ACK确认,超时未确认则触发重传。零丢失全双工通信连接双方都设有发送缓存和接收缓存,可同时双向发送和接收数据。通信双方既是发送方也是接收方,数据流向独立。双向面向字节流将应用层数据视为无结构的字节序列,按字节编号传输。不保留应用层数据的边界,由TCP根据网络状况决定分块大小。字节序TCPProtocol·HeaderStructureTCP数据包格式TCP首部最小20字节,包含序号、确认号、控制标志位、窗口大小等关键字段,这些字段是实现可靠传输、流量控制和连接管理的核心机制。SEQUENCENUMBER序号标识本报文段发送数据的第一个字节编号,用于排序和去重4字节ACKNOWLEDGMENT确认号期望收到对方下一个报文段的第一个字节编号4字节WINDOWSIZE窗口大小接收方通告的可用缓存空间,用于流量控制2字节CONTROLFLAGS控制标志位URG、ACK、PSH、RST、SYN、FIN,控制连接状态6位CHECKSUM校验和校验首部和数据部分,比UDP校验和更严格2字节DATAOFFSET数据偏移指示TCP首部长度,可选字段使首部长度可变20–60字节TRANSPORTLAYER·TCPHEADERTCP首部字段详解TCP首部通过序号、确认号、标志位和窗口大小等字段的协同工作,实现了数据排序、接收确认、连接控制和流量调节等复杂的可靠性保障机制。TCP首部关键字段说明8FIELDS·20+BYTESMINIMUM字段大小核心功能源端口2字节标识发送方应用进程目的端口2字节标识接收方应用进程序号4字节本报文段数据第一个字节的编号,用于排序和去重确认号4字节期望收到对方下一个报文段的起始字节编号数据偏移4位指示TCP首部长度,以4字节为单位标志位6位URG/ACK/PSH/RST/SYN/FIN控制连接状态窗口大小2字节接收方通告可用缓存,用于流量控制校验和2字节检测首部和数据部分的传输差错TCP首部通过序号、确认号、标志位、窗口等字段实现可靠传输与流量控制TRANSPORTLAYER·TCPTCP三次握手建立连接TCP通过三次握手建立连接:客户端发起SYN→服务器回复SYN+ACK→客户端确认ACK。这个过程确保双方都能收发数据,并同步初始序号。三次握手而非两次,是为了防止历史连接请求造成资源浪费。01第一次握手:客户端发送SYN报文(SYN=1,seq=x),进入SYN-SENT状态等待服务器响应02第二次握手:服务器回复SYN+ACK(SYN=1,ACK=1,seq=y,ack=x+1),进入SYN-RCVD状态03第三次握手:客户端发送ACK确认(ACK=1,seq=x+1,ack=y+1),双方进入ESTABLISHED状态04为何需要三次:防止已失效的历史连接请求到达服务器,导致服务器误认为新连接而浪费资源CONNECTIONRELEASETCP四次挥手释放连接TCP通过四次挥手释放连接:客户端FIN→服务器ACK→服务器FIN→客户端ACK。由于TCP是全双工通信,每个方向的关闭需要独立确认,因此需要四次而非三次。STEP01客户端→FINFIN=1,seq=u客户端发送FIN报文,进入FIN-WAIT-1状态,表示不再发送数据STEP02服务器→ACKack=u+1服务器回复ACK确认,进入CLOSE-WAIT,客户端进入FIN-WAIT-2STEP03服务器→FINFIN=1,seq=w服务器数据发送完毕后发送FIN报文,进入LAST-ACK状态STEP04客户端→ACKack=w+1,2MSL客户端回复ACK确认,进入TIME-WAIT状态,等待2MSL后关闭连接ClientFIN→ServerACK→ServerFIN→ClientACK全双工·半关闭机制TCPCONNECTIONLIFECYCLE特殊状态:TIME-WAIT与半关闭TIME-WAIT状态持续2MSL时间,确保最后的ACK到达并使网络残留数据包消散。半关闭状态允许一方关闭发送通道但保持接收能力,体现了TCP全双工通信的灵活性。TIME-WAIT状态主动关闭方在发送最后一个ACK后进入TIME-WAIT,持续2MSL(MaximumSegmentLifetime)确保最后一个ACK能可靠到达对方,若丢失则对方会重发FIN让网络中残留的旧数据包有足够时间消散,避免干扰新连接半关闭状态一方发送FIN后关闭发送通道,但仍可接收对方发来的数据适用于服务器需要发送完所有响应数据后才完全关闭连接的场景通过shutdown()函数可实现半关闭,比close()更灵活TCPFLOWCONTROL滑动窗口流量控制机制滑动窗口是TCP流量控制的核心机制。接收方通过窗口字段动态通告可用缓存空间,发送方据此调整发送速率。窗口随数据接收而滑动,既能充分利用带宽,又能防止接收方缓存溢出。01接收方通告窗口接收方在ACK中通告窗口大小(rwnd),表示当前可接收的字节数。该字段占用16位,最大可通告65535字节,也可通过选项字段扩展窗口规模。rwnd02发送方维护窗口发送方维护发送窗口,窗口内的数据可以发送,已确认的数据从窗口移除。窗口大小受接收方通告值和网络拥塞状况双重约束。SENDWINDOW03窗口动态滑动窗口随数据接收和处理而"滑动",实现动态的速率调节和缓存保护。左边界右移表示数据已确认,右边界右移表示可发送新数据。DYNAMIC04零窗口探测窗口为0时发送方暂停发送,通过零窗口探测报文检测接收方是否恢复。持续探测避免连接因长时间空闲而中断,确保传输可靠性。ZEROWINDOWCHAPTER04Wireshark抓包实战通过真实数据包分析验证TCP/UDP协议机制NetworkProtocolAnalysisWireshark工具介绍Wireshark是专业的网络协议分析工具,能够在网卡层面捕获并解析网络数据包。通过过滤器功能可以精准定位目标协议数据包,是学习和调试网络协议的必备工具。网络协议分析工作场景01Wireshark支持实时捕获网卡上的所有网络数据包,并以人类可读的方式呈现协议细节02过滤器语法强大:'tcp'过滤TCP包,'udpport53'过滤DNS查询,'ip.addr=='过滤特定IP03数据包详情面板展示各层协议的完整字段信息,包括原始十六进制数据和解析后的含义04支持TCP流重组功能,可将分散的数据包重组为完整的应用层数据流TCPHandshake三次握手抓包分析通过Wireshark可以清晰观察到TCP三次握手的完整过程:SYN包的标志位、序号的递增规律、ACK确认号的计算方式都在数据包中一目了然,是验证理论学习的最佳方式。三次握手数据包分析握手阶段方向标志位序号/确认号客户端状态第一次客户端→服务器SYNSeq=0SYN_SENT第二次服务器→客户端SYN+ACKSeq=0,Ack=1ESTABLISHED第三次客户端→服务器ACKSeq=1,Ack=1ESTABLISHED三次握手过程中标志位和序号的变化清晰可见,验证了TCP连接建立的理论机制握手流程示意ClientServer①SYNSeq=0②SYN+ACKSeq=0,Ack=1③ACKSeq=1,Ack=1ESTABLISHEDTCPProtocolAnalysis数据传输抓包分析数据传输阶段的抓包可以观察到序号递增、确认号更新、窗口大小变化等动态过程。重传报文段的出现说明TCP在检测到数据丢失后会主动重发,这是可靠传输机制的直接证据。客户端发送数据每个报文段的Seq值递增,增量等于上一个报文段的数据长度(Len字段)ACK确认号反映对方已成功接收的数据量,Window字段动态调整发送速率若检测到丢包,发送方会重传未确认的报文段,Seq值与原始报文相同服务器响应数据服务器收到请求后返回响应数据,同样遵循序号递增和确认机制PSH标志位表示数据应尽快交付给应用层,不必等待缓冲区填满ACK延迟机制允许服务器合并多个确认,减少网络中的ACK报文数量TCPCONNECTIONRELEASE四次挥手抓包分析四次挥手抓包可以验证TCP连接释放的完整过程。实际抓包中有时会观察到FIN和ACK合并发送的优化现象,以及TIME-WAIT状态下的等待行为,这些都是理论学习的重要补充。四次挥手数据包分析挥手阶段方向标志位含义说明第一次客户端→服务器FIN+ACK客户端请求关闭发送通道,数据发送完毕第二次服务器→客户端ACK服务器确认收到FIN,但可能还有数据要发送第三次服务器→客户端FIN+ACK服务器数据发送完毕,请求关闭自己的发送通道第四次客户端→服务器ACK客户端确认服务器FIN,进入TIME-WAIT状态四次挥手过程中FIN和ACK有时合并发送,是TCP协议的优化机制4挥手步骤完成连接释放FIN+ACK合并发送优化机制TIME-WAIT客户端最终等待状态CHAPTER05协议对比与应用场景TCP与UDP的特性对比及典型应用领域分析TransportLayerTCP与UDP全面对比TCP和UDP是传输层两大协议,TCP以复杂机制换取可靠传输,UDP以不保证可靠性换取高速低延迟。选择哪种协议取决于应用对可靠性、实时性和效率的具体需求。TCP与UDP特性对比对比维度TCPUDP连接方式面向连接(三次握手)无连接可靠性可靠交付(确认、重传、排序)尽最大努力交付传输单位字节流报文首部开销20-60字节8字节流量控制有(滑动窗口)无拥塞控制有(慢启动、拥塞避免)无通信模式点对点一对一/一对多/多对多传输效率较低(机制复杂)高(机制简单)TCP追求可靠性,UDP追求效率,两者各有适用场景TCPProtocolTCP典型应用场景TCP适用于数据完整性比实时性更重要的场景。网页浏览、文件传输、邮件收发、远程登录等应用都要求数据准确无误,TCP的可靠传输机制是这些应用正常工作的基础保障。Web与文件传输HTTP/HTTPS网页内容必须完整加载,任何数据丢失都会导致页面显示异常FTP/SFTP文件传输要求字节级准确,损坏的文件可能完全无法使用SMTP/IMAP电子邮件内容不能丢失或乱序,否则可能导致信息不完整远程访问与数据库SSH/Telnet远程命令必须准确执行,错误的数据可能导致系统故障数据库连接SQL查询和结果集必须完整传输,数据不一致会造成严重后果API接口调用RESTfulAPI和RPC框架普遍基于TCP保证请求响应可靠性APPLICATIONSCENARIOSUDP典型应用场景UDP适用于实时性比完整性更重要的场景。视频会议、在线游戏、DNS查询、流媒体等应用对延迟极为敏感,偶尔丢包可以容忍,UDP的低延迟特性正好满足这些需求。视频会议/VOIP延迟超过200ms会严重影响对话体验,少量丢包可通过编码容错机制自动补偿。<200ms在线游戏玩家位置和操作需要毫秒级同步,偶尔丢包远比延迟更令人可以接受。毫秒级同步直播推流实时性要求极高,丢帧可通过缓冲和编码策略弥补,保证画面连续性。实时推流DNS查询报文很小,通常不超过512字节,一次UDP交互即可完成域名解析。<512BDHCP服务客户端动态获取IP地址时使用UDP广播,无需预先建立连接即可通信。UDPBroadcastNTP时间同步小型时间戳报文使用UDP传输,低延迟保证时间同步的精度与可靠性。高精度同步ProtocolAnalysisTCP与U

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论