더 빠른 인터넷을 위한 레지스트리를 만들자


윈도우즈 레지스트리는 윈도우즈를 운영하기 위한 정보를 담고 있다. 윈도우즈에 깐 소프트웨어나 하드웨어에 대한 정보는 물론 윈도우즈 옵션도 레지스트리에서 손 볼 수 있다. 초고속 인터넷의 속도를 200% 올릴 수 있는 네트워크 옵션도 레지스트리에서 정한다. ADSL과 케이블 모뎀,FTTH,광 을 위한 특별한 레지스트리를 만들자.

@네트워크 옵션을 왜 바꿔야 하나요?

인터넷은 데이터를 주고받기 위해 TCP/IP 프로토콜을 쓴다. TCP/IP 프로토콜은 데이터 한 개를 작은 데이터 여러 개 묶음으로 잘라서 이 묶음을 내가 통신할 상대와 주고받는다. 이 작은 데이터 꾸러미를 패킷이라고 하는데 패킷의 최대 크기를 MTU(maximum transmission unit : 최대 전송 단위)라고 한다. 최대 MTU 크기는 1,500바이트다.
MTU 값이 클수록 실어 나를 수 있는 데이터 크기가 커진다. 1톤의 짐을 나를 수 있는 트럭과 1.5톤을 나를 수 있는 트럭이 30톤의 물건을 다른 곳으로 옮길 때 1.5톤 트럭이 더 빨리 나를 수 있는 것과 같다.
옛날 윈도우즈 95와 98이 나왔을 때 전화 모뎀으로 인터넷에 접속했기 때문에 MTU 값을 전화 모뎀에 맞는 576바이트에 맞췄다. 하지만 초고속 인터넷 서비스는 모뎀보다 자료를 더 많이, 더 빨리 주고받을 수 있어 전화 모뎀에 맞춘 MTU 값은 초고속 인터넷에서 쓰기에 너무 작다. 초고속 인터넷 서비스에 맞는 MTU 값을 찾아 윈도우즈 네트워크 옵션을 업그레이드해주면 인터넷이 더 빨라진다.

@MTU 값은 커야 할까? 작아야 할까?

패킷 값의 크기는 큰 것이 좋을까? 작은 것이 좋을까? 초고속 인터넷 최적화에 대해 묻는 분들이 내놓는 질문이다. MTU 값의 크기에 따른 장단점을 알아보자.

@MTU 값을 크게 잡으면?

MTU 값을 늘려 패킷을 크게 잡으면 인터넷 속도가 더 빨라질까? 그렇지 않다. 패킷은 인터넷으로 상대방에게 가면서 여러 개의 길잡이, 즉 라우터를 만난다. 라우터는 패킷과 패킷 안에 있는 송수신 정보를 보고 다른 네트워크 경로로 패킷을 보낸다. 패킷의 크기가 앞으로 지나갈 네트워크 경로가 감당할 수 없을 만큼 크면 통과할 수 있는 작은 크기로 나눠서 보낸다. 패킷이 너무 커 라우터를 지날 때마다 작은 조각으로 나뉘면 나뉘는 시간 때문에 패킷이 상대방에게 도달하는 시간이 더 걸린다.

@MTU 값을 줄이면?

패킷 크기를 무조건 줄이는 것도 좋지 않다. 패킷에는 송수신에 필요한 정보를 담은 부분이 있는데 실제로 보내는 순수한 데이터와는 관계없다. 따라서 데이터를 잘게 쪼갤수록 패킷이 많이 생기고, 각각의 패킷이 목적지에 닿으려면 송수신 정보가 늘어난다. 송수신 정보를 보내는 데 필요한 시간과 공간이 늘어나면 실제로 보내는 데이터의 양이 준다.


@핑 테스트로 내게 꼭 맞는 MTU 값 찾기

