두 개의 응용 프로그램이 TCP/IP 스트림을 통해 통신하도록 프로토콜을 만들고 메시지의 헤더를 디자인하는 방법을 파악하고 있습니다. TCP 헤더를 초기 가이드로 사용하여 패딩이 필요한지 궁금합니다. 캐시를 처리 할 때 저장되는 데이터가 캐시 행에 맞는지 확인하여 검색 할 때 효율적으로 수행되도록합니다. 그러나 응용 프로그램이 바이트 스트림을 구문 분석하여 적합성을 확인하는 방법을 고려하여 헤더를 채우는 것이 타당한 지 이해할 수 없습니다.패드를 사용하거나 패드를 쓰지 않으려면 - 통신 프로토콜을 만듭니다.
예를 들어, 3 바이트 필드와 32 비트 정렬을위한 1 바이트 패딩 필드로 구성된 메시지 헤더를 보내려합니다. 그런 다음 메시지 데이터를 보내 드리겠습니다.
이 경우 수신기는 스트림에서 3 바이트를 가져 와서 패딩 바이트를 버립니다. 그런 다음 메시지 데이터를 읽기 시작합니다. 보시다시피, 그는 원하는대로 3 바이트와 메시지 데이터를 저장하지 않을 것입니다. 바이트 정렬의 전체 지점은 효율적인 방식으로 검색 될 수 있도록되어 있습니다. 하지만 리트리버가 패딩에 신경 쓰지 않는다면 어떻게 효율적으로 검색 할 수 있을까요?
패딩이없는 경우 검색자는 스트림에서 3 헤더 바이트를 가져 와서 데이터 바이트를 사용합니다. 리트리버는 원하는대로이 바이트를 저장하기 때문에 패딩이 수행되는지 여부가 중요합니다.
어쩌면 나는 패딩 포인트를 놓치고 있습니다.
이 게시물에서 질문을 추출하기가 약간 힘들지만, 내가 말한 것은 아마도 내 오해를 지적 할 수 있습니다.
여러분의 생각을 알려주세요.
감사합니다, 꼭 다음 메시지 본문의 단어 정렬이 어떤 소용이
+1 가독성, 디버깅, 로깅, 확장 성 등을 위해 텍스트를 사용하거나 크기를 최소화하기 위해 압축 된 텍스트를 사용합니다. 바이너리 형식은 "조숙 한 optmization"일 수 있습니다. 바이너리 형식 *은 CPU 활용도 및 메모리를 최적화 할 수 있지만 이는 TCP에 대한 중요한 고려 사항이며 자체 개발 프로토콜/응용 프로그램의 경우 중요하지 않을 수도 있습니다. – ChrisW