라이브러리
프로그래밍언어, 각종코드, 관련동향, 논문 등의 저장소
인터넷에서 속도의 개념은

초고속인터넷과 관련된 여러 가지 논의가운데, 일반 이용자의 관심이 가장 집중되는 부분은 아마도 "속도" 일 것입니다. (물론 접속안정성 및 안정적인 반응시간 등도 관심이 많은 부분이지만, 이러한 부분은 차후에 다시 한 번 글을 올릴 수 있는 기회를 가지도록 하겠습니다.)

인터넷 이용속도의 개념과 단위, 이론적 최대속도와 실제 속도의 차이, 사용하는 프로그램에 따라 발생하는 속도차이 등에 대해 알아보도록 하겠습니다.

1. 인터넷 이용속도의 정확한 정의는 어떻게 내릴 수 있을까요?

현재 초고속인터넷 상품을 제공하기 위해 널리사용되고 있는 기술은 대부분 "비대칭"적인 대역폭을 제공하고 있습니다. 즉 일반적인 인터넷 사용환경 분석결과를 바탕으로, "다운로드"의 비중이 "업로드"에 비해 훨씬 큰 점을 이용하여, 제한된 대역폭을 다운로드에 더 많이 배분하여 업로드 속도에 비해 다운로드 속도가 빠르도록 기준을 정의한 것입니다. (ADSL, CATV 등이 모두 이러한 비대칭 방식을 사용하고 있으며, Home-PNA, T-LAN 등의 기술을 사용하는 홈랜상품의 경우 대칭형 서비스-가입자망 부분에 한정-를 제공하고 있습니다.)

우선 "속도"의 사전적 의미와 위의 내용을 정리하면 다음과 같습니다.

☞ 속도 : 단위시간에 네트워크를 이용해 전송할(받을) 수 있는 데이터 크기
☞ 다운로드 : 하나의 컴퓨터가 다른 컴퓨터에 접속하여 데이터를 받는 과정
☞ 업로드 : 하나의 컴퓨터가 다른 컴퓨터에 접속하여 데이터를 보내는 과정
☞ 비대칭 서비스 : 다운로드와 업로드의 전송 대역폭이 다르게 설정되어 있는 서비스

뒤에서 다시 언급하겠지만 웹 브라우저를 이용하여 인터넷에 있는 파일을 다운받을 경우, 해당 브라우저에 표시되는 속도가 정확한 속도라고 보기는 어렵습니다. 왜냐하면 브라우저에서 계산되어 나오는 속도는 네트워크를 통해 실제로 데이터를 받는 시간 이외의 시간(예를 들면 다운받은 데이터를 처리하여 PC에서 인식 가능한 파일형태로 재구성하고 이를 PC의 HDD에 기록하는 시간 등등...)까지를 포함하고 있기 때문입니다.

띠라서 정확한 인터넷 이용속도를 정의하기 위해서는 네트워크를 통해 실제 데이터를 주고받는 시간만을 고려하는 것이 필요합니다. 현재 인터넷에서 사용되는 프로토콜은 TCP/IP로 거의 통일되어 있는 상태이므로, TCP 계층에서의 데이터 전송속도를 "정확한 인터넷 이용속도"로 정의하는 것이 가장 정확한 정의일 것입니다. (기술적 용어로는 "OSI Layer 4 에서의 전송속도"라고 볼 수 있습니다.)

☞ 인터넷 이용속도 : 단위시간 동안 네트워크를 통해 전송할(받을) 수 있는 데이터의 크기를 TCP 계층에서 측정한 결과

2. 다운로드 속도를 측정하는 단위로는 무엇을 사용하는지요?

속도에 대한 언급을 위해서는 기준이 되는 "단위"가 있어야 합니다. 속도는 "데이터의 크기"와 "경과된 시간"에 의해 계산이 가능하므로, 단위 역시 크기와 시간이라는 두 가지의 요소로 표시가 가능합니다. 컴퓨터와 네트워크 분야에서 주로 사용되고 있는 "데이터 크기"의 단위에는 "bit"와 "Byte"가 있으며, "경과된 시간"의 단위에는 주로 "초(sec)"를 사용합니다.

