티스토리 뷰
1. 우리집 컴퓨터는 어떻게 네이버에 연결될까?
[ 인터넷 연결을 위한 네트워크 구성 ]
오늘날 우리는 집에서 외부로부터 데이터를 매우 빠르게 주고 받는다. 이것은 어떻게 가능한 것일까? 우리의 홈 네트워크는 어떻게 구성되어 있는지 살펴보도록 하자.
우리가 집에서 네이버를 접속하는 상황을 생각해보자. 일반적으로 컴퓨터 끼리 통신을 하기 위해서는 연결이 되어야 한다. 하지만 네이버 서버(컴퓨터)는 춘천과 같은 먼 곳에 있을 것이기에, 우리가 직접 컴퓨터 선을 연결해서 데이터를 받는 것이 불가능하다. 따라서 우리는 통신사의 도움을 받아, 통신사가 연결해둔 선을 활용해서 데이터를 주고 받아야 한다.

[ 구리선을 활용한 데이터의 교환 ]
컴퓨터가 가진 것은 0과 1의 전기 신호를 이해하는 능력 뿐이다. 따라서 0과 1의 전기적 신호 그 자체를 주고받는 것이 가장 단순하고 이상적이다. 이를 위해서는 전기가 통하는 구리와 같은 도체로 전기를 주고받아야 하는데, 그 과정에서 에너지의 유실이 존재한다.
- 저항: 구리가 전기를 완벽히 통과시키지 못하고, 전자가 구리에 부딪히면 열로 변해 사라짐
- 전파 방출: 전류가 흐르면 주변에 전자기파가 생기고, 이게 선 밖으로 방사되며 에너지가 날아감
- 주변 간섭: 주변 기기가 뿜은 전자기파가 우리 랜선을 지나가면, 선 안에 없던 전압이 생기면서 노이즈가 생김
먼저 2번의 전파 방출 문제는 두 가닥의 구리선을 활용하는 방식으로 해결할 수 있다.
전선에 전류가 흐르면 주변 공간에 전자기파가 퍼져나간다. 이건 막을 수 없는 물리 법칙이다.

그래서 이를 상쇄시키기 위해 두 가닥의 구리선을 활용하는 것이다. 두 가닥의 구리선을 한 쌍으로 묶고, 랜선에서 신호를 보낼 때, 두 가닥에 정확히 반대되는 신호를 함께 흘려보낸다. 두 가닥의 신호가 서로 반대이므로, 각각이 뿜어내는 전자기파도 서로 반대가 되어 상쇄된다.

노이즈 캔슬링 이어폰이 바깥 소음과 정반대의 소리를 내어 소음을 지우는 것과 같은 원리다. 이를 통해 먼저 2번 전파 방출 문제를 해결할 수 있다.

이제 우리가 두 가닥의 구리선을 활용하기 때문에 신호를 해석하는 방법에 약간의 변화가 생겼다. 예를 들어 우리가 ‘1’ 신호를 보낸다고 하자. 그러면 한 쪽(A)이 +1V일 때 다른 쪽(B)은 −1V가 되는 식이다. 반대로 우리가 ‘0’ 신호를 보낸다고 하자. 그러면 한 쪽(A)이 -1V일 때 다른 쪽(B)은 +1V가 되는 식이다. 그러면 우리는 그 차이가 +2V인지 -2V인지에 따라 1의 신호인지 0의 신호인지 구분하는 것이다.
1을 보낼 때: A = +1V, B = −1V → 차이 +2V
0을 보낼 때: A = −1V, B = +1V → 차이 −2V
2개의 구리선을 꼬면 3번 간섭도 해결된다. 두 가닥을 나란히 두면 노이즈원에 가까운 쪽이 항상 더 많이 받게 된다. 그래서 두 가닥을 서로 꼬아둔다. 꼬아두면 두 가닥이 번갈아 가며 노이즈원에 가까워지므로, 결과적으로 같은 양을 받게 된다.

