다음을 통해 공유


병합을 종료하는 예외 조건

이 섹션에서는 RSC(수신 세그먼트 병합) 지원 미니포트 드라이버가 병합되기 전에 세그먼트에서 수행해야 하는 검사를 정의합니다.

세그먼트는 병합되기 전에 다음 유형의 검사를 모두 통과해야 합니다.

  • 세그먼트에 특정 조건이 있는지 확인합니다. 예를 들어 TCP 헤더에 SYN 플래그가 있으면 예외가 트리거되고 세그먼트가 병합되지 않습니다. 이러한 유형의 검사는 아래에 정의되어 있습니다.

  • 이전에 병합된 세그먼트 및 현재 검사된 세그먼트의 정보 검사 및 상관 관계에 따라 달라지는 검사입니다. 예를 들어 수신된 세그먼트가 중복 승인인지 확인하는 것은 이 검사 범주에 속합니다. 이러한 유형의 검사는 TCP/IP 세그먼트 병합 규칙에 정의되어 있습니다.

검사 실패하면 예외가 트리거되고 미니포트 드라이버는 해당 TCP 연결에 대한 병합을 종료하고 세그먼트를 다음과 같이 처리해야 합니다.

  • 예외가 검색되기 전에 병합된 TCP 세그먼트는 단일 단위로 표시되어야 합니다.

  • 예외가 검색된 후 병합되는 TCP 세그먼트는 별도의 단위로 표시되어야 합니다.

참고 아래 예외 7과 8의 경우 미니포트 드라이버는 예외를 트리거한 세그먼트부터 병합을 다시 시작해야 합니다.

다음 조건을 충족하는 세그먼트를 수신하면 예외가 트리거되어야 합니다.

  1. NIC의 하드웨어 리소스 제약 조건은 병합을 방지합니다.

  2. 세그먼트에 잘못된 TCP 또는 IP 체크섬이 있습니다.

  3. 세그먼트는 RFC 793의 섹션 3.1에 정의된 대로 TCP 헤더에 SYN, URG, RST, FIN을 포함합니다. 더 광범위하게, 세그먼트에 PSH 또는 ACK 이외의 플래그가 포함된 경우 예외가 트리거되어야 합니다. ECN 플래그는 아래의 예외 8을 참조하세요.

  4. 세그먼트에는 TCP 타임스탬프 옵션 이외의 하나 이상의 TCP 옵션이 포함되어 있습니다. TCP 타임스탬프 옵션에 대한 자세한 내용은 RFC 1323 을 참조하세요.

  5. 세그먼트에는 IPv4 옵션 또는 IPv6 확장 헤더가 포함되어 있습니다.

  6. 세그먼트는 IPv4 조각입니다.

  7. 현재 수신된 세그먼트를 병합하면 단일 병합 단위가 최대 법적 IP Datagram 길이를 초과하게 됩니다. 이 예외에는 특별한 처리가 필요합니다. 자세한 내용은 다음을 참조하세요.

  8. 세그먼트에는 다음 조건 중 하나 또는 둘 다를 충족하는 ECN 플래그가 RFC 3168에 정의되어 있습니다.

    1. 세그먼트에는 IP 헤더의 ECN 필드(ECT, CE)에 대한 다른 값이 이전 세그먼트와 다릅니다.

    2. 세그먼트는 TCP 헤더의 ECN 플래그(ECE 및 CWR)에 대한 값이 이전 세그먼트와 다릅니다.