☞ bit : 0 또는 1을 표현할 수 있는 데이터 표현단위. 즉 1bit는 0 또는 1의 값 중 하나를 가지게 되며, 컴퓨터 및 네트워크 분야에 있어 가장 기초가 되는 데이터 표현기준
☞ Byte : 8개의 bit가 모인 집합. 즉 1Byte=8bit의 관계가 성립됨, 1Byte는 2의 8 제곱인 256가지의 데이터를 표현할 수 있으며, 이는 영문 알파벳 대소문자 및 숫자, 그리고 각종 특수기호를 포함하기에 충분한 개수라고 판단한 초기 컴퓨터 개발자들에 의해 정의 되었음

"네트워크 속도"와 "파일 및 메모리 크기"의 기준으로 널리 사용되는 단위를 정리하면 다음과 같습니다.

☞ bit per second (bps) : 네트워크 속도의 기준 단위. 1초에 전송할(받을) 수 있는 데이터의 크기를 bit 단위로 표현하며, 약자인 "bps"는 항상 소문자로 씀
☞ Byte (B) : 파일 및 메모리의 크기를 표현하는 기본 단위. 항상 대문자 "B"로 씀

네트워크 속도의 기준 단위인 bps에는 단위 확장을 위해 "Kilo(K)", "Mega(M)", "Giga(G)" 등의 접두어가 사용될 수 있습니다. 이들의 단위환산 관계는 다음과 같습니다.

☞ 1[Kbps] = 1024[bps]
☞ 1[Mbps] = 1024[Kbps] = 1024 * 1024[bps]
☞ 1[Gbps] = 1024[Mbps] = 1024 * 1024 * 1024[bps]

길이나 질량 등을 표시하는 단위에서 각각의 접두어가 1000배 만큼의 단위변동을 의미하는 것과는 달리, 네트워크나 컴퓨터 분야에서는 1024(2의 10 제곱)배 만큼의 단위변동을 의미한다는 차이점이 있습니다. (파일이나 메모리 크기를 표현하기 위해 주로 사용되는 단위인 "Byte" 역시 접두어를 이용해 "KB", "MB", "GB" 등으로 단위를 확장하여 사용하며 이 또한 1024배 만큼의 단위변동을 의미합니다.)

간단한 예를 하나 들어보도록 하겠습니다. 실제 속도가 512Kbps인 전용선을 통해 3MB 크기의 파일을 다운받을 경우 소요되는 시간을 계산하는 과정은 다음과 같습니다.

☞ 파일크기를 bit로 환산 : 3[MB] * 1024[KB/MB] * 1024[Byte/KB] * 8[bit/Byte] - (1)
☞ 속도를 bps로 환산 : 512[Kbps] * 1024[bps/Kbps] - (2)
☞ 소요시간 = 파일크기 / 속도 = (1)[bit] / (2)[bit/sec] = 48[sec]

3. 이론속도와 실제속도의 차이가 큰 것 같은데 원인이 무엇인지요?

LAN 등의 네트워크 구성에 가장 널리 쓰이는 기술인 이더넷(Ethernet)을 이야기 할 때, 흔히 "10M 랜", "100M 랜" 등의 말을 많이 사용합니다. (물론 여기서 말하는 M은 Mbps를 의미하는 것입니다.) 즉 10M 랜의 경우 1초에 최대 10Mbit의 데이터를 전송할 수 있는 성능을 가지고 있다는 뜻입니다.

그러나 10Mbps 규격의 네트워크 장비를 이용하여, 최적환경을 구성한 상태에서 PC를 통해 다운을 받을 경우, 8Mbps 이상의 속도를 얻는 것은 거의 불가능 합니다.

이와 같이 네트워크 속도를 저하시킬 요소가 없는 최상의 상태에서도 실제 표시된 이론속도에 미치는 못하는 속도가 나오는 원인에는 다음과 같은 것들이 있습니다.

