Protocol Layering ( 프로토콜 계층화)
우리가 인터넷에 대해 이야기할 때마다 "프로토콜'이라는 단어를 항상 듣는다. 프로토콜은 데이터 통신과 네트워킹에서 송신자과 수신자 그리고 중간 연결장치들이 효과적으로 통신하기 위해 따라야 하는 규칙이다.
이러한 통신이 복잡해질 때, 각각 서로 다른 계층의 역할을 나누기 위해 Protocol layering (프로토콜 계층화)를 사용한다.
프로토콜 계층화는 두 가지 원칙을 가진다.
- 양방향 통신을 원한다면, 각 계층이 상반되는 두 가지 작업을 수행할 수 있어야 한다. 예를 들어 "듣기"작업을 하는 layer가 있다면 같은 계층의 반대편에는 "말하기" 작업을 수행하는 레이어가 존재해야 한다.
- 양측의 각 계층에 있는 Object(객체)의 형식은 서로 동일해야 한다. 예를 들어 Layer1 끼리는 mail Layer2 끼리는 암호문, Layer3 끼리는 평문처럼 말이다.
이해를 위해 시나리오 두 개를 가정하자.
단일 계층 프로토콜
Maria와 Ann은 이웃이다. 이때 둘 사이의 통신은 한 계층으로 이뤄지며 얼굴을 마주 보고 같은 언어를 사용한다. ( 이렇게 간단한 작업일 경우 굳이 계층화가 필요하진 않다)
3 계층 프로토콜
Ann이 이사를 가게 되어 편지를 통해 소통하기로 했다. 중요한 아이디어가 담긴 편지라 혹시 유출될까 싶어 편지를 보낼 때 암호화하고 편지를 받은 쪽이 복호화하기로 했다. 이제 편지를 보내보자.(통신을 진행해 보자)
- Maria가 Layer3에게 평서문으로 메일 내용을 말했다. (Layer3 : Talk, Write)
- Layer2는 이를 암호화하여 Layer1로 보내고 (Layer2 : 암호화/복호화)
- Layer1을 이 암호문 편지 봉투에 넣어 발신인과 수신인 주소를 주사한 후 우편으로 보낸다 (Layer1 : 우편 보내기, 받기)
- Ann의 Layer1번에서는 도착한 우편에서 암호문을 꺼내 Layer2로 전달한다.
- Layer2에서는 암호문을 복호화(해독)하여 평문으로 변환한 뒤, 이를 Layer3으로 보낸다.
- Layer3은 전달받은 평문을 Ann에게 읽어준다.
Modularity ( 모듈성 )
모듈성은 복잡한 작업을 여러 개의 더 작고 단순한 작업으로 나누는 것이다. 즉 각 Layer의 독립성을 보장해야 한다.
만약 모듈성이 보장되지 않는다면 Maria와 Ann이 사용하는 Layer2 속 암호/복호 기계가 고장 났을 경우, Layer 전체를 교체해야 될 것이다.(너무나 큰 비용) 그러나 모듈성의 보장으로 Layer2만 교체하면 된다.
- 다른 계층과의 연관성을 고려하지 않을 수 있다.
- 입력과 출력의 형태만 정의하고 내부는 Black Box로 구현할 수 있다.
- 프로토콜 계층화는 모듈화를 의미한다.
이러한 계층화는 서비스와 구현을 분리할 수 있다는 장점을 가진다.
그러나 단점은 위 과정을 하나의 Layer로 가지고 있는 경우보다 작업이 복잡하는 것이다. ( Layer가 한 개면 이것만 생각하면 되는데, Layer가 많으면 고려해야 할 부분이 생기니. ex)
'학교 공부 > 데이터 통신' 카테고리의 다른 글
[데이터 통신] 캡슐화와 역캡슐화, 주소 지정, 다중화와 역다중화, OSI 모델, OSI vs. TCP/IP (1) | 2023.04.16 |
---|---|
[데이터 통신] TCP/IP Protocol Suite ( TCP/IP 프로토콜 집합) (1) | 2023.04.16 |
[데이터 통신] Internet (0) | 2023.04.16 |
[데이터 통신] circuit-switched network, packet-switched network (1) | 2023.04.16 |
[데이터 통신] LAN, WAN (0) | 2023.04.15 |