컴퓨터 네트워크

2. Protocol과 Protocol Layering

chadongmin 2022. 4. 17. 18:26

Protocol

프로토콜이란 효율적인 통신을 위해 송신자와 수신자, 그리고 그 사이의 모든 중계기들이 따라야 할 규칙이다.

 

통신이 간단하면 간단한 프로토콜이 필요하며, 복잡한 통신에는 프로토콜 계층화가 필요하다.

 

Protocol Layering 

위 그림과 같이 매우 단순한 통시은 단 하나의 계층만을 이용하여 발생한다. 

하지만 이러한 단순한 시나리오에서도 규칙들이 필요하다. 친구 간에 사용하는 단어를 한정해야 하며, 서로 만났을 때 인사를 하고, 두 사람 모두 이야기 할 기회가 있어야한다. 이런 것이 모두 규칙, 즉 프로토콜이다.

 

또한 동등한 상황이 아닌 교수님과 학생들사이의 대화에서도 수업중이라고 가정한다면, 교수님은 일방적으로 말을 하고 학생은 손을 들고 교수님의 허락이 떨어지면 말을 할 기회를 얻게 된다. 이런 것 또한 프로토콜이라고 할 수 있다.

 

 

 

위 그림처럼 마리아와 앤의 물리적인 거리가 아주 멀다고 가정할 때의 프로토콜에 대해 설명해보자.

 

(마리아와 앤은 서로의 대화가 유출되는 것을 막기 위하여 대화의 내용을 암호화 하기로 상호 합의를 한 상태이다.)

마리아는 자신이 직접 이야기 하는 것처럼 Layer3에게 이야기를 한다. Layer3는 마리아가 하는 말을 듣고 Layer2에게 보내질 평문(Plain-text)을 생성한다. Layer2는 평문을 받아 암호화 하여 Layer1에게 보낼 암호문을 만든다. Layer1에서 로봇으로 추측되는 기계는 그 암호문을 받아, 봉투에 넣고 송신자와 수신자의 주소를 추가하여 편지를 보낸다. 

 

앤이 있는 곳에서 Layer1의 기계는 송신 주소로부터 마리아에게서 온 편지임을 인식한다. 그리고 Layer2에게 전달한다. Layer2의 기계는 암호화 된 암호문을 복호화하여 평문을 만들고, Layer3에게 전달한다. Layer3는 평문을 받아 마치 마리아가 말하는 것처럼 읽는다. 

 

Protocol Layering은 복잡한 작업을 여러 개의 작고 단순한 작업들로 나눌 수 있게 해준다. Protocol Layering을 하고 안하고의 차이는 프로그래밍을 할 때 함수 여러개로 나누어서 구현을 하는 것과, main함수 안에서 모두 구현하는 것과 같은 차이다.

 

만약 Layer2에서 이루어지는 암호화가 그들의 대화를 유출시키는 것을 막는데에 충분치 않다고 느낀다면, Protocol Layering을 했을 때는 Layer2의 기계만 바꾸면 된다. 이것을 모듈성(Modularity)라고 한다. 이 경우의 모듈성은 독립된 걔층들을 의미한다. 

 

Protocol Layering의 장점은 서비스들을 구현으로부터 분리할 수 있게 해준다는 것이다.

어느 한 계층은 하위 계층에게 서비스를 받고, 상위 계층에게 서비스를 제공해야 한다. 우리는 그 계층이 어떻게 구현되는지 알 필요가 없다. 만약 마리아가 Layer1의 역할을 할 수 있다면 그래도 시스템은 제대로 작동한다. 

 

또 다른 장점은 통신은 두 종단 시스템에서만 일어나지 않는다는 점이다. 

라우터와 같은 장치들은 network 계층과 그 밑 계층에서만 동작한다. 하지만 Protocol Layering이 되어 있지 않았다면 모둔 중간 시스템을 종단 시스템 만큼 복잡하게 만들어야 했을 것이다. 

 

하지만 Protocol Layering의 단점 또한 존재한다. 

만약 위에서 언급했듯이, 아주 간단한 작업을 하는 데에 있어서는 Protocol Layering이 통신 시스템을 오히려 복잡하게 만들 수 있다. 

 

Protocol Layering의 원칙

Protocol Layering에도 원칙이 있어야 한다.

1. 양방향 통신을 한다면, 각 계층이 각 방향으로 한 가지씩, 상반되는 두 가지 작업을 수행할 수 있도록 만들어야함.

한쪽이 Talk이라면 반대쪽은 Listen이어야 한다.

 

2. 양 사이트의 각 계층 아래에 있는 두 객체는 동일해야 한다. 

위의 내용을 예로 들면, Layer3에 있는 객체는 모두 평문, Layer2에 있는 객체는 모두 암호문. 양 사이트에서 모두 동일한 객체여야 한다. 

 

'컴퓨터 네트워크' 카테고리의 다른 글

4. 캡슐화와 역캡슐화  (0) 2022.04.17
3. TCP/IP  (0) 2022.04.17
1 . Network 와 internet  (0) 2022.04.17