“네트워크도 통신”이라는 사실부터 자각해야 한다.
“통신”이라고 하면 전화나 무전같은 것을 떠올리며 구시대적인 것으로 생각하고,
”네트워크”라고 하면 뭔가 컴퓨터의 고급 기술이 적용된 신시대적인 것으로 생각하며 서로 다른 기술로 착각한다.
하지만 실상은 그냥 여러대의 컴퓨터가 서로 통신하기 위해 연결되면 그것이 네트워크이다.
A컴퓨터와 B컴퓨터가 있다.
둘이 통신을 하려면 당연히 물리적인 선으로 연결되어야한다.(물론 현재는 무전기술이 많이 발전했지만,빠르고 정확한 정보를 전달하려면 유선이여야 한다.)
이렇게 둘이 물리적인 선으로 연결되어 있으면 서로 통신을 할 수 있다.
선으로 연결돼 컴퓨터 데이터를 전기적 신호 또는 광신호로 바꿔서 상대방에게 전달하는
"물리적 기술과 장비들을 다루는 영역을" 첫번째 단계라 해서 "1계층(1L)"또는 "물리적 계층(Physical layer)"이라고 하고 사용한다.
왜 컴퓨터 기술들을 "1계층"와 같이 구분하냐면, 그렇게 해야 기술들을 더 세분화할 수 있고, 특정 문제가 발생했을 때 세분화 덕에 더 빨리 점검 및 고칠 수 있기 때문이다.
4대의 컴퓨터들이 모두 각각 "통신"을 하기 위해,이렇게"그물(net)"처럼 연결이 되어있다.
이런식으로 다수의 컴퓨터들이 연결돼 통신할 수 있는 환경을,"그물(net)"처럼 형성돼 "작동(work)"한다 해서 "네트워크(NetWork)라고 부른다.
이렇게 다수의 컴퓨터들과 연결이 되어 있을때 어떻게 서로 다른 컴퓨터를 구분 할까?
"모든 통신 기기"들은 서로를 구분 할 수 있는 겹치지 않는 유일한 번호인 "MAC(Media Access Control)주소(Address)"를 가진다.
그래서 각 기기들이 MAC주소로 구분되고 서로 통신을 할 수 있는 것이다.
이렇게 네트워크를 구성하면 네트워크로 연결된 컴퓨터들이 많아질수록 선이 엄청 많이 필요하게 된다.
이런 선의 낭비를 줄이기 위해 등장한 장치들이 "허브,스위치"이 장치들을 이용해 아래와 같이 선의 낭비를 줄인 효율적인 구성이 가능해 진다.
하지만 이렇게 스위치,허브로 모든 컴퓨터 선들이 연결되니,각 컴퓨터들의 데이터들이 한 곳으로 모여 충돌하기에 여러 문제가 생긴다.
(순서를 어떻게 해야할지,동시에 들어오는 데이터들의 충돌은 어떻게 해야할지 등등..)
이런 충돌을 피하고 데이터들의 통신을 원할하게 해주는, 2계층에서 사용되는 "이더넷(CSMA/CD),토큰링" 같은 기술들이 있다.
이렇게 "한 구역 범위(Local Area)"인 "네트워크(Network)"를 우리는 "LAN(Local Area Network)"이라고 한다.
그리고 이런 LAN 네트워크를 구성하기 위해 사용되는 선을 우린 "LAN 선" 이라고 한다.
한 가정에선 모뎀에"LAN선으로 연결된 컴퓨터들"과 모뎀에 "LAN선으로 연결된 공유기",그리고 공유기가 만들어 낸 "WIFI에 접속한 휴대폰",모뎀에 연결된 "셋톱박스에 HDMI로 연결된 TV".
이 모든게 다 LAN 네트워크에 속한 기기들 이라고 보면 된다.
이렇듯 한 네트워크에 속한 여러 컴퓨터들의 "데이터(DATA)"들을 어떻게 효율적으로 "연결(링크,Link)"하여 통신하게 하느냐의 기술들과 기계들을 다루는 영역을 우린"2계층(2L)"이자,"데이터링크 계층(Datalink layer)"라고 부릅니다.
단순하게 2개의 네트워크만 있다고 치고,2계층 장비인 스위치 2개로 네트워크를 연결해보면
이렇게 2계층인 스위치로 서로 다른 네트워크를 연결하면 이건 "ABCDEFGH"라는 하나의 네트워크가 된다.
왜냐면 2계층(데이터 링크)은 모든 데이터들이 링크(연결)되는 계층이기 때문이다.
원래 "같은 네트워크에 속한 모든 기기"는 모르는 컴퓨터의 이름(주소)를 알아내기 위해,연결된(같은 네트워크에 속한)"모든(borad)"컴퓨터들에게 "??컴퓨터 주소가 뭐야?"라는 "질문을 던지는(cast)","브로드캐스팅(Broadcasting,방송)"을 한다.
그런데 컴퓨터든 스위치든,"브로드캐스팅(Broadcasting)으로 알아낸 주소"를 일정 시간이 지나면 잊어버린다. 그래서 일정한 시간마다 다시 브로드캐스팅을 하여 트래픽이 계속 발생된다.
여기서 트래픽(Traffic)이란 "도로에 존재하는 자동차들의 수"라는 뜻으로 "통신망에 흐르는 데이터의 양"이라고 보면 된다.
전 세계 모든 컴퓨터들을 2계층 장비인 스위치로만 구성을 한다면 전 세계 모든 기기들이 같은 네트워크에 속하게 될 것이고,같은 네트워크에 속한 전 세계 컴퓨터들이 특정 시간마다 브로드캐스팅을 계속 보내 발생되는 엄청난 트래픽에 의해 네트워크가 마비가 될 것이다.
한 네트워크에 수 많은 컴퓨터들이 속하게 되면 통신이 불가능할 정도로 어마어마한 트래픽이 발생하기에,네트워크를 나눠야 한다.
자 이렇듯 2계층만으로 모든 네트워크를 구성하면,통신이 마비되기에 네트워크를 나눠주는 기기를 도입하는데 그 기계가 "라우터(Router)"이다.
"라우터(Router)"는 네트워크와 네트워크 사이에 껴서,네트워크를 구분하고,또 연결해준다.
라우터를 사용하면, 2계층 장비인 스위치와 다르게 "ABCD 네트워크"와 "EFGH 네트워크"가 구분이 된다.
또,"라우터(Router)"는 다른 네트워크까지의 최단 거리를 계산해서 목적지 네트워크까지의 최단 길(Route)을 알고 있다 해서 "Router"라고 불리는 것 입니다.
다른 네트워크까지의 최단 거리를 알고 있다는 것은
이렇게 네트워크 A에 속한 어떤 컴퓨터가 네트워크 C에 속한 어떤 컴퓨터와 통신하려고 할 때,
빨간색 1번길은 라우터1개를 거쳐가고 분홍색 2번 길은 라우터를 2번 거쳐간다.
이때, 네트워크 A와 연결된 라우터는 주황색 1번으로 보내는 방법이 훨씬 네트워크C에 가까우니 1번 루트로 보내야겠다고 판단하고 1번 방향으로 네트워크 A의 컴퓨터 패킷(네트워크 계층의 데이터 단위)을 보낸다는것이다.
이처럼 라우터(Router)는 네트워크를 나눠주는 것 뿐만 아니라,빠른 통신을 위한 최적의 방법도 계산해준다.
이런식으로 전 세계 수 많은 라우터와 라우터들이 연결되어 전 세계 모든 네트워크가 연결된 것이 "인터네트워크(Internetwork)"이고 줄여서 "인터넷(Internet)"이다.
라우터(Router)는 어떻게 각각의 네트워크를 구분할까?
전세계 수 많은 네트워크들이 연결된 인터넷에서 어떻게 네트워크를 구분하고 가장 빠른 길을 찾을 수있었냐면 "IP주소(또는 번호)(Internet Protocol Address)"가 있기 때문이다.
우리 현실에서도 건물 뿐만 아니라 도로에도 주소가 있듯이,인터넷에서도 컴퓨터들 뿐만 아니라 "라우터"와 "라우터 사이의 연결된 선"에도 IP번호가 2개씩 할당된다.
예를들면,"라우터"에 할애되는 IP는 "사거리 주소"고,"라우터와 라우터의 연결된 선"에 할애되는 2개의 IP는 "특정 거리의 출발 주소"와 "끝나는 주소"에 해당하는 거라고 볼 수 있다.
위처럼 인터넷에선 IP주소로 모든것이 구분이 되고 통신을 하기에,인터넷을 사용하려면 반드시 IP주소를 할당받아야 한다.
이처럼 네트워크와 네트워크 사이의 통신에서 사용되는 기술들과,장비를 다루는 영역을 "3계층(3L)","네트워크 계층(Network Layer)"라고 한다.
같은 네트워크(2계층(데이터링크 계층))에서도 각각의 컴퓨터들의 데이터들이 충돌이나 혼선을 빚지 않게 해주는 기술(이더넷,CSMA/CD)이 있었듯이,
다른 네트워크와의 통신(3계층,네트워크 계층)에서도 수 많은 다른 네트워크와의 통신에서 데이터의 충돌 및 혼선을 빚지 않게 해주고,목적지까지 데이터를 잘 전달하게 해주는 "기술"이 있다.
컴퓨터 공학에선 이런 기술들을 주로 프로토콜(Protocol)이라고 한다.
2계층에서 사용되는 기술인 "이더넷(CSMA/CD)"라는 것도 사실은 프로토콜이며,이 프로토콜이란 표현은 2,3계층 뿐만 아니라 모든 계층에서 사용된다.
그리고 3계층(네트워크 계층)인 인터넷(Internet)에서 네트워크들을 구분하고,데이터를 효율적인 형태인 "패킷(Packet)"으로 나눠주는 기술을 인터넷에서 사용하는 프로토콜이라 하여 IP(Internet Protocol)라고 한다.
그리고 이 IP(Internet Protocol)에서 사용되는 주소를 IP주소,번호(Internet Protocol Address)라고 한다.
하지만 네트워크를 구분하고 데이터를 패킷으로 만드는 것은 "IP(Internet Protocol)"로 해결 됐지만 또 다른 문제가 있다.
전세계의 모든 네트워크 장비들이 연결된 "인터넷"은 간단히 "IP"만으로 2계층처럼 쉽게 통신을 할 수가 없다.
왜냐면 목적지까지의 길(route)이 한개가 아니기 때문이다.
수많은 라우터들이 연결돼 있는 인터넷은 특정 네트워크까지 패킷을 보내는 방법에 엄청나게 많은 경우의 수가 있다.
그래서 데이터를 일정한 크기로 나눠 만든 패킷들이 목적지까지 나눠져서 가다가 중간에 특정 길에 문제가 생겨 끊기는 경우 패킷이 소실되는 것이다.
기기 종류와 상관없이 네트워크에 접속한 모든 기기들에게 데이터를 안전하게 전송할 수 있는 TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol)가 개발 되었다.
TCP와 UDP에 대한 내용은 따로 정리하려고 한다....
데이터를 어떻게 목적지 까지 전송(Transport)할지에 대한 기술과 장비를 다루는 영역을 4계층(4L),전송계층(Transport Layer)라고 부른다.
이처럼 네트워크 계층의 IP 와 트랜스포트 계층의 TCP는 인터넷에서 필수라고 할 만큼 중요한 기술이여서 "TCP/IP"로 묶어서 부른다.
좋은 글이네요. 공유해주셔서 감사합니다.