본문 바로가기
CS/데이터 통신

1. Protocol Layering

by D.O.T 2024. 4. 22.
프로토콜이 뭘까?

 

프로토콜(Protocol)은 통신에서 상대방과 통신하는 방법에 대한 규약이다. 어떻게 통신할 것인지를 미리 사전에 정의해놓고 그 방식에 맞게 통신하는 것이다. 만약, 프로토콜이 없다고 가정해보자. 

A 회사에서 B 회사로 데이터를 전달하는데 그냥 원본 그대로 전송한다. A 회사는 전용 우편함이 존재하고 B 회사는 우편함이 따로 없다. B 회사에서 데이터를 전달 받을 때, 우편함이 없어서 사용자에게 직접 가져다 줘야하는데 우편 기사가 존재한다면 한 명, 한 명에 대해 일일이 물어보고 갖다줘야한다. 만약, B 회사에도 우편함이 존재했고 이 우편을 관리해주는 사람이 존재한다면? 알아서 다 해줄 것이다. 컴퓨터 입장에서 본다면 컴퓨터 시스템이 사용자를 찾기 위해 다른 작업을 처리하지 못하고 시간을 낭비하게 된다는 것이다. 

 

시나리오

그림 A. First Scenario
그림 B. Second Scenario

 

위에서 설명했듯 데이터 통신에서는 통신을 위한 Protocol을 정해야 한다. 

Protocol을 정하기 위한 첫 번째 시나리오로 한 계층에서 통신을 할 경우다. 이 경우는 사용자 간 1:1로 통신을 하는 것을 의미한다. 그냥 원본 자체를 특정 사용자에게 그대로 전달하는 것이다. 정말 단순하고 좋은 방법이라고 생각한다.

 

그런데 첫 번째 시나리오에서 문제점이 생겨서 두 번째 시나리오가 발생했다.

만약, 원본 파일이 중요한 내용일 경우, 중간에서 누군가가 파일을 훔쳐볼 수 있다는 것이다. 만약, 우편을 보냈는데 우편지로 동봉이 되어있지 않다면 누구나 그 내용을 볼 수 있다는 문제점과 동일하다.

그래서, 두 번째 시나리오에서는 평문을 암호화해서 보내자는 것이다. 한 번에 모든 곳에서 작업을 수행하면 너무 많은 처리가 발생하니까 각 계층을 나누어 평문을 암호화하고 전송하는 3개의 계층을 생각하게 된 것이다.

 

Principle

 

시나리오대로 프로토콜을 정한다면 2가지 원칙이 필요하다.

 

  • 양방향 통신을 하고 싶다면 각 계층(Layer)는 두 가지 일을 수행해야한다.
    • 3 계층에서 평문을 작성할 수 있다면, 읽을 수 있어야 하고
    • 2 계층에서 암호화를 할 수 있다면, 복호화 할 수 있어야 하고
    • 1 계층에서 송신을 할 수 있다면, 수신을 할 수 있어야 한다는 점이다.
  • 통신을 하려면 양 쪽의 계층은 서로 동일해야 한다는 점이다.
    • A에서 3계층 프로토콜을 사용했다. B에서는 1계층 프로토콜을 사용했다.
    • A에서 암호화된 내용은 B에서 어떻게 복호화하지?
    • A에서 송신한 내용은 B가 어떻게 받지?

'CS > 데이터 통신' 카테고리의 다른 글

4. Physical Layer - Digital Signals  (0) 2024.04.24
3. Physical Layer - Data와 Signals 그리고 Bandwidth  (0) 2024.04.23
2. Protocol Model  (0) 2024.04.22