MTU 값을 찾으려면 핑을 쓴다. 핑은 간단하면서도 유용한 네트워크 진단 유틸리티다. 핑을 쓰면 상대방 PC가 죽었는지 살았는지, 내가 보낸 응답에 대해 상대방 PC가 얼만큼 시간이 지나서 그 대답을 해주는지 알 수 있다.
핑을 잘 쓰면 MTU 값도 금방 찾는다. 내가 보낼 수 있는 가장 큰 패킷 크기를 정하고, 그 패킷이 쪼개져 보내지면 안된다는 옵션을 건다. 이렇게 패킷 옵션을 정하고 목적지로 보내면, 패킷을 받은 라우터는 내가 보낸 패킷이 너무 크다고 여겨 목적지로 패킷을 보내기 위해 작은 크기로 나누려고 한다. 하지만 보낸 쪽에서 패킷을 나누지 말라는 옵션을 붙어 보냈기 때문에, 라우터는 패킷을 나눠서 보내는 대신 패킷을 전달할 수 없다는 메시지를 보낸다.
패킷의 크기를 바꿔가며 핑 테스트를 하다 보면, 라우터가 쪼개지 않아도 목적지로 보낼 수 있는 패킷 크기를 구할 수 있다. 패킷을 쪼개서 보낼 필요가 없기 때문에 라우터에서 패킷을 쪼개느라 걸리는 시간을 아끼고, 최대한 많은 데이터를 패킷에 담을 수 있어 더 빨리 데이터를 목적지에 보낸다. 바로 이 값을 MTU 값으로 만드는 것이다. 핑을 이용해서 MTU 값을 구하자.
적당한 MTU 값을 가지면 라우터에서 패킷을 쪼개 보낼 필요가 없어 시간이 절약되고, 데이터를 많이 보낼 수 있는 넉넉한 패킷 크기를 가지기 때문에 인터넷 속도도 빠르다.



1. 시작→실행을 누르고 빈 칸에 cmd를 적고 확인을 누른다.

2. 명령 프롬프트 창이 열린다. ping -f -l 1400 [내가 쓰는 초고속 인터넷 업체 서버]를 적고 엔터를 누른다.

3. 결과에 reply from ....’이라는 답이 나오면 1,400에서 1씩 올리면서, packet needs to be fragmented but df set이 나오면 1,400에서 1씩 내리면서 핑 테스트를 계속한다.

4. packet needs to be fragmented but df set이라는 메시지가 나오지 않는 가장 큰 수를 얻으면 테스트를 멈춘다. 값을 메모지에 적는다. 필자는 1,464가 가장 큰 숫자였다.

5. 테스트가 끝나면 결과 값에 28을 더한다. 그 결과 값이 내 초고속 인터넷에 딱 맞는 MTU 값이다. 1,464에 28을 더한 1,492가 MTU 값이다.

@왜 핑 테스트 결과에 28을 더할까?

핑 테스트에서 얻은 결과는 송수신에 필요한 정보를 담은 20바이트의 IP 헤더와 데이터 송수신에 생기는 문제를 해결하기 위해 쓰는 인터넷 제어 메시지 프로토콜(ICMP:internet control message protocol)를 위한 8바이트의 공간을 계산하지 않고 빼두었다.
이 28 바이트의 공간은 패킷이 제대로 목적지에 가기 위한 정보를 담은 것으로 패킷을 보낼때 반드시 필요하다. 따라서 핑 테스트에서 구한 값에 테스트에서 빠진 IP 헤더와 ICMP를 위한 28바이트의 공간을 더한 값을 MTU 값으로 계산한다.

@네트워크 옵션 자료 계산하기

MTU 값을 구했으면 이제 이 MTU 값을 가지고 네트워크 옵션에 필요한 자료를 계산한다. 필요한 값은 MSS(maximum segment size)과 RWIN(TCP receive window) 값이다.
MSS 값은 데이터 송수신에 이용한 정보를 뺀 데이터의 양을 말한다. MTU 값에서 40바이트를 뺀 값을 MSS 값으로 쓴다. 즉, MTU 값이 1,492라면 MSS 값은 40을 뺀 1,452다.
RWIN은 자료를 받는 쪽의 PC가 만들어 놓은 버퍼 공간이다. 자료를 보내는 쪽은 버퍼의 크기만큼 미리 자료를 보낼 수 있다. 받은 데이터에 문제가 없다는 것을 자료를 보내는 쪽에 알려주는데, 이때 몇 개의 실제 데이터(MSS)를 받은 뒤에 제대로 받았다는 것을 알려줄지 결정하는 것이 RWIN 값이다. RWIN 값은 항상 MSS 값의 배수로 계산해서 RWIN 값과 보낸 실제 데이터 양이 딱 맞아 떨어지게 한다. 초고속 인터넷을 위한 RWIN 값은 18만에서 40만 사이에 있는 값을 쓰는 것이 좋다.
방금 구한 RWIN 값을 10진수에서 16진수로 바꾸자. 윈도우즈에 있는 계산기 프로그램을 쓰면 10진수를 16진수로 쉽게 바꾼다.

1. 시작→프로그램→보조 프로그램→계산기를 고르고, 메뉴에서 보기를 눌러 공학용을 고른다.