외부 노이즈는 두 가닥에 똑같이 들어온다. 그런데 신호를 받는 쪽에서는 각 가닥의 값을 따로 읽지 않고, 두 값의 차이만 읽어 해석한다. 따라서 양쪽에 똑같이 들어온 노이즈는 뺄셈 과정에서 저절로 사라진다.
(+1.0 + 0.3) − (−1.0 + 0.3)
= +1.3 − (−0.7)
= 2.0 ← 0.3이 서로 지워짐
만약 두 가닥을 꼬지 않아서 노이즈가 불균등하게 들어왔다면, 다음과 같이 틀린 값을 받게 된다.
(+1.0 + 0.5) − (−1.0 + 0.2)
= +1.5 − (−0.8)
= 2.3 ← 틀린 값
따라서 우리는 2개의 구리선을 활용하고, 이를 꼬는 방식으로 전파 방출과 주변 간섭 문제를 해결할 수 있다. 랜선의 껍질을 벗겨보면 여덟 가닥이 두 가닥씩 네 쌍으로 꼬여 있는데, 바로 이런 이유 때문이다. 참고로 네 쌍이 존재하는 이유는, 한 쌍만으로도 통신은 가능하지만, 네 쌍을 동시에 사용하여 더 많은 데이터를 보내기 위함이다. 실제로 기가비트 이더넷은 네 쌍을 모두 사용해 각 쌍이 250Mbps씩 담당하는 방식으로 1Gbps를 만들어낸다.
[ 광케이블을 이용한 데이터 교환 ]
하지만 문제는 1번의 저항 부분이다. 저항은 구리라는 물질 자체가 가진 성질이기 때문에, 선을 꼬거나 감싸는 방식으로는 없앨 수 없다. 은처럼 더 잘 통하는 금속으로 바꿔도 5% 정도 나아질 뿐이고, 저항이 0이 되는 초전도체는 영하 196도로 계속 냉각해야 하므로 통신선으로 쓸 수 없다.
1번의 문제로 인해 구리선을 이용한 데이터 교환은 거리의 제약이 생긴다. 멀리 주고 받을 수 없는 것이다. 신호는 거리에 비례해 계속 약해지고, 대략 100m를 넘어서면 노이즈와 구분할 수 없는 수준이 된다. 이더넷 규격의 최대 길이가 100m로 정해져 있는 것도 이 때문이다. 참고로 이더넷(Ethernet)이란 유선 LAN 통신 표준으로, 랜선으로 데이터를 주고받는 방법을 정해놓은 약속이다. 이 규격을 지키면 제조사가 달라도 서로 통신이 된다. LG 공유기에 삼성 노트북을 꽂아도 되는 이유다.
항목 내용
| 항목 | 내용 |
| 케이블 | 어떤 선을 쓸지 (구리 4쌍, 광섬유) |
| 최대 길이 | 100m |
| 커넥터 | RJ45 모양과 핀 배치 |
| 신호 방식 | 전압을 몇 단계로 쓸지, 어떻게 인코딩할지 |
| 속도 | 10Mbps / 1Gbps / 10Gbps |
문제는 네이버와 같은 서버에서 우리집까지의 거리가 수백 km에 이른다는 점이다. 구리선으로는 애초에 도달이 불가능하다. 100m마다 증폭기를 설치하는 방법도 생각해볼 수 있지만, 그러려면 수천 개의 장비가 필요하고 각각에 전원을 공급하고 고장을 관리해야 하므로 현실적이지 않다.
그래서 먼 거리 구간에는 구리선 대신 광섬유를 사용한다. 광섬유는 전기가 아니라 빛으로 신호를 보내기 때문에 위의 세 가지 문제에서 자유롭다. 전류가 흐르지 않으니 저항이 없고, 전자기파를 뿜지 않으니 방출도 없으며, 외부 전자기파에 반응하지 않으니 간섭도 없다. 그 결과 100km를 지나도 신호가 살아있다.

신호를 보내는 방식 자체는 크게 다르지 않다. 구리선이 전압을 높였다 낮췄다 하며 0과 1을 표현하듯, 집으로 들어오는 광섬유는 빛을 켰다 껐다 하며 0과 1을 표현한다. 매체가 전기에서 빛으로 바뀌었을 뿐이다.
[ 모뎀의 등장 ]
다만 여기서 새로운 문제가 생긴다. 컴퓨터는 전기 신호만 이해할 수 있을 뿐, 빛을 직접 읽어낼 수단이 없다. 광섬유를 타고 집 앞까지 도착한 빛을, 컴퓨터가 알아들을 수 있는 전기 신호로 바꿔줄 무언가가 필요하다. 이를 위해 ‘모뎀’이라는 장치가 필요하다.

