FastCGI 프로토콜이 1 바이트 패딩이있는 7 바이트 레코드 (통신에 사용되는 데이터 구조) 헤더를 정의한다는 사실을 알게되었습니다. 필요한 경우 다른 구조체도 패딩됩니다. 이 1 바이트가 무엇이든 변경되면, 나는 1000000 순차적 인 전송 및 7 및 8 바이트 버퍼의 수신을 시간 초과했다. 그리고 특히 ... 아무것도 발견하지 못했다. 몇몇 실행은 데이터를 가변적으로 제공했기 때문에 평균화 할 가치조차 없었습니다. (testing code)TCP를 통해 전송할 때 데이터 구조 패딩
TCP를 통해 7 바이트 데이터를 전송해야한다면 1 바이트를 추가하면되므로 전송 및 읽기가 8 바이트 버퍼에서 작동합니다. 어디에서 오는 것이고 어떤 덧씌우 기가 적절한 지 어떻게 알 수 있습니까? socket이 Unix 파일 소켓 또는 INET 소켓 인 경우에는 다른가요? 보낸 사람과받는 사람이 같은 호스트에 있으면 다른 것입니까?
데이터 구조 정렬 문제에 대해 알고 있었지만 높은 수준의 플랫폼 독립적 인 네트워크 프로토콜 사양이 자신을 신경 쓰지 않을 것이라고 생각했습니다. –
그것은 어떤 종류의 프로토콜인지를 결정합니다. 예를 들어 텍스트 기반 인 HTTP는 상관하지 않습니다. 바이너리가 일반적으로하는 일은 결국 결국 물리적 인 머신의 모든 비트와 바이트로 이어집니다. –