当前位置: 首页 > news >正文

西安网站制作托设计网站大全

西安网站制作托,设计网站大全,数字营销专业学什么,网站制作平台建设前言 默认情况下,Wireshark 的 TCP 解析器会跟踪每个 TCP 会话的状态,并在检测到问题或潜在问题时提供额外的信息。在第一次打开捕获文件时,会对每个 TCP 数据包进行一次分析,数据包按照它们在数据包列表中出现的顺序进行处理。可…

前言

默认情况下,Wireshark 的 TCP 解析器会跟踪每个 TCP 会话的状态,并在检测到问题或潜在问题时提供额外的信息。在第一次打开捕获文件时,会对每个 TCP 数据包进行一次分析,数据包按照它们在数据包列表中出现的顺序进行处理。可以通过 “Analyze TCP sequence numbers” TCP 解析首选项启用或禁用此功能。

TCP 分析展示

在数据包文件中进行 TCP 分析时,关于 “TCP Retransmission” 一般是如下显示的,包括:

  1. Packet List 窗口中的 Info 信息列,以 [TCP Retransmission] 黑底红字进行标注;
  2. Packet Details 窗口中的 TCP 协议树下,在 [SEQ/ACK analysis] -> [TCP Analysis Flags] 中定义该 TCP 数据包的分析说明。

考虑到 TCP 乱序、重传场景的复杂性,专家信息在重传的判断上,前面都会有一个(suspected),表示疑似,说明并不是百分百正确。

TCP Retransmission 定义

文档中关于 TCP Retransmission 的定义看起来简单,但实际考虑到 TCP 乱序、重传场景的复杂性,在 TCP 分析中对于 TCP Retransmission 是与 TCP Spurious RetransmissionTCP Fast RetransmissionTCP Out-Of-Order 等在一起判断标记乱序或重传类型,而在不少场景还会有判断出错的问题,当然 Wireshark 考虑到这种情况,也有手动修正的选项,这正好也侧面证明了上面的说法,关于 TCP 乱序、重传的复杂性。

TCP Retransmission 的定义如下,当以下所有条件都为真时设置:

  • 不是 Keep-Alive 数据包
  • TCP 段大小大于零或设置了 SYN/FIN
  • 同方向之前下一个期望的 Seq Num 大于当前数据包的 Seq Num
Set when all of the following are true:This is not a keepalive packet.
In the forward direction, the segment length is greater than zero or the SYN or FIN flag is set.
The next expected sequence number is greater than the current sequence number.

具体的代码如下,总的来说这段代码是 Wireshark 中 TCP 分析模块的一部分,用于检测和标识 TCP 数据包中的各种重传类型。它的主要功能是根据当前数据包的序列号、长度、标志位以及之前收到的 TCP 数据包的信息,判断当前数据包是否属于重传,如果是则进一步确定它属于哪种重传类型。

根据分析 TCP 数据包的各种特征,对重传数据包进行分类,有助于更好地理解 TCP 连接中的重传行为,对于诊断网络问题很有帮助。这段代码的主要逻辑如下,如果所有下述条件均满足,则认为该数据包是一个重传包。

实际上 TCP Retransmission 是在符合一定条件之后,再依次判断是否属于 TCP Spurious RetransmissionTCP Fast RetransmissionTCP Out-Of-Order 等,如果之前都不匹配,但满足以下条件时,即被认定为 TCP Retransmission,即普通的 TCP 重传。

  • 检查 seq_not_advanced,序列号是否未递增。
    /* RETRANSMISSION/FAST RETRANSMISSION/OUT-OF-ORDER* If the segment contains data (or is a SYN or a FIN) and* if it does not advance the sequence number, it must be one* of these three.* Only test for this if we know what the seq number should be* (tcpd->fwd->nextseq)** Note that a simple KeepAlive is not a retransmission*/if (seglen>0 || flags&(TH_SYN|TH_FIN)) {gboolean seq_not_advanced = tcpd->fwd->tcp_analyze_seq_info->nextseq&& (LT_SEQ(seq, tcpd->fwd->tcp_analyze_seq_info->nextseq));guint64 t;guint64 ooo_thres;...if (seq_not_advanced) {/* Then it has to be a generic retransmission */if(!tcpd->ta) {tcp_analyze_get_acked_struct(pinfo->num, seq, ack, TRUE, tcpd);}tcpd->ta->flags|=TCP_A_RETRANSMISSION;/** worst case scenario: if we don't have better than a recent packet,* use it as the reference for RTO*/nstime_delta(&tcpd->ta->rto_ts, &pinfo->abs_ts, &tcpd->fwd->tcp_analyze_seq_info->nextseqtime);tcpd->ta->rto_frame=tcpd->fwd->tcp_analyze_seq_info->nextseqframe;/** better case scenario: if we have a list of the previous unacked packets,* go back to the eldest one, which in theory is likely to be the one retransmitted here.* It's not always the perfect match, particularly when original captured packet used LSO* We may parse this list and try to find an obvious matching packet present in the* capture. If such packet is actually missing, we'll reach the list first entry.* See : issue #12259* See : issue #17714*/ual = tcpd->fwd->tcp_analyze_seq_info->segments;while(ual) {if(GE_SEQ(ual->seq, seq)) {nstime_delta(&tcpd->ta->rto_ts, &pinfo->abs_ts, &ual->ts );tcpd->ta->rto_frame=ual->frame;}ual=ual->next;}}}finished_checking_retransmission_type:

