# 1. 프로토콜
프로토콜은 효과적인 통신을 위해 발신자, 수신자 및 중간 장치가 따라야 하는 규칙을 정의한다.
간단한 통신의 경우 단순한 프로토콜 하나만 필요할 수 있다.
그러나 복잡한 통신의 경우 각 계층마다 프로토콜이 필요하며, 이를 프로토콜 계층화(Protocol Layering)이라고 한다.
프로토콜 계층화는 복잡한 통신을 간단한 여러 단계로 나누어 처리하는 방법이다. 이렇게 하면 각 단계에서 처리하는 기능이 세분화되고 필요한 경우 각 단계에서의 기능만 수정하거나 보수하면 되기 때문에 장기적인 측면에서 유리할 수 있다.
# 2. 프로토콜 레이어링(Protocol Layering)
프로토콜 레이어링은 복잡한 작업을 더 작고 간단한 여러 계층(Layer)으로 나눌 수 있도록 도와 준다.
이러한 경우 각각의 독립적인 계층은 모듈성을 가진다고 할 수 있는데 각 모듈(Layer)은 입력과 출력을 가진 '블랙 박스'라고 정의한다. 또한 입력이 어떻게 출력으로 변환되는지에 대한 걱정은 안 해도 무방하다. 즉, 어떤 한 계층에 대해 서로 다른 기기를 사용해도 된다는 것이다.
- 장점
- 각 계층은 하위 계층에서 일련의 서비스를 받고 상위 계층에 서비스를 제공할 수 있으며 이때 서비스와 구현을 분리할 수 있다.
- 각 계층이 어떻게 구현되었는지에 대해서는 상관하지 않아도 무방하다.
- 중간 시스템(스위치, 라우터)들이 있으며 이들은 모든 계층이 아닌 일부 계층만을 필요로 한다. 따라서 각 중간 시스템을 엔드 시스템만큼 복잡하게 만들지 않아도 되며 결과적으로 비용이 절감된다. - 단점
- 서비스를 각 레이어로 세분화하지 않고 단일의 계층으로 간소화할 수 있다는 여지가 남아 있을 수 있다. 이 경우 각 계층이 상위 또는 하위 계층에 서비스를 제공할 필요가 없어진다. 그러나 이 경우 계층 내부적 문제 발생 시 전체 계층을 교체해야 할 수도 있다는 고려사항이 남아 있다.
# 3. 논리적 연결(Logical Connection)
여러 가지 원칙을 고려해 보면서 서비스를 설계하면 각 계층 사이의 논리적 연결에 대해 생각해 볼 수 있다.
이는 계층 간 통신이 존재한다는 것을 의미하는데 각 계층에서 생성한 객체를 보낼 수 있는 임의의 논리적 통신이 존재한다는 것이다. 데이터통신과 네트워킹에서의 계층화 작업(Layering)을 이해하는 데 '논리적 연결'이라는 개념이 도움될 수 있다.
# 4. TCP/IP 프로토콜
TCP/IP 프로토콜은 피지컬, 데이터 링크, 네트워크, 트랜스포트, 애플리케이션의 5개 레이어로 구성되어 있다.
각 계층(모듈)은 독립적이며, 입력을 출력으로 변경하는 방식에 대해 신경쓰지 않아도 무방하다. 이는 서비스와 구현을 분리할 수 있게 한다.
- 물리적 계층(Physical Layer)
- 물리적 계층은 구조화되지 않은 원시 비트 스트림 데이터가 물리적 매체를 통해 전송되고 수신되는 방식을 제어한다.
- 물리적 계층은 무든 상위 계층의 신호를 전달한다. - 데이터 링크 계층(Data Link Layer)
- 데이터 링크 계층은 데이터그램을 가져 와 링크를 통해 이동시키는 역할을 담당한다.
- 이때 링크는 유/무선 LAN 및 유/무선 WAN이 될 수 있다.
- 다양한 링크 유형에 상이한 프로토콜을 사용할 수 있다.
- TCP/IP는 데이터 링크 계층을 위한 특정 프로토콜을 정의하지 않는다.
- 데이터 링크 계층은 데이터그램을 프레임이라는 패킷으로 캡슐화한다.
- 일부 데이터 링크 계층 프로토콜은 완전한 오류 감지 및 수정 기능을 제공하며, 일부는 오류 수정만 제공하기도 한다. - 네트워크(Network Layer)
- 네트워크 계층은 소스 컴퓨터(송신 측)와 목적지 컴퓨터(수신 측) 간의 연결을 생성하는 역할을 한다.
- 네트워크 계층의 통신은 호스트 간 이루어진다.
- 소스에서 목적지까지 여러 라우터가 있을 수 있으므로 경로 상의 라우터는 각 패킷에 대해 최적의 경로를 선택하는 역할을 한다.
- 호스트 간 통신과 연결 가능한 경로를 통해 패킷을 라우팅하는 역할을 수행한다고 볼 수 있다. - 전송 계층(Transport Layer)
- 전송 계층의 논리적 연결은 '종단 간(end-to-end)'이다.
- 전송 계층의 프로토콜은 각 애플리케이션 프로그램이 스스로의 요구에 가장 부합하는 프로토콜을 사용할 수 있다는 것을 나타낸다.
- 오류 제어와 흐름 제어를 담당한다. - 응용 계층(Application Layer)
- 응용 계층 간 논리적 연결은 '종단 간(end-to-end)'이다.
- 응용 계층에서의 통신은 두 프로세스(이 계층에서 실행되는 두 프로그램 이상) 이상 간에 이루어진다.
- 프로세스는 통신을 위해 다른 프로세스에게 요청을 보내고 응답을 받는다.
# 5. 캡슐화와 역캡슐화
인터넷에서 프로토콜 계층화와 관련한 중요한 개념 중 하나는 캡슐화/역캡슐화이다.
이는 데이터가 네트워크를 통해 전송될 때 각 계층에서 데이터에 헤더 정보를 추가하거나 제거하는 과정을 말한다.
캡슐화는 데이터가 송신자로부터 수신자에게 전달될 때 각 계층에서 데이터에 헤더를 추가하는 것을 의미하며, 역캡슐화는 수신자 측에서 각 계층이 해당 헤더를 제거하고 데이터를 다음 계층으로 전달하는 과정을 말한다.
이러한 일련의 과정은 데이터가 정확하게 전송되고 해석될 수 있도록 하는 데 필수적이다.
- 주소 지정(Addressing)
- 인터넷의 프로토콜 계층화와 관련된 또 다른 개념이다.
- 이 모델에서는 계층 쌍 간의 논리적 통신이 있다.
- 두 통신자 간의 모든 통신에는 소스 주소(source address)와 목적지 주소(destination address)라는 두 개의 주소가 필요하다.
- 각 계층마다 한 쌍의 주소가 필요한 것처럼 보이지만, 물리적 계층에는 주소가 필요하지 않기 때문에 보통 네 쌍의 주소만 있다. 물리적 계층에서의 데이터 교환 단위는 비트이므로 주소를 가질 수 없다.
# 6. 멀티플렉싱(Multiplexing)과 디멀티플렉싱(Demultiplexing)
TCP/IP 프로토콜 제품군은 여러 계층에서 여러 프로토콜을 사용한다. 이로 인해 소스에서는 멀티플렉싱(다중화)을 수행하고, 목적지에서는 디멀티플렉싱(역다중화)을 수행한다.
- 멀티플렉싱은 한 계층의 프로토콜이 한 번에 하나씩 여러 상위 계층 프로토콜의 패킷을 캡슐화할 수 있음을 의미한다.
- 디멀티플렉싱은 한 번에 하나씩 여러 상위 계층 프로토콜로부터 패킷을 해제하고 전달할 수 있음을 의미한다.
# 7. OSI Model
OSI는 Open Systems Interconnection의 약자이다. 이는 서로 다른 두 시스템이 기반 아키텍처와 상관없이 통신할 수 있도록 하는 프로토콜 세트이다.
이 모델은 TCP/IP 프로토콜에서 Transport Layer와 Application Layer의 사이에 Session Layer와 Presentation Layer를 각각 순서대로 아래에서부터 쌓은 것이다.
현재는 OSI Model을 도입하지 않았다. 그 이유로는
1. OSI는 TCP/IP가 완전히 구축된 후에 완성되었으며, 이미 기존의 프로토콜 설계(TCP/IP Protocol)에 많은 시간과 자금이 투입되었고 이를 OSI로 바꾸는 데에 많은 비용이 들 것이기 때문이다.
2. OSI 모델의 일부 계층은 완전히 정의되지 않았다.
3. 마지막으로 위의 이유들과 그외의 이유들을 감수하고서라도 도입할 만한 충분한 성능적 이유가 없기 때문이다.
'Computer Science > 데이터통신' 카테고리의 다른 글
[데이터통신] Digital-to-Analog Conversion (0) | 2024.04.21 |
---|---|
[데이터통신] Analog-to-Digital Conversion (0) | 2024.04.20 |
[데이터통신] Digital-to-Digital Conversion (1) | 2024.04.20 |
[데이터통신] Physical Layer (0) | 2024.04.20 |
[데이터통신] 데이터통신과 네트워크에 대하여 (0) | 2024.04.17 |