바이너리 데이터그램의 데이터 캡슐화
모든 2진수 데이터 파일에 표준 캡슐화 체계가 사용됩니다. 각 데이터그램은 4바이트 길이의 태그로 시작하여 데이터그램의 길이(바이트)를 나타냅니다. 데이터그램 끝에도 동일한 길이의 태그가 추가됩니다.
설명
long Length;
struct DatagramHeader
 {
 long DatagramType;
 struct {
  long LowDateTime;
  long HighDateTime;
 } DateTime;
 };
- -
datagram content
- -
long Length;
};
설명
데이터그램은 모두 동일한 헤더를 사용합니다. 데이터그램 형식은 데이터그램 형식 필드를 통해 알 수 있습니다. 간편한 해석과 장기적인 유지보수를 위해 ASCII 문자 4개가 사용되며 이 중 3개는 데이터그램 형식을, 그리고 1개는 데이터그램 버전을 나타냅니다.
DateTime 구조에는 64비트 정수 값이 저장되어 1601년 1월 1일부터 100나노초의 간격 수를 나타냅니다. 이는 Windows NT 운영 체제에서 사용되는 내부 "filetime"입니다. 데이터그램의 데이터 영역에는 바이트 수가 저장되며, 내용은 데이터그램에 따라 그게 달라집니다.
공용 컴퓨터는 두 가지 카테고리로 구분됩니다.
•  Intel 기반 컴퓨터는 LSB(최하위 바이트)부터 시작하여 파일에 다중 바이트 수치를 기록합니다.
•  HP, Sun 및 Motorola는 그 반대로 MSB(최상위 바이트)부터 파일에 기록합니다.
데이터그램 내에서 길이 태그 및 모든 바이너리 필드의 바이트 순서는 항상 데이터 파일을 작성하는 컴퓨터의 기본 바이트 순서와 동일합니다. 소프트웨어는 파일을 읽고 필요에 따라 데이터그램에 저장된 모든 다중 바이트 수치의 바이트 스와핑을 실행합니다. 바이트 스와핑은 헤더 길이 태그와 테일 길이 태그가 서로 일치하지 않을 때마다 필요합니다. 전체 데이터그램의 바이트 순서를 확인할 때 두 길이 태그를 사용하는 이유도 여기에 있습니다.
Intel 프로세서는 RAM 주소에 상관없이 다중 바이트 수치의 위치를 결정할 수 있습니다. 하지만 다른 프로세서에서는 그렇지 않습니다. short형(2바이트)은 짝수 주소에, 그리고 long형(4바이트)과 float형(4바이트)은 4로 나눠지는 주소에 위치해야 합니다. 그래서 데이터그램의 수치 필드를 지정할 때는 이 점을 염두에 두어야 합니다.