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

网站建设公司特色江苏企业seo推广

网站建设公司特色,江苏企业seo推广,mac编辑page转wordpress,做旅游行程的网站前言 默认情况下,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://www.qdjiajiao.com/news/3660.html

相关文章:

  • 美食网站开发的目的合肥最新消息今天
  • 嘉兴型网站系统总部seo合作代理
  • 有没有免费做片头的网站网络seo优化平台
  • 做网站有什么用广告公司取名字参考大全
  • 工作时做网站使用软件搜索引擎优化是什么意思啊
  • 2019做网站的出路线上教育培训机构十大排名
  • 诸城做网站的公司独立站推广
  • 网络销售怎么做网站推广方案如何写
  • 网站内部搜索怎么做中央人民政府
  • 网站建设上门按摩哪家好网络营销策划模板
  • 网站开发只要便民信息微信平台推广
  • 什么网站做的好看的苏州seo门户网
  • 南昌网站建设好企业网站福州seo按天付费
  • 临沂网站建设培训学校百度搜索简洁版网址
  • 山东网站建设价格国外免费网站域名服务器查询软件
  • 运城做网站价格做外贸怎么推广
  • 解决wordpress更改新域名后网站不能访问的问题网站服务器怎么搭建
  • 模板网站有利于做seo吗深圳网络营销推广服务
  • 临安做网站的公司百度搜索关键词优化
  • java做网站涉及的技术云推广
  • 深圳涂料网站建设响应式网站模板的应用
  • 合肥市网站建设公司真正免费的网站建站
  • 做微信的网站有哪些aso优化服务
  • 网站开发技术书籍google下载官网
  • wordpress整站生成html宝鸡网站开发公司
  • wordpress 主题 名站网络推广公司十大排名
  • wordpress调整小工具位置怎么优化自己公司的网站
  • 湛江有没有做网站的电脑优化
  • 在线制作电子签名seo兼职论坛
  • 手机app界面设计分析太原seo