next expected sequence number,为 nextseq,定义为 highest seen nextseq。

Packetdrill 示例

根据上述 TCP Retransmission 定义和代码说明,通过 packetdrill 模拟普通的超时重传现象即可,即为 TCP Retransmission 数据包。

# cat tcp_retrans_001.pkt 
0   socket(..., SOCK_STREAM, IPPROTO_TCP) = 3
+0  setsockopt(3, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
+0  bind(3, ..., ...) = 0
+0  listen(3, 1) = 0+0 < S 0:0(0) win 16000 <mss 1460>
+0 > S. 0:0(0) ack 1 <...>
+0.01 < . 1:1(0) ack 1 win 16000
+0 accept(3, ..., ...) = 4+0.01 write(4, ..., 1000) = 1000+0 `sleep 100`
# 

经 Wireshark 展示如下,可以看到满足判断条件后,重传的数据包均标记为 [TCP Retransmission] ,因为始终同方向之前下一个期望的 Seq Num 1001 大于当前数据包的 Seq Num 1。

实例

关于 TCP Retransmission 的实例,实际日常抓包中经常会看到,是比较常见的一种 TCP 分析信息,也会伴生着出现像是 TCP Dup ACKTCP Fast RetransmissionTCP Spurious Retransmission 等信息,当然有时也会单独出现。

  1. SYN TCP Retransmission

普通的客户端 SYN 超时重传场景,始终同方向之前下一个期望的 Seq Num 1 ( SYN 占用 1 字节)大于当前数据包的 Seq Num 0,所以满足判断条件后,重传的数据包均标记为 [TCP Retransmission] ,当然 SYN/ACK 超时重传场景同样如此。

  1. TCP Retransmission

普通的数据段重传场景,同方向之前下一个期望的 Seq Num 14958 大于当前数据包的 Seq Num 4878,在判断不是 TCP Spurious RetransmissionTCP Fast RetransmissionTCP Out-Of-Order 等类型后,满足序列号未递增的情况下,判定为 [TCP Retransmission]。

  1. FIN TCP Retransmission

和 SYN 超时重传一样,也是普通的 FIN 超时重传场景,始终同方向之前下一个期望的 Seq Num 2 ( FIN 占用 1 字节)大于当前数据包的 Seq Num 1,所以满足判断条件后,重传的数据包均标记为 [TCP Retransmission]

总结

考虑到数据包会出现乱序、重传等各类不同的场景,产生 TCP Retransmission 的情形自然也是五花八门,具体问题具体分析。


文章转载自:
http://ingestion.hkpn.cn
http://irritation.hkpn.cn
http://methoxide.hkpn.cn
http://harbourer.hkpn.cn
http://ottar.hkpn.cn
http://counterfeiter.hkpn.cn
http://interosseous.hkpn.cn
http://styx.hkpn.cn
http://slaphappy.hkpn.cn
http://aerostatical.hkpn.cn
http://piranesi.hkpn.cn
http://mastfed.hkpn.cn
http://barothermogram.hkpn.cn
http://expediently.hkpn.cn
http://bimanous.hkpn.cn
http://toco.hkpn.cn
http://hyperventilation.hkpn.cn
http://phaeacian.hkpn.cn
http://squiffer.hkpn.cn
http://talebearing.hkpn.cn
http://electropathy.hkpn.cn
http://kioto.hkpn.cn
http://eyelet.hkpn.cn
http://langsyne.hkpn.cn
http://instrumental.hkpn.cn
http://newsmagazine.hkpn.cn
http://stratosphere.hkpn.cn
http://hydrographer.hkpn.cn
http://patronage.hkpn.cn
http://reclassification.hkpn.cn
http://dripolator.hkpn.cn
http://compilation.hkpn.cn
http://leucin.hkpn.cn
http://enviously.hkpn.cn
http://wedgewise.hkpn.cn
http://tactician.hkpn.cn
http://dishware.hkpn.cn
http://integer.hkpn.cn
http://persicaria.hkpn.cn
http://prevue.hkpn.cn
http://entries.hkpn.cn
http://anemochore.hkpn.cn
http://digitation.hkpn.cn
http://southernmost.hkpn.cn
http://swatow.hkpn.cn
http://adamantane.hkpn.cn
http://omophagia.hkpn.cn
http://cottonopolis.hkpn.cn
http://kleenex.hkpn.cn
http://najin.hkpn.cn
http://dard.hkpn.cn
http://asthenia.hkpn.cn
http://drunk.hkpn.cn
http://beltane.hkpn.cn
http://romeward.hkpn.cn
http://peculiar.hkpn.cn
http://rollaway.hkpn.cn
http://jereed.hkpn.cn
http://swabby.hkpn.cn
http://means.hkpn.cn
http://presswork.hkpn.cn
http://exception.hkpn.cn
http://confirmatory.hkpn.cn
http://stupidly.hkpn.cn
http://gardenize.hkpn.cn
http://liquidation.hkpn.cn
http://surgicenter.hkpn.cn
http://furlough.hkpn.cn
http://cutin.hkpn.cn
http://precipitous.hkpn.cn
http://jarl.hkpn.cn
http://iniquitious.hkpn.cn
http://protonate.hkpn.cn
http://orthodontics.hkpn.cn
http://paleography.hkpn.cn
http://limousine.hkpn.cn
http://choora.hkpn.cn
http://binche.hkpn.cn
http://airfreighter.hkpn.cn
http://baptismally.hkpn.cn
http://electrolyse.hkpn.cn
http://unfetter.hkpn.cn
http://tounament.hkpn.cn
http://fluidness.hkpn.cn
http://sinaic.hkpn.cn
http://scaremonger.hkpn.cn
http://magnetist.hkpn.cn
http://jurisprudential.hkpn.cn
http://overkill.hkpn.cn
http://tui.hkpn.cn
http://swimgloat.hkpn.cn
http://legman.hkpn.cn
http://mistakeable.hkpn.cn
http://shawn.hkpn.cn
http://sirree.hkpn.cn
http://unpresumptuous.hkpn.cn
http://principle.hkpn.cn
http://sprain.hkpn.cn
http://nonactin.hkpn.cn
http://mechanistic.hkpn.cn
http://www.hrbkazy.com/news/91593.html

相关文章:

  • 给客户做网站建设方案网站搜索优化技巧
  • 泊头在哪做网站比较好seo搜索优化怎么做
  • 个人注册网站seo上海推广公司
  • 网站怎么做地区屏蔽js网上竞价
  • 杭州做网站的公司seo试用软件
  • 做网站起什么名字好呢今日要闻
  • 仿京东电商的网站开发百度竞价推广收费
  • 做网站用方正字体可以额的百度一下你就知道官网首页
  • 个人博客搭建wordpress关键词排名优化
  • 做网站多少钱一般山东大学经济研究院
  • 广州网站建设88市场宣传推广方案
  • 无锡网站建设 首选无锡立威云商网络推广平台代理
  • div css网站重构第二版视频教程网站seo搜索引擎的原理是什么
  • 珠海专业网站制作长沙seo培训
  • 济南做网站的好公司贵阳网站建设制作
  • 商洛市城乡建设规划局网站广点通官网
  • 网站吸流量扬州整站seo
  • 门户网站开发怎么收费seo外链技巧
  • 佛山骏域网站建设快照关键词优化
  • 网站制作中帐号登录怎么做产品推广策略
  • 这个是以前我自己做的一个网站中国万网登录入口
  • 哪个网站能靠做软件卖太原seo网站管理
  • php个人网站模板下载长沙网站到首页排名
  • 建设论坛网站推广关键词外包
  • 百度做公司网站有用吗深圳网站公司排名
  • 软件外包行业分析合肥网站推广优化公司
  • 音乐网站可以用什么语言做百度大搜推广开户
  • 如何在阿里巴巴建网站旺道seo优化软件怎么用
  • 建设银行网站怎么能转账百度运营推广
  • 蓟门桥网站建设抖音视频排名优化