전공 공부한거 끄적이는 곳

[데이터통신] Protocol Architecture(1)

앜지 2023. 3. 7. 20:17

Protocol Architecture은 데이터 통신에서 아주 기본적인 개념이다.

 자 이게 뭐냐:

protocol architecture는 시스템(컴퓨터)들 사이의 데이터 통신을 위한 하드웨어와 소프트웨어의 layered structure

좀 풀어서 설명하자면 

컴퓨터같은 데이터 처리 장치들이 서로 통신을 하려면 그걸 하려는 과정은 꽤 복잡하다.

예를 들어보자

만약에 두 컴퓨터 사이에 데이터를 주고 받을때 이를 위해서는 둘 사이에 데이터를 주고받을수 있는 network처럼 무선이건 구리선으로 연결되어 있건 데이터를 전송해줄 datapath가 필요하다.

그 밖에도 확인할 요소가 몇가지 있는데 대충 훑자면

 

1.sender(데이터를 주는 주체)는 direct datapath를 활성화하거나 network에게 reciever(데이터를 받는 객체)를 알려야 한다.

2.sender가 보내는 data의 형태가 reciever도 처리할수 있는 형태인지도 확인을 하고 

3.reciever가 데이터를 현재 받을수 있는 상태인지도 확인을 해야된다.

 

이 밖에도 데이터를 통신해서 주고받는 과정은 아주 복잡한 과정인데

이를 좀 단순화 시키기 위해서 사람들은 이 정보를 주고받는 과정을 다양한 계층으로 나누었다.

이렇게 만들어진 Layered Architecture에서 각 계층(layer)는 각각 통신의 한 기능을 수행하며 자신의 아래에 있는 (2계층은 1계층의 기능)계층의 기능을 활용할수가 있다. 오직 자신의 한단계 아래의 기능만 활용한다. 이는 어떤 하나의 계층의 영향을 최소화 함으로써 좀더 효율적으로 만들수가 있다. 만약에 한 계층에 문제가 생긴다면 그에 따른 영향이 크기 때문에 이 Task 전체를 손봐야될수도 있다.

데이터의 통신은 그래서 대략 이런 형태를 띈다

여기서 같은 Layer혹은 계층들을 peer(동료)라고 지칭하며 같은 계층들끼리 서로 소통을 하기 위해 정해진 규칙을 Protocol 이라고 한다.

여기서 protocol에 중요한 세가지 요소들이 있는데 syntax,semantic,timing이 이 세가지이다.

-syntax:통신을 하는 데이터의 포맷,즉 형태이다 ex)컴퓨터에서 숫자를 저장하려면 binary file(0101같은 이진수로) 혹은 text file에 ASCII코드로 저장할수도 있는데 이거를 syntax라고 칭한다.

-semantic:어떻게 data를 해석하고 에러가 날경우 이것을 어떻게 처리할지 위한 규칙

-timing:나중에 다룰 TCP프로토콜에서는 양쪽에서 데이터를 전송하고 받을 준비가 되었다는것을 나타내기 위해 클라이언트와 서버가 서로 신호를 주고받는데 이런 신호의 순서, 속도를 조절하는것이 timing이다.

 

데이터에 대한 용어에는 PDU(Protocol Data Unit),SDU(Service Data Unit),PCI(Protocol Control Information) 이 있는데 PDU는 peer들 사이에서,즉 프로토콜에서 사용되는 데이터의 단위이다.

SDU는 payload라고도 하는데,PDU안의 내용물이라고 생각하면 될것 같다.

PCI는 SDU에 붙이는 송장이라고 생각하자 ㅋㅋ.어디에서 보냈으면 목적지가 어디인지 내용물이 무엇인지 알려주는 내용을 포함한다.

 

애초에 데이터라는 개념을 택배라고 생각하면 편하다. Layer, 즉 계층을 택배사라고 생각하고.

제일 상위 계층이 데이터를 전송하려면 자신의 아래에 있는 계층을 모두 거치는데 거기서 송장을 하나씩 붙이는거임

 

그러니까 x+1번째 계층의 PDU는 x번째 계층에서는 SDU로 쓰이는 거다

이렇게 사용되는 프로토콜은 현재 표준화 되어있으며(왜냐면... 다 같은걸 써야지 컴퓨터들이 모두 통신을 할수 있지 않겠나)

현재는 OSI가 정한 7계층을 가장 널리 쓰고 있다

이 7계층에 대해서는 다음 글에서 다루겠다.

ㅃㅇㅇ