![TCP 매개변수 SACK 및 창 크기 조정은 Ubuntu 16.04에서 변경되지 않습니다.](https://linux55.com/image/110677/TCP%20%EB%A7%A4%EA%B0%9C%EB%B3%80%EC%88%98%20SACK%20%EB%B0%8F%20%EC%B0%BD%20%ED%81%AC%EA%B8%B0%20%EC%A1%B0%EC%A0%95%EC%9D%80%20Ubuntu%2016.04%EC%97%90%EC%84%9C%20%EB%B3%80%EA%B2%BD%EB%90%98%EC%A7%80%20%EC%95%8A%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
Windows 10의 VMware 가상 머신에서 실행되는 Ubuntu 16.04의 TCP에서 SACK 및 창 크기 조정 옵션을 끄고 싶습니다. 실제로 Ubuntu를 통해 LAN 케이블을 통해 내 컴퓨터에 직접 연결된 내장 장치로 일부 패킷을 보내고 있습니다. 그렇지 않으면 인터넷에 연결되지 않습니다.
/etc/sysctl.conf에 다음 줄을 추가한 후 SYN 패킷의 SACK_PERM 플래그가 사라지는지(그리고 창 크기 조정이 꺼지는지) 추적하기 위해 Windows 10 및 우분투 가상 머신에 Wireshark를 설치했습니다.
net.ipv4.tcp_sack = 0
net.ipv4.tcp_window_scaling=0
위 파일에는 이 두 줄이 없기 때문입니다.
이제 문제는 Windows에서 Wireshark의 SYN 패킷을 볼 때 SACK_PERM 플래그가 있지만 우분투 내부에서 실행되는 Wireshark에서는 그러한 플래그가 표시되지 않는다는 것입니다.
따라서 SACK을 끄는 것이 작동하는지 모르겠습니다. 이 문제와 관련된 도움을 주시면 대단히 감사하겠습니다.
답변1
어느 쪽이든 연결된 기능을 사용할 수 있도록 TCP 확장 옵션 SACK, 타임스탬프 및 Windows 크기 조정이 SYN에 양방향으로 포함되어야 합니다.
Windows 컴퓨터가 SYN으로 옵션을 보내고 Ubuntu 컴퓨터가 SYN ACK로 옵션을 보내지 않으면 어느 쪽도 연결 옵션을 사용하지 않습니다.