네트워크(네트워크의 기본)

hyomkim·2021년 2월 14일
0

프로그래밍 지식

목록 보기
5/5

이번 내용은 본 글을 쓰기위해 참고한 글을 직접 읽어보시는 것을 강추드립니다.
네트워크 설명을 저렇게 이해하기 쉽게 해준 글은 처음입니다.
강추!

네트워크가 생긴 이유

이해를 돕기 위해 하나의 예를 들어보겠습니다.

인자하고 성격좋으신 할머니는 산 꼭대기에 있는 작은 별장에서 살고계셨습니다.
할머니의 오랜 친구인 할아버지는 할머니께서 살고있는 산의 입구에 있는 파란 벽돌집에서 살고 계셨습니다.

두분은 아주 친한 친구관계라 자주 이야기를 하고 싶었지만, 이야기를 하기 위해선 어느 한쪽 분이 직접 다른분을 만나러 가는 수 밖에 없어서 나이가 드신 할머니와 할아버지는 대화 한번 나누기가 힘들었습니다.

물론 가끔 우편배달부가 까끔 찾아뵈며 두 분의 편지를 교환해 드리곤 했지만, 우편배달부에게도 산을 오르고 내리는 일은 아주 힘들고 고된 일이었습니다.

우편배달부는 배달하는 것 만으로도 힘들지만 만약에

  • 할머니와 할아버지의 이야기를 직접 대필까지 해줘야 하는 상황이었다면?
  • 심지어 그 내용이 "건강하게 잘 지내고 있습니까?" 정도의 간단한내용이 아니라 사전 분량의 많은 내용이었다면?

우편배달부가 존경스럽네요...

위의 이야기에서
할머니와 할아버지 = 별개의 컴퓨터
우편배달부 = 사람
이라고 할 수 있습니다.

네트워크 자체가 없던 시절에 두 컴퓨터 통신을 위해선 결국 사람이 모든 데이터를 직접 손으로 받아 적어야만 그 것을 다시 다른 컴퓨터로 입력해줘야 했습니다.

어릴 적에 '깜지'를 한 번 이라도 써 보신분들은 이것이 얼마나 피곤하고 힘든일인지 잘 아실것이라 생각됩니다.

이렇게 컴퓨터끼리 통신을 할 때 마다 사람이 직접 해줘야 하는 일은 너무나도 번거롭고 힘든 일 입니다.
그래서 개발자들은 생각했습니다.
컴퓨터끼리 직접 통신하게 만들자!

이렇게 컴퓨터간 1:1통신을 하는 방식이 사작되었습니다.
이때 사용되던 통로가 시리얼 포트(COM포트, COMmunication port)입니다.

허브(HUB) ,물리주소(MAC Address) 그리고 이더넷(Ethernet)

COM포트를 통한 1:1통신덕분에 데이터의 전송이 정말 쉬워졌습니다.
하지만 세상 컴퓨터가 딱 2대만 있는것도 아니고 여러대의 컴퓨터가 서로 통신하면 좋겠다는 생각이 들었습니다.

그런데 여기서 기존 COM포트만 사용하기엔 문제가 생깁니다.

다시 한번 할머니와 할아버지 이야기를 해 보겠습니다.

사표를 정말 내고싶었지만 직장을 잃기는 싫었기에 우편배달부는 하나의 아이디어를 냅니다.
COM포트라는 관을 할머니와 할아버지의 집 사이에 연결해서 할머니와 할아버지께서 그 관을 통해 직접 편지를 주고 받을 수 있게 한 것 입니다.
이렇게 만들어진 통신망덕분에 할머니와 할아버지는 편하게 편지를 주고 받으시고 우편배달부도 힘들게 산을 오를 필요가 없어졌습니다.

그러던 어느날 할아버지는 혼자 산 꼭데기에 살고있는 할머니를 위해 할아버지의 친구인 다방마담을 소개해주기로 합니다.
다행히 할머니와 마담도 서로 마음이 잘 맞아서 할머니와 할아버지때 처럼 COM포트를 설치하기로 합니다.

하지만 이런식으로 COM포트가 늘어자나 연결이 너무나도 복잡해지게 됩니다.
처음엔 할머니와 다른 사람사이의 COM포트만 만들면 됬지만, 사람이 늘어날 수록 그 새로운 사람을 위해 만들어야할 COM포트가 너무나도 많았습니다.

우편배달부는 다시 한 번 고민에 빠집니다.
그리고 또 좋은 아이디어가 떠올랐습니다.
"여러개의 COM포트들의 통신을 담당하는 한 지점을 만들자!"

여러대의 컴퓨터를 단지 COM포트로만 연결하려고 한다면, 3대까진 각각 COM포트 한 줄씩만 연결하면 되지만, 4대부터는 정말 복잡한 연결을 필요로 하게 됩니다.

허브(HUB) 는 이렇게 나왔습니다.
hub의 사전적 뜻은 특정 장소나 활동의 중심지 입니다.
실제로도 허브는 네트워크의 중심점이 되어 줍니다.
허브 덕분에 연결해야할 컴퓨터가 아무리 늘어나도 COM포트 한 줄만 허브와 컴퓨터 사이에 연결해주면 됩니다.

다시 이야기로 넘어가 보겠습니다.

