31.13. TCP 타임스탬프의 이점
TCP Timestamps는 TCP 헤더와 TCP 프로토콜 확장에서 선택적 정보입니다. 기본적으로 TCP Timestamps는 Red Hat Enterprise Linux에서 활성화되며 커널은 TCP Timestamps를 사용하여 TCP 연결에서 RT(Round Trip Time)를 더 잘 추정합니다. 이렇게 하면 더 정확한 TCP 창 및 버퍼 계산이 생성됩니다.
또한 TCP Timestamps는 세그먼트의 수명과 순서를 결정하고 래핑된 시퀀스 번호로부터 보호하는 대체 방법을 제공합니다. TCP 패킷 헤더는 32비트 필드에서 시퀀스 번호를 기록합니다. 10Gbps 연결에서 이 필드의 값은 1.7초 후에 래핑할 수 있습니다. TCP 타임스탬프가 없으면 수신자는 래핑된 시퀀스 번호가 있는 세그먼트가 새 세그먼트인지 이전 복제인지 여부를 확인할 수 없었습니다. 그러나 TCP Timestamps를 사용하면 수신자가 세그먼트를 수신하거나 삭제하도록 올바른 선택을 할 수 있습니다. 따라서 빠른 네트워크 인터페이스가 있는 시스템에서 TCP Timestamps를 활성화하는 것이 중요합니다.
net.ipv4.tcp_timestamps
커널 매개변수는 다음 값 중 하나를 가질 수 있습니다.
-
0
: TCP 타임 스탬프가 비활성화되어 있습니다. -
1:
TCP 타임스탬프가 활성화되어 있습니다(기본값). 2
: TCP 타임 스탬프는 사용할 수 있지만 임의의 오프셋은 없습니다.중요각 연결에 대해 임의의 오프셋이 없으면 대략 호스트의 가동 시간 및 지문을 확인하고 이러한 정보를 공격에 사용할 수 있습니다.
기본적으로 TCP Timestamps는 Red Hat Enterprise Linux에서 활성화되며 현재 시간만 저장하는 대신 각 연결에 임의의 오프셋을 사용합니다.
# sysctl net.ipv4.tcp_timestamps
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_timestamps
매개변수에 기본값(1
)과 다른 값이 있는 경우 설정한 것과 동일한 방식으로 설정을 되돌립니다.
추가 리소스