Linux에서 3.5 매개 변수를 사용하여 TCP 매개 변수를 실험하고 있습니다. 기본적으로이 연결과 관련하여 :
서버 : 데이터 센터의 기가비트 업 링크, 다른 데이터 센터에서 테스트 할 때 실제 업 링크 공유로 인한 실제 대역폭은 약 70MB / s입니다.
클라이언트 : 200mbit 파이버에 연결된 기가비트 로컬 LAN. 테스트 파일을 가져 오는 것은 실제로 20MB / s를 달성합니다.
지연 시간 : 약 50ms 왕복.
원격 서버는 10-100mb 범위의 파일에 대한 파일 서버로 사용됩니다. 10의 initcwnd를 사용하면 이러한 파일의 전송 시간이 TCP 느린 시작의 영향을 크게 받아 10mb (최고 속도 : 3.3 MB / s)를로드하는 데 3.5 초가 걸리고 느리게 시작하지만 증가합니다. 최대 속도에 도달하기 전에 완료됩니다. 내 목표는 해당 파일의 최소로드 시간을 조정하는 것입니다 (따라서 가장 높은 원시 처리량 또는 최저 왕복 대기 시간이 아니므로 파일을로드하는 데 걸리는 실제 시간이 줄어들면 두 가지를 모두 기꺼이 희생하십시오)
그래서 나는 간단한 연결을 시도하여 다른 연결과 다른 영향을 무시하고 이상적인 initcwnd가 무엇인지 결정했습니다. 대역폭 지연 제품은 200Mbit / s * 50ms = 10Mbit 또는 1.310.720 바이트입니다. initcwnd가 MSS 단위로 설정되고 MSS가 약 1400 바이트라고 가정하면 다음 설정이 필요합니다. 1.310.720 / 1400 = 936
이 값은 기본값 (Linux의 경우 10 * MSS, Windows의 경우 64kb)과는 매우 다르므로 이와 같이 설정하는 것은 좋지 않습니다. 이와 같이 구성하면 예상되는 단점은 무엇입니까? 예 :
- 동일한 네트워크의 다른 사용자에게 영향을 줍니까?
- 다른 연결에 허용 할 수없는 혼잡을 만들 수 있습니까?
- 경로 어딘가에 플러드 라우터 버퍼?
- 소량의 패킷 손실로 인한 영향이 증가합니까?
70 MB/s
메가 비트가 아닌 메가 바이트를 말하는 것을 확인할 수 있습니까 ? 설명을 찾고 있습니다.