wa_ter_ve

인터넷 프로토콜(IP) - ③ 옵션 본문

공부/컴퓨터네트워크

인터넷 프로토콜(IP) - ③ 옵션

수win 2024. 6. 4. 16:11

참조 교재: Wireshark로 배우는 컴퓨터 네트워크


 

옵션

: 네트워크를 시험핟거나 디버그 하기 위해 사용 (꼭 필요한 것은 아님)

- 헤더의 고정 부분과 가변 부분 중 가변 부분은 옵션으로 구성 [최대 길이 40바이트]

 


 

#️⃣ 형식

 

- ' 유형 필드 + 길이 필드 + 가변 길이의 값 필드 '로 구성
- TLV(Type-Length-Value)라고도 함

 

🔵 유형(Type) 필드

▶ 복사(copy) 
        ☑️ 1비트: 단편화에 옵션을 포함시킬지 말지 제어
                 - 0인 경우: 옵션은 첫번째 단편에만 복사
                 - 1인 경우: 옵션이 모든 단편에 복사
클래스(class)
        ☑️ 2비트: 옵션의 일반적인 목적을 정의
                 - 00인 경우: 데이터그램 제어
                 - 10인 경우: 디버그 관리 목적<타임스탬프>
                 - 01 or 11 경우: 아직 정의되지 않음
번호(number)
        ☑️ 5비트: 옵션의 유형을 정의
                 - 32개의 서로 다른 유형을 정의할 수 있지만, 현재 6가지 유형만 정의됨

 

🔵 길이(Lenghth) 필드
- 유형 필드와 길이 필드를 포함한 옵션의 전체 길이를 정의
▣ 모든 옵션 유형에 있는 것은 아님

 

🔵 값(Vlaue) 필드
- 특정 옵션이 필요로 하는 데이터를 포함

▣ 모든 옵션 유형에 있는 것은 아님

 


 

#️⃣ 형식

 

► 2개는 1 바이트 옵션, 길이나 데이터 필드를 필요로 하지 않음
► 4개는 다중 바이트 옵션, 길이와 데이터 필드를 필요로 함

► 무연산 옵션

- 1 바이트 옵션으로 옵션들 사이의 여백을 채워줌

 


 

🔶 옵션 종료 옵션 (End of Option) 
: 옵션의 필드 끝에 패딩의 목적으로 사용 [➡️마지막 옵션으로만 사용 가능]

- 1 바이트

- only 1개의 옵션 종료만 사용 가능
- 옵션 필드의 경계를 맞추기 위해 1 바이트 이상이 필요하다면,
무연산 옵션이 사용된 후 마지막에 옵션 종료 옵션이 사용됨

 

🔶 경로 기록 옵션 (Record Route)
: 데이터그램을 처리한 인터넷 라우터들을 기록하기 위해서 사용

- 헤더 최대 길이가 60 바이트
  이 중 20바이트는 기본 헤더이므로 최대 9개의 IP 주소까지 기록 가능
- 40 바이트만이 옵션 부분으로 사용
- 발신지는 방문되는 라우터에서 채워질 수 있는 공간을 미리 준비
- '포인터 필드'는 첫번째 빈 엔트리의 바이트 번호를 포함하는 옵셋 정수 필드 (최초에 4, 첫번째 빈 필드를 가리킴)

 

- 데이터그램이 전달되는 동안 데이터그램을 가지고 있는 라우터는 포인터 필드의 값과 길이 필드를 비교
- 라우터는 IP를 기록할 때마다 포인터 값을 4만큼 증가

 

 


 

🔶 엄격한 발신지 경로(Strict Source Route) 옵션
: 데이터그램이 인터넷에서 거쳐야 할 경로를 미리 지정하기 위해 사용

- 발신지는 특별한 유형의 서비스를 제공하는 경로 or 신뢰성이 있는 경로 등을 선택 가능
- 엄격한 발신지 경로를 지정했을 시, 데이터그램은 옵션에 정의된 모든 라우터를 방문해야 함
   ☑️ 데이터그램에 주소가 없는 라우터는 방문 불가능
    ☑️ 데이터그램이 목적지에 도착했는데, 방문하지 않은 라우터가 있다면 ➡️ 데이터그램 폐기 후 오류메시지 전송
- but, 인터넷에서 특별한 권한이 없는 사용자들은 인터넷의 물리적인 접속 형태를 알지 못함
- 모든 IP 주소가 송신자에 의해 미리 지정되어 있다는 것을 제외하고는 경로 기록 옵션과 유사

 

 


 

🔶 느슨한 발신지 경로(Strict Source Route) 옵션
- 리스트 속의 각 라우터는 반드시 방문해야 하지만, 리스트에 없는 라우터도 방문 가능

 


 

🔶 타임스탬프(Timestamp) 옵션
: 라우터가 데이터그램을 처리하는 시간을 기록하기 위해 사용

- 시간은 세계 표준시(Universal Time) 자정으로부터의 millisecond 단위로 표시
- 하나의 라우터에서 다른 라우터까지 가는데 걸리는 시간을 추정 가능 
  ☑️ 인터넷상의 라우터들이 어떻게 동작하는지 추적하는 데 도움
- 특별한 권한이 없는 사용자는 인터넷의 물리적 구조를 알 수 없기 때문에 이 옵션을 쓸 수 없음
- 오버플로우(overflow) 필드 ➡️ 필드가 더 이상 없기 때문에 타임스탬프를 기록하지 못한 라우터의 수를 기록
- 플래그 필드는 방문된 라우터의 동작을 지정함

 

 

▶ 타임스탬프에서 플래그 사용
  0: 각 라우터는 주어진 필드에 타임스탬프만 추가
  1: 라우터는 나가는 IP 주소와 타임스탬프를 기록
  3: 라우터는 주어진 IP 주소와 데이터그램이 들어오는 IP 주소를 비교하고,
         만약 이 둘이 같으면 라우터는 출력 인터페이스 IP 주소를 덮어쓰고 타임스탬프를 추가

 

타임스탬프 개념