12.1. HeaderDigest and DataDigest
12.1. HeaderDigest 및 DataDigest
Use: IO
사용: IO
Senders: Initiator and Target
송신자: 이니시에이터 및 타겟
Scope: CO
범위: CO
HeaderDigest =
HeaderDigest = <값 목록>
Default is None for both HeaderDigest and DataDigest.
HeaderDigest와 DataDigest 모두 기본값은 None입니다.
Digests enable the checking of end-to-end, non-cryptographic data integrity beyond the integrity checks provided by the link layers and the covering of the whole communication path including all elements that may change the network level PDUs such as routers, switches, and proxies.
다이제스트는 링크 계층이 제공하는 무결성 검사를 넘어서 종단 간, 비암호화 데이터 무결성을 검사하고 라우터, 스위치, 프록시 등 네트워크 수준 PDU를 변경할 수 있는 모든 요소를 포함한 전체 통신 경로를 포괄할 수 있도록 합니다.
The following table lists cyclic integrity checksums that can be negotiated for the digests and that MUST be implemented by every iSCSI initiator and target.
다음 표에는 다이제스트에 대해 협상할 수 있고 모든 iSCSI 개시자와 대상에서 구현해야 하는 순환 무결성 체크섬이 나열되어 있습니다.
These digest options only have error detection significance.
이러한 다이제스트 옵션은 오류 감지에만 의미가 있습니다.
+---------------------------------------------+
| Name | Description | Generator |
+---------------------------------------------+
| CRC32C | 32 bit CRC |0x11edc6f41|
+---------------------------------------------+
| None | no digest |
+---------------------------------------------+
The generator polynomial for this digest is given in hex-notation (e.g., 0x3b stands for 0011 1011 and the polynomial is x**5+X**4+x**3+x+1).
이 다이제스트에 대한 생성 다항식은 16진수 표기법으로 제공됩니다 (예: 0x3b는 0011 1011을 나타내고 다항식은 x**5+X**4+x**3+x+1입니다).
When the Initiator and Target agree on a digest, this digest MUST be used for every PDU in Full Feature Phase.
이니시에이터와 타겟이 다이제스트에 동의하면, 이 다이제스트를 전체 기능 단계의 모든 PDU에 사용해야 합니다.
Padding bytes, when present in a segment covered by a CRC, SHOULD be set to 0 and are included in the CRC.
CRC가 적용되는 세그먼트에 있는 패딩 바이트는 0으로 설정되어야 하며 CRC에 포함되어야 합니다.
The CRC MUST be calculated by a method that produces the same results as the following process:
CRC 는 다음 프로세스와 동일한 결과를 생성하는 방법으로 계산되어야 합니다:
- The PDU bits are considered as the coefficients of a polynomial M(x) of degree n-1; bit 7 of the lowest numbered byte is considered the most significant bit (x^n-1), followed by bit 6 of the lowest numbered byte through bit 0 of the highest numbered byte (x^0).
- PDU 비트는 다항식 M (x)의 계수로 간주됩니다. n-1차; 가장 낮은 번호가 지정된 바이트의 비트 7은 최상위 비트 (x^n-1)로 간주되고, 가장 낮은 번호가 지정된 바이트의 비트 6부터 가장 높은 번호가 지정된 바이트의 비트 0 (x^0)이 이어집니다.
- The most significant 32 bits are complemented.
- 최상위 32 비트가 보완됩니다.
- The polynomial is multiplied by x^32 then divided by G(x).
- 다항식에 x^32를 곱한 다음 G(x)로 나눕니다.
The generator polynomial produces a remainder R(x) of degree <= 31.
생성 다항식은 차수 <= 31의 나머지 R(x)을 생성합니다.
- The coefficients of R(x) are considered a 32 bit sequence.
- R(x)의 계수는 32 비트 시퀀스로 간주됩니다.
- The bit sequence is complemented and the result is the CRC.
- 비트 시퀀스가 보완되고 그 결과가 CRC입니다.
- The CRC bits are mapped into the digest word.
- CRC 비트는 다이제스트 단어로 매핑됩니다.
The x^31 coefficient in bit 7 of the lowest numbered byte of the digest continuing through to the byte up to the x^24 coefficient in bit 0 of the lowest numbered byte, continuing with the x^23 coefficient in bit 7 of next byte through x^0 in bit 0 of the highest numbered byte.
다이제스트의 가장 낮은 번호의 바이트의 비트 7에 있는 x^31 계수는 가장 낮은 번호의 바이트의 비트 0에 있는 x^24 계수까지 바이트를 계속하여 이어지고, 다음 바이트의 비트 7에 있는 x^23 계수는 가장 높은 번호의 바이트의 비트 0에 있는 x^0까지 이어집니다.
- Computing the CRC over any segment (data or header) extended to include the CRC built using the generator 0x11edc6f41 will always get the value 0x1c2d19ed as its final remainder (R(x)).
- 생성기 0x11edc6f41을 사용하여 구축된 CRC를 포함하도록 확장된 모든 세그먼트 (데이터 또는 헤더)에 대해 CRC를 계산하면 항상 최종 나머지 (R(x))로 0x1c2d19ed 값을 얻습니다.
This value is given here in its polynomial form (i.e., not mapped as the digest word).
이 값은 여기에 다항식 형태로 제공됩니다 (즉, 다이제스트 단어로 매핑되지 않음).
For a discussion about selection criteria for the CRC, see [RFC3385].
CRC 선택 기준에 대한 논의는 [RFC3385]를 참조하세요.
For a detailed analysis of the iSCSI polynomial, see [Castagnoli93].
iSCSI 다항식에 대한 자세한 분석은 [Castagnoli93]을 참조하세요.
Private or public extension algorithms MAY also be negotiated for digests.
비공개 또는 공개 확장 알고리즘도 다이제스트에 대해 협상될 수 있습니다.
Whenever a private or public digest extension algorithm is part of the default offer (the offer made in absence of explicit administrative action) the implementer MUST ensure that CRC32C is listed as an alternative in the default offer and "None" is not part of the default offer.
개인 또는 공개 다이제스트 확장 알고리즘이 기본 제공 (명시적인 관리 조치 없이 제공되는 제공)의 일부인 경우 구현자는 CRC32C가 기본 제공의 대안으로 나열되어 있고 "없음"이 기본 제공의 일부가 아닌지 확인해야 합니다.
Extension digest algorithms MUST be named using one of the following two formats:
확장 다이제스트 알고리즘은 다음 두 가지 형식 중 하나를 사용하여 이름을 지정해야 합니다:
a) Y-reversed.vendor.dns_name.do_something=
b) Y<#>=
Digests named using the Y- format are used for private purposes (unregistered).
Y- 형식을 사용하여 명명된 다이제스트는 개인용으로 사용됩니다 (등록되지 않음).
Digests named using the Y# format (public extension) must be registered with IANA and MUST be described by an informational RFC.
Y# 형식 (공개 확장자)을 사용하여 명명된 다이제스트는 IANA에 등록되어야 하며 정보 제공용 RFC로 설명되어야 합니다.
a) Y-reversed.vendor.dns_name.do_something =
b) Y <#> =
For private extension digests, to identify the vendor, we suggest you use the reversed DNS-name as a prefix to the proper digest names.
개인 확장 다이제스트의 경우 공급업체를 식별하려면 역방향 DNS 이름을 적절한 다이제스트 이름의 접두사로 사용하는 것이 좋습니다.
The part of digest-name following Y- and Y# MUST conform to the format for standard-label specified in Section 5.1 Text Format.
Y- 및 Y# 다음의 Digest-name 부분은 섹션 5.1 텍스트 형식에 지정된 표준 레이블 형식을 준수해야 합니다.
Support for public or private extension digests is OPTIONAL.
공개 또는 비공개 확장 다이제스트에 대한 지원은 선택 사항입니다.