KOROMOON

착한 사마리아인이 되고 싶습니다.

1/16/2019

네트워크 메시지 포맷팅 - 헤더, 페이로드, 푸터


메시지는 네트워크를 통해 정보를 전송하는 데 쓰이는 구조임.
메시지는 프로토콜이나 기술 별로 크게 다르며 부르는 명칭도 다양함.
하지만 메시지들을 구분하는 것은 그 명칭이 아니라 그 안의 내용임.

모든 프로토콜은 자신이 이용하는 메시지의 구조를 결정하는 특수한 포맷팅 방법을 사용함.
특정한 메시지 유형의 포맷은 그 메시지를 사용하는 기술에 따라 달라지지만 모든 메시지들이 공통적으로 가지고 있는 특성이 있음.
그것은 바로 메시지들이 다음 3개의 요소로 이뤄진다는 것임. (헤더, 데이터, 푸터)

< 네트워크 메시지 포맷팅 >

헤더
실제 데이터 앞부분에 위치하는 정보임.
헤더는 메시지가 담고 있는 데이터의 중요한 속성, 데이터를 해석하고 사용하는 법을 설명하는 여러 작은 제어 정보 바이트를 포함함.
헤더는 서로 다른 장비의 프로토콜 요소간 통신/제어 링크 역할을 함.

데이터
전송되는 실제 데이터로 메시지의 페이로드라고도 불림.
대부분의 메시지는 어떤 형태로든 데이터를 가지고 있지만, 일부 메시지는 데이터를 가지고 있지 않은 경우도 있음.
그러한 메시지는 제어나 통신을 위해서 쓰임.
예를 들어 실제 데이터를 전송하기 전에 논리적 연결을 맺거나, 연결을 끊는 경우에 쓰이는 메시지는 데이터를 담고 있지 않음.

푸터
데이터 뒷부분에 위치하는 정보임.
헤더와 푸터(Footer)는 모두 제어 정보를 포함하고 있기 때문에 둘 간에 큰 차이는 없음.
이것을 언급할 때 트레일러라는 용어를 사용하기도 함.

메시지는 전송될 데이터 페이로드를 헤더와 푸터가 감싸고 있는 형태로 구성됨.
네트워크 프로토콜에서 송신된 모든 메시지의 데이터는 상위 계층에서 캡슐화된 헤더, 데이터, 푸터를 담고 있음.
이러한 중첩은 데이터가 프로토콜 스택의 아래로 전달되면서 여러 번 일어날 수 있음.
헤더는 대부분의 프로토콜 메시지에서 사용하지만 푸터는 일부만 사용함.

헤더와 푸터 모두 제어와 정보 필드를 포함하고 있지만 별도의 푸터를 만드는 이유 중 하나는 일부 제어 정보 중에 데이터 자체의 내용을 이용해 계산되는 것이 있기 때문임.
때때로 데이터 페이로드를 보내는 동안 이 계산을 한 뒤 그 결과를 페이로드 뒤에 붙여서 보내는 것이 효율적일 경우가 있음.
푸터에 자주 쓰이는 필드의 예로 수신 장비에서 에러를 탐지하는 데 쓰이는 순환 중복 검사(CSR : Cyclic Redundancy Check) 코드가 있음.
푸터는 대부분 하위 계층 프토토콜, 특히 OSI 참조 모델의 링크 계층 프로토콜에서 많이 쓰임.

일반적으로, 프로토콜은 오직 헤더(그리고 푸터)에만 관심이 있음.
데이터의 첫 부분에는 일반적으로 프로토콜 스택의 상위 계층에서 사용하는 다른 프로토콜의 헤더가 들어 있음.
OSI 참조 모델에서 특정 프로토콜에서 사용하는 메시지를 PDU 라고 부름.
특정 프로토콜의 페이로드에 들어 있는 부분을 SDU 라고 부름.
하위 계층 프로토콜의 SDU 는 보통 상위 계층 프로토콜의 PDU 임.



참고 사이트 :
http://tcpipguide.com/free/t_MessageFormattingHeadersPayloadsandFooters.htm#Figure_3

댓글 없음:

댓글 쓰기