TCP는 연속적인 데이터 스트림을 제공합니다. TCP는 이 패킷을 사용하여으로 구현되었지만 TCP의 전체적인 점은이를 숨기는 것입니다.
마치 그림을 그리려는 벽처럼 생각하면됩니다. 벽은 벽돌로 만들어진다. 벽돌은 모르타르와 함께 붙어 있으며 석고는 벽면이 매끄 럽도록 적용됩니다. 벽돌은 IP 패킷이고 TCP는 석고입니다.
이제 부드럽게 회 반전 된 TCP 터널을 얻었으므로 여기에 구조를 추가하고 싶습니다. 상자를 그리면 그림이 서로 떨어져있게됩니다. 이것은 당신이 원하는 것입니다 : 약간의 "관리"구조 (도면 주위의 상자)를 데이터에 추가하는 것입니다.
많은 프로토콜은 packet
이라는 개념을 사용합니다.이 개념은 고정 형식 관리 헤더로 시작하는 일련의 데이터입니다. 헤더에는 패킷이 끝나는 위치를 결정할 수있는 충분한 정보가 들어 있습니다. 예를 들어 패킷 길이를 포함한다. HTTP는 데이터가 하나 또는 여러 개의 미니 패킷으로 분할되는 "청크 분할 전송 인코딩"을 사용하여 Content-Length
헤더 또는 HTTP/1.1을 사용하여이를 수행합니다. 각 패킷은 정확히 미니 패킷 길이 표시로 구성된 간단한 헤더로 구성됩니다 .
또 다른 방법은 "정상적인 데이터"에 나타날 수없는 특수 터미네이터 시퀀스를 만드는 것입니다. 데이터가 텍스트이면 종결 자로 0의 값을 사용할 수 있습니다.
또 다른 방법은자가 종단 데이터를 사용하는 것입니다. 이것은 요소의 끝 부분에 도달했는지 여부를 언제든지 알 수있는 방식으로 구조화 된 데이터입니다. 예를 들어, XML 데이터는 <foo>...</foo>
과 같은 중첩 된 쌍의 마커로 구성됩니다. 끝 마커 (</foo>
)에 도달하면 요소가 완료되었음을 알게됩니다.
TCP 패킷 내에서 걱정할 필요가없는 응용 프로그램 수준의 메시지라고 생각합니까? –