일부 네트워크 연결이 다른 네트워크 연결을 지배하는 이유는 무엇입니까?


15

이유에 대한 의구심이 있지만 네트워킹에 대한 배경 지식이 강한 사람이 설명하기를 원합니다.

여러 다른 위치에서 다운로드 할 때 특정 연결이 대역폭을 포화시키고 지배적 연결이 완료 될 때까지 다른 연결을 거의 유휴 상태로 두는 이유는 무엇입니까?

답변:


26

일반적으로 가장 빠른 연결이 이깁니다. 그러나 Windows 7 네트워킹 이전에는 혼란 스러웠으며 성능이 끔찍했습니다. XP에서 20mb / s 이상을 얻으십시오.

http://research.microsoft.com/pubs/70189/tr-2005-86.pdf

표준 TCP 혼잡 방지 알고리즘은 AIMD (additive 증가 및 곱하기 감소) 방식을 사용합니다. 패킷 손실이 발견되지 않으면 (3 개의 중복 ACK 또는 재전송 타임 아웃을 통해) RTT마다 혼잡 윈도우 (cwnd)가 1 개의 최대 세그먼트 크기 (MSS)만큼 증가합니다. 그렇지 않으면 패킷 손실이 감지되면 TCP 발신자가 cwnd를 반으로 줄입니다. 고속 및 긴 지연 네트워크에서 링크 용량을 완전히 활용하려면 수천 개의 패킷과 같은 매우 큰 창이 필요합니다. 따라서 단일 손실 이벤트시 전송 속도를 복구하려면 표준 TCP 많은 RTT가 필요합니다. 더욱이, 평균 TCP 혼잡 윈도우는 패킷 손실률의 제곱근에 반비례한다는 것이 잘 알려져있다.

연결이 빠를수록 패킷의 성공률이 높아 지므로 cwnd / mss가 증가하고 전체 연결 수는 훨씬 늘어납니다.


그것은 더 기술적이지만, 내가 생각했던 것과 일치했습니다.
Keltari

23
Windows XP의 경우에도 초당 20 밀리기가 매우 낮습니다. : P
코드 InChaos

@codesinchaos 필요할 때 pedant 배지는 어디에 있습니까?
Ashley

1
@CodesInChaos 난 당신이 조금 나눌 수 없기 때문에 실제로 모호성이 없다고 생각하지만, Mb / s는 아마 더 잘 읽을 것입니다 ;-) 더 큰 문제는 사람들이 "Megabit"를 "Megabyte"와 혼동 할 때입니다 ..
comfreak

-1

활성 개방형 TCP는 서버의 응답을 측정하여 네트워크 상태를 테스트합니다. 라우터 버퍼가 다른 연결에 의해 포화되어 높은 지연이 발생하면 클라이언트는 그에 따라 전송 창을 조정합니다. 클래식 혼잡 제어 방법이 사용 중이면 클라이언트는 드롭이 발생할 때까지 계속 전송 속도를 증가시킵니다. 따라서 라우터를 포화 상태로 전환하는 장치가 심각한 감소를 경험하는 동안 새로운 코너가 작동하지 않으면 새로운 코너가 작동 할 수 있습니다.

네트워크 조건을 측정하기 위해 단순히 드롭을 사용하는 대신 지연을 메트릭으로 사용하는 실험적이고 지능적인 혼잡 제어 방법이 있습니다. 그러나 이러한 새로운 방법은 가능한 한 많은 대역폭을 사용하는 더 강력한 고전적인 방법으로 괴롭힘을당하는 나쁜 습관을 가지고 있습니다.

또한 대량으로 UDP 연결을 사용하면 부주의 한 비트 스프레이로 인해 네트워크가 지배적입니다. 응용 프로그램에 따라 네트워크 조건에 관계없이 라우터 버퍼를 무모하게 포화시킵니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.