모뎀이 하는 일은 단순하다. 광케이블을 타고 들어온 빛의 깜빡임을 읽어 전기 신호로 바꾸고, 반대로 컴퓨터가 내보낸 전기 신호를 빛의 깜빡임으로 바꿔 내보낸다. 담겨 있는 0과 1은 그대로이고, 그것을 실어 나르는 매체만 바뀌는 것이다. 배로 실려 온 화물을 항구에서 트럭에 옮겨 싣는 것과 같다.
참고로 모뎀(Modem)이라는 이름은 MOdulator(변조기)와 DEModulator(복조기)를 합친 말이다. 전화선으로 인터넷을 쓰던 시절, 전화선은 본래 사람의 목소리를 전달하기 위한 것이었기에 0과 1을 그대로 실을 수 없었다. 그래서 디지털 신호를 전화선이 실어 나를 수 있는 소리로 바꿨다가(변조) 다시 되돌리는(복조) 장치가 필요했고, 그것을 모뎀이라 불렀다. 오늘날 가정에 설치되는 광모뎀은 엄밀히 말하면 변조·복조보다는 빛과 전기 사이의 변환에 가까워 ONT(Optical Network Terminal)라고 부르지만, 역할이 같기 때문에 여전히 모뎀이라는 이름으로 통용되고 있다.
이러한 이유로 모뎀은 집집마다 하나씩 필요하다. 변환 작업은 광섬유가 끝나는 지점, 즉 집 안에서 이루어져야 하기 때문이다. 밖에서 미리 전기 신호로 바꿔놓으면 그 뒤로는 구리선을 써야 하는데, 앞서 살펴봤듯 구리선은 100m밖에 가지 못한다. 그렇다고 모든 기기에 빛을 읽는 부품을 넣을 수도 없다. 비싸고 크고 전력을 많이 먹기 때문에, 집에 한 대만 두고 그 뒤로는 구리선으로 연결하는 편이 훨씬 경제적이다.
[ 공유기의 필요성 ]
모뎀을 거치면 컴퓨터가 이해할 수 있는 전기 신호로의 변환이 완료된다. 하지만 모뎀에는 보통 랜포트가 하나뿐이라 기기 한 대만 연결할 수 있다. 집에는 노트북, 스마트폰, TV처럼 인터넷을 써야 하는 기기가 여러 대 있는데, 신호를 받을 창구가 하나뿐인 것이다.
모뎀에 랜포트를 여러 개 만들면 되지 않나 생각할 수 있지만, 포트만 늘리는 것으로는 해결되지 않는다. 기기마다 공인 IP가 필요한데 통신사가 주는 것은 하나뿐이기 때문이다. 공인 IP란 인터넷 전체에서 나를 가리키는 주소로, 이것이 있어야 응답이 우리집까지 돌아올 수 있다.
주소가 하나뿐이라는 것은 곧 기기를 구분할 수 없다는 뜻이다. 네이버가 보낸 응답이 우리집에 도착했을 때, 그것을 노트북에 줘야 할지 스마트폰에 줘야 할지 알 방법이 없다. 인터넷 회선 하나를 여러 기기가 나눠 쓰려면 이 문제부터 풀어야 하고, 그 역할을 하는 장치가 바로 공유기다.
공유기는 이 문제를 두 단계로 해결한다. 먼저 집 안에서만 통하는 내부 주소를 기기마다 하나씩 자동으로 배정한다. 192.168.0.2, 192.168.0.3 같은 주소들이다.

그리고 데이터가 집 밖으로 나갈 때는 발신 주소를 공인 IP 하나로 바꿔치기하면서, 어떤 기기가 보낸 요청이었는지를 따로 기록해둔다. 응답이 돌아오면 그 기록을 보고 원래 요청한 기기에게 전달한다.
그렇다면 공인 IP가 하나뿐인데 어떻게 기기를 구분해서 기록할 수 있을까? 여기에는 포트 번호가 사용된다. IP가 건물 주소라면 포트는 그 건물의 호수에 해당한다. 건물 주소가 같아도 호수가 다르면 구분할 수 있듯, 공유기는 요청이 나갈 때마다 비어 있는 포트 번호를 하나씩 배정하고 이를 표에 기록해둔다.

