【网络安全】Wireshark零基础到进阶学习路线(第三期:核心协议解析,读懂HTTP、TCP、DNS数据包)

张开发
2026/7/2 7:28:54 15 分钟阅读
【网络安全】Wireshark零基础到进阶学习路线(第三期:核心协议解析,读懂HTTP、TCP、DNS数据包)
【网络安全】Wireshark零基础到进阶学习路线第三期核心协议解析读懂HTTP、TCP、DNS数据包前言在前两期内容中我们已经完成了Wireshark的安装配置、首次抓包还掌握了显示过滤器的核心用法能够从海量数据包中精准筛选出目标流量。但仅仅“找到”数据包还不够网络安全学习的核心的是“读懂”数据包——知道每个数据包的含义、字段代表的意义以及背后的通信逻辑。本期作为零基础进阶的关键一期核心目标掌握HTTP、TCP、DNS这3种最常用、最核心的网络协议通过Wireshark抓包实战拆解协议的通信流程和核心字段摆脱“只懂筛选、不懂解读”的困境真正理解网络通信的底层逻辑为后续安全分析、故障排查打下坚实基础。一、为什么要重点学习这3种协议零基础必懂网络协议是网络通信的“语言”而HTTP、TCP、DNS这3种协议是我们日常上网、网络安全分析中最常用、最核心的协议覆盖了“访问网页、数据传输、域名解析”等所有基础场景缺一不可。对于网络安全新手来说掌握这3种协议的意义在于读懂日常流量我们打开浏览器访问网页、刷视频、聊微信本质上都是这几种协议在背后协同工作学会解读它们就能明白“数据是如何从自己电脑传到服务器再传回来的”排查基础故障比如访问网站打不开、网页加载卡顿、DNS解析失败通过解读这3种协议的数据包就能快速找到故障根源是TCP连接失败还是HTTP响应异常或是DNS解析出错入门安全分析很多网络攻击如SQL注入、TCP SYN Flood、DNS劫持都会留下协议层面的痕迹读懂数据包才能发现这些异常痕迹为后续渗透测试、应急响应打基础夯实网络基础这3种协议是所有网络知识的基石学会它们再学习其他复杂协议如HTTPS、FTP会事半功倍。本期我们将按照“DNS → TCP → HTTP”的顺序讲解贴合日常上网流程先解析域名→建立连接→传输网页数据每个协议都遵循“核心作用→抓包实战→字段拆解”的逻辑新手容易理解、容易上手。二、前期准备明确学习目标与环境要求2.1 本期学习目标必达成理解DNS、TCP、HTTP三种协议的核心作用知道它们在网络通信中的分工能通过Wireshark实时抓包捕获三种协议的数据包并用过滤器精准筛选掌握每种协议的核心字段、通信流程能独立解读数据包的含义完成3个协议实战练习能通过数据包判断通信是否正常排查基础异常。2.2 环境要求延续前两期无需额外准备已安装Wireshark确保能正常启动、抓包若未安装参考第一期内容电脑已连接网络WiFi或以太网均可用于抓包测试提前掌握前两期知识点会启动抓包、会使用基础显示过滤器如http、tcp、dns准备工具浏览器用于触发HTTP、DNS流量、终端Windows cmd/ macOS/Linux终端用于测试DNS解析无需提前背诵协议理论跟着实战步骤边操作边理解即可。三、核心协议一DNS协议域名解析上网的“翻译官”我们日常上网时输入的是“www.baidu.com”这样的域名但电脑无法直接识别域名只能识别IP地址如202.108.22.5。而DNS协议的核心作用就是“翻译”——将域名翻译成电脑能识别的IP地址相当于互联网的“电话本”是我们上网的第一步。3.1 DNS协议核心基础必懂核心作用域名与IP地址的相互转换主要是正向解析域名→IP通信模式采用“查询-响应”模式客户端发送查询请求询问域名对应的IPDNS服务器返回响应结果返回IP地址默认端口使用UDP协议的53端口传输高效、延迟低适合短报文传输当响应数据超过512字节时会自动切换为TCP 53端口传输常见场景打开浏览器访问任意网站、APP启动加载都会先触发DNS解析再建立连接。3.2 抓包实战捕获并筛选DNS数据包目标捕获“浏览器访问百度”时的DNS解析流量筛选并查看DNS查询与响应数据包。步骤清理DNS缓存避免缓存影响抓包效果Windows用户打开cmd输入命令 ipconfig /flushdns回车执行macOS用户打开终端输入命令 sudo dscacheutil -flushcache输入密码后执行Linux用户打开终端输入命令 sudo systemd-resolve --flush-caches输入密码后执行。启动Wireshark抓包选择当前使用的网络接口WiFi/以太网点击蓝色鲨鱼鳍按钮启动抓包设置过滤器在顶部过滤框输入 dns或 udp.port 53按回车只显示DNS协议的数据包触发DNS解析打开浏览器在地址栏输入“www.baidu.com”按下回车无需等待页面加载完成解析瞬间完成停止抓包点击红色方块按钮停止抓包此时数据包列表中会显示2条核心DNS数据包1条查询、1条响应。3.3 数据包拆解读懂DNS查询与响应DNS数据包主要分为“查询包”和“响应包”我们分别拆解核心字段重点看数据包详情区按协议层次展开新手无需记住所有字段重点掌握3个核心部分即可。3.3.1 DNS查询包客户端→DNS服务器双击数据包列表中的“DNS”协议数据包源IP是自己电脑IP目的IP是DNS服务器IP在详情区展开“Domain Name System (query)”核心字段解读Transaction ID事务ID随机生成的标识符用于匹配查询包和响应包查询包和对应响应包的事务ID完全一致Flags标志位核心标记为“Query”表示这是查询请求同时包含“Recursion DesiredRD”递归请求请求DNS服务器逐级查询Queries查询部分最核心的部分包含2个关键信息Name要查询的域名如www.baidu.com编码为独特的标签序列每个标签前有长度字节以空字节结束Type查询类型最常用“A”表示查询IPv4地址此外还有“AAAA”IPv6地址、“CNAME”域名别名等Class通常为“IN”互联网类别表示查询的是互联网中的域名。3.3.2 DNS响应包DNS服务器→客户端双击对应的响应包源IP是DNS服务器IP目的IP是自己电脑IP在详情区展开“Domain Name System (response)”核心字段解读Transaction ID与对应查询包的事务ID完全一致确保查询与响应对应Flags核心标记为“Response”表示这是响应包同时包含“Recursion AvailableRA”递归可用说明DNS服务器支持递归查询Answers回答部分最核心的部分包含域名对应的IP地址重点看2个信息Name查询的域名与查询包一致Type与查询包一致如“A”Address域名对应的IP地址如百度的IP202.108.22.5这就是DNS解析的最终结果TTL生存时间表示该IP地址在本地缓存中的存活秒数如86400秒24小时缓存过期后会重新发起DNS查询。3.4 新手常见问题与技巧抓不到DNS数据包解决先清理DNS缓存避免使用本地缓存不触发新的解析请求确保过滤器输入正确dns或udp.port 53关闭浏览器所有标签页重新打开并访问域名。响应包中没有IP地址解决可能是DNS解析失败检查网络连接是否正常也可能是查询类型为CNAME域名别名需查看后续的响应包找到最终的A记录IPv4地址。快速筛选DNS查询/响应包技巧使用过滤器 dns.flags.response 0 筛选查询包dns.flags.response 1 筛选响应包。四、核心协议二TCP协议可靠传输数据的“运输车”当DNS解析出服务器IP后电脑需要与服务器建立连接才能传输数据如网页内容、图片、文字。而TCP协议的核心作用就是“可靠传输”——确保数据从客户端准确、完整地传到服务器不丢失、不错乱相当于数据的“运输车”是所有可靠网络通信的基础HTTP、HTTPS等协议都基于TCP协议。4.1 TCP协议核心基础必懂核心作用在客户端和服务器之间建立可靠的连接实现数据的有序、完整传输核心特点面向连接通信前必须建立连接通信后关闭连接、可靠传输数据丢失会重传确保接收完整、面向字节流按顺序传输数据核心流程通信分为三个阶段——建立连接三次握手→ 传输数据 → 关闭连接四次挥手常用端口HTTP默认80端口、HTTPS默认443端口、SSH默认22端口均基于TCP协议。4.2 抓包实战捕获TCP三次握手与数据传输目标捕获“浏览器访问百度”时的TCP连接三次握手和数据传输流量理解TCP的核心流程。步骤启动Wireshark抓包选择当前使用的网络接口WiFi/以太网点击蓝色鲨鱼鳍按钮启动抓包设置过滤器在顶部过滤框输入 tcp and ip.addr 202.108.22.5筛选与百度IP的TCP流量按回车触发TCP连接打开浏览器访问“http://www.baidu.com”等待页面加载完成停止抓包点击红色方块按钮停止抓包此时数据包列表中会显示TCP三次握手、数据传输、四次挥手的完整流程重点关注前3个数据包三次握手。4.3 数据包拆解读懂TCP三次握手与核心字段TCP的核心是“三次握手”建立连接和“四次挥手”关闭连接新手重点掌握三次握手和核心字段四次挥手暂不深入进阶阶段再讲解。4.3.1 TCP三次握手建立连接必掌握三次握手是TCP建立连接的过程相当于“客户端和服务器的对话”确保双方都能正常发送和接收数据对应数据包列表中前3个连续的TCP数据包标志位和流程如下第一次握手SYN包客户端 → 服务器标志位SYN1表示请求建立连接核心字段Sequence Number序列号简称Seq随机生成一个初始值如0用于标记后续传输的数据顺序通俗理解客户端对服务器说“我想和你建立连接你能收到吗”。第二次握手SYNACK包服务器 → 客户端标志位SYN1ACK1表示确认收到客户端的连接请求同时请求建立连接核心字段Sequence NumberSeq服务器随机生成的初始值Acknowledgment Number确认号简称AckSeq客户端 1表示“我已经收到了你发送的第一个包”通俗理解服务器对客户端说“我收到你的请求了我也想和你建立连接你能收到吗”。第三次握手ACK包客户端 → 服务器标志位ACK1表示确认收到服务器的连接请求连接正式建立核心字段Sequence NumberSeq客户端初始Seq 1与第一次握手的Ack对应Acknowledgment NumberAckSeq服务器 1表示“我已经收到了你发送的第二个包”通俗理解客户端对服务器说“我收到你的确认了连接建立好了我们开始传输数据吧”。验证要点三次握手的顺序必须是“SYN → SYNACK → ACK”每个ACK包的确认号 前一个包的序列号 1这是判断三次握手正常的核心依据。4.3.2 TCP核心字段读懂数据传输三次握手完成后就进入数据传输阶段双击任意一个数据传输的TCP数据包展开“Transmission Control Protocol”核心字段解读Source Port源端口客户端的随机端口如54321用于标识客户端的进程Destination Port目的端口服务器的端口如80端口对应HTTP服务Sequence NumberSeq当前数据包中数据的起始序列号用于确保数据按顺序传输Acknowledgment NumberAck期望收到的下一个数据包的序列号用于确认数据已收到Flags标志位除了SYN、ACK还有FIN表示请求关闭连接四次挥手时使用RST表示异常终止连接如连接出错时PSH表示推送数据让接收方立即处理数据Length长度当前TCP数据包中数据的大小。4.4 新手常见问题与技巧找不到三次握手的数据包解决确保过滤器输入正确tcp 服务器IP关闭浏览器所有标签页重新访问网站避免复用已有的TCP连接抓包时快速访问网站避免其他TCP流量干扰。如何快速筛选三次握手的数据包技巧使用过滤器 tcp.flags.syn 1 and tcp.flags.ack 0 筛选第一次握手SYN包tcp.flags.syn 1 and tcp.flags.ack 1 筛选第二次握手SYNACK包tcp.flags.ack 1 and tcp.flags.syn 0 筛选第三次握手ACK包。三次握手异常怎么办解决若只有SYN包没有SYNACK包说明服务器未响应可能是服务器不可达、端口关闭若三次握手不完整可能是网络卡顿或防火墙拦截。五、核心协议三HTTP协议网页传输数据的“内容载体”TCP建立连接后客户端和服务器之间就可以传输实际数据了而HTTP协议的核心作用就是“传输网页相关数据”如HTML代码、图片、文字是我们访问网页的直接“内容载体”基于TCP协议工作属于应用层协议。简单来说TCP负责“建立连接、可靠传输”HTTP负责“传输什么内容”二者协同工作才能让我们看到完整的网页。5.1 HTTP协议核心基础必懂核心作用在客户端浏览器和服务器之间传输网页相关的数据请求和响应通信模式采用“请求-响应”模式客户端发送HTTP请求请求网页内容服务器返回HTTP响应返回网页数据核心组成每个HTTP交互都包含“请求包”和“响应包”二者一一对应常用请求方法GET获取网页资源如访问百度首页、POST提交数据如登录、注册常用响应状态码200 OK请求成功、404 Not Found资源未找到、500 Internal Server Error服务器内部错误。5.2 抓包实战捕获HTTP请求与响应数据包目标捕获“浏览器访问百度”时的HTTP请求和响应数据包拆解其结构读懂网页传输的内容。步骤启动Wireshark抓包选择当前使用的网络接口WiFi/以太网点击蓝色鲨鱼鳍按钮启动抓包设置过滤器在顶部过滤框输入 http只显示HTTP协议的数据包按回车触发HTTP请求打开浏览器访问“http://www.baidu.com”等待页面加载完成停止抓包点击红色方块按钮停止抓包此时数据包列表中会显示多条HTTP数据包1条GET请求包多条响应包。5.3 数据包拆解读懂HTTP请求与响应HTTP数据包分为“请求包”和“响应包”结构清晰新手重点掌握核心结构和关键字段就能读懂网页传输的内容。5.3.1 HTTP请求包客户端→服务器双击数据包列表中“Info”列显示“GET / HTTP/1.1”的数据包这是HTTP GET请求包在详情区展开“Hypertext Transfer Protocol”核心结构从 top 到下请求行Request Line最核心的部分包含3个关键信息请求方法GET获取资源这是最常用的请求方法用于访问网页、图片等静态资源请求URI请求的资源路径如“/”表示百度首页的根资源协议版本HTTP/1.1目前最常用的版本还有HTTP/2、HTTP/3示例GET / HTTP/1.1请求百度首页的根资源使用HTTP/1.1协议。请求头Request Headers包含客户端的相关信息用于告诉服务器“客户端的情况”常用字段Host请求的服务器域名如www.baidu.com告诉服务器“我要访问哪个网站”User-Agent客户端的标识如浏览器型号、系统版本告诉服务器“我是什么设备/浏览器”Accept客户端可接受的数据类型如text/html表示可接受网页内容Cookie客户端的会话信息用于保持登录状态如登录百度后Cookie会记录登录信息。空行请求头和请求体之间的空行用于分隔两者必须存在否则服务器无法识别请求体Request BodyGET请求的请求体通常为空因为GET请求的参数会拼接在URL中POST请求的请求体包含提交的数据如登录时的用户名、密码。5.3.2 HTTP响应包服务器→客户端双击请求包对应的响应包源IP是百度服务器IP目的IP是自己电脑IP“Info”列显示“HTTP/1.1 200 OK”在详情区展开“Hypertext Transfer Protocol”核心结构状态行Status Line最核心的部分包含3个关键信息协议版本HTTP/1.1响应状态码200表示请求成功这是最常见的状态码其他常用状态码404 Not Found请求的资源不存在如访问错误的URL500 Internal Server Error服务器内部错误服务器自身出现问题302 Found重定向将请求跳转到其他URL状态描述OK与状态码对应200对应OK404对应Not Found。响应头Response Headers包含服务器的相关信息告诉客户端“服务器的情况”和“返回数据的信息”常用字段Content-Type返回数据的类型如text/html; charsetutf-8表示返回的是UTF-8编码的网页内容Content-Length返回数据的大小单位字节Server服务器的软件版本如BWS/1.1百度的服务器标识Set-Cookie服务器向客户端设置Cookie用于保持会话状态。空行响应头和响应体之间的空行用于分隔两者响应体Response Body最核心的部分包含服务器返回的实际数据如百度首页的HTML代码、图片数据在Wireshark中可通过“Follow → HTTP Stream”查看完整的响应内容。5.4 新手常见问题与技巧抓不到HTTP数据包只抓到HTTPS数据包解决访问网页时确保URL开头是“http://”而非“https://”HTTPS是加密的HTTP协议后续会专门讲解部分网站会自动跳转到HTTPS可尝试访问其他HTTP网站如http://example.com。如何查看完整的HTTP请求/响应内容技巧右键任意一条HTTP数据包选择“Follow → HTTP Stream”会弹出一个窗口显示完整的请求和响应内容包括请求头、响应头、响应体方便查看。响应状态码为404或500是什么意思解决404表示请求的URL错误资源不存在检查URL是否拼写正确500表示服务器内部错误与客户端无关可尝试刷新页面或换个时间访问。六、综合实战串联三种协议看懂完整上网流程学到这里我们已经掌握了DNS、TCP、HTTP三种协议的核心内容现在通过一个综合实战串联这三种协议看看我们打开浏览器访问百度的完整流程真正理解“上网背后的逻辑”。实战目标捕获“访问百度”的完整流量串联DNS解析→TCP三次握手→HTTP请求响应的全过程。步骤清理DNS缓存参考DNS协议实战步骤启动Wireshark抓包不设置过滤器捕获所有流量打开浏览器访问“http://www.baidu.com”等待页面加载完成后关闭浏览器停止抓包按时间顺序分析数据包串联流程① DNS解析客户端发送DNS查询包查询www.baidu.com对应的IP地址DNS服务器返回响应包返回IP202.108.22.5② TCP三次握手客户端与百度服务器202.108.22.5:80建立TCP连接SYN→SYNACK→ACK③ HTTP请求响应客户端发送HTTP GET请求包请求百度首页服务器返回HTTP响应包200 OK返回网页内容④ TCP四次挥手关闭浏览器后客户端与服务器关闭TCP连接后续进阶讲解。验证使用过滤器分别筛选dns、tcp、http协议对应查看每个阶段的数据包确认流程完整、字段正常。七、本期总结与下期预告7.1 本期核心知识点回顾必掌握掌握了DNS协议知道其核心作用是“域名→IP解析”能捕获并解读DNS查询与响应包看懂事务ID、查询类型、IP地址等核心字段掌握了TCP协议理解其“可靠传输”的特点能识别TCP三次握手的流程和核心标志位SYN、ACK读懂序列号、确认号等关键字段掌握了HTTP协议能捕获并解读HTTP请求与响应包看懂请求行、响应状态码、请求头、响应体等核心结构知道GET请求的特点完成了综合实战串联三种协议理解了“访问网页”的完整流程DNS解析→TCP连接→HTTP传输。本期重点无需深入协议的底层细节重点是“能通过Wireshark抓包读懂每种协议的核心字段和通信流程”建立对网络通信的直观认知摆脱理论抽象的困扰。7.2 下期预告进阶实战下期第四期我们将进入Wireshark进阶实战环节网络故障排查与简单安全分析。学会解读数据包后我们要学会用Wireshark解决实际问题——比如排查“网页打不开”“网络卡顿”“DNS解析失败”等常见故障同时入门简单的安全分析识别异常数据包如TCP连接异常、HTTP异常请求让Wireshark真正发挥工具的价值从“看懂数据包”升级为“用数据包解决问题”。网安学习资源网上虽然也有很多的学习资源但基本上都残缺不全的这是我们和网安大厂360共同研发的的网安视频教程内容涵盖了入门必备的操作系统、计算机网络和编程语言等初级知识而且包含了中级的各种渗透技术并且还有后期的CTF对抗、区块链安全等高阶技术。总共200多节视频100多本网安电子书最新学习路线图和工具安装包都有不用担心学不全。这些东西我都可以免费分享给大家需要的可以点这里自取:网安入门到进阶资源

更多文章