☞ 네트워크 장비가 제공하는 성능의 물리적 한계
☞ 네트워크 패킷의 구조
☞ 전송 과정에서 발생하는 신호 오류
☞ 기타 특수한 경우 (노트북 PC 사용, USB 장비 사용 등...)

네트워크 장비에서 표시하는 10Mbps 등의 속도는 그 장비가 전기적으로 전달 가능한 이론적 최대속도를 의미하는 것입니다. 하지만 이는 어디까지나 최고속도를 의미하는 것이므로, 측정환경을 최적으로 구성한다고 해서 항상 10Mbps의 최고속도를 얻을 수 있는 것은 아닙니다. 그 이유는 아래의 내용을 참고하시면 알 수 있습니다.

사용자 삽입 이미지

위의 그림은 인터넷을 통해 데이터를 송수신 하는 경우, 네트워크의 동작을 계층적으로 표현한 그림입니다. 이 그림에 표현되어 있는 내용을 정리하면 다음과 같습니다.

☞ (3) ▶ (4) : 장비규격으로 표시되는 이론적 최대속도
☞ (2) ▶ (5) : TCP 계층(Layer 4)에서 측정한 인터넷 이용속도
☞ (1) ▶ (6) : IE 등에서 표시하는 사용자 체감속도

초고속인터넷이 일반화되기 이전 가장 널리 사용되던 인터넷 접속방법인 56Kbps 모뎀을 통한 Dial-Up 접속을 생각해보면, 대부분의 지역에서 45~50Kbps 정도의 속도로 접속이 되었으나 파일 다운로드시 실제 얻을 수 있는 속도는 4~5KB/sec(IE에서 표시되는 속도단위이며 Kbps로 환산하면 32~40Kbps) 정도였습니다. 이 역시 모뎀에 표시된 56Kbps라는 속도가 전기적으로 전송 가능한 최대속도를 의미하는 것이었기 때문입니다. (간혹 천리안, 하이텔 등의 Telnet 방식 PC 통신에서 Z-Modem 프로토콜을 이용해 파일을 다운받을 경우 56Kbps의 2~3배에 이르는 높은 속도가 나오는 경우가 있었으나, 이는 모뎀 자체에 포함되어 있는 압축알고리즘에 의해 전송대상 파일을 압축하여 수신하였기 때문입니다. 현재 초고속인터넷 관련 기술에서는 네트워크 속도 자체가 상당한 고속이므로, 이러한 압축 알고리즘을 거의 사용하지 않는 것이 추세입니다.)

사용자가 하나의 데이터를 전달하고자 할 때, 데이터를 원하는 목적지까지 오류없이 정확하게 전달하기 위해서, 실제 데이터의 앞뒤로 각각 Header와 Tailer라 불리는 추가정보를 더하여 전송을 합니다. 이에따라 데이터의 크기는 Header와 Tailer의 크기만큼 증가되며, 속도는 증가되는 패킷크기에 따라 저하됩니다. (이렇게 실제데이터에 추가되는 부분의 크기를 Overhead Size라고 하며, 이는 사용되는 프로토콜의 종류에 따라 대체적으로 예상이 가능합니다.)

Header

사용자가 전달하고자 하는 데이터
(Payload)

Tailer

네트워크에는 전송중 일부 데이터에 오류가 발생할 수 있는 잠재적 가능성이 항상 존재하며, 이를 해결하기 위해 프로토콜은 오류감지 및 재전송 기능을 보유하고 있습니다. 따라서 전송중 오류가 발생하여 이를 재전송할 경우, 그만큼의 속도저하가 발생하게 됩니다. (그러나 최적의 환경을 구성해 놓을 경우, 오류발생 가능성은 거의 없는 것이 사실입니다.)

기타 특수한 경우로, 노트북 PC나 USB 장비를 사용하는 경우 등에 있어서는, 최적환경에서 측정을 수행하여도 이론적 실제 속도의 50% 이하의 속도가 나오는 경우가 많이 있습니다. 이는 네트워크 장비와 PC 사이의 인터페이스 속도가 네트워크 속도에 비해 상대적으로 저속이기 때문에 발생하는 현상입니다. (PCMCIA, USB 등의 인터페이스 규격이 제공할 수 있는 실제 속도는 대부분 10Mbps 이하입니다.)