밖에서 보면 세 기기 모두 203.0.113.5라는 같은 주소를 쓰고 있지만, 뒤에 붙은 포트 번호가 서로 다르다. 네이버가 203.0.113.5:40002로 응답을 보내오면 공유기는 이 표를 확인해 192.168.0.3, 즉 스마트폰에게 전달한다. 아파트 정문에 도착한 택배를 경비실이 호수를 보고 해당 집에 전달하는 것과 같다.
참고로 이 기록은 임시로만 유지되며 연결이 끝나면 지워진다. 표에 없는 포트로 외부에서 먼저 연락이 오면 어디로 전달해야 할지 알 수 없으므로 그냥 버려진다. 별다른 설정을 하지 않아도 공유기가 기본적인 방화벽 역할을 하게 되는 이유다.
여기에 더해 오늘날의 가정용 공유기는 유선으로 들어온 신호를 무선 전파로 바꿔 뿌리는 기능까지 함께 담고 있다. 스마트폰처럼 랜선을 꽂기 어려운 기기가 선 없이 연결될 수 있는 것도 이 덕분이다.
이렇듯 공유기가 하는 역할을 정리하면 크게 세 가지로 구분해 볼 수 있다.
기능 설명
| 기능 | 설명 |
| DHCP | 새 기기가 연결되면 내부 IP(192.168.0.x)를 자동으로 배정 |
| NAT | 밖으로 나갈 때 내부 IP를 공인 IP로 바꾸고, 돌아온 응답을 원래 기기로 되돌림 |
| Wi-Fi AP | 유선으로 들어온 신호를 무선 전파로 바꿔 뿌림 |
결국 포트를 늘리는 것만으로는 부족하고, 주소를 배정하고 변환하는 기능이 함께 있어야 한다. 그리고 그 기능을 모뎀에 넣으면 그 장비는 모뎀이자 공유기가 된다. 실제로 오늘날 통신사가 설치해주는 장비 중에는 이렇게 두 기능을 한 박스에 합쳐놓은 것이 많다. 겉으로는 장비가 하나로 보이지만, 그 안에서 빛을 전기로 바꾸는 일과 회선을 여러 기기에 나눠주는 일이 각각 이루어지고 있는 셈이다.
[ 단말 ]
마지막은 실제로 인터넷을 사용하는 기기들이다. 노트북, 스마트폰, TV, 태블릿처럼 데이터를 주고받는 최종 목적지에 해당하는 장비들을 단말(End Device)이라고 부른다. 네트워크 용어로는 호스트(Host)라고도 한다.
단말이 공유기에 연결되는 방법은 두 가지다. 랜선을 직접 꽂는 유선 연결과, 공유기가 뿌리는 전파를 잡는 무선 연결이다. 데스크탑이나 TV처럼 자리를 옮기지 않는 기기는 주로 유선으로, 스마트폰이나 노트북처럼 이동이 잦은 기기는 무선으로 연결한다. 다만 둘 중 무엇을 쓰든 공유기로부터 내부 IP를 하나씩 배정받고 공유기를 통해 바깥과 통신한다는 점은 동일하다.
유선과 무선은 신호를 실어 나르는 매체만 다를 뿐이다. 유선은 구리선의 전압으로, 무선은 공기 중의 전파로 0과 1을 전달한다. 앞서 구리선과 광섬유가 매체만 다를 뿐 같은 0과 1을 나른다고 했던 것과 같은 이야기다.
그런데 단말이 이 신호를 주고받으려면, 해당 매체를 다룰 수 있는 부품이 기기 안에 있어야 한다. 랜선의 전압을 읽거나 전파를 잡아내는 일은 CPU가 직접 할 수 있는 일이 아니기 때문이다. 이 역할을 하는 부품을 NIC(Network Interface Card), 우리말로는 랜카드라고 부른다.
유선 NIC은 랜선을 꽂는 포트와 그 뒤의 칩으로 이루어져 있다. 랜선을 타고 들어온 전압의 높낮이를 읽어 컴퓨터가 다룰 수 있는 데이터로 바꾸고, 반대로 컴퓨터가 내보낸 데이터를 전압으로 바꿔 선에 실어 보낸다. 무선 NIC은 포트 대신 안테나를 가지고 있으며, 공기 중의 전파를 잡아 데이터로 바꾸는 일을 한다. 형태는 다르지만 하는 일의 성격은 같다.
이는 앞서 살펴본 모뎀과 정확히 같은 구조다. 모뎀이 광케이블의 빛을 랜선의 전기로 바꿔주었듯, NIC은 랜선의 전기나 공기 중의 전파를 컴퓨터가 다루는 데이터로 바꿔준다. 매체가 바뀌는 지점마다 그것을 이어줄 변환 장치가 하나씩 놓여 있는 셈이다.

