요즘은 인터넷이 없는 컴퓨터는 상상할 수도 없죠.
근데 인터넷을 쓰려면 공유기에 LAN이니 WAN이니 하는 것들이 있고
UTP나 물리주소, IP주소, URL 같은 정보들을 접하게 됩니다.
그러다 네트워크 문제가 발생하면 DMZ나 포트포워딩 같은 낯선 단어들을 접하게되죠.
사실 이런 것들에대해 정확히 알지는 못하지만 대충 매뉴얼을 보거나
다른 사람들의 정보글을 보고 적당히 따라해서 사용하곤 합니다.
이런 내용들에 대해서 차례대로 좀 알아보는 글을 적어볼까 합니다.
원래 컴퓨터들은 각자 따로노는 기계들이었죠.
아래 그림처럼 말이죠.
두 컴퓨터 간에 정보를 공유하려면 A 컴퓨터의 플로피 드라이브에서 디스켓에 정보를 저장한뒤
손으로 옮겨서 B 컴퓨터의 드라이브에서 복사하는 방식으로 했어야했습니다.
하지만 상시 데이터를 계속 교환하려다보면 이런 방식은 매우 불편한데다
두 컴퓨터가 서로 멀리 떨어져있기까지 한다면 정말 귀찮은 일이었죠.
그래서 시리얼 포트(흔히 COM 포트라고도 하는)라고 하는 통신 포트를 만들어 두 개를 케이블로 연결해서 통신을 하게 됩니다.
아래와 같은 케이블 같은 걸 사용해서 말이죠.
그러면 실제로 두 컴퓨터를 이렇게 연결해서 사용할 수 있게 됩니다.
거의 실로 이어 만든 컵 전화처럼 아주 구식의 네트워크인 셈이죠.
근데 이 방식은 너무너무 구식이기 때문에 3대의 컴퓨터를 연결하고자 할 때 고민이 생길 수 밖에 없습니다.
시리얼 포트는 2개까지 연결할 수 있었기 때문에 굳이 구성하려면 아래 그림처럼 연결을 해서 구성을 할 수 있기는 했습니다.
하지만 4대의 컴퓨터를 연결하려면 어떻게 될까요?
이제 슬슬 케이블 갯수가 컴퓨터보다 훨씬 많아지기 시작하면서 정신이 산만해지죠.
이제 5대, 6대로 연결해야할 컴퓨터가 늘어난다면 어떻게 될까요? 점점 답이 없어지겠죠?
그러다보니 이 방법은 안되겠다 싶어지게 되어 컴퓨터 간의 연결을 담당하는 전용 기계가 생기게 됩니다.
그게 바로 허브(HUB)죠.
이 허브를 컴퓨터들의 사이에 놓고 모든 컴퓨터를 이 허브에 연결을 하게되면
복잡한 케이블 연결 없이 네트워크를 구성할 수 있게됩니다.
이젠 컴퓨터가 늘어나더라도 케이블 1개씩만 추가하면 그만이죠. (허브도 구멍이 더 많은 걸 써야겠지만요.)
근데 이렇게 연결을 하고 나면 또 새로운 문제가 생깁니다.
A 컴퓨터가 B 컴퓨터나 C컴퓨터와 통신을 하고 싶은데, 연결된 케이블은 하나 뿐이기 때문에
나는 누구고 누구와 통신을 하고 싶은지 정보가 필요하게 된거죠.
마치 무전기에 대고 '여기는 부엉이 부엉이! 독수리 독수리 응답하라!' 하는 식으로
이름이 필요하게 된겁니다.
이 때문에 물리 주소(MAC Address)라는 것이 처음 생기게 됩니다.
각 컴퓨터에 번호를 붙여서 통신을 하게 되죠.
'A1 컴퓨터가 보낸다 C5 컴퓨터는 받아라~' 하는 식으로 말이죠.
실제로는 이렇게 단순한 숫자는 아니고
1A:B4:7C:D2:5E:F8
형식의 12자리로 된 16진수 숫자의 주소 값을 갖습니다.
내 컴퓨터의 주소가 궁금한 분들은
명령 프롬프트를 열어 다음과 같이 입력해보면 내 컴퓨터의 물리 주소를 쉽게 알 수 있습니다.
C:\>ipconfig /all | findstr 물리 물리적 주소 . . . . . . . . : 1C-1B-0D-9C-72-19 물리적 주소 . . . . . . . . : 00-1A-7D-DA-71-13
이렇게 구성된 네트워크를 우리는 Local Area Network. 즉 LAN(랜)이라고 부르게 됩니다.
봉준호 감독이 '오스카는 로컬이잖아~' 라고 했던 그 Local 말이죠.
그렇게 일부 지역안에서만 복작대는 그런 네트워크를 LAN 이라고 부릅니다.
즉 우리가 흔히 말하는 '랜포트(LAN Port)'라고 하는게 LAN에 연결하기 위한 구멍이라는 이야기죠.
이 LAN에서의 통신은 기본적으로 아래와 같은 식으로 이루어 집니다.
(요즘은 스위칭 허브라해서 더 효율적으로 동작하긴 합니다만 자세한 사항은 생략)
A1 컴퓨터가 D7 컴퓨터와 대화를 하려면 허브에 메시지를 보내고
모든 컴퓨터가 그 메시지를 수신합니다.
그러면 그 메시지에 자기 이름이 있는 컴퓨터만 응답을 하고
다른 컴퓨터는 '난 아니네?' 하고 그 메시지를 무시합니다.
좀 무식한 방법이죠?
사실 이 방법 말고 다른 방법들도 존재하지만 이 방법만의 최고 장점 덕분에 현재까지 이런 방식이 살아남게 되었습니다.
그게 뭐냐고요?
제일 쌉니다. 가성비가 최고라는 거죠.
이 방식이 바로 이더넷(Ethernet)이라는 이름이 붙여져 있고
현재도 네트워크를 구성할 땐 이 이더넷 방식으로 만드는 것이 일반적입니다.
자 이제 여기까지 왔으면 LAN이라는게 하나만 있는게 아니라는 걸 생각해 볼 수 있습니다.
우리 구역 말고도 다른 구역 사람들도 또 네트워크를 구축하고 있을 수 있겠죠. 아래 그림처럼.
이쯤되면 우리 구역 4명과 저쪽 구역 4명이 민속놀이인 스타크래프트를 하고 싶어지는게 인지상정이죠.
4:4 빨무맵에서 우리의 신박한 마우스 놀림을 보여주고 싶게 마련입니다.
두 네트워크를 연결하는 가장 간단한 방법이 뭘까요?
당연히 각각의 네트워크의 중심 역할을 하고 있는 허브를 연결 해주면 두 네트워크 간에 연결이 성립되게 됩니다.
간단하죠?
이렇게 외부랑 연결해서 더 거대한 네트워크를 만들어 냈습니다. 우리는 이걸 WAN(왠) 이라고 부르게 됩니다.
Local Area (지역)보다 넓기 때문에 Wide Area (광역) 이라는 이름을 붙이고 거기에 Network 를 붙인거죠.
Wide Area Network.
그 왜 잘 알고 있으실 서울<->경기 지역같이 여러 지역을 다니는 광역버스의 그 광역이죠.
즉 우리 네트워크의 내부를 연결하는 것이 LAN 포트인 것이고
다른 네트워크가 연결하는 것이 WAN 포트라고 불리는 이유가 이것입니다.
당연한 이야기지만 이런 구조에서는 LAN안에는 여러 대의 컴퓨터가 있을 것이고
WAN 바깥으로는 하나의 연결 통로만 있으면 됩니다.
그래서 WAN 포트는 1개고 LAN 포트는 여러개가 됩니다. 아래 그림처럼 말이죠.
IPTIME사의 유선 공유기 T5004
그런데 이렇게 연결해놓고나니 골때리는 문제가 발생합니다.
우리 네트워크에서는 컴퓨터끼리 중복되지 않게 A1, B3, C5, D7 이라고 이름을 붙여놨는데
아뿔싸 저 쪽도 C5 라는 똑같은 이름을 사용하고 있지 뭡니까.
이러면 A1 컴퓨터가 C5 컴퓨터로 메시지를 보낸다고 했는데 C5 컴퓨터가 두 대이기 때문에
누구를 부른 건지 알 수가 없게 됩니다.
이제 어떻게 해야할까요?
이 방법을 해결하기 위해 다른 네트워크에서도 중복이 되지 않는 주소를 부여할 방법을 고민해야하겠죠?
이 때문에 IANA(아이아나)라는 기관이 세워지게 됩니다. (갑자기!?)
이 기관의 이름은 무진장 직관적입니다.
Internet Assigned Numbers Authority = 인터넷 번호 할당 기관
이라는 의미죠.
여기서 그 잘 알려진 IP 주소 라는 것을 관리하게 됩니다.
IP는 Internet Protocol 의 약자로 Internet 은 우리가 잘 알고있는 세계가 연결된 네트워크 망의 이름입니다.
그래서 각 국가별로 IP를 관리하는 기관이 설립되고, 그 위에 대륙별로 IP를 관리하는 기관이 있고
꼭대기에 IANA가 IP 주소를 총괄하는 형태로 인터넷 주소 체계의 관리가 이루어지게 됩니다.
우리나라의 IP 주소를 관리하는 곳은 KRNIC 이라는 곳입니다.
인터넷이 연결된 국가라면 대부분 국가코드+NIC 의 이름을 가진 기관들이 존재합니다.
중국은 CNNIC, 일본은 JPNIC. 뭐 영국같이 Nominet UK 같은 이름을 가진 곳도 있습니다.
어쨌든 다시 원래 이야기로 돌아오면 이제 IP 주소라고하는 중복되지 않는 주소를 얻을 수 있게 되었기 때문에
이제 네트워크 구성은 아래 그림처럼 구성할 수 있게 됩니다.
이렇게 되면 이제 왼쪽 네트워크의 1번 컴퓨터는 168.126.63.1 이라는 IP 주소를
오른쪽 네트워크의 1번 컴퓨터는 202.30.38.1 이라는 IP 주소를 갖게 되므로 중복되는 이름이 없어지게 됩니다.
그런데 좀 달라진게 하나 있죠? 허브가 주소(254)를 갖게 되었습니다.
네트워크가 커지게 되면서 위에서 이야기한 무전기 통신 방식...
즉 모든 컴퓨터가 내 메시지를 듣는 방식을 사용하는 건 불가능해지게 될 거라는 건 짐작할 수 있을 겁니다.
이렇게 되면서 단순하게 메시지를 통과 시키기만하던 허브가
WAN으로 메시지를 전달하는 역할을 전담하는 게이트웨이(혹은 라우터)로 진급(?)하게 됩니다.
단순하게 메시지를 통과시키기만 할 때는 스스로 주소를 가지고 있을 필요가 없었지만
WAN 으로 메시지를 전달할 때는 다른 네트워크에게 자기가 'XXX 네트워크의 게이트웨이다!' 라고 소개를 해야하기 때문에
주소를 가질 수 밖에 없게 된 것이죠.
그래서 이제 데이터를 전달하는 방식이 조금 더 복잡해지게 됩니다.
만약 왼쪽 네트워크에서 오른쪽 네트워크의 컴퓨터를 호출하면 아래와 같은 상황이 벌어집니다.
평소 LAN의 방식대로 168.126.63.1 번 컴퓨터가 로컬 네트워크에 응답하라는 메시지를 확 뿌려버립니다.
그러면 LAN에 있는 다른 컴퓨터들은 모두 자기랑 상관없는 메시지니 무시하지만
게이트웨이는 그 메시지를 보고 '어? 우리 네트워크의 메시지가 아닌데?' 하고 WAN 으로 메시지를 돌려버립니다.
그러면 WAN으로 연결되어있는 오른쪽 네트워크의 게이트웨이가 '어라? 우리 메시지네?'하고
오른쪽 로컬 네트워크에 쫙 메시지를 뿌립니다.
그러면 최종 목적지인 202.30.38.3 컴퓨터에게 메시지가 도달하게 되죠.
실제로는 더 많은 단계로 구성이 되지만 기본적으로는 이런 방식으로 IP 주소를 통한 통신이 이루어지게 됩니다.
다음 글에서는 포트에 대해서 설명해 보도록 하겠습니다.
포트편: https://www.clien.net/service/board/lecture/15873771CLIEN
네임편: https://www.clien.net/service/board/lecture/15874590CLIEN
서브넷편: https://www.clien.net/service/board/lecture/15882226CLIEN
공유기편: https://www.clien.net/service/board/lecture/15887017CLIEN
초보자도 이해하기 쉽게 쓰셨네요~
간만에 도스시절에 사용했던 FX케이블이 생각났네요. ^^;
스카시로 연결했던걸로
FX케이블이라니요!!!
정말 추억돋는 단어네요.. 지금 생각해보면 단순 시리얼포트 통신인데 말입니다..
당시에 랜도 없을 시절이라 PC간 연결은 fx케이블에 인터넷 연결은 2400bps모뎀이었지요..
mnp데이타 압축으로 9600bps효과라는 말도 안되는 선전문구가 아직도 생각납니다..
2400bps면 전송속도가 2k짜리 회선인데 기가빗 시대에 새삼스럽네요
... 라고 옆에서 삼촌이 하는 말을 적어봤습니다.......
자네트 1200bps 외장형 모뎀을 XT turbo 에 물려 Ketel 에 접속하던...
그 즈음 Revolt 에뮬이 생각납니다... 이야기 보다 몇년 전이죠...
인터넷 연결은... Windwos 3.1 되서나 Winsock 깔고 해서... Netscape 나 Mosaic 으로... 접속했죠? ㅋ
아이피 설정창에 아이피 다음으로 게이트 웨이를 집어넣기전에 서브넷 마스크부터 필수로 집어넣잖아요.
저같은 완전 초보도 바로 이해할 수 있었어요.
다음 편도 기대 됩니다!
저도 공감 10개 드리고 싶어요.
라인 토폴로지 부터 시작하실줄 알았는데 그건 오히려 생소하니 잘 건너뛰셨네요
널 모뎀 설명하면서 모뎀도 설명할까 했는데 어차피 이제 쓰지않는 죽은 기술이라 그냥 버렸습니다. ㅋ
즉, 여의도 168 사서함은 알아도 그 사서함을 어떤 부서에서 담당하는지 사무실 구역은 몰라도 전달할 수 있는 것과 같습니다.
168.126.63.3 나와라! 라고 부를 리가 없고 에러가 날 겁니다. 다만 그 게이트웨이인 168.126.63.1 이나 168.126.63.254 이런 녀석의 8888포트에 전달! 이렇게 되겠지요.
포트 번호에 따라서 저 내부 네트워크 어딘가로 전달될텐데 그러면 포트 개념과 포트 포워딩 개념이 필요하군요.
그리고 저 난 아니네 매커니즘을 알면 멀티캐스트와 브로드캐스트 개념 이해도 쉽고 왜 더미허브를 IPTV보다 위에 놓으면 네트워크가 마비되는지, 스위치 허브 루핑이 왜 무서운지 이런 것들의 수수께끼가 많이 풀립니다. 트래픽이 마치 스피커 앞에 둔 마이크로 삐이이익 소음이 메아리치는 것처럼 쇄도하게 되죠.
사실 모두가 iptime 공유기에 익숙한 환경 생각해보면, 이집 저집의 똑같은 192.168.0.*를 어떻게 뛰어넘는지 설명하는 글도 앞으로 도움이 될 것 같습니다. 그래서 다들 포트 포워딩이니 서브넷 마스크니 이야기하는 거겠죠.
지금의 10baseT전에 사용됬던 10base2는 얇은 coaxial cable을 쓴 버스였고, 10base5는 두꺼운 coaxial cable로된 링이였었죠.
잘읽었습니다.
어느샌가 글을 다 읽었습니다.
좋은 글 감사합니다.
나중에 DMZ나 Port forwarding 같은 개념도 설명해 주시면 정말 감사할꺼 같아요!
집에 있는 공유기 세팅하는데 처음에 개념이 없어서 한참 헤맸던 경험이 있네요ㅎ
네트워크 관련 강좌 중 처음으로 이해한 글입니다.
쉽게 설명하시는분들이 진짜 그것에 대해 잘 알고 있는 것이지요.
머리속에 개념이 팍팍꽂힙니다.
다음 글 기다리겠습니다 ㅠㅠ
감사합니다.
감사합니다.
cmd 커맨드에 ipconfig /all | find "물리" 이렇게도 가능하죠 ㅎ
지금까지 본 설명 중 가장 일반인을 위한 설명이네요.
감사합니다.
고맙습니다:)
추가로 패킷이런지 CSMA/CD 개념도 추가되면 좋을거 같네요.
몰랐던 부분이 있었네요
감사합니다 ㅎㅎ
중간에 생략된 것도 잘 하신 거라 봅니다. 너무 지엽적인 걸 구구절절 설명할 필요가 없죠.
넘넘 쉽게 설명하는걸 보니 대단하단 생각이 듭니다.^^
생각나네요.. 그 뻘짓들..ㅋㅋ