참고로 자체적인 시험결과 최적의 환경을 구성한 경우 사용자의 체감속도는 장비가 제공하는 이론적 속도의 80% 수준인 것으로 파악되고 있습니다.

최적환경이 아닌 일반적인 환경에서 인터넷 이용속도에 영향을 미칠 수 있는 요소는 매우 많습니다. 이를 체계적으로 파악하기 위해서는 사용자가 실제로 인터넷을 이용하는 과정에서 경유하는 구간을 다음과 같이 구분하여 생각할 필요가 있습니다.

사용자 삽입 이미지

☞ 가입자망 : 가입자 장비(모뎀, NIC 등등...)와 직접 연결되는 DSLAM, CMTS, MDU 등의 장비까지의 연결구간
☞ 백본망 : 다수의 가입자가 유발시키는 트래픽을 모아 중앙까지 전달하는 연결구간
☞ 연동망 : 하나의 ISP와 일반인터넷망을 연결하는 구간
☞ 직개통 회선 : 상호 유발 트래픽이 많은 ISP 사이의 원활한 정보교환을 위해 해당 ISP의 라우터를 직접 연결해 놓은 회선으로 연동망의 일부에 포함됨

위의 그림에서 알 수 있는 것처럼 사용자가 인터넷을 이용하기 위해서는 물리적, 논리적으로 구분된 다수의 구간을 경유하여야 합니다. 이중, 가입자망~백본망 까지의 구간은 단일 ISP가 관리하는 구간으로 볼 수 있으며, 그 이후 구간은 다수의 ISP, IX, 해외사업자 등이 복잡하게 연결된 구간입니다.

초고속인터넷에서 흔히 언급되는 이론적 최고속도, 또는 설정 대역폭은 위의 구간중 가입자망 구간에 한정해서만 의미가 있는 표현입니다. 예를들어 어느 ADSL 사용자의 다운로드 대역폭이 8192Kbps로 설정되어 있다는 것은 사용자 PC에 설치된 모뎀과 가입자단 집중장치 사이에 설정된 대역폭이 8192Kbps라는 뜻입니다.

실제 사용자가 일반 인터넷 사이트에서 파일을 다운받을 경우 위에 표현된 네 개의 구간(가입자망, 백본망1, 백본망2, 연동망)이 제공가능한 대역폭 중 최소값의 영향을 받게됩니다. 즉 가입자망 및 백본망은 모두 5Mbps 이상의 충분한 대역폭을 제공하고 있지만, 연동망이 4Mbps의 속도를 제공하는 상태라면, 사용자가 체감할 수 있는 최대 속도는 4Mbps 이하가 되는 것입니다.

가입자망~백본망 까지의 구간은 일반적으로 단일 ISP가 관리하는 구간이며, 가입자 예측과 부하분산 및 추가장비 도입 등의 노력을 통해 일정수준의 품질을 유지하는 것이 비교적 용이합니다. 그러나 일반 연동망의 경우 다수의 ISP 및 기타기관의 이해관계가 복잡하게 얽혀있는 관계로 문제가 발생할 경우 신속하고 원활한 해결이 어려운 것이 현실입니다.

하나넷의 경우 그림에서 볼 수 있는 것처럼, 하나로통신 백본에 직접 연결된 서버를 통해 서비스를 하고 있습니다. 따라서 하나로통신 상품 이용자의 경우 다른 인터넷 사이트에 비해 하나넷 이용시 더 빠른 속도를 보이는 것이 일반적이며, 역시 마찬가지의 이유로 인해, 하나로통신과 직개통 회선으로 연동되어 있는 ISP를 이용할 경우 상대적으로 더 빠른 속도를 경험할 수 있습니다. (현재 하나로통신은 국내 대부분의 유명 ISP 및 기관들과 기가급(Gbps) 이상의 대용량 직개통 회선을 운용하고 있습니다.)