오늘날 대부분의 노트북에는 유선 NIC과 무선 NIC이 모두 들어있다. 랜선을 꽂으면 유선 NIC이, Wi-Fi에 접속하면 무선 NIC이 동작한다. 과거에는 이름 그대로 별도의 카드를 꽂아 사용했지만, 지금은 메인보드나 CPU에 통합되어 있어 눈에 잘 띄지 않을 뿐이다.
한편 NIC에는 제조 단계에서 부여된 고유한 주소가 하나씩 새겨져 있는데, 이를 MAC 주소라고 한다. 앞서 공유기가 기기마다 내부 IP를 나눠준다고 했는데, 이때 어떤 기기에게 어떤 IP를 주었는지 기억하는 기준이 바로 이 MAC 주소다. IP가 상황에 따라 바뀔 수 있는 주소라면, MAC 주소는 그 기기의 NIC에 붙박이로 새겨진 이름표에 가깝다.
이것으로 집 안의 구성은 모두 갖춰졌다. 광섬유로 들어온 빛을 모뎀이 전기 신호로 바꾸고, 공유기가 그 회선 하나를 여러 기기에 나눠주며, 단말이 그것을 사용한다. 그렇다면 집 밖으로 나간 선은 어디로 이어질까?
[ 통신사 망과 국사 ]
집 밖으로 나간 광케이블은 네이버 서버까지 곧장 이어질까? 그렇지 않다. 만약 모든 컴퓨터가 서로 직접 연결되어야 한다면, 필요한 선의 개수는 곱셈으로 늘어난다. 사용자가 1000만 명이고 서버가 100만 대라면 선이 10조 가닥 필요하다는 뜻이고, 우리집 벽에는 구멍이 100만 개 뚫려 있어야 한다는 뜻이다. 애초에 불가능한 방식이다.
그래서 통신사는 동네마다 국사라고 부르는 시설을 두고, 각 가정에서 나온 회선을 그곳으로 모은다. 우리집에서 나가는 선은 국사까지 이어진 한 가닥이면 충분하고, 그 뒤로는 국사가 목적지를 판단해 상위 망으로 넘겨준다. 편지를 부산으로 보내든 서울로 보내든 일단 동네 우체국에 들어가는 것과 같다. 국사를 거치면 필요한 선의 개수가 곱셈에서 덧셈으로 줄어든다. 집이 1000만 채이고 서버가 100만 대여도, 각자 가까운 국사까지만 연결하면 되기 때문이다.
국사에서 나온 신호는 통신사가 전국에 깔아둔 큰 망을 타고 목적지 근처까지 이동한다. 네이버 서버가 있는 춘천까지도 이 망을 통해 도달한다. 만약 목적지가 다른 통신사에 속해 있다면, 통신사끼리 서로 연결해둔 지점을 거쳐 넘어간다. 인터넷(Internet)이라는 이름 자체가 망과 망 사이(inter-network)를 뜻하는 것도 이 때문이다.

이것으로 우리집 노트북에서 네이버 서버까지의 경로가 모두 이어졌다.
우리는 춘천에 있는 네이버 서버와 어떻게 이렇게 빠르게 데이터를 주고받을 수 있는가. 구리선은 짧은 거리를 값싸게 잇고, 광섬유는 먼 거리를 손실 없이 잇는다. 그리고 매체가 바뀌는 지점마다 변환 장치가 놓여 이 둘을 이어준다. 그렇게 여러 구간에 걸쳐 매체가 계속 바뀌면서도 그 안에 실린 0과 1은 한 번도 변하지 않는다. 전파로, 전압으로, 빛으로 모습을 바꿔가며 전달될 뿐, 처음 보낸 데이터와 도착한 데이터는 정확히 같다.
'네트워크' 카테고리의 다른 글
| [HTTP] HTTP 메소드의 멱등성(Idempotence)과 Delete 메소드가 멱등한 이유 (10) | 2023.01.03 |
|---|---|
| [HTTP] HTML 폼(form) 요청이 GET, POST만 가능하고 PATCH, PUT, DELETE은 불가능한 이유 (8) | 2022.03.11 |
| [HTTP] HTTP 상태 401(Unauthorized) vs 403(Forbidden) 차이 (3) | 2021.04.22 |
| [Web] HTTP와 HTTPS의 개념 및 차이점 (34) | 2020.10.17 |
| [Web] Forward와 Redirect 차이 (30) | 2019.09.10 |
