✅ IPv4 프로토콜은 무엇인가?
IPv4는 인터넷에서 서로 다른 네트워크 대역의 컴퓨터들이 서로 데이터 통신하기 위해 사용되는 프로토콜입니다. 이 프로토콜은 각 컴퓨터에 고유한 주소를 부여하여 식별하고, 데이터를 작은 조각들로 나누어서 전송[조각화(Fragmentation)]합니다. 그러나 데이터가 정확하게 전달될 것을 보장하지는 않습니다. 중복된 패킷을 전달하거나 패킷의 순서를 잘못 전달할 가능성도 있습니다. 이를 악의적으로 이용되면 Dos(디도스) 공격이 됩니다. 데이터를 정확하고 순차적인 전달은 이 보다 상위 프로토콜인 TCP에서 보장합니다.
IPv4는 주소를 32비트로 표현하며, 이 주소를 사용하여 컴퓨터를 식별합니다. 주소는 네 부분의 숫자로 구성되어 있고, 각 숫자는 0부터 255까지의 값을 가집니다. 이 숫자들은 점으로 구분된 10진 표기법을 사용하여 표현됩니다. 예를 들어, 192.168.0.1은 유명한 사설 IP 주소 중 하나입니다.
IPv4는 데이터를 작은 패킷으로 나누어 전송합니다. 이 패킷은 컴퓨터 네트워크를 통해 전달되는 동안 여러 개의 중간 장치인 라우터를 거칩니다. 각 라우터는 패킷에 포함된 IP 주소를 확인하여 최적의 경로로 전송합니다. 이렇게 경로를 결정하는 과정을 라우팅이라고 합니다.
🔹 IPv4 프로토콜의 구조
- Version: IPv4 프로토콜의 버전을 나타냅니다. IPv4 패킷에서는 4로 설정됩니다.
- IHL(Internet Header Length): IPv4 헤더의 길이를 32비트 단위로 나타냅니다. 최소 20Byte, 최대 60Byte인 패킷을 표현할 수 없기 때문에 이를 4로 나누어서 값을 저장하게 됩니다. 이 필드는 헤더 내에 있는 다른 필드들의 위치를 지정합니다. 대부분 값이 5입니다.
- Type of Service: 패킷에 대한 서비스 유형을 나타냅니다. 현재는 사용하지 않습니다.
- Total Length: IPv4 패킷의 전체 길이를 바이트 단위로 나타냅니다. 헤더와 데이터(Payload) 부분을 포함한 전체 패킷의 크기를 나타냅니다.
- Identification: 패킷을 구별하기 위한 고유한 식별자입니다. 패킷 조각화 및 조립 과정에서 패킷들을 식별하는 데 사용됩니다.
- IP Flags: 패킷 조각화와 관련된 플래그(Flag) 정보 3bit로 표현합니다. 현재는 M(1bit)만 사용하며 패킷이 조각화되었는지 여부를 나타내어 뒤에 올 패킷이 더 있음을 알립니다.
- Fragment Offset: 조각화된 패킷이 원래 데이터의 젤 앞에서부터 어느 위치에 있는지를 나타냅니다. 이 정보는 패킷을 조립할 때 올바른 순서로 데이터를 복원하는 데 사용됩니다.
- Time To Live(TTL): 패킷의 수명을 나타내며, 라우팅 과정에서 무한 반복을 방지하기 위해 사용됩니다. 패킷이 라우터를 거칠 때마다 TTL 값이 감소하고, TTL 값이 0이 되면 해당 패킷은 폐기됩니다.
- Protocol: 전송 계층에 전달되어야 할 상위 프로토콜을 나타냅니다. 예를 들어, ICMP, TCP, UDP 등이 될 수 있습니다.
- Header Checksum: 헤더의 오류를 검출하기 위한 체크섬 값입니다. 헤더 내용에 대한 체크섬을 계산하여 송신자는 이 값을 포함시킵니다. 수신자는 헤더를 검사하고, 체크섬을 다시 계산하여 오류 여부를 판단합니다.
- Source Address: 패킷의 출발지 IP 주소입니다. 이 주소는 패킷을 보내는 컴퓨터의 고유한 식별자입니다.
- Destination Address: 패킷의 목적지 IP 주소입니다. 이 주소는 패킷을 받을 컴퓨터의 식별자입니다.
- IP Options: 선택적으로 사용되는 추가적인 옵션 정보를 포함할 수 있는 필드입니다. 주로 특정한 제어나 보안 기능을 위해 사용될 수 있습니다. Option이 추가될 때마다 4Byte씩 길이가 늘어납니다.
✅ ICMP 프로토콜은 무엇인가?
ICMP(Internet Control Message Protocol)는 네트워크에서 발생하는 제어(오류) 메시지를 전달하기 위해 주로 사용되는 프로토콜입니다. ICMP는 IPv4와 IPv6 네트워크에서 동작하며, 네트워크 장치들 간에 오류, 상태, 경로 변경 등의 정보를 교환하기 위해 사용됩니다. 대표적으로 상대방과 통신 연 여부를 확인하기 위해 사용됩니다.
🔹 ICMP 프로토콜의 구조
➡️ 몇가지 주요한 ICMP Type 메세지 유형은 다음과 같습니다.
- 에코 요청 (Echo Request) : 8
네트워크 상에서 목적지 호스트에게 "응답해주세요"라고 요청하는 메시지입니다. 에코 요청은 네트워크 연결성을 테스트하거나 목적지 호스트의 동작 여부를 확인하는 데 사용됩니다.
- 에코 응답 (Echo Reply) : 0
목적지 호스트가 에코 요청에 대해 "응답합니다"라고 응답하는 메시지입니다. 이를 통해 송신자는 목적지 호스트에 접근 가능한지 여부를 확인할 수 있습니다.
- 도달 불가능 (Destination Unreachable) : 3
패킷이 목적지로 도달할 수 없는 상황에서 생성되는 메시지입니다. 이는 잘못된 IP 주소, 차단된 포트, 라우팅 오류 등과 같은 이유로 인해 목적지 호스트 또는 네트워크에 도달할 수 없음을 알려줍니다. ex) 경로 설정이 잘못된 경우
- 시간 초과 (Time Exceeded) : 11
패킷이 목적지에 도달하는 데 할당된 시간을 초과한 경우에 생성되는 메시지입니다. 이는 패킷이 네트워크 상에서 무한히 루프를 도는 경우나 잘못된 라우팅 경로로 인해 목적지에 도달할 수 없는 상황을 나타내는데 사용됩니다. ex) 상대방의 방화벽 때문에 접근 시간이 초과한 경우
- 리다이렉트 (Redirect) : 5
라우터가 소스 호스트에게 패킷을 더 효율적인 경로로 보낼 것을 알려주는 메시지입니다. 이는 라우터가 패킷의 전달 경로를 최적화하기 위해 소스 호스트의 라우팅 테이블을 업데이트할 수 있도록 도와줍니다.
✅ 실습
- IPv4
- ICMP
🏷️이미지 출처 및 참고한 사이트
Uploaded by N2T