네트워크 공부 6
IPv4 프로토콜
- IPv4 프로토콜이 하는 일
- 네트워크 상에서 데이터를 교환하기 위한 프로토콜
- 데이터가 정확하게 전달될 것을 보장하지 않음
- 중복된 패킷이 전달되거나 패킷의 순서가 어긋날 가능성이 있음 (악용 시 DoS 공격이 될 수 있음)
- 데이터의 정확하고 순차적인 전달은 상위 프로토콜인 TCP가 보장함
- IPv4 프로토콜의 구조
- Version: IP 프로토콜의 버전 (현재 4버전, IPv6는 구조가 다름)
- IHL: IP 헤더의 길이 / 4 (헤더는 최소 20, 최대 60 바이트로, 2진수 4비트로 표현하기 위해 헤더 길이를 4로 나눈 값을 사용)
- TOS (Type of Service): 현재는 사용되지 않음 (0으로 비워둠)
- Total Length: 헤더와 페이로드를 합친 총 길이
- Identification: 패킷이 쪼개지기 전 하나의 패킷이었음을 알려주는 값
- xDM:
- Fragment Offset: 조각난 패킷을 원래 순서대로 복구할 때 사용하는 값
- TTL (Time to Live): 패킷이 3계층 장비를 거칠 때마다 값이 1씩 줄어들고, 0이 되면 해당 네트워크 장비가 패킷을 폐기 (TTL 값으로 상대 운영체제를 유추 가능)
- Protocol: 상위 프로토콜을 알려주는 값 (ICMP:
01
, TCP:06
, UDP:17
) - Header Checksum: 헤더에 오류가 있는지 확인하는 값
- Source Address: 출발지 IP 주소
- Destination Address: 목적지 IP 주소
- IP Option: 최대 10개의 옵션 필드를 포함할 수 있음
ICMP 프로토콜
- ICMP 프로토콜이 하는 일
- 네트워크 컴퓨터 상에서 운영체제 오류 메시지를 전송받는 데 주로 사용되는 프로토콜
- ICMP는 Type과 Code 값을 통해 다양한 오류 메시지를 전송
- ICMP 프로토콜의 구조
- 주요 ICMP Type 번호 설명
Type 0 (Echo Reply)
- 핑 명령어에 대한 응답 메시지. 핑 요청(Type 8)에 대한 응답으로 사용됨
Type 3 (Destination Unreachable)
- 목적지에 도달할 수 없을 때 전송되는 메시지. 네트워크 불가, 호스트 불가, 포트 불가 등의 세부 코드가 있음
Type 5 (Redirect)
- 더 나은 경로가 있을 때 라우터가 라우팅 테이블 수정을 안내하는 메시지를 전송함
Type 8 (Echo Request)
- 핑 명령어로 대상 컴퓨터가 살아 있는지 확인하기 위한 요청 메시지
Type 11 (Time Exceeded)
- 패킷의 TTL(Time to Live) 값이 0이 되어 더 이상 전송할 수 없을 때 발생하는 메시지. 주로 트레이스라우트(Traceroute)와 관련됨
라우팅 테이블
다른 네트워크와 통신 과정
A가 B와 통신하는 과정
IPv4의 조각화
- 큰 IP 패킷이 작은 MTU(Maximum Transmission Unit)를 가진 링크를 통해 전송되려면, 여러 개의 작은 패킷으로 조각화되어 전송되어야 함
- 패킷을 목적지까지 전달하는 과정에서 각 라우터는 전송에 적합한 프레임으로 변환이 필요함
- 일단 조각화되면, 최종 목적지에 도달할 때까지 재조립되지 않음이 일반적임
- IPv4에서는 발신지뿐만 아니라 중간 라우터에서도 IP 조각화가 가능함
- IPv6에서는 IP 조각화가 발신지에서만 가능하고, 재조립은 최종 목적지에서만 가능함
- 조각화 예시
- 조각화 문제
- 답 : 3, 960, 459
* 실습
- 라우팅 테이블 확인
- 패킷 분석
- 모두 같은 아이디 값임
- 첫 패킷과 마지막 패킷만 More fragments 플래그 설정됨
- 오프셋 값 계산해서 설정되어있음