허브를 만들고 COM포트의 설치하는데 드는 시간과 노력등이 획기적으로 줄었습니다.
하지만 문제가 하나 생겼습니다.
한 사람이 "안녕?"이라고 포트를통해 편지를 보냈는데, 이걸 누구에게 보내야할 지 도무지 모르겠는겁니다.
배달부는 한가지 약속을 정합니다.
"각 할머니와 할아버지들은 편지에 이름을 적으세요. 그리고 편지를 보낼 땐 편지에 본인의 이름과 받는 사람의 이름을 적으세요."

실제 허브를 통한 네트워크에서도 데이터를 보낼 때 해당 데이터를 어느컴퓨터에서 받아야 하는지 알 수가 없는 문제가 발생했습니다.
그래서 컴퓨터에게 번호를 붙여서 통신하게 됩니다.

이렇게 통신을 위해 컴퓨터에 붙인 번호가 물리 주소(MAC Address) 입니다.

이렇게 허브와 12자리로 된 16진수의 숫자로 이루어진 물리 주소로 이어진 컴퓨터 통신망을
이더넷(Ethernet) 이라고합니다.

이더넷 통신방식은 상당히 구식이지만, 지금까지 사용되고 있는 기술인데
다른 기술과 비교하여 비용이 정말 저렴합니다.

LAN, WAN

LAN(Local Area Network)은 근거리 통신망을 뜻합니다.
이더넷(ethernet)이 대표적인 LAN입니다.
예로 들은 이야기에선 할아버지와 할머니들의 우편교환망이 LAN이라 할 수 있습니다.

자 여기서 잠깐 이야기를 이어서 해보겠습니다.

우편배달부의 편지 교환 네트워크에 대한 소문은 옆마을로도 퍼졌습니다.
그래서 옆마을 역시 자체적인 네트워크를 가지게 되었지요.

그러다 두 마을의 통신망이 서로 이어지면 좋겠다는 의견이 나왔습니다.
우편배달부는 이 것을 어떻게 연결하면 좋을까 하고 고민하다가 두 허브를 이어주는 선을 하나 설치했고 그 선을 통해 마을끼리의 편지를 주고 받도록 하였습니다.

이야기에서 우편배달부는 각 마을의 허브를 연결하여 커다란 네트워크를 새롭게 만들었습니다.
여기서 마을은 LAN을 의미합니다.

이것이 WAN(Wide Area Network) 즉 광역 네트워크 입니다.
간단하게 말해서 WAN은 LAN의 집합체로 이해하면 됩니다.

그런데 여기서 또 한가지 문제가 발생하게 됩니다.

이야기를 다시 이어서 해보겠습니다.

간단하게 두 마을의 네트워크를 연결하는데 성공한 우편배달부는 아주 기분이 좋았습니다.

하지만, 곧 문제가 발생했다는 연락을 받게되지요.
바로 각 마을 안에서는 사람의 이름이 겹치는 경우가 없었지만, 옆마을엔 이름이 겹치는 경우가 있었던 것 입니다.
그래서 기존의 방식으론 보내는 편지가 어느마을 사람에게 가야하는지 알 수가 없게되는 경우가 생겼습니다.

마을 하나정도는 어떻게든 했지만, 두 마을 이상의 문제가 되니 이는 우편배달부 혼자서는 감당하기 힘든 문제였습니다.
그래서 우체국의 도움을 받기로 합니다.

우체국은 각 마을에 마을 번호를 붙여주고 관리합니다.
그래서 같은 이름이라도 마을 번호를 통해 어느 마을의 사람인지를 알 수 있게 되었습니다.
메세지의 마을 번호를 확인하여 다른 마을의 번호라면 다른 마을로 메세지를 전송해줄 수 있게된것입니다.

그리고 허브또한 이전에는 단순한 편지의 전송통로였을 뿐이지만, 다른 마을로 편지를 전달할 수 있도록 우체국에서 인원을 파견해주어서 그 기능이 확장되었습니다.

LAN에서 MAC Address를 통해 컴퓨터들을 구분한다는 사실을 우리는 알고 있습니다.
그런데 LAN끼리 연결된 WAN에선 이 MAC Address가 중복되는 경우가 생깁니다.
각 네트워크에서 독자적으로 MAC Address를 붙이기에 똑같은 이름이 붙은 컴퓨터가 생기는 것이지요.

이러한 문제를 해결하기위해 우리가 흔하게 들었던
IP주소(Internet Protocol)이 생깁니다.
위의 이야기에선 마을 번호가 가 바로 IP입니다.

그리고 이 IP를 관리하기위한 기관이 있는데 바로
IANA(아이아나, Internet Assigned Number Authority, 인터넷 번호 할당 기관)입니다.
이야기에선 우체국이 그 역할을 해줬습니다.

이렇게 마을끼리 통신을 하게 되면서 허브또한 데이터를 WAN으로 전송해주는 역할을 할 필요가 생겼는데, 그래서 허브게이트웨이(혹은 라우터)로 변화하였습니다.
IP를 통해 전송되는 데이터의 수신지가 현재의 LAN인지, 외부의 LAN인지 판단할수 있게되고 그 결과대로 LAN혹은 WAN으로 전송해 주게됩니다.

Reference :
https://www.clien.net/service/board/lecture/15872844?od=T31&po=0&category=&groupCd=

profile
C++을 좋아하는 조금 모자란 사람이랍니다!

0개의 댓글