4. 사용하는 프로그램이나 측정도구에 따라 속도가 모두 다른데 어느것이 정확한가요?

일반사용자는 보통 웹 브라우저(대부분 마이크로소프트의 인터넷 익스플로러 : IE)에 표시되는 속도를 기준으로 인터넷 이용속도를 판단하는 경우가 많습니다. 그러나 앞에서도 언급하였듯이, IE에 표시되는 속도가 정확하다고 보기에는 무리가 있습니다. 인터넷 활용시 대표적으로 사용되는 두 가지 프로그램(IE, WS_FTP)을 예로 들어 이들 프로그램에서 표시하는 속도가 정확하지 않은 이유를 알아보도록 하겠습니다.

IE의 경우 파일을 다운받을 경우 다음과 같은 절차를 거치게 됩니다.

☞ 네트워크를 통해 일부 데이터를 다운로드 - (1)
☞ 임시폴더(주로 Temp 폴더)에 다운받은 데이터를 계속 추가하여 파일로 저장 - (2)
☞ 전체 데이터를 모두 수신할 때까지 (1), (2) 과정을 계속해서 반복
☞ 데이터 수신이 완료되면 완성된 파일을 사용자가 다운로드 직전 지정한 폴더로 복사

참고로 "IE 5.5" 이전 버전에서는 다운로드를 위해 파일을 선택하고 다운받을 폴더와 파일이름을 입력받는 창에서 사용자가 머무르는 시간까지 다운로드 속도 계산에 포함되는 문제점이 있었습니다. (현재 최신 버전인 5.5이후에는 해결된 부분입니다.)

위의 표에서 알 수 있듯이 IE는 다운을 받을 때 우선 임시폴더에 저장을 한 후 다시 지정된 폴더로 복사하는 방식을 사용합니다. 따라서 사용자가 다운받는 파일크기가 몇 MB 정도의 작은 파일일 경우 복사가 매우 빠른 속도로 이루어지기 때문에 속도에 별다른 차이가 없는 것처럼 느껴질 수 있지만, 수백 MB 이상의 큰 파일을 다운받을 경우에는 수치상으로 표시되는 속도가 확실하게 낮아지는 현상을 확인할 수 있습니다. 또한 다운로드를 받는 과정에서 주기적으로 수신데이터를 HDD에 쓰기위한 지연시간도 IE에서 표시되는 속도를 저하시키는 원인입니다.

FTP 프로그램으로 널리 사용되는 "WS_FTP"의 경우 파일크기 계산 과정의 Byte를 bit로 변환하는 부분에서 8이 아닌 10을 곱하는 버그가 있습니다. (정식버전으로 출시된 6.X 까지는 이러한 버그가 있었으며, 현재 Beta 버전으로 나오고 있는 7.X에서 이러한 문제가 수정되었는지의 여부는 확인하지 못했습니다.) 따라서 WS_FTP에 표시되는 속도는 일반적으로 다른 곳에 표시되는 속도에 비해 상당히 빠르게 나오는 경향이 있습니다. ("속도=파일크기/시간" 공식에서 파일크기가 상대적으로 증가되므로...)

따라서 정확한 속도확인을 위해서는 TCP 계층에서 전송된 패킷의 크기와 소요시간을 정확하게 계산할 수 있어야 하며, 이 때 전송된 패킷은 컴퓨터 성능에 따른 영향을 최소화하기 위해, HDD에 저장되는 등의 과정 없이 컴퓨터의 메모리 차원에서 처리될 수 있어야 합니다. 현재 하나로통신에서 사용하고 있는 품질측정 기능은 이와 같은 원칙이 최대한 반영될 수 있도록 개발된 상태입니다. (일반적으로 하나로통신 인터넷 품질측정을 사용하여 확인한 속도는 IE 사용시 보다 조금 빠릅니다.)


아바타정보|같은옷구입
사용자 삽입 이미지
상품권 선물하기

  Comments,     Trackbacks