TCP层机制及wireshark分析方法

 

    收端 中间节点 发端  
TCP机制   1.一般收2个包回1个ACK,除非第2包在200ms内没有收到(Delayed-ACK timer)。
2.丢包后,后续包回重复ACK。
3.重传包收到后,会和之前收到的所有包一起回ACK。
  1.收到ACK,触发发新包,慢启动发3个包,稳态和快速恢复发2个包
2.RTO内,收不到ACK,则重传数据
 
多点抓包   所有抓包点做tcp trace图,都以tcp流的开始时间为0,直接比较。(2倍RTT以外有定量,以内只能定性)  
单点抓包 结果       表现  
  数据源正常     收到ACK立即触发数据的发送(慢启动发3个包,稳态和快速恢复发2个包),间隔为0,flight数据量接近窗口  
  数据源不足   收到ACK到触发的数据(近似找最近的)的间隔 大,导致flight数据量减少或掉底 收到ACK不及时触发数据的发送或包数少,导致flight数据量减少或掉底  
  缓存:输入>输出   RTT和flight逐渐变大,可能产生丢包 RTT和flight逐渐变大,可能产生丢包  
  减存:输入<输出   RTT和flight逐渐变小,无丢包 RTT和flight逐渐变小,无丢包  
  快速重传:上游丢包 - 收到重复Ack包之后,才有数据包    
  快速重传:下游丢包   收到数据包之后,才有重复Ack包,后有重传包 -  
  上游乱序 - 收包乱序,重复ACK;逆序数>2,则有重传(快速)    
  下游乱序   收包按序,重复ACK;有重传,则逆序数>2 - 只有中间节点,无法区分 快速重传的下游丢包
  RTT大   直接看RTT   只有中间节点,无法区分数据还是ACK慢
  RTT大导致重传   Data->重传数据->ACK,且重传间隔大    
  数据包上游或ACK包下游慢   数据包间隔先于ACK包间隔变大    
  数据包上游慢导致超时重传 重传在ACK之后,且初传与前包的间隔变大 初传与前包的间隔变大 & 数据包间隔先于ACK包间隔变大;Data->ACK->重传数据,且RTT相比重传间隔小 重传前,发包间隔小;重传时,大。先有重传,后有ACK  
  ACK包下游慢导致超时重传 重传在ACK之后,且重传与初传的间隔变大 初传与前包的间隔不变 & 数据包间隔先于ACK包间隔变大;Data->ACK->重传数据,且RTT相比重传间隔小 重传前,发包间隔小;重传时,大。先有重传,后有ACK  
           
  重传 ip.id 增长,但tcp.seq变小      
  乱序 ip.id & tcp.seq 变小,且逆序数>1      

 

posted @ 2021-09-24 14:45  isarcyan  阅读(254)  评论(0)    收藏  举报