YUDA't

"To a lot of people, networking is seen as some kind of black magic. And only certain people really understand what's going on. But in my experience, an IT support person who truly understands networking at a fundamental level, is just able to perform every aspect of their job so much more successfully." - Alex Hidalgo, "The Bits and Bytes of Computer Networking"

 

흔히 네트워크라는 단어는 서로 다른 무언가가 연결될 때 사용된다. 세미나에서 다른 이들과 이야기하는 것도 네트워크고 대학에서 다른 대학 학생들과 교류하는 것도 네트워크다. 우리가 이제 공부할 '컴퓨터 네트워크'도 마찬가지이다.

컴퓨터 네트워크는 컴퓨터와 컴퓨터를 통신망으로 연결한 것을 말한다. 사람이 말(소리)을 사용하여 대화하듯 컴퓨터는 네트워크 장비들(케이블, 스위치, 라우터 등)을 통해 데이터(전기신호)를 교환한다.

 

한편 우리가 대화할 때 같은 언어를 사용해야 하는 것처럼 컴퓨터 네트워크에도 일정한 약속이 필요한데 이를 '프로토콜(protocol)'이라 한다.

그런데 네트워크에서 사용되는 프로토콜은 하나가 아니고, 각 단계에 따라 다른 역할을 하는 프로토콜들이 있어 이 모든 것을 표준화할 필요가 있었다. 그래서 등장한 것이 ISO(국제 표준 기구)가 정한 OSI 모델(Open Systems Interconnection Reference Model)이다. OSI 모델은 네트워크 과정을 7계층으로 나눈 뒤, 각각에 해당하는 프로토콜을 정의한다.

 

한편 장비 개발이나 통신이 OSI 모델을 기반으로 한다면 실질적인 통신은 TCP/IP 모델을 따른다. TCP/IP 모델은 네트워크 구조를 4~5계층으로 표현함으로써 비교적 간단하다.

 


 

그러면 이제 TCP/IP 모델을 기준으로, 각 계층의 역할과 대표적인 프로토콜들을 간단히 살펴보겠다. 코세라 강의인 "The Bits and Bytes of Computer Networking"을 참고했다.

 

1) 물리 계층(Physical Layer)

컴퓨터들을 서로 연결하는 물리 장비를 정의한다. 여기에는 케이블이나 커넥터 등에 대한 명세와 함께, 어떻게 이들을 통해 신호가 전송되는지도 포함된다.

이 계층에는 프로토콜이 없으며 케이블과 커넥터, 리피터, 더미 허브 등의 장비들이 있다.

2) 데이터링크 계층(Data Link Layer; Network Interface, Network Access Layer)

물리 계층이 단지 물리적 연결 및 신호 전송만을 다루었다면, 데이터링크 계층은 이 신호를 해석하는 방법을 정의해 연결 신뢰성을 보장한다. 각 컴퓨터의 물리적 주소(MAC 주소)를 확인하고 오류를 감지한다.

대표적인 장비로는 브릿지와 스위치가 있으며 프로토콜로는 이더넷(Ethernet)이 있다.

3) 네트워크 계층(Network Layer; Internet Layer)

네트워크 계층은 네트워크끼리의 통신을 다룬다. 라우터로 연결된 네트워크 집합을 인터네트워크(Internetwork)라 하며 이 중 가장 유명한 것이 인터넷(Internet)이다. 데이터링크 계층에서 하나의 링크를 통해 데이터를 가져왔다면, 네트워크 계층에서는 네트워크 집합으로부터 데이터를 가져온다.

대표적인 장비로는 라우터가 있으며, 프로토콜은 IP(Internet Protocol)가 있다.

4) 전송 계층(Transport layer)

전송 계층은 전송하는 데이터의 오류를 점검하고, 데이터의 목적지가 어떤 어플리케이션인지를 식별한다.

대표적인 프로토콜로는 TCP(Transmission Control Protocol)가 있다.

5) 응용 계층(Application Layer)

응용 계층은 사용자에게 가장 밀접한/익숙한 계층으로

잘 알려진 프로토콜로는 SMTP(이메일 프로토콜), FTP(파일 전송 프로토콜), HTTP(하이퍼텍스트 전송 프로토콜) 등이 있다.