네트워크 모델의 기본인 TCP/IP Protocol Suite에 대해 알아보자.
프로토콜 계층화를 공부하기에 앞서, 프로토콜이 무엇인지부터 설명하겠다.
프로토콜이란?
송신자와 수신자, 그리고 중간의 모든 장치들이 효과적으로 통신을 할 수 있도록 따라야만 하는 규칙
을 정리한 것.
문서 10개를 정리한다면 규칙이 필요 없겠지만, 100,000,000개를 정리한다면 본인만의 규칙이 있는 경우가 훨씬 처리가 빠를 것이다. 우리는 복잡해지는 통신을 위해서 프로토콜
을 준수할 필요가 있다.
통신이 단순하다면, 프로토콜은 하나로도 충분하다.
그러나 우리가 일상생활에서 하는 통신은 단순하지 않으며, 복잡하다.
예를 들어, 누군가가 "안녕!"이라고 인사한다면, 그 짧은 목소리에 다양한 톤과 높낮이와 크기가 담겨있을 것이다. 이렇게 신호를 매질을 통해 전달하는 통신은 상당히 복잡하며, 이를 효과적으로 수행하기 위해서 프로토콜 계층화
로 계층간에 임무를 나눈다.
모듈화(modeularity)
라고 한다.프로토콜 계층 구조에는 두 가지 원칙이 존재한다.
위 예시와 함께 쉽게 알아보자.
- 각 계층은 각 방향으로 한 가지씩 상반되는 두 작업(two opposite tasks)을 수행해야 한다. -> 양방향 통신(FDX)
예를 들어, 1계층의 작업은 편지를 송신하고 수신하는 것이다. 송신과 수신은 서로 상반되는 작업이니 원칙을 준수한다.
- 양 측의 각 계층 하에 있는 두 객체는 동일한 계층에 있어야 한다.
예를 들어, 1계층의 객체는 모두 '편지'의 일부여야 한다.
위의 두 원칙을 고려해 볼 때, 우리는 각 계층끼리 통신을 한다는 것을 알 수 있다. 각 계층마다 객체가 통과할 수 있도록 계층끼리 논리적(가상)으로 연결
되어 있는 것이다.
프로토콜 그룹 모델에서 두 개의 당사자(parties)는 서로 논리적 통신을 하는데, 이 때 주소 지정
이 꼭 필요하다. 즉 발신지의 주소와 도착지의 주소가 필요한 것이다. 이 때, 물리적 계층은 주소가 필요하지 않기 때문에 네 개의 계층만이 사용된다. 물리적 계층에서 데이터 교환의 단위는 비트
이기 때문에 주소를 가질 수 없기 때문이다.
오늘날 데이터 통신과 네트워크를 주도하는 계층 구조 프로토콜은
TCP/IP(프로토콜 그룹)
이라는 인터넷 모델이다.
상호작용하는 모듈로 이루어진 계층적 프로토콜에서 각 모듈은 특정한 기능을 제공한다.
이제부터 각 계층의 논리적 연결과 역할을 간단하게 알아보자.
물리층은 개별 비트
들을 한 노드에서 다음 노드로 전달하는 역할을 한다. 인터페이스와 매체의 물리적인 특성을 담고 있으며, 비트를 표현하고 동기화한다.
데이터 링크층은 한 노드에 다음 노드로 프레임
을 전달하는 역할을 한다.
프레임을 구성하며 물리 주소를 지정하고, 흐름 및 오류와 접근 등을 제어한다.
네트워크층은 발신지로부터 최종 목적지로 패킷(packet)
을 전달하는 역할을 한다. 논리 주소를 지정한다.
전송층은 하나의 프로세스로부터 다른 프로세스로 메세지
를 전달하는 역할을 한다. 포트의 주소를 지정하고, 데이터를 분할 및 재조립한다.
응용층은 사용자에게 서비스
를 제공하는 역할을 한다. 파일 접근, 전송 및 관리를 수행하며 원격 로그인을 제어하고 WWW를 통해 접근한다.
각 계층의 역할에 대해 요약한 사진이다.
지금까지 데이터 통신의 규칙인 프로토콜과 TCP/IP 5계층에 대해 알아보았다. 이는 네트워크 모델에서 아주 일부분이며 겉핥기에 불과하지만, 논리적 연결과 주소 지정 등의 중요한 개념이 포함되어 있기 때문에 한 번 쯤은 공부해 볼만한 내용이다.