Ex) ping <IP Address> -f -l <576~1500>로 값을 넣어 1472 로 값이 나왔다면 1472 + 28 = 1500 , 즉 MaxMTU 값은 '1500' 이 됩니다.
Windows Registry Editor Version 5.00
;Ethernet-adapter name ( NIC = 랜 카드 ) , 수동 적용시
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{Ethernet-adapter name(NIC)}]
"MTU"=dword:000005dc ( 1500 = MaxMTU )
//MSS란(Maximum Segment Size)? 데이터 프레임 중 순수한 TCP 데이터 부분의 최대 값으로 분할하지 않고 한번에 보내는 것을 뜻합니다.
"윈도우 사이즈(크기) : TCP 환경에서 송신 호스트와 수신 호스트는 데이터를 수신한 다음, 다음 데이터를 보내 줄 것을 요청(Ack)하고, 요청을 받은 호스트는 다음 데이터를 보냅니다. 이런 과정에서 송신호스트는 Ack을 수신하기 전에 일정량의 데이터를 보낼 수 있는데 이를 윈도우 사이즈라고 합니다.
MSS(Maximum Segment Size) : 현재의 연결에서 TCP가 보낼 수 있는 최대의 데이터 크기를 말합니다. MTU라고 알려진 최대 전송 크기에서 헤더 부분을 뺀 부분이 MSS가 됩니다. Ethernet의 경우 MTU가 1500byte로 결정되어 있으며, 따라서 Ethenet에서 MSS는 1460byte가 됩니다.
//RFC1323 ( TCP Extensions for High Performance )
기존 NT와 달리 W2K 부터 적용된 'Large Windows (RFC1323)' 옵션은 수신측 버퍼의 크기를 기존 64K(65535Byte/16bit)에서 'scale factor of 0~2^14(0, 2, 4, 8, 16 ~ 16384)' 을 이용해 이론적으로 2^30(1GB/32bit)까지 확장해 주는 옵션이다.
host 측이 'window scale option' 을 지원하지 못 할 경우, 64K로 동작한다. Vista 의 경우 'scale factor of 8'이 기본값인데 host 가 제대로 지원 못해 느려지는 현상이 있다고 한다. 기본적으로 Windows 에서 이 옵션의 사용을 적극 권장하며 MTU 값이 클수록 필수 옵션이다. ( Vista 의 경우, 본문 중간 참고 )
0 (disable RFC 1323 options)
1 (window scaling enabled only) : 수신 윈도우 크기를 64K ~ 1GB(-1)까지 사용 가능
2 (timestamps enabled only) : 왕복전송시간 측정에 12Byte 사용으로 Data 영역 감소
3 (both options enabled)
- 참고
"Window Scale Option 이란? : TCP 윈도우 크기는 기본적으로 16비트 변수를 이용하기 때문에 65535바이트 이상으로 커질 수 없다. 이는 요즘 같은 시대에는 상당히 작은 값이다. 그래서 헤더에 있는 16비트 윈도우 크기는 무시하고, 따로 32비트의 윈도우 크기를 사용하는 기능을 window scale option이라고 한다. 32비트 변수를 어디다 두는지는 잘 모르겠지만, 아마 데이터 부분에다 두겠지. 어쨌든 이 옵션을 켜고, 송수신 측이 서로 SYN을 주고받으면, 좀 더 큰 크기의 윈도우를 사용할 수 있게 된다." - 인용
Note that the usual minimum Internet standard packet size used is 576 and the usual maximum is 1500.
When testing with the PING tool one have to subtract 28 from the packet size being tested. This is because the PING tool itself adds an IP Header (20 Bytes) and an ICMP-Header (8 Bytes), which together has the size of 28 bytes.
Network Type MTU (bytes) Details
Ethernet : 1500
IEEE 802.3/802.2 : 1492
PPPoE : 1492 ( Optimal MTU for PPPoE over ATM is 1454 )
X.25 : 576 ( Dialup Connection )
Ethernet (Jumbo) : >=9000 ( Gigabit networking )
점보 기능이 지원되는 랜카드(NIC)가 있다면 '장치 관리자'에서 별로도 설정을 해 주는 것이 좋다.
RWIN is a multiple of MSS - 링크
Other RWIN values that might work well with your current MTU/MSS:
513920 (MSS x 44 * scale factor of 8)
256960 (MSS x 44 * scale factor of 4) <-- current value
128480 (MSS x 44 * scale factor of 2)
64240 (MSS x 44)
//Vista 는 수신(RWIN) '창 자동 조정 기능(Receive Windows Auto-Tuning)'을 사용하는데 디볼트 값이 8 이라고 함(링크), 웹 서핑시 방문한 사이트가 'RFC 1323(windows scale factor of 8)' 지원 못해 느려질 경우 참고.
netsh interface tcp set global autotuninglevel=highlyrestricted
- 홈 네트워크를 유.무선이나 일반적인 네트워크 형태로 구성 후 대용량 자료 전송시 과도한 딜레이가 발생할 경우와 모든 접속환경에서 비정상적인 속도저하나 전송실패가 발생할 경우 아래 참고.
netsh interface tcp show global ( 현재 설정값 보기 )
netsh interface tcp set global autotuninglevel=disabled
netsh interface tcp set global autotuninglevel=normal ( Undo - 링크 , 1 , 2 )
- disabled : Receive 창 크기를 자동 조정 수신 기능을 사용하지 않도록 설정 ( 65536 bytes 으로 고정 )
- normal : Receive(수신) 창 크기를 자동 조정 옵션이 제공하는 향상된 네트워크 처리량 성능을 이용할 수 있도록 Auto-Tuning 활성화 ( autotuninglevel 기본값으로 Receive 값을 자동설정 )
- highlyrestricted : Auto-Tuning 이 설정화 된 상태에서 Receive 창 크기를 기본값보다 크게 설정 ( OS별로 스케일 배율 다름(?) )
- restricted : Receive 창 크기가 특정 환경에서 제한적으로 설정
- experimental : 보통 테스트 목적으로 사용됨
//참고, 수동으로 RWIN 값 구하기 - 링크
"RWIN(RWIN: TCP Receive Window) 란? 데이터를 효율적으로 받을 수 있도록 자신의 컴퓨터의 버퍼를 설정해 놓는데 값이 너무 크면 패킷이 손상되거나 패킷을 잃었을 때 데이터의 손실 크며 너무 작으면 전송 속도가 늦어진다. 'Tcp1323Opts' 와 밀접한 관계가 있다." - 인용
RWIN Size(bytes) = Bandwidth(kbps) / 8 * Average Latency(MiliSec)
( RWIN = 대역폭 (회선 속도 kbps) ÷ 8 x ping 의 평균 지연 시간 (MiliSec) )
Ex ) 90,000 kbps or 11250 Kb/s(90Mb/s) / 8 * 3 = 35040 ( 참고 )
Ex ) 44 x 1460 = 64240 x 2^2 ~ 4 = 256960 ( speedguide.net )
( 단위는 10진수(1000 Byte)로 계산 했으며 '평균 지연 시간'은 ISP 등 주로 이용하는 곳을 값을 넣고 테스트하면 된다. 'Tcp1323Opts' 옵션 적용/미적용에 따라 RWIN 값 계산법이 다르니 참고. )
http://speed.megapass.net/
- 위 그림에서 100 Mb/s는 100 Mbps 와 같으며 ' 93.3 Mb/s , 11.7 MB/s ' 는 '93.3 Mb/s / 8 = 11.7 MB/s' 를 뜻한다. 덧붙이면 '8 Mbps = 1 MB/s(1 MBps)' 가 된다.
- 인터넷 속도환산 계산기 - 링크
- bps kbps Mbps Gbps Tbps, 데이터 전송속도 계산기 Calculator - 링크
- speedguide.net >> tools >> 링크
- google.com >> 100 Mbps to kb/s , 100 Mbps to kbps ( 2진수 )
- 참고1 ) 속도 측정에 사용되는 단위 : Kb/sec, Kb/s, Mb/sec, Mb/s, Gb/sec, Gb/s
- 참고 2) 10진수(1000 Byte)와 2진수(1024 Byte)의 차이에 따른 구별이 필요하다. - 위키
1 MByte = 1,024 kByte = 1,048,576 Byte ( 컴퓨터 메모리나 O/S 저장 장치 용량 표기시 )
1 MByte = 1,000 kByte = 1,000,000 Byte ( ISO와 IEC에서 컴퓨터 네트워크이나 HDD, DVD 등의 저장 장치 표기시 권장하는 단위다. )
- 참고 3) KB와 Kb의 차이 : 컴퓨터에서의 용량 표시는 대부분 byte를 기준으로 하지만 경우에 따라서 bit를 사용할 때가 있다. KB는 Kilo Byte를 의미하며 Kb는 Kilo bit를 의미한다. 1 KB는 1,024 byte이고 1 Kb는 128 byte이다. Kb의 의미를 강조하기 위하여 KBit, Kbit, MBit와 같이 표기할 수도 있다.
"There generally isn't a single correct way to figure out the optimal TCP window for an interface since you're probably connecting to different hosts across different links at different latencies; however, you can roughly guess what the optimal window would be if you're only primarily worried about your communication with one other host (or, perhaps, one other site). First, you'll need to know the latency and the throughput available between you & the remote host. To get the latency, ping the remote host and take the average response time. For the throughput, take the slowest link between you & the remote host (ie, you might both be connected to 100Mb/s Ethernet, but there is a 1.5Mb/s WAN link between). If the slowest link is asymmetrical, use the faster of the two speeds -- for example, on an ADSL connection that was rated as 1.5Mb/s down and 384Kb/s up, use the 1.5Mb/s speed. (If both ends are on DSL, use the lower speed as this will always be the limiting factor.)
Once we've got these two numbers, the normal formula used to calculate optimal TCP window is bandwidth * latency = window. Remember that throughput is measured in bits per second whereas our TCP window is going to be configured in bytes per second. Divide the throughput by 8 to convert bits per second to bytes per second.
So, if we were using a 1.5Mb/s ADSL link with 70ms of latency, our calculation would look something like this:
So, on this link, a 13KB TCP window would work well. Since the default TCP window for Windows 2000/XP/2003 is 16K (or more), there would be no need to change the window on this client; however, if either the throughput or the latency was higher, we would probably benefit from a change." - 인용