여기서 단일(?) TCP 패킷이 여러 PDU 장치로 분할되는 이유는 무엇입니까?

여기서 단일(?) TCP 패킷이 여러 PDU 장치로 분할되는 이유는 무엇입니까?

관련 사진:대체 텍스트

해당 세그먼트가 별도의 패킷(모두 Ack, Seq=509)으로 표시되는 이유는 무엇입니까? 패킷이 분할된 이유는 무엇입니까?

답변1

나는 당신이 56-78 범위의 가시 프레임을 언급하고 있다고 가정합니다.
이 순서대로 문제를 해결해 보겠습니다.

  1. 정보: " TCP segment of a reassembled PDU"
    이는 Wireshark(Ethereal?)가 사용자의 보기를 위해 TCP 세그먼트를 함께 재조립했음을 의미합니다.
    따라서 이 문자열을 무시해도 아무런 해가 없습니다.
    아래 4번 항목에서 이러한 프레임이 무엇인지 자세히 설명했습니다.
  2. 정보: 동일한 ' seq' 번호를 가진 다른 프레임입니다.
    프레임 58, 60,62,64 등은 동일한 시퀀스 번호를 나타냅니다.
    그러나 이것들은~ 아니다"별도의 패킷으로 표시"된 단일 패킷 - 분할이 없습니다.
    이 패킷에는 ' ACK' 플래그만 설정되어 있으며 ACK 번호가 증가하는 것을 볼 수 있습니다.
    이는 다른 TCP 세그먼트가 도달할 때 컴퓨터에서 HTTP 서버로 전송되는 ACK입니다.
  3. ' ACK' 시퀀스는 1프레임 에서 시작하여 FIN 프레임에서 52끝납니다 . 이 시간 동안 브라우저에서 HTTP 서버로 향하는 모든 프레임은 전송된 마지막 시퀀스 번호( )를 반복합니다. 이는 정상적인 TCP 프로토콜 동작입니다. 브라우저는 첫 번째 HTTP 요청(frame ) 이후 더 이상 데이터를 보내지 않습니다. HTTP 서버는 프레임에서 이를 승인했습니다 .964678
    609
    52
    54
  4. 54프레임은 "재조립된 PDU의 TCP 세그먼트"라고 표시된 프레임으로 형성된 (wireshark) 재조립된 서버 응답일 것으로 예상됩니다 .
    따라서 그런 식으로 표시된 모든 후속 프레임은 HTTP 서버에서 클라이언트로 전달됩니다
    (소스 및 대상 열을 스크러빙했기 때문에 해당 세부 정보는 그림에 표시되지 않습니다).

원본 캡처 파일을 다시 확인하면 TCP 소스 포트 80(HTTP용)이 있는 프레임 54~67이 HTTP 서버의 응답 데이터 9646바이트에 추가된다는 것을 알 수 있습니다.

여기에 표시되는 것은 여러 MTU 제한 TCP 세그먼트로 브라우저에 도달하는 HTTP 서버의 9KB 응답이며, 각 세그먼트는 OS의 TCP 스택에서 인식됩니다.

이것이 의사소통의 높은 수준의 순서입니다.

  1. 브라우저가 3방향 TCP 핸드셰이크를 통해 HTTP 서버에 대한 연결을 시작했습니다.
  2. 이 연결에서 서버에 단일 HTTP 요청을 보냈습니다.
  3. 서버는 다음과 같이 여러 TCP/IP 패킷에 분산된 9KB 응답으로 이에 응답했습니다.TCP 세그먼트)
  4. 브라우저 시스템의 TCP/IP 스택은 서버에서 수신된 각 TCP 패킷을 승인했습니다.
  5. 마지막으로 패킷으로 시작하여 연결을 닫았습니다 FIN. 나는 프레임 78(또는 단일 패킷) 이후에
    두 개의 패킷이 더 있을 것으로 예상합니다 FIN.ACKRST

Wireshark TCP 재조립 처리에 대한 자세한 내용은 다음에서 읽을 수 있습니다.와이어샤크 위키.

답변2

사진은 볼 수 없지만 낮은 수준의 프로토콜(예: 이더넷)은 MTU(최대 전송 단위) 크기에 따라 높은 수준의 프로토콜(예: TCP 패킷)을 조각으로 나눌 수 있습니다.

답변3

위키피디아는 정의합니다프로토콜 데이터 유닛다음과 같이 :

통신에서 PDU(프로토콜 데이터 단위)라는 용어는 다음과 같은 의미를 갖습니다.

  1. 네트워크의 피어 엔터티 간에 하나의 단위로 전달되는 정보로 제어 정보, 주소 정보 또는 데이터가 포함될 수 있습니다.
  2. 계층화된 시스템에서 특정 계층의 프로토콜에 지정되고 프로토콜 제어 정보와 해당 계층의 사용자 데이터로 구성되는 데이터 단위입니다. 예: 브리지 PDU 또는 iSCSI PDU1

PDU는 처음 4개 레이어 각각과 관련이 있습니다.OSI 모델(레이어 5 이상을 데이터라고 합니다.)

따라서 실제로 PDU는 자체 컨텍스트에서 정의된 단순한 데이터 단위입니다.

에서WireShark 이해:

때로는 패킷이 한 조각으로 도착하지 않을 수도 있습니다. 대신, 패킷은 여러 PDU(Protocol Data Unit)로 도착합니다. WireShark는 이러한 장치를 다시 단일 패킷으로 재조립하려고 시도합니다. 이러한 패킷을 재조립된 PDU라고 합니다.

재조립된 PDU로 작업할 때 디스플레이는 일반 패킷만큼 좋지 않습니다. 응답 헤더는 그림 2.11의 하단 창에 있습니다.

이는 이것이 TCP/IP 메시지의 세그먼트이며 일반적으로 마지막 세그먼트에만 TCP/IP 메시지에 대한 의미 있고 완전한 정보가 있음을 의미합니다.

에서재조립된 PDU의 Wireshark TCP 세그먼트:

TCP 프로토콜 기본 설정에서 "하위 분할자가 TCP 스트림을 분할하도록 허용"을 선택 취소하여 TCP 세그먼트 재조립을 비활성화할 수 있습니다. 이렇게 하면 애플리케이션 PDU의 모든 부분이 자체적으로 표시됩니다.

이는 모든 세그먼트에 마지막 패킷뿐만 아니라 TCP/IP 세그먼트를 의미 있게 표시하는 데 필요한 모든 정보가 포함되도록 하는 방법입니다.

관련 정보