2. 왼쪽에서 Dec을 고르고, 방금 구한 10진수의 RWIN 값을 적자. 필자는 MSS 값의 256배를 더한 371,712를 적었다.

3. Hex를 고른다. 십진수 371,712가 16진수인 5AC00로 변했다. 16진수로 변한 RWIN 값을 적어둔다.

@초고속 인터넷용 레지스트리 파일 만들고 깔기

윈도우즈 2000과 XP를 위한 초고속 인터넷용 레지스트리 파일을 만들자. 윈도우즈 레지스트리 에디터로 레지스트리에 직접 네트워크 옵션을 넣을 수 있다. 레지스트리 파일로 만들면 윈도우즈를 새로 깔 때 편하다. 만들어 놓은 레지스트리 파일을 두 번 누르면 바로 윈도우즈 레지스트리에 초고속 인터넷에 딱 맞춘 네트워크 옵션을 넣어줘 매번 레지스트리 에디터를 열고 일일히 값을 넣어주지 않아도 된다. 초고속 인터넷을 위한 나만의 레지스트리 파일을 만들자.

1. 바탕 화면에 커서를 대고 마우스 오른쪽 버튼을 눌러 메뉴에서 새로 만들기→텍스트 문서를 고른다.

2. 새로운 파일 이름을 정한다. 필자는 myreg.reg라고 적었다. 어떤 이름을 써도 되지만 파일 확장자는 반드시 reg여야 한다.

3. 만든 파일에 커서를 대고 마우스 오른쪽 버튼을 눌러 편집을 누른다.

4. 메모장이 뜨면 다음을 입력한다. TcpWindowsSize와 GlobalMaxTcpWindowSize에는 앞에서 구한 16진수로 된 RWIN 값을 적는다. 나머지 값은 대소문자의 구분은 반드시 지킨다.

Windows Registry Editor Version 5.00 <엔터>
<엔터>
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] <엔터>
"SackOpts"=dword:00000001 <엔터>
"TcpWindowSize"=dword:0005ac00 <엔터>
"Tcp1323Opts"=dword:00000001 <엔터>
"DefaultTTL"=dword: 00000080<엔터>
"EnablePMTUBHDetect"=dword:00000000 <엔터>
"EnablePMTUDiscovery"=dword:00000001 <엔터>
"GlobalMaxTcpWindowSize"=dword:0005ac00 <엔터>

5. 파일→저장을 누른다. 창 오른쪽에 X를 눌러 닫는다.

6. 방금 만든 파일을 마우스 왼쪽 버튼으로 두 번 누르면 레지스트리에 등록하겠냐고 묻는 창이 뜬다. 예를 누른다.

7. 레지스트리에 등록되었다는 메시지가 뜬다. 확인을 누른다.

@초고속 인터넷 패치가 효과가 있는지 알아보자

패치하기 전에 인터넷 속도를 검사하고, 패치한 뒤 다시 한번 인터넷 속도를 검사한다.

- 다음장의 #2 과 내용은 같습니다. 알아 보기 쉬운것을 보세요. -
- #2의 내용 보러가기 링크 -


@ 현재 상황 @ --------------------------------------------------------------------------

저의 경우 유선을 사용안하고 무선을 사용중에 FTTH임에도 불구하고 다른 노트북과 다르게(물론 a/b/g사용, n사용해서 차이가나는것이아니였음) 무선을 이용중에 다운속도와 업로드속도가 안나오는것을 확인하였다. 

그래서 수정해보았던것이다.  많은 테스트가 필요한 것으로 보여지고, 테스트 결과(아직더 남았지만)
다운속도는 대략 2배, 업로드속도는 약 1.3배 가량상승했다.(업로드는 정상적으로 잘나오고 있었음)(무선인터넷을 사용합니다.)

좀더 테스트 후에 확실한 값을 찾아야겠다.

참고로 핑튐현상(핑 테스트중 갑자기 증가 하거나, 차이가 심하면 그 MTU는 설정하지 않는것이 좋겠다.)

수정함에 있어 속도 테스트를 할때 어떤 측정사이트는 패킷 손실율이 0%였지만 어떤 사이트는 0.08% 등이 나와서 무슨 차이인지 조사해봐야겠다.

Posted by Report.

블로그 이미지
세상이 좁은 많큼 많은 지식이 한 곳으로 ..
Report.
05-11 15:52
Yesterday
Today
Total
free counters

달력

 « |  » 2024.5
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함