컴퓨터간 통신을 가능하게 하기 위해서는 네트워크 이용의 ‘표준 규격’을 정해야만 한다.
앞선 포스팅에서 네트워크는 ‘패킷’을 이용하여 데이터를 주고받는다고 하였고, 패킷은 각각의 네트워크 규약들이 캡슐화된 것이라 했었다.
왜 네트워크 규약이 필요한가?
자명하게도, 규약이 없으면 서로 통신을 알아들을 수 없기 때문이다.
서로 다른 컴퓨터 사이에서 데이터를 송수신하기 위해서는 상대방 컴퓨터가 어떤 데이터를 어떤 방식으로 보내는지를 해석해야 하고, 그 해석의 표준이 바로 네트워크 참조 모델이라 할 수 있다.
네트워크 모델은 목적에 따라 분류된 Layer들로 나누어져 있다.
데이터 흐름은 송신자, 수신자, 데이터 내용, 보안규칙, 호환성….등등 굉장히 복잡 다양한 속성을 지닌다.
따라서 데이터의 흐름을 쉽게 파악하고, 문제가 생겼을 때 유지보수를 쉽게 하기 위해 각 속성의 종류에 따라 네트워크를 모듈화 하여 게층(layer)으로 만들어놓았다.
대표적인 네트워크 참조모델이 바로 OSI 7계층과 TCP/IP 4계층 모델이다.
이 두 계층은 완전히 다른 모델은 아니고, 구분의 본질은 같지만 OSI 7계층이 네트워크를 조금 더 세부적으로 모듈화 해놓았을 뿐이다.
아래는 wikimedia에 나와있는 OSI 7계층 및 TCP/IP 모델이다.
(출처 :https://commons.wikimedia.org/)
보다시피 TCP/IP 모델의 응용계층(Application Layer)이 OSI 7계층의 전송, 세션, 표현, 응용계층을 포괄하고 있으며, 네트워크 접근 계층 또한 마찬가지로 물리 계층 및 데이터링크 계층을 포함한다.
이처럼 OSI 7계층과 TCP/IP 4계층 모델은 완전히 다른 개념이 아니라, 모듈을 좀 더 세분화하여 Layer를 늘렸느냐 아니냐의 차이로 이해하면 될 것이다.
TCP/IP계층은 레이어가 4개뿐이므로, OSI 7계층보다 더 단순화된 모델이라 할 수 있다.
여기서, 두 모델을 ‘OSI 7모듈’, ‘TCP/IP 4모듈’과 같이 부르지 않고 굳이 왜 ‘게층’이라는 용어를 사용할까?
하위 계층에서 데이터 전송이 실패한다면, 상위 계층은 살펴볼 필요가 없어지기 때문에 문제 발생 시 해결이 용이하기 때문이다.
데이터 송수신에 문제가 생겼을 때, 문제가 LAN에 있는지 WAN에 있는지,
즉 문제가 데이터링크 계층에 있는지 네트워크 계층에 있는지를 알 수 있다면,
그 상위 계층으로는 데이터가 흘러가지 않았을 것이므로 해당 계층만 살펴봄으로서 문제를 해결할 수 있다.
이처럼 데이터 흐름에 상위/하위 의 개념이 포함되어 있으므로 ‘계층’이라는 용어를 사용한 것이다.
OSI 7계층에서의 데이터 송신(보내기)은 아래와 같은 방향으로 흘러간다(캡슐화) :
반면, 데이터 수신(받기)의 방향은 다음과 같다(디캡슐화) :
그렇다면, 다음 포스팅에서 데이터 수신의 가장 첫 단계인 물리계층에 대해 공부해보자.