[CCNA/네트워크] 2. 프로토콜과 Encapsulation
한 포스팅에 전부 적으려고 했는데.. 네트워크의 종류만 다 적어서 놓고 보니 길이가 꽤 길어져서
바로 다음 포스팅으로! 글을 쓸 때 한 줄을 비워 놓고 써서 그런가? 하지만 이렇게 하지 않으면
잘 읽히질 않아서..ㅠㅜㅋ 포스팅도 많이 하고 좋지 뭘 하면서 넘어가기로 했다
이 포스팅에서는 저번 포스팅에 마저 하지 못한 프로토콜과 Encapsulation에 대해 정리할 것이다
- 프로토콜(Protocol)
프로토콜의 사전적 의미를 살펴보면,
규약, 약속, 언어 등이라고 나와있는데, 이 의미를 어느 정도 네트워크에 적용시켜보자
네트워크가 존재하는 이유는 호스트들간의 연결과 정보 공유라고 하였다. 하지만
사람들끼리 서로 대화를 할 때 다른 언어를 사용하는 사람끼리는 말이 통하지 않는 것처럼,
호스트들끼리도 서로 통신을 할 때 자신의 시스템에서만 이용하는 체계를 사용해
데이터를 만들고, 보내게 되면
데이터를 만들고, 보내게 되면
통신이 원활하게 되지 않을 것이다. 이를 극복하기 위해 네트워크 환경에서
서로 데이터를 전송할 때에, 그 데이터가 어떤 데이터이며, 어디서 보낸 것이고,
목적지는 어디인지 이외에도 전송에 필요한 기능들(오류 검출, 데이터의 순서 및 크기)
등을 하나의 규약으로 정해놓고, 그에 해당하는 데이터를 실제 전송할 데이터
에 포함시켜 보내게 된다. 이 때 데이터에 프로토콜과 관련된 헤더를 붙이게 되는데,
이를 캡슐화(Encapsulation) 이라고 한다.
예를 들어 보자면 다음과 같다
한 PC(호스트)에서 다른 PC(호스트)로 데이터를 전송할 때에, 데이터를 일단
생성하게 되는데, 이를 PDU(Protocol Data Unit)이라고 한다. - 위 그림에서는 User Input
그 이후에 데이터 전송을 위해서 앞에 Protocol Header가 붙게 되는데,
뭐가 이렇게 많이 붙느냐? 이유는 OSI 7계층이라는 개념과 관련이 있는데
일단은 편의를 위해 간단하게 설명해 보자.
실제 현실에서 우리가 편지를 보낼 때에
'서울특별시 강북구 미아동 123-45 678호' 로 보낸다고 가정하면
실제 편지 자체는 PDU가 되는 것이고, 시 / 구 / 동 / 번지 / 호수 에 해당하는
프로토콜 헤더가 데이터의 앞에 저 순서대로 붙는 것이다.
물론 붙이는 순서는 호수 -> 번지 -> 동 -> 구 -> 시 가 된다.
집배원이 송신된 편지를 전달할 때,
편지가 서울시에 왔다고 편지의 전송이 끝난것이 아니지 않은가?
서울시에 도착했으면 강북구를 찾아야하고,
강북구에 도착했으면 미아동을 찾아야 하고 . .
이렇게 구체적인 정보가 데이터가 이동하는 각각의 구간에서
더 필요하기 때문에 이러한 정보를 계층적으로 프로토콜 헤더를 붙여서 전송하는 것이다
물론 위에서도 말했듯이 위치에 대한 정보 뿐만 아니라, 이 데이터가 어떤 데이터인지를
설명하는 정보도 각 계층의 프로토콜 헤더에 담겨있다. 예를 들면 위의 RTP는 음성 트래픽
데이터를 전송할 때 이용되는 Real Time Transport Protocol이다.
음성은 실시간으로 전송이 안되면 의미가 없으니까 ^^;
이렇게 데이터를 여러 겹의 프로토콜 헤더로 감싸(캡슐화) 하여 송신하게 되면,
데이터가 거치게 되는 여러 수신단에서는 가장 바깥쪽의 프로토콜 헤더를
하나씩 벗겨 가면서 추가 정보를 확인해가며 데이터의 전송을 순차적으로 진행한다.
* 왜 호수에 대한 프로토콜 헤더를 시에 대한 프로토콜 헤더보다 먼저 붙이느냐?
기본적으로 프로토콜 헤더가 여러 개 붙게 되면, 가장 바깥쪽 프로토콜 헤더를
벗기지 않고서는 내부의 프로토콜 헤더에 대한 정보를 볼 수 없다. 따라서
편지를 보낼 때, 서울시부터 찾아가야지 678호부터 찾아가면 말이 안되기에
위와 같은 순서로 프로토콜 헤더를 붙인다고 생각을 하자
다른 프로토콜에 대해서는 다른 포스팅에서 다룰 것이니 일단은 이 정도로만 정리를 해두도록 하자.
Comments
Post a Comment