IPv4 프로토콜의 특징
- 비신뢰성 (오류제어, 흐름제어를 하지 않음)
- 비연결형 (연결 설정 없이 패킷을 전송)
- 주소지정 (32비트 IP주소 지정)
- 경로설정 (목적지 IP주소를 기반으로 경로설정)
- 최선형 서비스 (빠른 호 접속 기능)
IPv4 패킷 특징
- 헤더필드와 데이터 필드로 구성
- 기본헤더 길이는 20바이트
IPV4 패킷 헤더
- 버전
- IP 프로토콜의 버전을 의미
- 헤더 길이
- 옵션 필드를 포함한 헤더의 총 길이
- 서비스 타입
- 우선권 필드(3비트), TOS 필드(4비트), 예약 필드(1비트)
- 우선권 필드는 패킷의 우선순위 정의
- TOS 필드는 최소 지연, 최대 처리량, 최대 신뢰성, 최소 비용을 필드
- 전체 길이
- 헤더와 데이터를 포함한 IP 패킷의 전체 길이를 바이트 단위
- 식별자
- 동일한 데이터로부터 분할된 패킷을 재조립할 수 있도록 분할된 패킷들은 같은 식별자를 가짐
- 플래그
- 첫번째 비트 : 예약
- 두번째 비트 : 단편화 금지
- 세번째 비트 : 추가 단편화 비트
- 단편화 옵션
- 패킷 재조립시 분할된 패킷 간의 순서에 대한 정보 포함
- 전체 데이터에서 분할된 패킷의 상대 위치를 8바이트 단위로 기술
- Time-To-Live(TTL)
- TTL 필드는 패킷이 경유할 수 있는 최대 홉(라우터) 수를 의미
- 패킷이 라우터를 통과할 때마다 TTL값은 1씩 감소
- TTL 값이 0이 되면 패킷은 폐기되고 송신측에서 ICMP 메시지가 전달
- 프로토콜
- 관련된 상위 프로토콜을 나타내기 위해 사용
- 헤더 체크섬
- IP 패킷 헤더의 오류 발생을 검사하기 위한 필드
IPv4 패킷 헤더 옵션
- 경로 추적이나 네트워크 상황 파악을 특정 목적을 위해 사용
- 하나 이상의 옵션을 동시 사용 가능
- 코드 필드
- 복사 필드 : 단편화 시 단편화된 모든 패킷에 헤더 옵션 필드의 복사 여부를 결정
- 클래스 필드 : 값이 0인 경우는 패킷 제어를 위해 사용, 2인 경우에는 디버깅이나 특정을 하기 위해 사용
IPv4 주소체계
- 32bit로 구성, class A, B, C, D, E로 구분
- Network 주소와 Host 주소로 구분됨
전송 방법에 따른 분류
- 유니캐스트 : 하나의 송신자가 하나의 수신자에게 패킷을 보내는 방식의 주소
- 멀티캐스트 : 하나의 송신자가 다수의 수신자에게 패킷을 보내는 경우로, 일대다 방식의 패킷 전송 주소, 멀티 캐스트 전송을 수행하기 위해 네트워크 장치가 멀티캐스트를 지원해야 하며, 원하는 그룹에 가입되어 있어야 한다.
- 브로드캐스트 : 송신자가 네트워크의 모든 호스트에게 패킷을 보내는 방식으로 브로드캐스트 주소에서는 호스트 식별자 필드를 모두 1로 설정한다.
- 특별한 IP 주소
- 네트워크 자체를 의미
- 라우팅 프로토콜에서 네트워크를 지칭할 때 사용
- 패킷의 송신지나 수신지 주소로써 사용 불가
- 직접적 브로드캐스트
- 라우터 네트워크의 모든 호스트로 패킷을 보낼 때 사용
- 수신 주소로만 사용
- 제한적 브로드캐스트
- 네트워크에 있는 모든 호스트로 패킷을 보낼 때 사용 수신 주소로만 사용
IPv4 주소 관리방식
- IP 주소 낭비와 부족현상 심화
- IPv4 주소의 낭비 최소화
- IPv6 주소체계 도입
- 효율적인 주소관리 방안
- VLSM : 등급화 x
- CIDR
- A, B, C 클래스별로 IP 주소를 구분하지 않고 네트워크 식별자 범위를 자유롭게 지정할 수 있도록 하여 IP 주소 운영의 융통성을 제공
- 네트워크 주소를 자유롭게 설정할 수 있기 때문에 IP 주소의 낭비를 방지하고 효과적으로 네트워크를 구성
- CIDP를 이용하면 도메인간의 라우팅에 사용되는 IP 주소를 매우 효과적으로 관리가능
- 서브네팅
- 하나의 큰 네트워크를 몇 개의 작은 논리적인 네트워크로 분할하여 사용하는 방식
- 서브네팅에서는 호스트 식별자를 다시 서브넷 식별자와 호스트 식별자로 세분화
- 서브넷 마스킹 : IP 주소로부터 서브넷 주소만을 식별할 수 있는 방법
- 슈퍼네팅 : 네트워크 식별자 중 일부를 호스트 식별자로 사용하는 방법
- C 클래스에서 사용할 수 있는 호스트의 수는 254개로 제한
- 여러 개의 C 클래스 주소를 묶어 하나의 네트워크로 구성하는 슈퍼네팅을 사용
- 통합하는 C 클래스 주소 개수는 2의 지수승이어야 하며 순차적인 주소를 가져야 함
- IP 알리어스
- 하나의 NIC(Network Interface Card)에 여러 개의 IP 주소를 할당하는 방법
- 한 대의 서버에 여러 개의 IP 주소를 할당해야 할 경우 하나의 이더넷 카드에 여러 개의 IP 주소를 할당하여 운영할 수 있다.
ARP(Address Resolution Protocol)
- 목적지 IP 주소를 가지고 목적지 MAC 주소를 찾아오는 프로토콜
- 수신측 주소는 아는데 수신측 우편번호를 모를 때 찾아주는 기능을 함
- 동일 네트워크에 존재하는 호스트 A와 B의 IP주소가 IA와 IB이고 물리 주소는 PA와 PB라고 가정
- 호스트 A의 네트워크 계층에서는 호스트 B로 패킷을 전송할 때 목적지 IB에 해당하는 PB를 찾는 과정을 수행하는데 이때 사용되는 프로토콜이 ARP
- 메시지 종류
- ARP 요청 메시지
- 특정 IP주소에 대한 물리 주소를 요구
- 호스트는 ARP 요청 메시지를 보낼 때 수신 측 물리 주소는 모르기 때문에 물리 계층 브로드캐스트로 전송
- ARP 응답 메시지
- 물리 주소 정보를 알림
- ARP 요청 메시지를 수신한 호스트 또는 라우터는 자신의 물리 주소를 요구하는 경우 ARP 응답 메시지 전송
- ARP 패킷 필드
- ARP 캐시
- 동일한 호스트에 대해 패킷을 보낼 때마다 물리 주소를 찾는 것은 비효율적
- ARP 캐시를 생성하여 IP 주소와 물리 주소 간의 바인딩을 유지
- 일정 시간 동안 사용되지 않은 엔트리는 자동으로 삭제
- 그래튜터스(gratuitious) ARP
- 호스트는 처음 부팅할 때 그래튜터스 ARP를 브로드캐스트하여 IP 중복 사용 여부를 검사
- .프락시(Proxy) ARP
- 라우터가 외부 네트워크에 존재하는 호스트의 ARP 요청에 대해서 자신의 하드웨어 주소로 응답
RARP 프로토콜
- 물리 주소에 해당하는 IP 주소를 얻을 때 사용
- 디스크와 같은 저장 장치가 없는 호스트에서 주로 사용되며 RARP 응답은 일반적으로 RARP 서버에서 생성
- 네트워크에서 데이터 전송을 위해 필요한 정보를 모두 제공할 수 없음
- BOOTP나 DHCP 프로토콜 사용
IP 주소 및 MAC 주소 체계
- MAC 주소는 48비트로 구성된 물리적 주소
ICMP 프로토콜
- ICMP의 필요성
- IP 패킷이 전송되는 목적지에 전달되지 못할 수 있고, 전달 되더라도 원하는 서비스 포트가 존재하지 않는 경우도 발생
- 오류에 대한 보고 기능, 네트워크 상태 진단 기능을 통해 IP를 보조하는 기능 수행
- ICMP 메시지 종류
- 오류 보고 메시지 : 라우터나 호스트에서 IP 패킷을 전달할 때 문제가 발생하였을 경우 사용
- 네트워크 진단 기능 : 라우터나 네트워크에 대한 정보를 얻고자 할 때 사용
- ICMP패킷 포맷
- IP 헤더의 프로토콜 필드 값을 1로 설정하여 캡슐화
- 메시지 타입 필드 : ICMP 메시지 종류를 기술
- 코드 필드 : 메시지 타입에 따라서 세분화가 필요할 때 사용
- 체크섬 필드 : ICMP 메시지에 대해 체크섬을 계산한 값이 삽입
- 메시지 의존 필드 1은 메시지 타입에 따라 추가적인 헤더 정보가 포함될 수 있으며 메시지 정보 필드 2 또한 메시지 타입에 따라 전달될 정보가 정해짐
- 메시지 종류
- 목적지 도달 불가 메시지 : 패킷이 중도 폐기될 때 사용되는 메시지
- 메시지 타입 필드 값 : 3
- 코드 필드에 전송 실패 정보 기록
- 정보 필드에 폐기되는 패킷의 헤더와 데이터의 상위 8 바이트가 저장
- 시간 초과 메시지 : 패킷이 목적지에 전달되기 전에 시간 초과로 폐기되는 경우 사용
- 메시지 타입 필드 값 : 11
- 코드 필드에는 TTL 초과인 경우 : 0, 재결합 시간 초과인 경우 : 1
- 시간 초과 메시지는 Traceroute 명령에서 주로 사용
- 파라미터 문제 메시지 : 패킷 헤더 부분에 문제가 발생한 경우에 사용
- 메시지 타입 필드 값 : 12
- 코드 필드에 헤더 오류인 경우 : 0, 원하는 필드가 없는 경우 : 1
- 송신 제어 메시지 : 패킷 흐름을 위해 사용되는 메시지
- 과도한 패킷의 유입으로 라우터에서 패킷을 버려야 할 때, 송신 호스트로 패킷의 폐기를 알리기 위해 사용
- 타입 필드 값 : 4
- 코드 필드 값 : 0
- 재지정 메시지
- 라우터는 호스트로부터 수신한 패킷의 송수신 주소를 확인하여 동일 네트워크의 다른 라우터가 라우팅하는 것이 더 효율적이라고 판단되면 라우팅 경로를 변경하도록 ICMP 재지정 메시지를 호스트로 전송
- 라우터는 수신한 패킷을 폐기하지 않고 재지정된 라우터로 직접 전달
- 메시지 타입 필드 값 : 5
- 코드 필드 : 재지정될 라우터 주소 삽입
- 메시지 의존 필드 : 새로운 라우터 주소 지정
- 정보 필드 : 패킷 헤더와 데이터의 상위 8 바이트
- ICMP 쿼리 메시지
- 네트워크 상황을 파악하기 위해 사용
- 기본적으로 ICMP 오류 메시지와 동일한 포맷을 사용
- 식별자와 순서 번호는 여러 개의 메시지를 보내는 경우 각각을 구분하기 위해 사용
- 에코 요청과 응답 메시지 : 두 호스트 사이에 통신이 가능한지 검사할 때 사용되는 메시지
- 라우터 요청과 광고 메시지 : 호스트가 네트워크 정보를 알고 싶을 때 사용하는 메시지
- ICMP 사용하는 경우
- ICMP 메시지를 라우팅하거나 전달하는 경우
- 브로드캐스트나 멀티캐스트 패킷인 경우
- 분할된 패킷 중 처음 패킷이 아닌 경우
- 송신 주소가 특별한 IP 주소(127.0.0.1이나 0.0.0.0)인 경우
IGMP 프로토콜
- 멀티캐스트를 지원하는 라우터가 멀티캐스트 그룹에 가입한 네트워크 내의 호스트를 관리하기 위해 사용하는 프로토콜
- IP 상위 계층에 존재하며 IP 패킷으로 캡슐화
- 현재 IGMP 버전은 3까지 정의되어 있고 가장 널리 사용되고 있는 IGMP는 버전 2
- IGMP 포맷
- IGMP는 포맷은 단순하며 8바이트로 구성
- 타입
- IGMP 패킷의 종류를 정의하는 부분
- 일반적인 문의 : 네트워크 내의 모든 호스트에 대해 맵버쉽을 문의하는 경우
- 그룹 한정 문의 : 특정 그룹에 가입한 호스트가 있는지에 대해서만 요청하는 경우 사용
- IGMP 동작
- 그룹 가입
- 호스트가 새로운 멀티캐스트 그룹에 가입하기 원하는 경우 맵버쉽 문의 메시지를 라우터로 보낸다
- 호스트에서 여러 프로세스가 동일한 멀티캐스트 그룹에 가입하는 경우에도 맵버쉽 가입 메시지는 한 번만 전송
'네트워크' 카테고리의 다른 글
[네트워크] 전송계층 프로토콜 (0) | 2023.03.20 |
---|---|
[네트워크] 라우팅 (0) | 2023.03.19 |
[네트워크] 모바일 IP (0) | 2023.03.18 |
[네트워크] IPv6 주소 (0) | 2023.03.17 |
[네트워크] 네트워크의 개요 (1) | 2023.03.15 |