如何利用wireshark 重传包对TCP消息进行分析,快速重传

新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
白手起家, 积分 36, 距离下一级还需 164 积分
论坛徽章:0
在软路由中利用netfilter 钩子函数 修改 修改 http 报文,&&http request&&的 http type 1.1 修改成 1.0 ,&&data 内容不压缩. 再在 responed 尾部插入 一个 段数据.
插入和校验均成功, 在 网络 中无 tc 限速的情况,一切正常, 如果网络中 有 tc 进行限速
会出现浏览网页概率性出现网页卡死情况,& &wireshark 截包查看,是出现丢包情况,& &具体查看 是 tcp 进行快速重传, 三次均无ack应答.& &卸载此模块后, 浏览网页正常.& &
找好久一直没有找到如何解决此问题, 请大神给一个解决思路.
&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp
论坛徽章:36
没有 ACK 是谁没有给 ACK? server ?
白手起家, 积分 36, 距离下一级还需 164 积分
论坛徽章:0
client 没有回 ack 给 server.& & 修正下, 是 serer&&重传tcp包 三次, 三次 client&&均未有 ack 包回复.
白手起家, 积分 36, 距离下一级还需 164 积分
论坛徽章:0
client 没有回 ack 给 server.& & 修正下, 是 serer&&重传tcp包 三次, 三次 client&&均未有 ack 包回复.
白手起家, 积分 36, 距离下一级还需 164 积分
论坛徽章:0
在 tcp 包里面 增加 字节&&seq&&和 ack& &还有 sack, 均有修正.&&一出现丢包 就是 发现 server 重发的 tcp数据包给 client 连续三次,&&
这三次,client 均未发送 ack 给server进行回复..
很奇怪 不知道什么原因引起的,& &网络 tc 有限速 会丢包, 但是 不应该&&重发的 连续的三次都丢吧.
巨富豪门, 积分 20926, 距离下一级还需 19074 积分
论坛徽章:18
1. 不加载模块,但是有tc限速的情况下,浏览网页是否正常?
2. netfilter改包和tc限速是在同一个设备上,还是在不同的设备上?
3. 在路径的多个点上抓包,确认数据在什么阶段丢的,比如tc前还是tc后,client有没有收到这些重传的报文?
4. 可能的话,修改tc丢包的行为,变成每隔几个报文丢一个包,或者干脆去掉tc,用丢包来模拟tc,看看重传的行为是否一致?
白手起家, 积分 36, 距离下一级还需 164 积分
论坛徽章:0
1. 不加载模块, tc限速情况下, 浏览网页 偶尔也会出现浏览网页卡死, 不过概率很小,可以忍受.
2. tc 和 模块不再同一设备
3. 确定 抓包 在模块之后, 在 tc 之前&&
我在试试 在 各个阶段抓下包,&&谢谢啦
论坛徽章:36
client 已经收到 server 的回包了,但是 client 没有 ack 吗?
论坛徽章:36
对头。开发网络程序,定位问题是,最基本的就是各个环节抓包,快速定位出问题出在哪个阶段。
白手起家, 积分 36, 距离下一级还需 164 积分
论坛徽章:0
分段抓包发现 在 模块所在 设备 和&&tc 所在设备间 出现&&[Reassembly error, protocol TCP: New fragment overlaps old data (retransmission?)] 这个错误,&&好像和 网卡有关
北京盛拓优讯信息技术有限公司. 版权所有 京ICP备号 北京市公安局海淀分局网监中心备案编号:22
广播电视节目制作经营许可证(京) 字第1234号
中国互联网协会会员&&联系我们:
感谢所有关心和支持过ChinaUnix的朋友们
转载本站内容请注明原作者名及出处Wireshark数据包分析实战_百度百科
声明:百科词条人人可编辑,词条创建和修改均免费,绝不存在官方及代理商付费代编,请勿上当受骗。
Wireshark数据包分析实战
《Wireshark数据包分析实战(第2版)》从与数据包分析的基础知识开始,渐进地介绍的基本使用方法及其数据包分析功能特性,同时还介绍了针对不同协议层与无线网络的具体实践技术与经验技巧。在此过程中,作者结合一些简单易懂的实际网络案例,图文并茂地演示使用Wireshark进行数据包分析的技术方法,使读者能够顺着本书思路逐步地掌握网络数据包与分析技能。最后,《Wireshark数据包分析实战(第2版)》使用、IT技术支持、应用程序开发者们经常遇到的实际网络问题(包括无法正常上网、程序连接数据库错误、很卡,以及遭遇扫描渗透、攻击等),来讲解如何应用数据包分析技术和技巧,快速定位故障点,并找出原因以解决实际问题。
Wireshark数据包分析实战基本介绍
Wireshark数据包分析实战内容简介
《Wireshark数据包分析实战(第2版)》覆盖了无线WiFi网络中的嗅探与数据包分析技术,同时也给出了嗅探与数据包分析领域丰富的参考技术文档、网站、开源工具与开发库等资源列表。《Wireshark数据包分析实战(第2版)》是国内第一本,也是唯一的一本图书;它通过示例捕获文件来讲解Wireshark的应用,是//灰帽和安全技术从业人员的必读读书。   《Wireshark数据包分析实战(第2版)》适合、安全工程师、软件开发工程师与测试人员,以及、信息安全等专业学生与网络技术爱好者阅读。
Wireshark数据包分析实战作者简介
作者:(美国)Chris Sanders 译者:诸葛建伟
许伟林     Chris Sanders,是一名计算机安全咨询顾问、作家和研究人员。他还是一名SANS导师,持有、GCIA、GCIH、GREM等行业证书,并定期在网站和自己的博客ChrisSanders.org发表文章。Sanders每天都会使用进行数据包分析。他目前居住在美国南卡罗米纳州,以国防承包商的身份工作。
Wireshark数据包分析实战媒体推荐
各层次的必备手册。   ——Linux Pro杂志   一本优秀、易懂且具有良好格式的实用指南。   ——   如果您需要掌握数据包分析的基础知识,本书将是您起步的好地方。   ——   本书能够让您有一技之长,它抓住了书名中的关键词—实用,很好地为读者们提供了进行数据包分析所需要知道的基本知识,然后又恰如其分地带领他们进入到使用Wireshrak软件解决现实问题的缤纷世界中。   ——   您的网络中有未知主机在和其他主机聊天吗?您的电脑是否在和陌生人说话?您需要一个数据包来找出这些问题的真正答案。是能够完成这件事情的最佳工具,而本书是学习这个工具最好的方式之一。   ——自由软件杂志   新手入门的最佳读物!   ——DAEMON NEWS
Wireshark数据包分析实战图书目录
第1章 数据包分析技术与网络基础   1.1数据包分析与数据包   1.1.1评估数据包嗅探器   1.1.2数据包嗅探器工作原理   1.2网络通信原理   1.2.1协议   1.2.2七层   1.2.3   1.2.4网络硬件   1.3   1.3.1广播流量   1.3.2流量   1.3.3流量   1.4小结   第2章 监听网络线路   2.1   2.2在连接的网络中进行   2.3在交换式网络中进行嗅探   2.3.1   2.3.2集线器输出   2.3.3使用   2.3.4ARP欺骗   2.4在路由网络环境中进行嗅探   2.5部署的实践指南   第3章 Wimshark入门   3.1Wireshark简史   3.2 Wireshark的优点   3.3安装Wireshark   3.3.1在微软Windows系统中安装   3.3.2在Linux系统中安装   3.3.3在Mac OS X系统中安装   3.4 Wireshark初步入门   3.4.1第一次捕获数据包   3.4.2Wireshark主窗口   3.4.3Wireshark首选项   3.4.4数据包彩色高亮   第4章 玩转捕获数据包   4.1使用捕获文件   4.1.1保存和导出捕获文件   4.1.2合并捕获文件   4.2分析数据包   4.2.1查找数据包   4.2.2标记数据包   4.2.3打印数据包   4.3设定时间显示格式和相对参考   4.3.1时间显示格式   4.3.2数据包的相对时间参考   4.4设定捕获选项   4.4.1捕获设定   4.4.2捕获文件设定   4.4.3停止捕获选项   4.4.4显示选项   4.4.5名字解析选项   4.5使用过滤器   4.5.1捕获过滤器   4.5.2显示过滤器   4.5.3保存过滤器   第5章 Wireshark高级特性   5.1 网络端点和会话   5.1.1查看端点   5.1.2查看网络会话   5.1.3使用端点和会话窗口进行问题定位   5.2基于协议的统计数据   5.3名字解析   5.3.1开启名字解析   5.3.2名字解析的潜在弊端   5.4协议解析   5.4.1更换解析器   5.4.2查看解析器源代码   5.5跟踪流   5.6数据包长度   5.7图形展示   5.7.1查看IO图   5.7.2双向时间图   5.7.3   5.8专家信息   第6章 通用底层网络协议   6.1   6.1.1 ARP头   6.1.2数据包1:ARP请求   6.1.3数据包2:ARP响应   6.1.4无偿的ARP   6.2   6.2.1
  6.2.2IPv4头   6.2.3存活时间   6.2.4IP分片   6.3传输控制协议   6.3.1TCP头   6.3.2TCP端口   6.3.3TCP的   6.3.4TCP终止   6.3.5TCP重置   6.4   6.5互联网控制消息协议   6.5.1ICMP头   6.5.2ICMP类型和消息   6.5.3Ech0请求与响应   6.5.4   第7章 常见高层网络协议   7.1DHCP   7.1.1DHCP头结构   7.1.2DHCP续租过程   7.1.3DHCP租约内续租   7.1.4DHCP选项和消息类型   7.2   7.2.1DNS数据包结构   7.2.2一次简单的DNS查询过程   7.2.3DNS问题类型   7.2.4DNS   7.2.5DNS区域传送   7.3传输协议   7.3.1使用HTTP浏览   7.3.2使用HTTP传送数据   7.4小结   第8章 基础的现实世界场景   8.1数据包层面的社交网络   8.1.1捕获流量   8.1.2捕获Facebook流量   8.1.3比较Twitter和Facebook的方法   8.2捕获ESPN.tom流量   8.2.1使用会话窗口   8.2.2使用协议分层统计窗口   8.2.3查看DNS流量   8.2.4查看   8.3现实世界问题   8.3.1无法访问Intemet:配置问题   8.3.2无法访问Intemet:意外   8.3.3无法访问Intemet:上游问题   8.3.4打印机故障   8.3.5分公司之困   8.3.6生气的开发者   8.4小结   第9章 让网络不再卡   9.1 TCP的错误恢复特性   9.1.1TCP重传   9.1.2TCP重复确认和快速重传   9.2 TCP   9.2.1调整窗口大小   9.2.2用零窗口通知停止数据流   9.2.3TCP实战   9.3从错误控制和中学到的   9.4定位高延迟的原因   9.4.1正常通信   9.4.2慢速通信——线路延迟   9.4.3慢速通信——客户端延迟   9.4.4慢速通信——服务器延迟   9.4.5延迟定位框架   9.5网络基线   9.5.1站点   9.5.2主机基线   9.5.3应用程序基线   9.5.4基线的其他注意事项   9.6小结   第10章 安全领域的数据包分析   10.1 网络侦察   10.1.1SYN扫描   10.1.2操作系统指纹术   10.2漏洞利用   10.2.1   10.2.2ARP缓存中毒攻击   10.2.3   10.3小结   第11章 无线网络数据包分析   11.1物理因素   11.1.1一次一个信道   11.1.2无线信号干扰   11.1.3检测和分析信号干扰   11.2模式   1 1.3在Windows上嗅探无线网络   11.3.1 配置AirPcap   11.3.2使用捕获流量   11.g在Linux上嗅探无线网络   11.5 802.11数据包结构   11.6在Packet List面板增加无线专用列   11.7无线专用过滤器   11.7.1筛选特定BSS ID的流量   11.7.2筛选特定的无线数据包类型   11.7.3筛选特定频率   11.8无线网络安全   11.8.1成功的认证   11.8.2失败的WEP认证   11.8.3成功的WPA认证   11.8.4失败的WPA认证   11.9小结   附录A 延伸阅读实验二IP层协议分析;一、实验目的;1.了解ICMP、IP数据包格式;;2.掌握IP数据报的组成和各字段的功能,分析数据;4.理解ARP命令、PING命令与ARP、ICM;二、实验环境;与因特网连接的计算机网络系统;操作系统为wind;三、实验步骤;(说明:以下所截界面上的数据与你电脑上的数据会有;2.在MSDOS下使用ARPCd*命令清除自己电;图1ARP
实验二IP层协议分析 一、 实验目的 1. 了解ICMP、IP数据包格式; 2. 掌握IP数据报的组成和各字段的功能,分析数据报的IP首部; 3. 理解ARP、ICMP与IP的关系; 4. 理解ARP命令、PING命令与ARP、ICMP协议的关系; 5. 熟悉ARP和ICMP协议包格式; 6. 了解ARP、ICMP会话过程。 二、 实验环境 与因特网连接的计算机网络系统;操作系统为windows;WireShark、IE等软件。 三、 实验步骤 (说明:以下所截界面上的数据与你电脑上的数据会有所不同) 1. 首先进入MSDOS字符界面 2. 在MSDOS下使用ARPCd*命令清除自己电脑中MAC和IP映射表。见图1所示
图1ARP及PING命令运行结果 3. 回到windows图形界面下 4. 启动WireShark,开始捕获分组。 5. 在MSDOS下键入Pingwww./,见图1所示。 6. 回到WireShark并停止抓包,见图2所示。 7. 查找到ARP请求和应答数据包,回答实验报告内容中的1-2题 8. 查到PING命令执行时,产生的ICMP请求和应答报文,回答实验报告内容中的3-5题
图2WireShark抓包结果 四、 实验报告内容 1. 什么是ARP?ARP与IP的关系。 2. ARP请求和应答数据包的数据部分的内容是什么?代表什么意思? 3. 什么是ICMP?ICMP与IP的关系。 4. ICMP的请求和应答报文的头部各字段的十六进制值分别是什么,代表什么含义?数据部分的内容以及IP头部的十六进制值分别是什么?内容。 5. 什么是“会话”?本实验中那些协议有会话过程?IP有否“会话”? 你主机的IP地址是什么?你所访问的主页所在服务器的IP地址是什么?实验三TCP协议分析 一、 实验目的及任务 1. 熟悉TCP协议的基本原理 2. 利用WireShark对TCP协议进行分析 二、 实验环境
与因特网连接的计算机网络系统;操作系统为windows;主机安装WireShark、IE等软件。 三、 实验步骤 捕获本地主机与远程服务器交换的TCP报文段 (1) (2) (3) (4) 启动WireShark,开始分组捕获。 启动浏览器,打开.cn/网页, 停止分组捕获 在显示筛选规则编辑框中输入“tcp”,可以看到在本地主机和服务器之间传输的一系列tcp和HTTP消息,你应该能看到包含SYN Segment的三次握手。也可以看到有主机向服务器发送的一个HTTP GET消息和一系列的“http continuation”报文。 (5) 分析TCP的拥塞控制,在WireShark已捕获分组列表子窗口中选择一个TCP报文段。选择菜单:Statistics->TCP Stream Graph->Time-Sequence-Graph(Stevens)。你会看到如下所示的图。
回答“四、实验报告内容”中的有关问题。 四、 实验报告内容 在实验的基础上,回答以下问题: 1. 向.cn服务器传送文件的客户端主机的IP地址和TCP端口号分别是多少? 2. .cn服务器的IP地址是多少?对这一连接,它用来发送和接收TCP报文的端口号是多少? 3. 客户服务器之间用于初始化TCP连接的TCPSYN报文段的序号(sequence number)是多少?在该报文段中,是用什么来标示该报文段是SYN报文段的? 4. 服务器向客户端发送的SYN ACK报文段序号是多少?该报文段中,Acknowledgement字段的值是多少?.cn服务器是如何决定此值的?在该报文段中,是用什么来标识该报文段是SYNACK报文段的? 5. 包含HTTP GET消息的TCP报文段的序号是多少? 6. 如果将包含HTTPGET消息的TCP报文段看作是TCP连接上的第一个报文段,那么该TCP连接上的第六个报文段的序号是多少?是何时发送的?该报文段所对应的ACK是何时接收的? 7. 前六个TCP报文段的长度各是多少? 8. 在整个跟踪过程中,接收端向发送端通知的最小可用缓存是多少?限制发送端的传输以后,接收端的缓存是否仍然不够用? 9. 在跟踪文件中是否有重传的报文段?判断的依据是什么? 10. TCP连接的吞吐率(bytes transferred per unit time,单位时间传输的字节数)是多少?写出你的计算过程。 11. 利用Time-Sequence-Graph(Stevens)plotting工具,浏览由客户端向服务器发送的报文段序号和时间对应关系图。你能否辨别出TCP慢启动阶段的起止,以及在何处转入避免拥塞阶段? 12. 阐述所测量到的数据与TCP理想化的行为有何不同?
实验四 DNS分析 一、 实验目的及任务 1. 熟悉并掌握WireShark的基本操作,了解网络协议实体间的交互以及报文交换。 2. 分析DNS协议 二、 实验环境 与互连网连接的计算机;主机操作系统为Windows;WireShark、IE等软件。 三、 实验步骤 在MSDOS环境(开始菜单->运行->输入命令“cmd”) 运行nslookup、ipconfig命令,可以帮助你分析。 nslookup允许主机向指定的DNS服务器查询某个DNS记录。如果没有指明DNS服务器,nslookup将把查询请求发向默认的DNS服务器。 nslookup的一般格式是:nslookupCoption1Coption2host-to-finddns-server
ipconfig命令用来显示你当前的TCP/IP信息,包括:你的地址、DNS解析器和服务器的信息、适配器的类型等信息。 ipconfig/all:显示与主机相关的信息用命令 ipconfig/displaydns:查看DNS缓存中的记录用命令 ipconfig/flushdns:清空DNS缓存
跟踪并分析DNS的基本步骤: (1) 利用ipconfig命令清空主机上的DNS缓存。 (2) 启动浏览器,并将浏览器的缓存清空。 (3) 启动WireShark,并进行适当的设置。如,在捕获过滤框处输入: “ip.addr==your_IP_address”(如:ip.addr==10.17.7.23) 过滤器将会删除所有目的地址和源地址与指定IP地址都不同的分组。 (4) 开始WireShark捕获分组。 (5) 在浏览器的地址栏中输入:www./后,回车。 (6) 按stop按钮或菜单停止分组捕获。 (7) 开始WireShark分组捕获。 (8) 上进行nslookup(即执行命令:)。 (9) 停止分组捕获。 (10) 在显示筛选规则编辑框中输入“dns”,找到dns相关的协议数据单元,分析协议控制信息,回答“实验报告内容”中的有关问题。 三亿文库包含各类专业文献、应用写作文书、各类资格考试、高等教育、外语学习资料、行业资料、中学教育、74计算机网络wireshark-实验参考资料等内容。 
 Wireshark抓包工具计算机网络实验_电脑基础知识_IT/计算机_专业资料。计算机网络实验...我们对此分组进行分析: IPconfig 命令被用于显示机器的 IP 地址及修改 IP 地址...  计算机网络原理与技术实验教程-参考答案-实验报告_教育学_高等教育_教育专区。...实验 1.1 Wireshart 的使用实验 一、实验目的:掌握协议分析软件 Wireshark 的...  计算机网络实验-利用Wireshark分析协议HTTP_电脑基础知识_IT/计算机_专业资料。实验...三、实验步骤及实验报告要求 1、利用 Wireshark 俘获 HTTP 分组 (1)在进行跟踪...  计算机网络实验-WireShark基本使用方法_计算机软件及应用_IT/计算机_专业资料。WireShark基本使用方法 《计算机网络》实验报告(2)实验名称:WireShark 基本使用方法 实验...  计算机网络实验-Wireshark的安装与使用_电脑基础知识_IT/计算机_专业资料。实验 1.2 Wireshark 的安装与使用一、实验目的 1、熟悉并掌握 Wireshark 的基本使用; 2...  计算机网络实验_计算机硬件及网络_IT/计算机_专业资料。试验一利用 wireshark 抓包工具抓包 一、 实验名称使用网络协议分析仪 Wireshark 二、实验目的 1. 掌握安装和...  计算机网络复习参考资料 3页 1下载券 计算机网络实验参考资料 65页 免费 计算机...计算机网络安全知识参考... 46页 3下载券 计算机网络wireshark-实... 12页 2...  计算机网络wireshark-实... 12页 2下载券 网络实验配置参考 58页 免费喜欢...计算机网络技术实验参考材料说明一、实验素材选取:计算机网络原理是一门理论性较强...Wireshark-TCP协议分析(包结构以及连接的建立和释放) - CSDN博客
Wireshark-TCP协议分析(包结构以及连接的建立和释放)
TCP:传输控制协议
  TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。
  面向连接:
面向连接意味着使用tcp的应用程序在传输数据前必须先建立连接,就如打电话一样,要先进行拨号,等待对方响应才能开始说话。
  可靠性:tcp协议通过下列方式来提高可靠性:
应用数据被分割成TCP认为最适合发送的数据块。这和UDP完全不同,应用程序产生的数据报长度将保持不变。由TCP传递给I P的信息单位称为报文段或段
当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。
当TCP收到发自TCP连接另一端的数据,它将发送一个确认。这个确认不是立即发送,通常将推迟几分之一秒。
TCP将保持它首部和数据的检验和。这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化。如果收到段的检验和有差错,TCP将丢弃这个报文段和不确认收到此报文段(希望发端超时并重发)。
既然TCP报文段作为IP数据报来传输,而IP数据报的到达可能会失序,因此TCP报文段的到达也可能会失序。如果必要,TCP将对收到的数据进行重新排序,将收到的数据以正确的顺序交给应用层。
既然I P数据报会发生重复,TCP的接收端必须丢弃重复的数据。
TCP还能提供流量控制。TCP连接的每一方都有固定大小的缓冲空间。TCP的接收端只允许另一端发送接收端缓冲区所能接纳的数据。这将防止较快主机致使较慢主机的缓冲
字节流:两个应用程序通过TCP连接交换8 bit字节构成的字节流。
  另外,TCP对字节流的内容不作任何解释。TCP不知道传输的数据字节流是二进制数据,还是ASCII字符或者其他类型数据。对字节流的解释由TCP连接双方的应用层解释。
TCP首部格式
  tcp数据是被封装在IP数据包中的,和udp类似,在IP数据包的数据部分。tcp数据包的格式如下:
  源端口号和目的端口号与udp中类似,用于寻找发端和收端应用进程。这两个值加上IP首部中的源端IP地址和目的端IP地址唯一确定一个TCP连接,在网络编程中,一般一个IP地址和一个端口号组合称为一个套接字(socket)。
  序号:用来标识从TCP发端向TCP收端发送的数据字节流,它表示在这个报文段中的的第一个数据字节。在tcp中tcp用序号对每个字节进行计数(这个值与发送的帧数没有关系,而是与发送的数据字节数有关系,后面会有说明)。
  确认序号:包含发送确认的一端所期望收到的下一个序号。因此,确认序号应当是上次已成功收到数据字节序号加 1(不是单纯的序号加1,还包括数据字节数)。
  首部长度:用于记录tcp数据报首部的长度,一般为20字节,实际值为首部长度除以4。
  URG: 紧急指针( urgent pointer)有效。
  ACK: 确认序号有效。
  PSH: 接收方应该尽快将这个报文段交给应用层。
重建连接。
  SYN: 同步序号用来发起一个连接。
  FIN: 发端完成发送任务。
  窗口大小:用于流量控制。
  检验和:检验和覆盖了整个的 TCP报文段: TCP首部和TCP数据,与udp相似需要计算伪首部。
Wireshark抓包分析TCP结构
  利用wireshark抓取一个tcp数据包,查看其具体数据结构和实际的数据:
TCP连接的建立
  利用TCP传输数据前,需要建立tcp连接,tcp连接的建立有3个主要过程,叫做3次握手,具体过程如下图所示:
首先客户端发送一个SYN包给服务器(SYN=1,Seq为主机选择的这个连接的初始序号),然后等待应答。
服务器端收到SYN包,回应给客户端一个ACK =x+1、SYN=1的TCP数据段(ACK表示确认序号有效,即收到上一个包,这里加1并不是ACK的值加1,ACK是一个标志位,这里会变成1,而x+1则是希望收到的下一个包的序列号,这个值放在包的确认序列号字段中,而只有ACK=1时,确认序列号才有效)。
   3. 客户必须再次回应服务器端一个ACK确认数据段(这里的Seq为x+1)。
经过上面3个过程就建立了一个tcp连接,接着就可以发送数据了,因为建立连接使用了一个序列号x,所以发送数据的第一个字节序号为x+1。
注意:这里tcp为应用层提供全双工服务,意味数据能在两个方向上独立地进行传输,因此连接的每一段都有各自的传输数据序号(对应于上图中的x和y,这两个值是没有必然联系的)。
Wireshark抓包分析TCP3次握手
  下面通过利用http应用层连接一个网络,实现tcp的3次握手和简单的数据交换过程,下面通过抓包来实际观察这个过程,首先我们先看看抓到的包:
  从第一行的tcp往下看,前面3个tcp包为3次握手的过程,接着http包说明成功建立连接,主机向服务器发送一个http应用请求,服务器收到请求后,返回一个tcp确认帧,接着发送一个http应答给主机,主机收到服务器的http应答数据后,又发送一个tcp确认帧,确认收到了数据。这样图中的前7个包实现了主机和服务器建立连接,并实现一次简单的数据请求应答过程。即下图所示的交互按键回显过程:
接下来是按照顺序的7个数据帧的数据结构。数据帧顺序分别为:
  1. 主机发起一个tcp连接请求(tcp),
  2. 服务器响应连接请求(tcp),
  3. 主机返回ACK完成3次握手成功建立连接(tcp),
  4. 主机发送一个http网页请求(http),
  5. 服务器收到请求返回一个ACK帧(tcp),
  6. 服务器根据请求发送数据到主机(http),
  7. 主机收到服务器数据返回一个ACK帧(tcp),具体帧细节见下图:
TCP连接的释放
  当通信双方完成数据传输,需要进行TCP连接的释放,由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。这个原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。收到一个 FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。因为正常关闭过程需要发送4个TCP帧,因此这个过程也叫作4次挥手。具体过程如下图:
过程(默认客户端发起关闭):
  1. TCP客户端发送一个FIN,关闭客户端到服务器端的数据传送。(客户端不再发送报文给服务器端,但可接受服务器端报文)
  2. 服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。
  3.服务器关闭客户端的连接,发送一个FIN给客户端。(服务器端关闭到客户端的数据传送)
  4.客户段发回ACK报文确认,并将确认序号设置为收到序号加1。
下面通过wireshark抓包了解具体的释放连接过程,通过断开一个连接,抓取到4个TCP帧,帧顺序依次为:
  1. 主动关闭放发送一个FIN帧给被动方
  2. 被动方收到关闭信息返回一个确认ACK帧
  3. 被动方发送一个FIN帧给主动方
  4. 主动方收到被动方的FIN关闭信息返回一个ACK帧,连接释放
下面为按照顺序的帧数据结构详细信息:
TCP的最大报文段长度
  上面介绍了TCP连接的建立和释放过程,下面介绍一下TCP的最大报文段长度。
  最大报文段长度(MSS)表示TCP传往另一端的最大块数据的长度。当一个连接建立时,连接的双方都要通告各自的MSS。一般来说,MSS越大越好,因为报文段越大允许每个报文段传送的数据就越多,相对IP和TCP首部有更高的网络利用率。
  MSS选项只能出现在SYN报文段中,所以只能在SYN=1的帧中才会有MSS选项说明报文的最大段长度。
具体参考:
  关于TCP的内容还有很多,这里不再详细说明,但是需要知道,TCP连接的建立和释放还有几种比较特殊的情况,同时打开(SYN)建立连接,同时关闭或半关闭来释放连接的情况都是存在的,还有一些TCP的可选字段,这里都不再讲了,具体可以参考:TCP/IP 详解卷1。
本文已收录于以下专栏:
相关文章推荐
没有任何一个程序员在做项目的时候不会遇到网络编程的问题,要解决这些问题除了对各种网络协议深入了解之外,还需要掌握各种网络分析工具的用法,不用多说wireshark绝对是这方面的翘楚,可惜的是,wire...
一. TCP/IP协议族
      TCP/IP是一个协议族,通常分不同层次进行开发,每个层次负责不同的通信功能。包含以下四个层次:
1. 链路层,也称作数据链路层或...
一、网络爬虫的定义
网络爬虫,即Web Spider,是一个很形象的名字。
把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛。
网络蜘蛛是通过网页的链接地址来寻找网页的。
从网站某一...
Server:      1 import socket      2       3 address = ('127.0.0.1',...
Linux的SOCKET编程详解
1. 网络中进程之间如何通信
进 程通信的概念最初来源于单机系统。由于每个进程都在自己的地址范围内运行,为保证两个相互通信的进
程之间既互不干扰又...
前面十章爬虫笔记陆陆续续记录了一些简单的Python爬虫知识,
用来解决简单的贴吧下载,绩点运算自然不在话下。
不过要想批量下载大量的内容,比如知乎的所有的问答,那便显得游刃不有余了点。
于是乎,爬虫...
原文地址:/donne/archive//72500.aspx
IP分片 在以太网上,由于电气限制,一帧不能超过1518字节,除去以...
传输控制协议,为数据提供可靠的端到端传输,处理数据的顺序和错误恢复,保证数据能够到达其应到达的地方
Transmission Control Protocol, Sr...
wireshark是在数据链路层抓包,如下图抓的UDP包,实际上抓到的是封装了UDP数据包的MAC帧,有以太网src IP和dst IP在内
MAC帧主要有两种格式,一种是以太网...
网络基本功(二十四):Wireshark抓包实例分析TCP重传
转载请在文首保留原文出处:EMC中文支持论坛/go/chinese 
他的最新文章
讲师:宋宝华
讲师:何宇健
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)

我要回帖

更多关于 wireshark tcp重传 的文章

 

随机推荐