TCP Dup ACK 패킷 손실 없음

TCP Dup ACK 패킷 손실 없음

IP 192.168.2.250에서 일부 임베디드 RTOS를 실행하는 송신기와 IP 192.168.2.1에서 Linux 4.9.x를 실행하는 수신기가 있습니다.

수신기는 무선 액세스 포인트로 구성되며 송신기는 WiFi를 통해 수신기에 직접 연결됩니다.

TCP 데이터 전송 중에 수신 측에서 tcpdump를 수행했는데 수신자가 실제 패킷 손실이 발생하지 않은 채 많은 중복 ACK를 보내는 것을 확인했습니다(또는 적어도 재전송을 보지 못했기 때문에 그렇게 생각했고 ACK는 결국 전송된 시퀀스 번호를 따릅니다).

Wireshark 추적 TCP 중복 승인

수신자의 행동을 유발하는 원인이 무엇인지 아는 사람이 있습니까?

스트림이 데이터를 잃지 않았다는 것을 증명하기 위해 이 기능을 껐기 때문에 보낸 사람의 빠른 재전송이 표시되지 않습니다(그리고 이렇게 하면 처리량이 많이 증가했습니다). 한 가지 설명은 TCP 스택이 패킷의 순서가 잘못되었다고 생각한다는 것입니다. Linux가 잘못된 패킷에 대해 더 잘 견디도록 만들 수 있습니까? 즉시 중복 확인을 보내지 않는 것과 같습니다.

산출sysctl net | grep tcp

net.ipv4.tcp_abort_on_overflow=0
net.ipv4.tcp_adv_win_scale=1
net.ipv4.tcp_allowed_congestion_control=cubicreno
net.ipv4.tcp_app_win=31
net.ipv4.tcp_autocorking=1
net.ipv4.tcp_available_congestion_control=cubicreno
net.ipv4.tcp_base_mss=1024
net.ipv4.tcp_challenge_ack_limit=1000
net.ipv4.tcp_congestion_control=cubic
net.ipv4.tcp_delack_seg=1
net.ipv4.tcp_dsack=1
net.ipv4.tcp_early_retrans=3
net.ipv4.tcp_ecn=2
net.ipv4.tcp_ecn_fallback=1
net.ipv4.tcp_fack=1
net.ipv4.tcp_fastopen=1
net.ipv4.tcp_fin_timeout=60
net.ipv4.tcp_frto=2
net.ipv4.tcp_fwmark_accept=0
net.ipv4.tcp_invalid_ratelimit=500
net.ipv4.tcp_keepalive_intvl=75
net.ipv4.tcp_keepalive_probes=9
net.ipv4.tcp_keepalive_time=7200
net.ipv4.tcp_limit_output_bytes=262144
net.ipv4.tcp_low_latency=0
net.ipv4.tcp_max_orphans=16384
net.ipv4.tcp_max_reordering=300
net.ipv4.tcp_max_syn_backlog=128
net.ipv4.tcp_max_tw_buckets=16384
net.ipv4.tcp_mem=332494433366498
net.ipv4.tcp_min_rtt_wlen=300
net.ipv4.tcp_min_tso_segs=2
net.ipv4.tcp_moderate_rcvbuf=1
net.ipv4.tcp_mtu_probing=0
net.ipv4.tcp_no_metrics_save=0
net.ipv4.tcp_notsent_lowat=4294967295
net.ipv4.tcp_orphan_retries=0
net.ipv4.tcp_pacing_ca_ratio=120
net.ipv4.tcp_pacing_ss_ratio=200
net.ipv4.tcp_probe_interval=600
net.ipv4.tcp_probe_threshold=8
net.ipv4.tcp_recovery=1
net.ipv4.tcp_reordering=3
net.ipv4.tcp_retrans_collapse=1
net.ipv4.tcp_retries1=3
net.ipv4.tcp_retries2=15
net.ipv4.tcp_rfc1337=0
net.ipv4.tcp_rmem=4096873806291456
net.ipv4.tcp_sack=1
net.ipv4.tcp_slow_start_after_idle=1
net.ipv4.tcp_stdurg=0
net.ipv4.tcp_syn_retries=6
net.ipv4.tcp_synack_retries=5
net.ipv4.tcp_syncookies=1
net.ipv4.tcp_thin_dupack=0
net.ipv4.tcp_thin_linear_timeouts=0
net.ipv4.tcp_timestamps=0
net.ipv4.tcp_tso_win_divisor=3
net.ipv4.tcp_tw_recycle=0
net.ipv4.tcp_tw_reuse=0
net.ipv4.tcp_use_userconfig=0
net.ipv4.tcp_window_scaling=1
net.ipv4.tcp_wmem=4096163844194304
net.ipv4.tcp_workaround_signed_windows=0

관련 정보