2013년 12월 24일 화요일

IPv6 주소지정 방식

IPv6 주소지정 개요:
주소지정 모델, 주소 유형과 주소 크기

  • IPv6 주소지정 모델 특성
      • IPv4와 기본적으로 동일한 특성들...
    • 주소의 핵심 기능
      • 네트워크 인터페이스를 식별하고 라우팅하기 위해 주소를 사용
    • 네트워크 계층 주소
    • 장비당 IP 주소의 수
    • 주소 해석과 접두사 표현
      • 클래스 비사용 IPv4 주소처럼 네트워크 식별자 부분과 호스트 식별자 부분으로 나누어짐
      • IPv6 주소 자체로 구별 안됨
      • CIDR과 유사하게 표기하는 접두사 길이로 네트워크 ID의 길이를 알림
    • 사설 주소와 공개 주소
  • IPv6가 지원하는 주소 유형
    • 유니캐스트 주소
      • 한 인터페이스당 한 주소
    • 멀티캐스트
      • 그룹으로 메시지를 전달하고, 속한 그룹의 모든 장비가 메시지를 받음
    • 애니캐스트
      • 특정 그룹의 어떤 멤버에게 전달되어야 하지만 모든 멤버에게 전달될 필요는 없음
      • 대표적인 예 : 특정 네트워크의 라우터 그룹이 부하를 분산하는 경우
      • 애니캐스트 주소가 생겼으므로 모든 장비가 서로 다른 IP 주소를 사용해야 한다는 불편함을 덜 수 있게 됐다.
  • IPv6 주소 크기와 주소 공간
    • 128비트 = 340,282,366,920,938,463,463,374,607,431,768,211,456개

IP 주소와 주소 표기법과 접두사 표현
일반16진수 표기법 805B 2D9D DC28 0000 0000 FC57 D4C8 1FFF
0 억제 표기법 805B 2D9D DC28 0 0 FC57 D4C8 1FFF
0 압축 표기법 805B 2D9D DC28 :: FC57 D4C8 1FFF
혼합 표기법 805B 2D9D DC28 :: FC57 212 200 31 255

  • IPv6 주소 16진법 표기법
    • 805B:2D9D:DC28:0000:0000:FC57:D4C8:1FFF
    • 805B:2D9D:DC28:0:0:FC57:D4C8:1FFF
  • IPv6 주소의 0 압축
    • 805B:2D9D:DC28::FC57:D4C8:1FFF
    • FF00:4501:0:0:0:0:0:32 -> FF00:4501::32
  • IPv6 혼합 표기법
    • 첫 96비트는 콜론 16진 표기법으로 표시하고 마지막 32비트만 부점 10진 표기법을 사용
    • 805B:2D9D:DC28:0:0:FC57:212.200.31.255
  • IPv6 주소 접두사 길이 표시
    • 접두사 주소 뒤에 슬래시(/)를 덧붙인 뒤 표시

IPv6 주소 공간 할당
처음 비트 IPv6 주소 공간의 비율 할당
0000 0000 1/256 할당되지 않음(미지정 주소/루프백 주소와 같은 특별한 주소가 여기에 속한다)
0000 0001 1/256 할당되지 않음
0000 001 1/128 NSAP 주소 할당을 위해 예약됨
0000 01 1/64 할당되지 않음
0000 1 1/32 할당되지 않음
0001 1/16 할당되지 않음
001 1/8 전역 유니캐스트 주소
010 1/8 할당되지 않음
011 1/8 할당되지 않음
100 1/8 할당되지 않음
101 1/8 할당되지 않음
110 1/8 할당되지 않음
1110 1/16 할당되지 않음
1111 0 1/32 할당되지 않음
1111 10 1/64 할당되지 않음
1111 110 1/128 할당되지 않음
1111 1110 0 1/512 할당되지 않음
1111 1110 10 1/1024 링크 로컬 유니캐스트 주소
1111 1110 11 1/1024 사이트 로컬 유니캐스트 주소
1111 1111 1/256 멀티캐스트 주소


IPv6 전역 유니캐스트 주소 포맷
    • 유니캐스트 주소는 001로 시작된다
  • 유니캐스트 주소 블록 구조
    • 인터넷 토폴로지 계층의 다양한 계층에서 주소 블록을 쉽게 할당할 수 있도록 한다.
    • 라우터가 인터넷으로 정보를 전달하는 계층 구조를 자동으로 IP 네트워크 주소에서 반영한다. 그래서 좀더 효율적인 라우팅을 위해 경로를 합산할 수 있다.
    • ISP와 같은 기관이 고객에게 주소 블록을 나누어 줄 수 있도록 유연성을 강화한다.
    • IPv4의 서브넷처럼 실제 사용자 기관이 내부 네트워크에 맞추어 주소 블록을 나눌 수 있도록 유연성을 강화한다.
    • IP 주소에 의미를 더 부여한다. 아무런 구조가 없은 단순한 비트열이 아니라 주소를 보면 정보를 얻을 수 있도록 한다.
  • 유니캐스트 주소 공간을 나누는 일반적인 방법
    • 유니캐스트 주소의 128비트를 가장 일반적으로 나누는 방법
필드명 크기(비트) 설명
접두사 n 전역 라우팅 접두사:
주소의 네트워크 ID나 접두사로 라우팅에서 사용한다.
서브넷 ID m 서브넷 식별자:
사이트에 있는 서브넷을 식별하기 위해 사용한다.
인터페이스 ID 128-n-m 인터페이스 식별자:
특정 인터페이스(호스트나 다른 장비)에 대한 유일한 식별자.
특정 접두사와 서브넷 내에서 고유해야 한다.

  • 유니캐스트 주소 공간의 IPv6 구현
    • IPv6는 라우팅 접두사로 48비트를, 하위 네트워크 식별자로는 16비트를 선택
필드명 크기(비트) 설명
접두사 48 전역 라우팅 접두사:
라우팅에서 사용하는 네트워크 ID 접두사.
처음 세 비트가 001이면 유니캐스트 주소이다.
서브넷 ID 16 서브넷 식별자:
사이트에 있는 서브넷을 식별한다.
인터페이스 ID 64 인터페이스 식별자:
특정 인터페이스(호스트나 다른 장비)를 식별하는 고유한번호.
특정 접두사와 서브넷 내에서 고유하다.


  • 원본 전역 라우팅 접두사 분할 방식: 집합자
      • 전체 48비트 중 45비트로 전역 라우팅 접두사를 나눌 수 있다.(처음 3비트는 001로 고정)
    • 최상위 집합자(TLA, Top-Level Aggregators)
      • 가장 큰 인터넷 기관을 가리킨다.
      • 등록 관리 기관에서 큰 IPv6 주소를 할당받는다.
    • 차순위 집합자(NLA, Next-Level Aggregators)
      • TLA에서 주소 블록을 할당받아 최종 사용자 기관(또는 사이트)에게 나누어 준다.
필드명 크기(비트) 설명
TLA ID
(최상위 집합자 ID)
13 최상위 집합자 식별자:
최상위 수준 집합자를 나타내는 전역 고유 식별자.
13비트를 사용하며 총 8,192 TLA를 생성할 수 있다.
RES (예약됨) 8 예약됨:
향후에 사용하기 위해 8비트는 예약해두고 0으로 설정한다.
TLA ID와 NLA ID 사이에 8 비트를 사용하지 않고 남겨 두어 필요할 때 TLA ID나 NLA ID 필드를 확장할 수 있게 한다.
NLA ID
(차순위 집합자 ID)
24 차순위 집합자 식별자:
각 TLA는 고객에게 주소 블록을 할당할 수 있는 24비트 필드를 가진다. NLA ID는 각 TLA ID마다 고유하다. 24비트의 사용은 TLA 기관의 재량에 따른다.


  • 전역 라우팅 접두사의 계층 분할 예
필드명 크기
(바이트)
설명
(유니캐스트 지정자) 3 모든 유니캐스트 주소는 001로 시작한다.
여기에는 특별한 이름이 없다(주로 포맷 접두사라고 부른다).
계층 1 ID 10 계층 1 식별자:
가장 높은 계층을 나타내는 식별자.
가장 큰 인터넷 기관이 가지는 전역 구조에서 가장 큰 주소 블록을 할당할 때 사용한다.
계층 1 기관의 수는 210이나 1,024개이다.
계층 2 ID 12 계층 2 식별자:
계층 1 기관이 할당받은 블록은 12비트를 사용하여 4,096 주소 블록으로 나누어 낮은 계층 기관에게 나누어 줄 수 있다.
계층 3 ID 23 계층 3 식별자:
계층 2 기관은 자신의 주소 블록을 23비트를 사용하여 나눈다.
그러므로 8백만 개가 넘는 /48 주소 블록을 생성하여 사용자에게 할당할 수 있다.
또는 계층 2 기관의 고객 성향에 맞추어 계층을 더 많이 만들 수도 있다.



IPv6 인터페이스 식별자와 물리 주소 매핑
IPv6 유니캐스트 주소의 마지막 64비트는 인터페이스 ID를 나타내는데 수정 EUI-64라고 하는 특별한 포맷을 가진다. 이더넷 네트워크 인터페이스 카드 등의 장비에 부여된 48비트 MAC 주소를 가지고 인터페이스 ID를 간단히 만들 수 있다. 네트워크 접두사(라우팅 접두사와 서브넷 ID)를 앞에 붙여 장비를 위한 IPv6 주소를 결정한다.

특별한 IPv6 주소: 예약, 사설, 미지정, 루프백

  • 특별 주소 유형
    • 예약 주소
      • IETF의 현재와 미래의 다양한 목적을 위해 예약된 공간
      • 0000 0000으로 시작하는 주소 공간의 꼭대기 부분
    • 사설/미등록/라우팅 불가 주소
      • 처음 9비트가 "1111 1110 1"
    • 루프백 주소
      • 단 하나의 루프백 주소 "::1"
    • 미지정 주소
      • 호스트 자신을 가리키는 주소 "::"
  • IPv6 사설 주소 유형 범위
    • 사이트 로컬 주소
      • 1111 1110 11로 시작하는 10비트
    • 링크 로컬 주소
      • 1111 1110 10로 시작하는 10비트


IPv4 주소 내장

    • IPv6 장비로 만들어진 두 네트워크가 IPv4로 연결되어 있다면 터널링을 사용하여 두 IPv6 네트워크를 연결시킬 수 있다.
  • IPv4 호환 IPv6 주소
    • IPv6 기능을 가지는 장비를 위한 특별한 주소
    • 96개의 0 뒤에 IPv4 주소
    • 예) ::101.45.75.219
  • IPv6 매핑된 IPv4 주소
    • 일반적인 IPv4 주소를 IPv6 주소 공간에 매핑할 때 사용
    • 오로지 IPv4만을 지원하는 장비를 위해 사용하는 주소
    • 80개의 0 뒤에 16개의 1 뒤에 IPv4 주소
    • 예) ::FFFF:222.1.41.90


IPv6 멀티캐스트와 애니캐스트 주소지정

    • 기본 주소 유형에서 브로트캐스트는 사라짐, 멀티캐스트 지원 강화, 애니캐스트
  • IPv6 멀티캐스트 주소
    • 한 데이터그램을 그룹 수신자 모두에게 한꺼번에 전송할 수 있다.
    • 1111 1111로 시작하는 주소는 모두 멀티캐스트 주소
    • 즉 FF 로 시작하면 멀티캐스트 주소
*IPv6 멀티캐스트 주소 포맷
필드명 크기
(바이트)
설명
(지정자) 8 처음 8비트는 항상 1111 1111로, 이것이 멀티캐스트 주소라는 것을 알린다.
이 필드는 포맷 접두사로 불리었으나 이제는 이것을 가리키는 특별한 이름이 없다.
플래그 4 멀티캐스트 주소의 특성을 알리기 위한 플래그로 사용하는 4비트이다.
현재는 처음 3비트는 사용되지 않으므로 0으로 설정한다.
4번째 비트는 임시(T, Transient) 플래그이다.
T 플래그가 0이면 멀티캐스트 주소를 영구적으로 할당하거나 잘 알려진 멀티캐스트 주소라는 뜻이다.
1이라면 임시로 사용하는 멀티캐스트 주소라는 뜻이다.
범위 ID 4 멀티캐스트의 범위를 정의하기 위해 4비트를 사용한다.
0에서부터 15까지의 16개의 범위를 정의할 수 있다.
범위 ID로 전체 인터넷에 대한 멀티캐스트 주소를 만들 수도 있고, 특정 기관, 사이트, 링크와 같이 작은 범위로 한정 지을 수도 있다.
기본값은 다음과 같다(10진수)
0 = 예약됨
1 = 노드 로컬
2 = 링크 로컬
5 = 사이트 로컬
8 = 기관 로컬
14 = 전역
15 = 예약됨
그룹 ID 112 각 영역 계층에 속하는 특정 그룹을 지칭한다.


    • 멀티캐스트 범위


    • 잘 알려진 멀티캐스트 주소
      • 임시(T, Transient) 플래그는 잘 알려진 주소들과 달리 일반적인 형태로 사용할 수 있는 멀티캐스트 주소라는 표식이다
      • '모든 노드'와 '모든 라우터' 멀티캐스트 주소는 결국 IPv4의 브로드 캐스트 기능과 동일
    • 요청 노드 멀티캐스트 주소
      • 일반적인 멀티캐스트 주소 외에 각 유니캐스트 주소는 요청 노드 주소(solicited-node address)라 불리는 특별한 멀티캐스트 주소를 가진다
      • IPv6 ND 프로토콜에서 사용한다
* 중요한 IPv6 유명 멀티캐스트 주소
멀티캐스트 주소
패턴
유효 범위 값
(10진수)
지향 범위 설명
FF0x:0:0:0:0:0:0 0에서 15 예약됨 112비트 그룹 ID가 모두 0인 멀티캐스트 주소는 모두 예약되어있다.
FF0x:0:0:0:0:0:1 1, 2 모든 노드 그룹 ID가 1이면 모든 노드에게 멀티캐스트 한다. 노드 로컬(FF01:0:0:0:0:0:1)이나 링크 로컬(FF02:0:0:0:0:0:1)로 멀티캐스트하는 주소가 여기에 속한다.
FF0x:0:0:0:0:0:2 1, 2, 5 모든 라우터 그룹 ID가 2이면 수신자 영역으로 결정된 곳에 있는 모든 라우터에게 전달한다. 노드 로컬, 링크 로컬, 사이트 로컬 영역을 사용할 수 있다.


  • IPv6 애니캐스트 주소
    • "데이터를 그룹 멤버 중 가장 가까운 멤버에게 보내시오" 의미
    • 하나 이상의 인터페이스에 같은 유니캐스트 주소를 할당할 때 자동적으로 애니캐스트 주소가 된다

IPv6 자동 구성과 주소 재지정
    • IPv6 네트워크에 있는 장비가 독립적으로 스스로를 구성할 수 있도록 하는 기능은 IPv6에서 가장 흥미롭고 앞으로 가치가 있는 기능이다.
  • IPv6 상태 비유지형 자동 구성
    • 실행 단계
      1. 링크 로컬 주소 생성
      2. 링크 로컬 주소 고유성 검사
      3. 링크 로컬 주소 할당
      4. 라우터 접촉
      5. 라우터 지시
      6. 전역 주소 구성
    • IPv6는 상태 비유지형 주소 자동 구성이라는 놀라운 기능을 사용하여 장비의 계층 2 주소를 가지고 특별한 과정을 거쳐 자신만의 IPv6 주소를 장비 스스로 생성할 수 있게 한다.
  • IPv6 장비 주소 재지정
    • IP 주소를 일정 시간 대여하는 방식

2013년 10월 24일 목요일

IPv6개요, IPv4에서 변경된 부분, IPv6로의 전이

IPv6의 동기와 개요
    • 상대적으로 작은 32비트의 주소 공간
    • 클래스 기반의 주소 할당 방식 때문에 주소 부족
      • CIDR과 IP NAT 기술로 부족현상을 조금 지연
  • IPv6 표준
    • 주요 기능은 1998년에 발표된 RFC 2460에서 RFC 2467까지에 이르는 일련의 RFC로 정의
    • RFC 2060
      • 주 IPv6 표준
      • 인터넷 프로토콜, 버전 6 명세
      • IPv6의 동작을 돕는 두 프로토콜
        • 인접 노드 발견 프로토콜(ND)
        • 인터넷 제어 메시지 프로토콜 버전 6 (ICMPv6)
    • RFC2373
      • IP 버전 6 주소지정 구조(IP Version 6 Addressing Architecture)
    • RFC 2374
      • IPv6 집선 가능한 전역 유니캐스트 주소지정 포맷
      • An IPv6 Aggregatable Global Unicast Address Format
  • IPv6 설계 목표
    • 더 넓은 주소 공간
    • 더 효율적인 주소관리
    • 주소 부족을 해결하기 위한 보조 방식의 제거
      • IPv6는 NAT나 그와 유사한 방식을 사용하지 않으며, 모든 TCP/IP 장비들이 공인 주소를 가질 수 있도록 한다.
    • 쉬운 TCP/IP 관리
    • 현대적인 라우팅 방식
    • 더 나은 멀티캐스팅 지원
    • 더 나은 보안 지원
    • 더 나은 이동성 지원

IPv6의 중요 변경 사항과 추가 사항
  • IPv6로 오면서 IPv4와 달라진 부분
    • 더 큰 주소 공간: 32비트 -> 128비트
    • 계층적 주소 공간
    • 유니캐스트 주소의 계층적 할당
    • 유니캐스트 이외의 주소에 대한 더 나은 지원
      • 애니캐스트(이 그룹 멤버 중에서 가장 가까운 멤버에게 전달) 추가
    • 자동 구성과 주소 재지정
    • 새 데이터그램 포맷
    • 서비스 품질 보장(QoS) 지원
    • 보안 지원
    • 단편화와 재조합 과정 개선
    • 현대화된 라우팅 지원
    • 전이 기능
    • 다른 프로토콜의 변경

IPv4에서 IPv6로의 전이
  • IPv4에서 IPv6로의 전이 방법
    • 이중 스택 장비
    • IPv4/IPv6 변환
    • IPv4 터널링

2013년 10월 23일 수요일

IP 라우팅과 멀티캐스팅

IP 데이터그램 전달
  • 직접 데이터그램 전달
    • 데이터그램이 동일한 물리 네트워크의 두 장비 간에 송수신될 때는 출발지 장비에서 목적지 장비로 직접 전달된다.
  • 간전 데이터그램 전달(라우팅)
    • 두 장비가 동일한 물리 네트워크에 있지 않을 경우의 데이터그램 전달
  • 데이터그램 라우팅과 주소지정의 관계

IP 라우팅 개념과 다음 홉 라우팅 과정
  • 다음 홉 라우팅(next-hop routing)
    • 데이터그램은 목적지 장비가 있는 물리 네트워크에 도달할 때까지 한 라우터에서 다음 라우터로 전달된다.
  • IP 데이터그램 간접 전달은 다음 홉 라우팅이라는 과정을 통해 수행된다.
  • 여기서 각 메시지는 목적지 네트워크에 도달할때까지 한 라우터에서 다른 라우터로 전달된다.
  • 이 방법의 주요 장점은 각 라우터가 모든 목적지 네트워크로의 정확한 경로를 아는 것이 아니라 주어진 데이터그램의 다음 이웃 라우터만을 알면 된다는 것이다.


IP 경로와 라우팅 테이블
  • 라우터는 내부 라우팅 테이블을 통해 데이터그램을 어떻게 라우팅할지 결정한다.
  • 이 테이블은 데이터그램이 특정 네트워크에 도달하기 위해 어떤 라우터를 이용해야 하는지를 알려주는 항목을 포함한다.
  • 라우팅 가능한 프로토콜과 라우팅 프로토콜은 서로 다르다.
  • IP는 라우팅 가능한 프로토콜인데, 그것은 IP 메시지(데이터그램)가 라우팅 가능하다는 것을 의미한다.
  • 라우팅 프로토콜의 예로 라우팅 정보 프로토콜(RIP, Routing Information Protocol)과 경계 경로 프로토콜(BGP, Border Gateway Protocol) 등이 있는데 이들은 라우터 간에 라우팅 정보를 교환하는 데 쓰인다.

서브넷 또는 CIDR 환경에서의 IP 라우팅


IP 멀티캐스팅
    • 멀티캐스팅 - 한 장비가 여러 수신자에게 메시지를 보내는 기능
  • 멀티캐스트 주소지정
    • 클래스 D 블록이 멀티캐스트 주소로 예약
  • 멀티캐스트 그룹관리
    • 장비는 동적으로 그룹에 참여하거나 탈퇴할 수 있어야 함
    • 그룹 정보는 IP 인터네트워크로 전파되어야 함
    • 인터넷 그룹 관리 프로토콜(IGMP)
      • Internet Group Management Protocol
      • 인터넷의 장비와 라우터들이 서로 그룹과 그룹 가입 정보를 교환할 수 있도록 하는 메시지 포맷을 정의
  • 멀티캐스트 데이터그램 처리와 라우팅
  • IP 멀티캐스팅은 한 장비가 사설 인터네트워크나 전역 인터넷을 통해 여러 장비로 정보를 보낼 수 있도록 하는 특수 애플리케이션을 개발할 수 있도록 한다.
  • IP 멀티캐스팅은 기존의 유니캐스트 IP보다 복잡하며, 주소지정과 라우팅 부분에서 특수한 주의를 필요로 한다.

2013년 10월 16일 수요일

IP 데이터그램 크기, 단편화, 재조합

IP 데이터그램 크기, MTU, 단편화 개요
  • IP 데이터그램 크기와 하부 네트워크 프레임 크기
    • 장비가 다른 장비와 연결하기 위해 사용하는 네트워크
      • 근거리(LAN) 연결(이더넷이나 토큰링 등)
      • 무선 LAN(WLAN) 링크(802.11)
      • 전화 접속 연결
      • 디지털 가입자 회선(DSL, Digital Subscriber Line) 연결
      • T1 링크
      • 기타 원거리(WAN) 등
      • 광섬유 분산 데이터 인터페이스(FDDI, Fiber Distributed Data Interface) 네트워크
        • 데이터 필드의 최대 데이터 크기 : 약 4,470바이트
    • 일반 이더넷 프레임
      • 페이로드의 크기를 1,500바이트로 제한
  • MTU와 데이터그램 단편화
    • MTU, maximum transmission unit 또는 maximum transfer unit
      • 물리 네트워크로 전달될 수 있는 최대 IP 데이터그램의 크기
      • 큰 MTU를 가진 네트워크에서 온 데이터그램이 작은 MTU를 가진 네트워크로 전달되려면 작은 MTU에 맞게 단편화돼야 한다.
  • 다중 단계 단편화
    • 중간 라우터는 이미 단편화된 IP 메시지를 다시 단편화할 수 있지만, 단편들을 재조합하지는 않는다.
    • 재조합은 수신 장비에서 일어난다.
  • 인터넷 최소 MTU
    • 576바이트 (RFC 791에서 지정)
    • 512바이트의 데이터 블록 + 표준 IP 헤더와 옵션
  • MTU 경로 발견
    • 종단 장비들은 TCP/IP의 ICMP에 내장된 에러 보고 방식을 이용하는 MTU 경로 발견(path discovery)을 통해 전체 경로의 MTU를 파악할 수 있다.

IP 메시지 단편화 과정
  • 하나의 메시지가 여러 조각으로 단편화되면 발생하는 문제
    • 순서와 위치 지정
    • 단편화 메시지 분리
    • 재조합 종료
  • IP 단편화 과정

  • 단편화 관련 IP 데이터그램 헤더 필드
    • 전체 길이
      • 각 단편의 길이를 나타낸다
    • 식별자
    • MF(More Fragments)
      • 맨 마지막 단편만 0으로, 나머지는 1로 설정
    • 단편화 오프셋
      • 13비트이므로 0에서 8,191까지 값을 가짐
      • 단편은 8바이트 단위로 지정
      • 위의 그림에서 셋째 단편의 오프셋은 820(6,560/8)이다.

IP 메시지 재조합

  • 재조합은 메시지의 최종 목적지 장비에서만 일어남
    • 단편이 다양한 경로를 거칠 수 있기 때문에 라우터가 모든 단편을 모은다는 것을 보장할 수 없음
    • 라우터가 단편 모으기 하면 비효율적임
  • 재조합 과정
    • 단편 인식과 단편화된 메시지 식별
    • 버퍼 초기화
    • 타이머 초기화
    • 단편 수신과 처리



2013년 10월 7일 월요일

인터넷 프로토콜 데이터그램 캡슐화와 포매팅

IP 데이터그램 캡슐화

  • 상위 계층 메시지는 TCP나 UDP 메시지로 패키징되고 그것은 다시 IP 데이터그램의 페이로드가 된다.
  • IP 데이터그램은 2계층으로 전달되어 LAN, WAN, WLAN 프레임으로 캡슐화된다.
  • 그리고 물리 계층에서 비트로 변환되어 전송된다.


IP 데이터그램 일반 포맷

  • 인터넷 프로토콜 버전 4 (IPv4) 데이터그램 포맷
필드 이름 크기(바이트) 설명
버전 1/2(4비트) 데이터그램을 만드는 데 쓰인 IP 버전을 나타낸다.
IHL 1/2(4비트) IP 헤더 길이를 32비트 워드 단위로 지정한다.
TOS 1 서비스 품질 기능(예: IP 데이터그램에 우선 순위를 줘서 전송)을 제공하기 위한 정보를 전달하는 필드.
TL 2 IP 데이터그램의 전체 길이를 바이트 단위로 지정한다.
식별자 2 이 필드는 특정 메시지에 속한 각 단편과 연관된 16비트 값을 포함한다.
플래그 3/8(3비트) 3개의 제어 플래그, 2개는 단편화 관리용, 1개는 예약
단편화 오프셋 1 5/8(13비트) 메시지 단편화가 일어날 때 이 필드는 전체 메시지 안에서 이 데이터의 위치, 또는 오프셋을 8바이트(64비트) 단위로 나타낸다.
TTL 1 이 필드는 데이터그램이 네트워크에서 얼마나 오래 살아남을 수 있는지를 라우터 홉 수로 나타낸다.
프로토콜 1 데이터그램에서 운반하는 상위 계층 프로토콜을 식별한다.
헤더 체크섬 2 전송 중 오류를 방지하기 위해 헤더에 대한 체크섬을 계산한다.
출발지 주소 4 데이터그램을 처음 송신한 장비의 32비트 IP 주소다.
목적지 주소 4 데이터그램의 목적지 장비의 32비트 IP 주소다.
옵션 가변적 일부 IP 데이터그램에서 표준 헤더 뒤에 올 수 있는 하나 이상의 옵션 유형
패딩 가변적 하나 이상의 옵션이 IP 헤더에 포함됐는데 그 옵션 비트 수가 32의 배수가 아닐 경우에는 헤더 길이를 32비트(4바이트)의 배수로 맞추기 위해 0비트 패딩이 추가됨
데이터 가변적 데이터그램에서 전송할 데이터로 전체 상위 계층 메시지이거나 아니면 단편화된 메시지의 일부


  • IPv4 플래그 하위 필드

하위 필드 이름 크기(바이트) 설명
예약 1/8(1비트) 쓰이지 않음
DF 1/8(1비트) 1로 설정 : 데이터그램을 단편화하지 말라는 것을 나타냄
링크의 최대 전송 단위(MTU)를 검사하는 데 쓰임
MF 1/8(1비트) 0으로 설정: 메시지의 마지막 단편이라는 것을 나타냄
1로 설정: 단편화된 메시지의 일부분이 아직 남아 있다는 것을 나타냄


  • IPv4 프로토콜 하위 필드

값(16진수) 값(10진수) 프로토콜
00 0 예약
01 1 ICMP
02 2 IGMP
03 3 GGP
04 4 IP-in-IP 캡슐화
06 6 TCP
08 8 EGP
11 17 UDP
32 50 보안 페이로드 캡슐화(ESP) 확장 헤더
33 51 인증 헤더(AH) 확장 헤더

  • IPv4 데이터그램 포맷

  • IP 데이터그램 TTL(Time to Live) 필드
    • 데이터그램이 무한히 인터넷을 방황하지 않도록 하기 위함
    • 데이터그램의 최대 홉 수를 나타냄
    • 라우터는 데이터그램을 처리할 때마다 TTL 필드를 1만큼 감소
    • TTL 값이 0이되면 데이터그램은 버려지며 최초 송신자에게 ICMP(Internet Control Message Protocol) 시간 초과(Time Exceeded) 메시지가 전송됨
  • IP 데이터그램 서비스 유형(TOS, Type of Service) 필드
    • 원래 IP 데이터그램 전달을 위한 특정 서비스 품질(QoS, quality-of-service) 기능을 제공하기 위해 고안된 1바이트
    • 거의 사용되지 않음
    • RFC 2474는 TOS 필드의 처음 6비트를 차등화 서비스(DS, Differentiated Services)라는 기술을 지원하도록 재정의
    • DS에서 TOS 피드의 값은 코드포인트(codepoint)라고 불림

IP 데이터그램 옵션과 옵션 포맷
  • 모든 IP 데이터그램은 표준 20바이트 헤더를 포함함
  • IP 헤더에서 옵션 필드의 전체 길이는 가변적
  • IPv4 옵션 포맷
하위 필드 이름 크기(바이트) 설명
옵션 유형 1 옵션 유형 하위 필드는 3개의 하위 필드로 다시 세분화 됨
옵션 길이 0 또는 1 가별 길이 옵션의 경우, 전체 옵션의 길이를 바이트로 나타냄
옵션 데이터 0 또는 가변적 가변 길이 옵션의 경우, 옵션의 일부로 전달할 데이터를 포함함


  • IPv4 옵션: 옵션 유형 하위 필드

하위 필드 이름 크기(바이트) 설명
복사 플래그 1/8(1비트) 데이터그램이 단편화될 때 옵션을 모든 단편에 복사해야 할 경우 1로 설정
옵션 클래스 2/8(2비트) 옵션이 속한 일반 범주를 명시하는 4개 값 중 하나를 지정. 실제로 쓰이는 값은 0(제어옵션)과 2(디버깅과 측정)의 두가지다.
옵션 번호 5/8(5비트) 옵션의 종류를 지정한다. 두 옵션 클래스 각각에 대하여 32개의 서로 다른 값을 지정할 수 있다.


  • 널리 쓰이는 IPv4 옵션
옵션 클래스 옵션 번호 길이(바이트) 옵션 이름 설명
0 0 1 옵션 목록 끝 옵션 목록의 끝을 표시하는 데 쓰이는, 단지 하나의 0바이트를 포함하는 옵션
0 1 1 동작 없음 필요할 경우 특정 옵션을 32비트 경계에 정렬하기 위해 내부적으로 패딩하는 데 쓰이는 "더미 옵션"
0 2 11 보안 군대에서 IP 데이터그램의 보안 등급을 지정하는 데 쓰이는 옵션
0 3 가변적 Loose 소스 라우팅 IP 데이터그램 소스 라우팅에 쓰이는 두 옵션 중 하나
0 7 가변적 경로 기록 데이터그램의 경로를 헤더 자체에 기록하는 데 쓰인다.
0 9 가변적 Strict 소스 라우팅 IP 데이터그램 소스 라우팅에 쓰이는 두 옵션 중 하나
2 4 가변적 시간 경로 기록 옵션과 유사하게 동작하지만 각 장비가 IP 주소 대신 시간 정보를 기록한다.
2 18 12 Traceroute RFC 1393에서 설명하는 traceroute 유틸리티의 개선된 버전에서 쓰인다.
    • 소스 라우팅 (RFC 791 참고)
      • 일반적으로 라우팅은 라우터의 몫
      • 데이터그램 최초 송신 장비가 경로를 지정하는 경우 소스라우팅
      • 2개의 IP 옵션이 소스 라우팅 지원
      • 옵션은 IP 주소 목록을 포함
      • strict 소스 라우팅
        • 옵션에 지정된 경로가 순서대로 정확히 사용되어야 함
        • 다른 라우터는 데이터그램을 절대로 처리하면 안됨
      • loose 소스 라우팅
        • 중간에 거쳐가야 할 IP 주소 목록을 지정
        • 목록에 있는 장비 사이에 다른 홉이 들어올 수 있도록 함

2013년 10월 6일 일요일

IP 클래스 비사용 주소지정 - 클래스 비사용 도메인 간 라우팅/슈퍼네팅

IP 클래스 비사용 주소지정과 슈퍼네팅 개요

  • 클래스 단위 주소지정의 주요 문제점
    • 세밀성이 떨어짐
    • 클래스 B는 많이 소요되나 클래스 C는 인기가 없음
    • 낭비되는 클래스 B 대신 클래스 C 10개를 사용하면 라우터가 10배의 항목을 관리 하게 됨
  • 해결책: 주소 클래스 제거
    • 네트워크 크기가 오직 3단계로 구분된다면 할당 효율 문제를 적절히 해결하는 것은 불가능
    • 클래스를 완전히 제거한 클래스 비사용 할당 방법 사용
    • 클래스 비사용 도메인간 라우팅(CIDR, Classless Inter-Domain Routing)
      • 주소지정과 라우팅 모두를 다룬다.
      • CIDR을 때때로 슈퍼네팅(supernetting)이라 부름
        • 서브네팅의 원리를 대형 네트워크에 적용
      • 가변 길이 서브넷 마스킹(Variable Length Subnet Masking)을 인터넷에 적용한 것
  • 클래스 비사용 주소지정과 라우팅의 주요 장점
    • CIDR은 클래스 단위 주소지정 방법에 비해 여러 장점이 있음
      • 효율적인 주소 공간 할당
      • 클래스 불균형 제거: 클래스 A, B, C 네트워크 존재 않음
      • 효율적인 라우팅 항목 관리
      • 별도의 서브네팅 방법이 필요 없음

IP 슈퍼네팅: CIDR 계층적 주소지정과 표기법
  • CIDR(슬래시) 표기법
    • CIDR에는 주소 클래스가 없기 때문에 주소만으로 네트워크 ID의 크기를 파악할 수 없다.
    • CIDR에서는 접두사(네트워크 ID)의 길이를 주소 뒤의 슬래시 다음에 표시한다.
    • 이것을 CIDR 표기법 또는 슬래시 표기법이라고 부른다.
  • 슈퍼네팅: 인터넷 서브네팅
    • 인터넷 할당번호 관리기관(IANA, Internet Assigned Numbers Authority)은 모든 사람에게 네트워크 ID를 나눠 줬으며 그것을 받은 사람은 호스트 ID를 부여함.
    • IANA/ICANN은 주소를 대형 블록으로 나눠 4개의 대륙별 인터넷 레지스트리(RIR, regional Internet registries)인 APNIC, ARIN, LACNIC, RIPE NCC에 분배
    • RIR은 주소 블록을 더욱 세분화하여 하위 수준의 국가 인터넷 레지스트리(NIR, national Internet registries), 지역 인터넷 레지스트리(LIR, local Internet registries)와 인터넷 서비스 제공자(ISP) 같은 개별 기관에 분배
  • 클래스 단위 주소지정과 클래스 비사용 주소지정의 공통점
    • 사설 주소 블록
      • 일부 주소 블록은 사설 네트워크 주소를 위해 예약
    • 특수 의미를 갖는 주소
      • 모두 1과 모두 0에 대한 의미는 그대로 유지
    • 루프백 주소
      • 네트워크 127.0.0.0 (127.0.0.0/8)은 루프백 기능으로 예약

IP 서브넷 주소지정 개념

※클래스 단위 주소지정에 근거를 두고 있는 서브네팅은 오늘날 진부한 기술로 취급 받고 있다. 서브넷과 서브넷 마스크의 개념은 아직까지 남아 있기는 하지만, 클래스 A, B, C 인터넷 주소 블록을 할당하고 그것을 서브넷으로 구분하는 방법은 더 이상 쓰이지 않는다.

IP 서브넷 주소지정 개요, 동기, 장점
    • 서브넷 주소지정은 IP 주소 해석 과정에 하나의 단계를 추가했다.
    • 그래서 네트워크, 네트워크가 포함하는 서브넷, 서브넷이 포함하는 여러 호스트의 3단계 계층 구조가 생성된다.
  • 장점
    • 물리 네트워크 구조에 더 잘 들어맞음
    • 유연성
    • 공중 인터넷에는 보이지 않음
    • 새로운 IP 주소를 요청할 필요가 없음
    • 라우팅 테이블 항목을 많이 넣을 필요가 없음
  • 서브넷 마스크
    • 32비트 구성
    • 서브넷 ID와 호스트 ID를 구분하기 위한 정보
  • 라우팅 정보 프로토콜(RIP, Routing Information Protocol)과 같은 라우팅 프로토콜 변경
  • 단점
    • 실제 동작 방법을 이해하기가 어렵다.

IP 서브네팅: 3단계 계층적 IP 서브넷 주소지정
  • 클래스 단위 네트워크는 호스트 ID를 서브넷 ID와 호스트 ID로 나눔으로써 서브넷으로 변환된다.
  • 이들 비트는 네트워크 내에서 개별 서브넷을 식별하는 데 쓰인다.
  • 호스트들은 이 서브넷에 할당된다.

IP 서브넷 마스크, 표기법, 서브넷 계산
  • 서브넷 마스크의 기능
    • IP 주소에 따라다니는 32비트 2진수
    • 네트워크 ID나 서브넷 ID에 해당하는 부분을 1로, 호스트 ID에 해당하는 부분을 0으로 설정하여 생성됨
    • 서브넷 마스크를 통해 TCP/IP 장비는 IP 주소의 어떤 비트가 네트워크 ID와 서브넷 ID에 속하는지, 그리고 어떤 비트가 호스트 ID에 속하는지를 알아냄
  • 서브넷 마스크 표기법
    • 클래스 B 네트워크에서 5비트 서브넷 ID와 11비트 호스트 ID의 경우 서브넷 마스크는 11111111 11111111 11111000 00000000(2)이 된다.
    • 이것을 부점 10진 표기법으로 255.255.248.0이 된다.
  • 서브넷 마스크 적용
    • 서브넷 마스크는 편의를 위해 부점 10진 표기법으로 표현되기도 한다. 그렇지만 컴퓨터는 서브넷 마스크를 2진수로 인식하며 마스크의 동작 방식과 서브넷 ID 비트의 수를 이해하기 위해 2진수로 표현되는 경우가 많다.
  • 서브넷 마스크 표기법 원리
    • 마스크를 하나의 숫자로 표현하는 방법이 지금은 많이 쓰임
    • IP 주소가 154.71.150.42이고 서브넷 마스크가 255.255.248.0이라 하는 대신 154.71.150.42/21 이라고 표현 할 수 있음
    • 이것을 슬래시 표기법 또는 클래스 비사용 도메인간 라우팅(CIDR, Classless Inter-Domain Routing) 표기법이라 부름
    • 이 표기법은 가변 길이 서브넷 마스킹(VLSM, Variable Length Subnet Masking) 환경에 더 자주 쓰임

주소 클래스 A, B, C의 IP 기본 서브넷 마스크
    • 네트워크 ID 부분은 1, 서브넷 ID 부분은 없고, 호스트 ID 부분은 0
  • 클래스 A : 255.0.0.0
  • 클래스 B : 255.255.0.0
  • 클래스 C : 255.255.255.0

IP 커스텀 서브넷 마스크
    • 커스텀 서브네팅: 서브넷 ID와 호스트 ID를 구분하는 지점을 네트워크에 맞게 선택할 수 있는 서브네팅
  • 얼마나 많은 서브넷 비트를 사용할지 결정
    • 서브네팅의 근본적인 균형 관계는 서브넷 ID에 1비트를 추가할 때마다 서브넷의 수는 2배가 되지만 서브넷별 호스트의 수는 약 1/2로 줄어든다는 것임
  • 커스텀 서브넷 마스크 결정
    • 서브넷 구분 방법을 결정했으면, 네트워크의 기본 서브넷 마스크에서 서브넷 ID에 해당하는 비트 수 만큼 0을 1로 바꿔서 커스텀 서브넷 마스크를 얻을 수 있다.
  • 서브넷별 호스트 수와 네트워크별 서브넷 수에서 2를 뺌
    • 서브넷 ID에 7비트나 8비트를 사용할 수 없다. 호스트 ID - 2개이므로.

IP 서브넷 식별자, 서브넷 주소, 호스트 주소
  • 서브넷 식별자
    • 모두 0이나 모두 1로 되어 있는 서브넷 ID는 제외
  • 서브넷 주소
    • 서브넷의 식별자는 서브넷 ID이다. 서브넷 주소는 전체 네트워크 주소의 서브넷 비트를 서브넷 ID로 대체하여 얻을 수 있다.
  • 각 서브넷 내의 호스트 주소
    • 모두 0으이나 모두 1로 설정된 호스트 ID는 사용하지 않음
※서브넷 ID는 네트워크 전체에서 동일한 길이를 갖는다. 그래서 만약 호스트 수가 크게 다른 서브네트워크를 가지고 있을 경우 문제가 생길 수 있다.


IP 가변 길이 서브넷 마스킹

  • 가변 길이 서브넷 마스킹(VLSM, Variable Length Subnet Masking)
    • 기본 서브넷 주소지정 방법의 문제점을 해결하기 위한 방법
    • 네트워크를 서브넷으로 나눈 뒤, 그 서브넷을 다시 서브넷으로 나누는 것
    • 서브네팅을 여러 번 반복하여 네트워크를 크기가 다른 여러 서브네트워크 계층으로 구분하는 기법
  • VLSM을 이용한 다중 단계 서브네팅
    • VLSM에서는 이진 서브넷 마스크 대신 클래스 비사용 주소지정의 슬래시 표기법이 널리 쓰임
    • VLSM예제
  • VLSM을 사용하려면 VLSM 기능이 있는 라우팅 프로토콜을 지원하는 라우터가 필요하다.

2013년 10월 5일 토요일

클래스 단위 (전통적) 주소지정

IP 클래스 단위 주소지정 개요와 주소 클래스
  • IP 주소 클래스
    • A에서 E까지의 5개 클래스가 존재
IP 주소 클래스 전체 IP 주소 공간에서 차지하는 비율 네트워크 ID 비트의 수 호스트 ID 비트의 수 용도
클래스 A 1/2 8 24 인터넷에 연결할 호스트가 수백만 개 이상 존재하는 매우 큰 기관을 위한 유니캐스트 주소지정
클래스 B 1/4 16 16 인터넷에 연결할 호스트가 수천 개 정도 존재하는 중규모에서 대규모 기관을 위한 유니캐스트 주소지정
클래스 C 1/8 24 8 인터넷에 연결할 호스트가 약 250개를 넘지 않는 소규모 기관을 위한 유니캐스트 주소지정
클래스 D 1/16 없음 없음 IP 멀티캐스팅
클래스 E 1/16 없음 없음 테스트 용으로 예약됨
  • 클래스 단위 주소지정 방법의 원리
    • 단순성과 명확성
    • 타당한 유연성
    • 라우팅 용이성
    • 예약 주소

IP 클래스 단위 주소지정의 네트워크/호스트 식별과 주소 영역
  • 클래스 단위 주소지정의 클래스 결정 알고리즘
    1. 첫째 비트가 0이면 클래스 A 주소다. 1이면 다음으로..
    2. 둘째 비트가 0이면 클래스 B 주소다. 1이면 다음으로..
    3. 셋째 비트가 0이면 클래스 C 주소다. 1이면 다음으로..
    4. 넷째 비트가 0이면 클래스 D 주소다. 1이면 클래스 E 주소다.
  • 첫 옥텟 비트 패턴을 통해 주소 클래스 파악
IP 주소 클래스 IP 주소의 첫째 옥텟 첫째 옥텟의 최소값 첫째 옥텟의 최대값 첫째 옥텟 값의 범위 네트워크 ID/호스트 ID에 속한 옥텟 수 이론적 IP 주소 범위
클래스 A 0xxx xxxx 0000 0001 0111 1110 1 ~ 126 1 / 3 1.0.0.0 ~
126.255.255.255
클래스 B 10xx xxxx 1000 0000 1011 1111 128 ~ 191 2 / 2 128.0.0.0 ~
191.255.255.255
클래스 C 110x xxxx 1100 0000 1101 1111 192 ~ 223 3 / 1 192.0.0.0 ~
223.255.255.255
클래스 D 1110 xxxx 1110 0000 1110 1111 224 ~ 239 - 224.0.0.0 ~
239.255.255.255
클래스 E 1111 xxxx 1111 0000 1111 1111 240 ~ 255 - 240.0.0.0 ~
255.255.255.255


IP 주소 클래스 A, B, C의 네트워크와 호스트 용량
IP 주소 클래스 네트워크 ID / 호스트 ID에 쓰이는 비트 수 IP 주소의 첫째 옥텟 클래스를 식별하는 데 쓰이는 네트워크 ID 비트 수 사용 가능한 네트워크 ID 비트 사용가능한 네트워크 ID의 수 네트워크 ID별 호스트 ID의 수
클래스 A 8 / 24 0xxx xxxx 1 8-1 = 7 2^7 - 2 = 126 2^24 - 2 = 16,277,214
클래스 B 16 / 16 10xx xxxx 2 16 - 2 = 14 2^14 = 16,384 2^16 - 2 = 65,534
클래스 C 24 / 8 110x xxxx 3 24 - 3 = 21 2^21 = 2,097,152 2^8 - 2 = 254


특수 의미를 갖는 IP 주소
  • 모두 0
    • 네트워크 ID나 호스트 ID 비트가 모두 0으로 치환된 주소는 "이것"이라는 의미를 갖는다.
    • 예로 네트워크 ID를 모두 0으로 치환하고 호스트 ID는 그대로 둔다면 "이 네트워크에서의 해당 호스트 ID를 갖는 장비"를 의미
  • 모두 1
    • 네트워크 ID나 호스트 ID 비트가 모두 1로 치환된 주소는 모든 주소, 즉 네트워크에 있는 모든 호스트를 가리키느 IP 주소를 의미
    • 브로트캐스트 주소로 쓰임
네트워크 ID 호스트 ID 특수 의미와 설명
네트워크 ID 모두 0 지정된 네트워크: 주소의 뒷부분에 0이 있는 것은 전체 네트워크를 가리킨다.
모두 0 호스트 ID 이 네트워크에서 지정된 호스트: 이것은 네트워크 ID를 알지 못하거나 명시적으로 표현할 필요가 없을 경우에 현재 또는 기본 네트워크의 호스트를 가리킨다.
모두 0 모두 0 자신: 자신의 IP 주소를 모르는 장비가 자신을 가리킬 때 사용한다. 가장 널리 쓰이는 곳은 장비가 DHCP와 같은 호스트 설정 프로토콜을 통해 자신의 주소를 파악하고자 시도할 때다. 다중 인터페이스 호스트의 어떤 주소도 쓰일 수 있다는 것을 가리킬 때 쓰이기도 한다.
네트워크 ID 모두1 지정된 네트워크의 모든 호스트: 로컬 네트워크의 모든 호스트에 브로트캐스팅하는 데 쓰인다.
모두 1 모두1 네트워크의 모든 호스트: 직접 연결된 네트워크에 있는 모든 호스트로의 전역 브로드캐스트를 나타낸다. 여기서 전역 인터넷의 모든 호스트로의 브로드캐스트를 의미하는 주소는 존재하지 않는다는 사실을 알아두자. 그렇게 하는 것은 매우 비효율적이고 비용이 많이 드는 일이기 때문이다.


IP 예약, 사설, 루프백 주소
  • 예약 주소
    • 일부 주소 블록은 특정한 용도는 정해지지 않았지만 예약 주소로 정해져 있다.
  • 사설, 비등록, 라우팅 불가 주소
    • RFC 1918은 사설 주소에만 사용할 수 있는, 라우팅이 불가능한 특수 주소 집합을 정의했다.
  • 루프백 주소
    • 127.0.0.0에서 127.255.255.255까지의 특수 범위는 루프백(loopback) 기능을 위해 예약 돼 있다.
    • 호스트가 127.x.x.x 루프백 주소로 보낸 IP 데이터그램은 데이터 링크 계층으로 전달되지 않고 출발지 장비의 IP 계층으로 되돌아온다.
범위 시작 주소 범위 끝 주소 대응하는 클래스 단위 주소 대응하는 클래스 비사용 주소 설명
0.0.0.0 0.255.255.255 클래스 A 네트워크 0.x.x.x 0 / 8 예약됨
10.0.0.0 10.255.255.255 클래스 A 네트워크 10.x.x.x 10 / 8 클래스 A 사설 주소 블록
127.0.0.0 127.255.255.255 클래스 A 네트워크 127.x.x.x 127 / 8 루프백 주소 블록
128.0.0.0 128.0.255.255 클래스 B 네트워크 128.0.x.x 128.0 / 16 예약됨
169.254.0.0 169.254.255.255 클래스 B 네트워크 169.254.x.x 169.254 / 16 자동 개인IP 주소할당(APIPA)을 위해 예약된 클래스 B 사설 주소 블록
172.16.0.0 172.31.255.255 172.16.x.x에서 172.31.x.x까지 16개의 연속된 클래스 B 네트워크 172.16 / 12 클래스 B 사설 주소 블록
191.255.0.0 191.255.255.255 클래스 B 네트워크 191.255.x.x 191.255 / 16 예약됨
192.0.0.0 192.0.0.255 클래스 C 네트워크 192.0.0.x 192.0.0 / 24 예약됨
192.168.0.0 192.168.255.255 192.168.0.x에서 192.168.255.x까지 256개의 연속된 클래스 C 네트워크 192.168 / 16 클래스 C 사설 주소 블록
223.255.255.0 223.255.255.255 클래스 C 네트워크 223.255.255.x 223.255.255 / 24 예약됨


IP 멀티캐스트 주소지정
  • 멀티캐스트 주소 유형과 범위
    • IP 멀티캐스트 주소 범위와 용도
범위 시작 주소 범위 끝 주소 설명
224.0.0.0 224.0.0.255 유명한 특수 멀티캐스트 주소로 예약됨
224.0.1.0 238.255.255.255 전역 범위(인터넷 전체) 멀티캐스트 주소
239.0.0.0 239.255.255.255 관리용(로컬) 멀티캐스트 주소
  • 유명 멀티캐스트 주소
    • 출발지 장비가 미리 정해진 그룹에 메시지를 보낼 때 쓰임
    • 유명 IP 멀티캐스트 주소
범위 시작 주소 설명
224.0.0.0 예약됨. 쓰이지 않음
224.0.0.1 서브넷의 모든 장비
224.0.0.2 서브넷의 모든 라우터
224.0.0.3 예약됨
224.0.0.4 DVMRP를 사용하는 모든 라우터
224.0.0.5 OSPF를 사용하는 모든 라우터
224.0.0.6 OSPF로 지정된 라우터
224.0.0.9 RIP-2로 지정된 라우터
224.0.0.11 모바일 에이전트(모바일 IP용)
224.0.0.12 DHCP 서버/중계 에이전트


클래스 단위 IP 주소지정의 문제점
  • 내부 주소 유연성 부족
  • 주소 공간의 비효율적 사용
  • 라우터 테이블 항목이 너무 커짐

2013년 10월 4일 금요일

IPv4 주소지정 개념과 이슈

IP 주소지정 개요와 기초

  • IP 주소의 기능
    • 네트워크 인터페이스 식별
    • 라우팅
  • 장비별 IP 주소의 수
    • 네트워크 계층에서 데이터를 받을 수 있는 모든 장비에는 IP주소(네트워크 인터페이스별로 하나)가 적어도 하나씩 있다.
    • 라우터나 다중 인터페이스 방식으로 구성될 경우 하나 이상의 IP 주소를 가질 수 있다.
    • 리피터(repeater), 브리지(bridge), 스위치(switch) 같은 하위 수준 네트워크 연결 장비는 2계층 주소에 근거하여 트래픽을 통과시키기 때문에 IP 주소가 없어도됨
  • 주소의 유일성과 네트워크의 한정성
    • 단일 인터네트워크에서 각 IP 주소는 유일해야 함
  • IP 주소와 데이터 링크 계층 주소 비교
  • 사설/공중 IP 네트워크 주소
    • 공중 네트워크에서 여러 기관들이 서로 중복하는 주소를 사용하지 않도록 하기 위해 공인 IP 등록/관리 기관을 만듦
  • IP 주소 설정과 주소지정 유형
    • 주소 설정은 정적 또는 동적 설정으로 구성될 수 있다.
    • 대형 네트워크에서 동적 설정 관리를 위한 프로토콜로 BOOTP와 DHCP가 있음
    • 주소지정 방법은 유니캐스트, 멀티캐스트, 브로드캐스트를 지원

IP 주소 크기, 주소 공간, 표기법
  • IP 주소 크기와 2진 표기법
    • 간단히 표현하면 IP 주소는 단지 32비트 이진수다.
  • IP 주소 부점 10진 표기법 (dotted decimal notation)
    • IP 주소는 일반적으로 8비트 옥텟을 10진수로 변환하고 마침표(.)로 구분한 형태료 표현
    • IP 주소의 최소값은 0.0.0.0 이고 최대값은 255.255.255.255 이다.
  • IP 주소 공간
    • IP 주소의 크기는 32비트이나 IP 주소의 구조와 할당 방법때문에 이 전체 공간의 모든 주소를 실제로 사용할 수 있는 것은 아님
    • 맨 처음 옥텟이 127로 시작하는 모든 IP 주소는 루프백(llpback)주소로 예약 됨
    • 클래스 비사용 도메인 간 라우팅(CIDR, Classless Inter-Domain Routing), 슈퍼네팅, NAT와 같은 기술은 기존 인터넷 IP 주소 공간을 좀 더 효율적으로 활용하기 위해 설계됨.

IP 기본 주소 구조와 주요 구성요소
  • 네트워크 ID와 호스트 ID
      • 32비트가 내부적으로 두 개의 구성 요소를 가진 구조로 돼 있음
    • 네트워크 식별자(네트워크 ID)
      • 맨 왼쪽 비트에서 부터 시작하는 특정 수의 비트
      • 네트워크 접두사(network prefix) 또는 접두사(prefix)라고 부르기도 함
    • 호스트 식별자(호스트 ID)
      • 나머지 비트는 네트워크 호스트를 식별하는 데 쓰임
    • IP 주소에 포함된 네트워크 ID는 라우터가 IP 데이터그램을 라우팅하는 데 쓰임
      • 라우터는 IP 주소의 네트워크 부분을 본 뒤 목적지 IP 주소가 출발지 IP 주소와 동일 네트워크에 있는지 판단
  • 네트워크 ID와 호스트 ID 구분 위치
    • IP 주소의 경우 네트워크를 식별하는 데 쓰이는 비트와 호스트를 식별하는데 쓰이는 비트를 구분하는 지점이 고정돼 있지 않다.
    • 호스트 ID 부분이 모두 1로 설정된 네트워크 ID는 그 네트워크로의 브로드캐스트 주소를 나타낸다.

IP 주소지정 범주와 IP 주소 부속물
    • 네트워크 ID는 라우팅에 쓰이고 호스트 ID는 네트워크에서의 각 네트워크 인터페이스를 유일하게 식별하는 데 쓰인다.
    • ID 구분 지점을 파악하려면 세 가지 IP 주소지정 방법인 클래스 단위, 서브넷, 클래스 비사용 방법을 알아야 한다.
  • 전통적 (클래스 단위) 주소지정
    • 세 가지 주요 주소 클래스인 A, B, C는 얼마나 많은 옥텟이 네트워크 ID와 호스트 ID에 할당됐는지로 구분된다.
    • 예를 들어 클래스 C 주소는 24비트를 네트워크 ID에, 8비트를 호스트 ID에 할당함
  • 서브넷을 이용하는 클래스 단위 주소지정
    • 네트워크 ID와 호스트 ID의 두 단계가 아닌 세 단계로 분리함
    • 클래스 A, B, C 호스트 ID의 일부 비트를 서브넷 식별자(서브넷 ID)로 이용, 여기서 네트워크 ID는 변하지 않음
    • C클래스의 호스트 8비트를 3비트의 서브넷 ID와 5비트의 호스트 ID로 나눌수 있음
  • 클래스 비사용 주소지정
    • 클래스를 전혀 사용하지 않음
    • 구분점은 네트워크 ID에 쓰이는 비트의 수(접두사 길이(prefix length)라고 부름)를 주소 뒤에 붙여서 표시
    • 예로 227.82.157.177이 처음 27비트를 네트워크 ID로 사용하는 네트워크에 속한 IP라면 그 네트워크를 227.82.157.160/27로 표현할 수 있음
  • 서브넷 마스크와 기본 게이트웨이
    • 게이트웨이 식별자는 특정 장비에 대한 기본 라우팅 기능을 제공하는 라우터의 IP 주소다.

IP 주소의 수와 멀티호밍
  • 호스트를 다중 인터페이스 구성으로 만드는 방법
    • 두 개 이상의 인터페이스를 동일한 네트워크에 연결
      • 동일한 네트워크 ID를 갖는 두개의 IP 주소
    • 두 개 이상의 서로 다른 네트워크에 인터페이스를 연결
      • 서로 다른 네트워크 ID를 가짐
    • 서브넷을 사용할 경우에도 동일한 서브넷에 연결하는지, 서로 다른 서브넷에 연결하는지와 같은 구분을 할 수 있다.
  • 멀티호밍(multihoming)
    • 예를 들어 집에 두 대의 PC가 네트워크로 연결돼 있고 전화선이 하나 있다고 할 때, 한 컴퓨터가 인터넷 서비스 제공자(ISP, Internet Service Provider)와 전화 접속을 하고 마이크로소프트의 인터넷 연결 공유(ICS, Internet Connection Sharing)와 같은 소프트웨어를 실행하면 다른 컴퓨터도 인터넷에 접속 할 수 있다.

IP 주소 관리와 할당 방법과 기관
  • 인터넷 할당 번호 관리기관(IANA, Internet Assigned Number Authority)
    • IP 주소 할당
    • 기타 중요 조정 작업(TCP/IP 프로토콜의 인자를 관리하는 등)을 수행
  • 인터넷 이름/번호 할당기관(ICANN, Internet Corporation for Assigned Names and Numbers)
    • IANA의 주소 할당 임무를 감독하며 DNS 네임 등록과 같은 다른 업무도 관리
  • 대륙별 인터넷 레지스트리(RIR, Regional Internet registries)
    • 오늘날 주소지정은 CIDR의 계층적 주소지정 방식을 사용하는 클래스 비사용 방법임
    • IANA는 주소를 직접 할당하지 않음
    • RIR에는 APNIC, ARIN, LACNIC, RIPE NCC가 있음





인터넷 프로토콜 버전, 개념, 개요

IP 개요와 주요 동작 특성

    • IP의 주요 기능 - 인터네트워크 데이터그램 전달 : IP의 전반적인 기능은 서로 연결되지 않은 네트워크 장비간에 데이터를 전달하는 것이다.
  • 전역 주소지정
  • 하위 프로토콜에 무관
  • 비연결형 전달
  • 신뢰성이 없는 전달
  • 비승인형 전달

IP 기능
  • 주소지정
    • 호스트 주소지정 방법 포함
  • 데이텨 캡슐화와 포매팅/패키징
  • 단편화와 재조합
  • 라우팅과 간접 전달
    • 간접적으로 전달하기 위해서는 라우터를 통해 라우팅해야 한다.
    • ICMP(Internet Control Message Protocol), RIP(Routing Information Protocol), BGP(Border Gateway Protocol) 등의 기타 프로토콜과 협력

IP 역사, 표준, 버전, 밀접히 연관된 프로토콜

  • IP 버전과 버전 번호
    • 인터넷 프로토콜(IP) 버전 4는 널리 쓰이기 시작한 맨 처음 IP 버전이며 현재도 널리 쓰이고 있다.
  • IP 관련 프로토콜
    • IP 네트워크 주소 변환(NAT, Network Address Translation)
      • 사설 네트워크가 외부 네트워크에 유연한 방법으로 인터페이스를 제시할 수 있도록 함
      • IP 주소를 공유할 수 있도록 하며 공중 네트워크에 있는 호스트가 사설 IP 주소르르 갖는 호스트에 접근하는 것을 어렵게 만들어 보안을 강화함
    • IP Security(IPsec)
      • IP를 이용하여 안전한 데이터 전송을 위한 방법을 제공하는 하위 프로토콜 모음을 정의
    • 모바일 IP
      • 한 네트워크에서 다른 네트워크로 자주 이동하는 컴퓨터에서 IP를 사용하는 것과 관련된 일부 문제점을 해결하기 위한 프로토콜
      • 장비의 IP 주소를 계속해서 재구성하지 않고도 모바일 호스트로 데이터가 자동 라우팅되도록 함




2013년 9월 30일 월요일

역순 주소 결정과 TCP/IP 역순 주소 결정 프로토콜

※부트스트래핑: 아무것도 없는 상태에서 어떤 것을 시작하는 것

역순 주소 결정 프로토콜

  • 역순 주소 결정 프로토콜(RARP, Reverse Address Resolution Protocol)은 장비가 TCP/IP 네트워크에서 사용할 수 있는 IP 주소를 얻도록 하는 초창기에 나온 간단한 프로토콜이다.
  • RARP는 ARP에 근거를 두고 있으며 기본적으로 ARP와 동일하게 동작한다. 다만 그 방향이 반대다.
  • 장비는 하드웨어 주소를 담은 요청을 보내고, RARP 서버로 설정된 장비는 요청을 보낸 장비에게 할당된 IP 주소 정보를 담은 응답을 보낸다.

RARP 일반 동작
  1. 출발지 장비가 RARP 요청 메시지를 생성
  2. 출발지 장비가 RARP 요청 메시지를 브로드캐스트
  3. 로컬 장비가 RARP 요청 메시지를 처리
  4. RARP 서버가 RARP 응답 메시지를 생성
  5. RARP 서버가 RARP 응답 메시지를 전송
  6. 출발지 장비가 RARP 응답 메시지를 처리

RARP의 제약
  • 하위 수준 하드웨어 기반
  • 수동 할당
    • 호스트는 자동으로 IP 설정
    • RARP 서버는 하드웨어와 IP 주소 매핑 테이블을 관리자가 직접 설정.
  • 제한된 정보
    • 호스트에게 오직 IP 주소만을 알려준다.
    • RARP는 서브넷 마스크나 기본 게이트웨이 같은 기타 중요 정보를 제공할 수 없다.

※ 1980년대 초반 이후로 호스트 설정의 중요성은 매추 커졌다. RARP는 TCP/IP 프로토콜 스택의 상위 계층에서 동작하는 좀더 강력한 기능의 프로토콜인 BOOTP와 DHCP에게 자리를 내주었다.

2013년 9월 24일 화요일

주소 결정과 TCP/IP 주소 결정 프로토콜

주소 결정 개념과 이슈
  • 주소 결정 필요성
    • 2계층과 3계층에서의 주소지정
      • 주소지정을 다루는 계층은 데이터 링크 계층과 네트워크 계층
      • 네트워크 계층 위에 있는 계층들은 모두 네트워크 계층 주소를 이용
      • 주소결정이 필요한 이유는 장비들이 논리적으로는 3계층 주소로 통신하지만, 실제 물리적 통신을 2계층(하드웨어) 주소를 통해 수행하기 때문임
    • 일반적인 주소 결정 방법
      • 주소 결정에는 기본적으로 직접 매핑과 동적 결정의 두 방법이 있다
  • 직접 매핑을 통한 주소 결정
    • 직접 매핑은 어떻게 동작하는가
      • 2계층과 3계층 주소 중 하나를 알면 나머지 하나를 알 수 있도록 하는 방법
    • 직접 매핑의 문제점
      • 2계층 주소가 3계층 주소보다 크면 직접 매핑을 정의하는 것이 불가능함
      • 하드웨어 주소가 네트워크 주소보다 크다면 부분 매핑을 할 수 있다.
  • 동적 주소 결정
    • 동적 매핑은 어떻게 동작하는가
      1. 데이터를 보내고자 하는 장비는 다른 장비의 하드웨어 정보를 받고 싶다는 요청을 브로드 캐스트 한다
      2. 장비 A는 장비 B에게 데이터를 보내고 싶지만 하드웨어 주소를 모르고 오직 IP 주소(IPB)만을 알고 있다
      3. 장비 A는 IPB를 가지고 있는 장비에게 자신의 하드웨어 주소를 알려달라는 요청을 브로드캐스트한다.
      4. 장비 B는 장비 A에게 직접 자신의 하드웨어 주소를 알려 준다.
    • 동적 주소 결정 캐싱과 효율성 문제
      • 각 프레임을 보낼 때마다 주소 결정을 다시 하는 것은 어리석은 일이다
      • 한 장비의 네트워크 계층 주소를 해당하는 데이터 링크 계층 주소를 알아내면 그 정보는 일정 기간동안 메모리에 남아 있다
      • 다음에 2계층 주소를 탐색할 일이 있으면 장비는 캐시를 검사한다
    • 기타 동적 결정 개선 방법
      • 교차 결정을 통한 효율성 향상: 장비 A가 장비 B의 주소를 파악할 때, B도 A를 캐싱
      • 나중을 위해 먼저 캐싱

TCP/IP 주소 결정 프로토콜(ARP)
    • 주소 결정 프로토콜(ARP)는 IP 주소에 해당하는 데이터 링크 계층 주소를 파악하는 데 쓰이는 강력한 기능의 동적 결정 프로토콜이다.
    • 여기서의 주소 결정 프로토콜은 인터넷 프로토콜 버전 4(IPv4)의 유니캐스트 주소를 변환하는데 쓰인다. IPv4의 멀티캐스트 주소는 직접 매핑을 사용하며 IPv6는 ARP 대신 주변 탐색 프로토콜을 사용한다.
    • RFC 826("이더넷 주소 결정 프로토콜", 1982)로 문서화 됨
    • ARP는 IP와 이더넷 주소 간에 동적 주소 결정을 하기 위해 개발됐으며 지금은 다른 2계층 기술에도 쓰인다. ARP는 IP 장비가 로컬 네트워크에 요청을 브로드캐스트하고, 해당 IP 주소를 가지고 있는 장비가 하드웨어 주소를 응답하는 방식으로 동작한다.
    • 캐시 항목을 관리하는 데 쓰이는 방법을 향상하기 위한 여러 기법이 개발됐다.
      • 장비 한 쌍의 교차 결정이나 프록시 ARP 같은 추가/개선 기능이 기본 ARP 기능에 추가됐다
  • ARP 주소 명세와 일반 운영
    • 전송 IP 데이터그램이 있으면 트랜잭션 시작
    • 목적지 장비가 로컬 네트워크이냐 원격 네트워크이냐 확인
    • 로컬이면 직접 전송, 원격이면 라우터로 전송하여 전달
    • 로컬에서 데이터그램의 임시 목적지가 될 장비의 IP 주소를 파악해야 함
    • IP 주소 정보 포함 패키징 후 주소 결정을 위해 ARP 소프트웨어로 전달
    • ARP의 기본동작
      • 출발지 장비는 목적지 장비에 관한 정보를 담은 요청을 브로트캐스트
      • 요청을 받은 목적지 장비는 출발지 장비에게 자신의 하드웨어 주소를 알려주는 응답을 유니캐스트
  • ARP 메시지 유형과 주소 표시
    • ARP 메시지 유형
      • 출발지 -> 목적지
      • 목적지 -> 출발지
    • 주소 표시
      • 송신자 하드웨어 주소: ARP 메시지 송신자의 2계층 주소
      • 송신자 프로토콜 주소: ARP 메시지 송신자의 3계층(IP) 주소
      • 수신자 하드웨어 주소: ARP 메시지 수신자의 2계층 주소
      • 수신자 프로토콜 주소: ARP 메시지 수신자의 3계층(IP) 주소
  • ARP 일반 동작
    1. 출발지 장비가 캐시를 검사
    2. 출발지 장비가 ARP 요청 메시지를 생성
    3. 출발지 장비가 ARP 요청 메시지를 브로드캐스트
    4. 로컬 장비들이 ARP 요청 메시지를 처리
    5. 목적지 장비가 ARP 응답 메시지를 생성
    6. 목적지 장비가 ARP 캐시를 갱신
    7. 목적지 장비가 ARP 응답 메시지를 보냄
    8. 출발지 장비가 ARP 응답 메시지를 처리
    9. 출발지 장비가 ARP 캐시를 갱신
  • ARP 메시지 포맷
    • ARP 메시지 포맷
필드 이름 크기(바이트) 설명
HRD 2 하드웨어 유형: 이 필드는 ARP 메시지를 전송하는 로컬 네트워크에서 사용하는 하드웨어의 유형을 지정하며, 더불어 사용하는 주소지정 방식도 규정한다. 이 필드에 자주 사용하는 값이 'HRD 필드값'이다.
PRO 2 프로토콜 유형: 이 필드는 하드웨어 유형 필드를 보완하며 메시지에서 사용하는 3계층 주소의 유형을 지정한다. IPv4 주소의 경우 이 값은 2048(16진수로 0800)인데 이것은 IP를 위한 EtherType 코드와 일치한다.
HLN 1 하드웨어 주소 길이: 이 메시지에 포함된 하드웨어 주소 길이를 바이트 단위로 지정한다. 이더넷 또는 IEEE 802 MAC 주소를 사용하는 기타 네트워크에서 이 값은 6이다.
PLN 1 프로토콜 주소 길이: 이 메시지에 포함된 프로토콜(3계층) 주소 길이를 바이트 단위로 지정한다. IPv4 주소의 경우 이 값은 4다.
OP 2 동작 코드: 이 필드는 전송중인 ARP 메시지의 본질을 지정한다. 일반 ARP에는 1과 2 값이 쓰인다. 그 밖에 ARP 프레임 포맷을 사용하는 기타 프로토콜(예: RARP)을 지원하기 위한 여러 다른 값이 'ARP 동작코드(OP, Opcode) 필드값'과 같이 정의돼 있다. 이들 중 일부 프로토콜은 다른 프로토콜보다 널리 쓰인다.
SHA 가변적,HLN필드의 값과 동일함 송신자 하드웨어 주소: 이 메시지를 송신하는 장비의 하드웨어(2계층) 주소. 요청 메시지일 경우 그 장비는 출발지 장비고, 응답 메시지일 경우 그 장비는 목적지 장비다.
SPA 가변적, PLN 필드의 값과 동일함 송신자 프로토콜 주소: 이 메시지를 송신하는 장비의 IP 주소
THA 가변적, HLN 필드의 값과 동일함 수신자 하드웨어 주소: 이 메시지를 수신하는 장비의 하드웨어(2계층) 주소. 요청 메시지일 경우 그 장비는 목적지 장비고, 응답 메시지일 경우 그 장비는 출발지 장비다.
TPA 가변적, PLN 필드의 값과 동일함 수신자 프로토콜 주소: 이 메시지를 수신하는 장비의 IP 주소

    • ARP Hardware Type(HRD) 필드값
HRD 값 하드웨어 유형
1 이더넷(10Mb)
6 IEEE 802 네트워크
7 ARCNeT
15 프레임 중계(릴레이)
16 비동기 전송 방식(ATM)
17 HDLC
18 파이버 채널(Fibre Channel)
19 비동기 전송 방식
20 직렬 회선

    • ARP 동작 코드(OP, Opcode) 필드값
동작 코드 ARP 메시지 유형
1 ARP 요청
2 ARP 응답
3 RARP 요청
4 RARP 응답
5 DRARP 요청
6 DRARP 응답
7 DRARP 에러
8 InARP 요청
9 InARP 응답

    • ARP 메시지 포맷


  • ARP 캐싱
    • 정적/동적 ARP 캐시 항목
      • 정적 ARP 캐시 항목: 장비의 캐시 테이블에 수동으로 추가되고 만료 기간 없이 영구히 캐시에 남아 있음
      • 동적 ARP 캐시 항목
        • 과거에 성공한 ARP 주소 결정의 결과로 소프트웨어 자체에서 캐시에 추가한 하드웨어와 IP 주소 쌍
        • 일정 기간 동안 캐시에 남아 있다가 제거됨
    • 캐시 항목 만료
      • 다음의 경우 만료가 필요함
        • 장비 하드웨어 상태 변경
        • 장비 IP 주소 변경
        • 장비 제거
      • ARP 구현에서는 일반적으로 10에서 20분의 만료 시간을 지정
      • 시간이 만료된 항목은 캐시에서 제거
    • 기타 캐싱 특징
      • 경우에 따라 브로드캐스트에 대한 갱신 수행
  • 프록시 ARP
    • 라우터에 의한 장비간의 연결에서 A의 브로드캐스트가 B에게 전달되지 않는 문제에 대한 해결책
    • 라우터가 장비 A에게 자신의 하드웨어 주소를 응답
    • 실제로 물리 네트워크에 있지는 않지만 네트워크 계층에서는 마치 동일 네트워크에 있는 것처럼 설정된 네트워크에 적합

IP 멀티캐스트 주소의 TCP/IP 주소 결정
※IP 멀티캐스트 주소는 IP 멀티캐스트 그룹 주소의 28비트 중 23비트를 사용하는 직접 매핑 기법을 통해 IEEE 802 (이더넷) MAC 주소로 변환된다.
  • 멀티캐스트 IP 주소를 IEEE 802 멀티캐스트 MAC 주소로 매핑
    • 멀티캐스트 IP 주소를 IEEE 802 멀티캐스트 MAC 주소로 변환하려면 IANA 멀티캐스트 OUI 값을(01-00-5E) 상위 24비트로 복사하고, 25번째 비트를 0으로 설정하고, 멀티캐스트 IP 주소의 하위 23비트를 멀티캐스트 MAC 주소의 나머지 23비트에 복사한다.
    • 이 방법은 멀티캐스트 IP 주소의 5비트(어두운부분)를 MAC 주소로 매핑하는데 제외 시킨다.
    • 그래서 32개의 서로 다른 IP 주소가 동일한 멀티캐스트 MAC 주소로 매핑될 수 있다.

IP 버전 6의 TCP/IP 주소 결정
    • IPv6는 주소 결정을 위해 ARP 대신 새로운 주변 탐색(ND, Neighbor Discovery) 프로토콜을 이용한다.
    • IPv6 데이터그램을 보내고자 하는 장비는 다른 장비의 주소를 얻기 위해 주변 정보 요청 메시지를 보낸다.
    • 가능한 경우, 효율성을 높이기 위해 이 요청 메시지는 브로트캐스트가 아닌 특수한 유형의 멀티캐스트 주소로 전송된다.

PPP 프로토콜 프레임 포맷 (12)

PPP 일반 프레임 포맷

PPP 기능 프로토콜 (11)

PPP 링크 품질 모니터링과 리포팅

PPP핵심 프로토콜: 링크제어, 네트워크 제어, 인증 (10)

링크 제어 프로토콜

2013년 9월 23일 월요일

TCP/IP 직렬 회선 인터넷 프로토콜과 점대점 프로토콜의 개요와 기초

SLIP과 PPP 비교
  • SLIP(직렬 회선 인터넷 프로토콜, Serial Line Internet Protocol)과 PPP(점대점 프로토콜, Point-to-Point Protocol)는 2계층 기술이 존재하지 않고 물리 계층 링크에서 직접 운영되는 TCP/IP 구현에게 2계층 연결 기능을 제공한다.
  • PPP는 SLIP보다 복잡하지만 기능이 막강하기 때문에 더 많이 쓰인다.
  • 두 장비 간의 연결에 쓰이도록 설계됐다.

직렬 회선 인터넷 프로토콜
    • SLIP은 IP 데이터그램을 위한 2계층 프레이밍 서비스를 제공하지만 기타 다른 기능은 전혀 제공하지 않는다.
  • SLIP 데이터 프레이밍 방법과 일반 동작
    • 데이터그램을 바이트로 나눈다
    • 데이터그램의 맨 마지막 바이트 다음에 END 문자(192)를 보낸다. 더 나은 구현에서는 첫 바이트 이전에도 END 문자를 보낸다
    • 전송할 데이터그램에 들어 있는 192 값을 갖는 1바이트를 219 220 값을 갖는 2바이트로 치환한다.
    • 데이터 그램을 한 바이트씩 보낸다.
    • 즉, 3계층에서 받은 데이터(보통 IP 데이터그램)를 END 문자로 감싸고 필요할 경우 특수 문자를 치환함으로써 프레이밍 하는 것이다.
  • SLIP의 문제와 한계
    • 표준화된 데이터그램 크기 명세 없음
    • 에러 탐지와 정정 방법 없음
    • 제어 메시지 전송 없음
    • 유형 식별 안됨 (헤더가 없으므로)
    • 주소 탐색 방법 없음
    • 압축 지원 안함
    • 보안 기능 없음

점대점 프로토콜 개요와 기본
    • PPP는 프로토콜이라고 불리며 TCP/IP의 일부라고 인식되지만 사실은 프로토콜 슈트에 가깝다. 왜냐하면 PPP의 동작은 여러 개별 프로토콜에서 정의한 절차에 근거를 두고 있기 때문이다. 표준에서 그렇게 부르지는 않지만 PPP의 구성 요소를 PPP의 하위 프로토콜로 간주하는 시각도 있다.
  • 개발과 표준화
    • IETF는 PPP를 완전히 처음부터 만드는 대신 ISO의 상위 수준 데이터 링크 제어 프로토콜에 기반을 두고 만들기로 결정
    • HDLC는 동기식 데이터 연결 제어 프로토콜에서 유래한 프로토콜
    • PPP의 개발자는 프레이밍 구조와 기타 여러 기능을 HDLC에서 가져옴
  • 기능과 구조
    • PPP는 TCP/IP의 네트워크 인터페이스 계층(링크 계층)에 속함
    • PPP의 동작은 특정한 순서를 따르며 다중단계 연결수립(Link Establishment) 과정(선택적으로 인증을 포함함)을 포함
  • 장점과 이익
    • SLIP의 단일 END 문자 방식보다 훨씬 포괄적인 프레이밍 방식
    • 단일 링크에서 여러 3계층 프로토콜을 다중화할 수 있는 캡슐화 프로토콜 명세 제공
    • 각 프레임 헤더에 순환 잉영 검사(CRC, cyclic redundancy check) 코드를 삽입하여 각 전송 프레임의 에러를 탐지
    • 링크 인자(허용되는 최대 프레임 크기 포함) 협상을 위한 안정적인 방식
    • 데이터그램 전송이 일어나기 전에 링크를 테스트하고, 링크 품질을 모니터링 하는 방법 제공
    • 여러 인증 프로토콜을 이용해 연결을 인증할 수 있음
    • 압축, 암호화, 링크 통합(두 장비가 여러 물리 링크를 마치 하나의 고성능 링크인 것처럼 사용할 수 있게 함)과 같은 추가 선택 기능을 지원함
    • 주요 장점은 확장성
    • PPPoe(PPP over Ethernet)와 PPPoA(PPP over ATM)같이 PPP에서 파생된 프로토콜도 개발
  • PPP 주요 구성 요소
    • PPP 캡슐화 방법
      • 캡슐화 하기 위한 특수 프레임 포맷(HDLC의 프레이밍에 기반함)을 정의
      • PPP 프레임은 크기가 작음
      • 대역폭 효율과 처리 속도를 극대화하기 위해 적은 수의 필드만을 포함
    • 링크 제어 프로토콜(LCP, Link Control Protocol)
      • 장비간 링크의 수립, 유지, 종료를 책임
    • 네트워크 제어 프로토콜(NCP, Network Control Protocol)
  • PPP 기능 그룹
    • LCP 지원 프로토콜
    • LCP 선택적 기능 프로토콜
  • 일반 동작
    • 링크 수립과 구성
      • 두 장비는 링크의 운영을 관리하는 데 필요한 인자에 동의해야 함
      • LCP는 이 절차를 시작하며 필요할 경우 지원 프로토콜의 도움을 받음
    • 링크 동작
      • 장비들은 링크를 사용하여 데이터그램을 전송
      • 각 장비는 3계층 데이터그램을 캡슐화하여 1계층으로 송신
      • 필요할 경우 압축(CCP)과 같은 기능을 위해 선택적으로 특수 프로토콜을 이용
    • 링크 종료
  • PPP 링크 수립과 단계
    • 링크 비활성화 단계
    • 링크 수립 단계
    • 인증 단계
    • 네트워크 계층 프로토콜 단계
    • 링크 개방 단계
    • 링크 종료 단계

  • PPP 표준
    • PPP 단계
단계/상태 단계 요약 LCP 링크 상태 NCP 링크 상태 상태 이동 요구 조건 -> 다음단계
링크 비활성화 기본 상태. 물리 계층이 연결되지 않음 닫힘 닫힘 물리 계층 연결 성공 -> 링크 수립
링크 수립 물리 계층이 연결됨. LCP가 기본 링크 구성을 수행함 닫힘 닫힘 협상성공 -> 인증
협상 실패 -> 링크 종료
인증 기본 링크가 열렸으며, 열림 닫힘 선택적으로 장비 인증을 할 수 있음 열림 닫힘 인증 성공 또는 인증이 필요 없는 경우 -> 네트워크 계층 프로토콜
링크 비활성화 ->링크 종료
네트워크 계층 프로토콜 LCP 링크 내에서 하나 이상의 NCP가 NCP 링크를 개방함 열림 닫힘 모든 NCP가 열림 -> 링크 개방
링크 개방 링크가 열리고 정상적으로 동작함 열림 열림 링크 오류 또는 폐쇄 요청 -> 링크 종료
링크 종료 LCP 링크가 닫힘 열림 열림 -> 링크 비활성화

    • PPP 표준
그룹 RFC번호 표준 이름 설명
핵심 1570 PPP LCP 확장 LCP를 위한 두 가지 기능을 정의한다. 이들 기능은 장비가 서로를 식별하고, 상대방에게 현재 세션의 남은 시간을 알려주도록 한다.
1661 점대점 프로토콜 PPP의 기본 표준. PPP 구조와 일반 동작(링크 수립, 유지, 종료 절차 포함), LCP에 대한 세부 사항을 설명한다.
1662 PPP의 HDLC와 유사한 프레이밍 PPP 프레임을 위한 프레이밍 방법(HDLC에 기반함)을 정의한다. 이 표준은 주 PPP 표준인 RFC 1661을 보완한다.
LCP지원 1334 PPP 인증 프로토콜 두 가지 PPP 인증 프로토콜인 PAP와 CHAP를 정의한다. RFC 1994는 RFC 1334의 최신 버전이기는 하지만 PAP을 설명하지 않는다(그렇다고 해서 IETF가 PAP를 경시하는 것은 아니다)
1994 PPP 챌린지 핸드셰이크 인증 프로토콜 RFC 1334에 나온 CHAP 관련 정보를 갱신한다.
NCP 1332 PPP 인터넷 프로토콜 제어 프로토콜 IP용 NCP
1377 PPP OSI 네트워크 계층 제어 프로토콜 OSI 프로토콜 슈트의 네트워크 계층 프로토콜(예: CNLP, ES-IS, IS-IS)을 위한 NCP
1378 PPP AppleTalk 제어 프로토콜 AppleTalk 프로토콜용 NCP
1552 PPP 인터네트워킹 패킷 교환 제어 프로토콜 노벨 IPX 프로토콜용 NCP
2043 PPP SNA 제어 프로토콜 IBM의 Systems Network Architecture(SNA)용 NCP
2097 PPP 넷바이오스 프레임 제어 프로토콜 넷바이오스 프레임(NBF, NetBIOS Frames, 흔히 NetBEUI라고 부름)용 NCP
2472 PPP 위에서의 IP 버전 6 IPv6용 NCP인 IPv6 제어 프로토콜
기능 1962 PPP 압축 제어 프로토콜 PPP 링크로 전송되는 데이터를 압축하여 성능을 향상시키는 방법을 정의한다. 이 표준은 PPP 링크에서 두 장비가 어떻게 압축을 협상하는지 설명한다. 이 프로토콜은 실제 데이터 압축을 수행하는 여러 압축 알고리즘과 함께 쓰인다.
1968 PPP 암호 제어 프로토콜 PPP 링크로 전송되는 데이터를 암호화하여 성능을 향상시키는 방법을 정의한다. 이 표준은 두 장비가 어덯게 암호화를 협상하는지 설명한다. 이 프로토콜은 여러 암호화 알고리즘과 함께 쓰인다.
1989 PPP 링크 품질 모니터링 PPP 장비가 링크 품질에 대한 보고서를 생성하도록 하는 프로토콜을 정의한다.
1990 PPP 다중링크 프로토콜 PPP를 여러 결합된 링크 위에서 운영하는 방법을 정의한다. 이렇게 함으로써 두 장비는 여러 낮은 대역폭 링크를 하나의 높은 대역폭 가상 링크로 사용할 수 있다.
2125 PPP 대역폭 할당 프로토콜 / PPP 대역폭 할당 제어 프로토콜 PPP MP를 이용해 결합된 링크의 대역폭 할당을 관리하는 두 지원 프로토콜을 정의한다.
애플리케이션 1618 ISDN 위에서의 PPP PPP를 ISDN 링크에서 운영하는 방법을 설명한다.
1973 프레임 릴레이 위에서의 PPP PPP를 프레임 릴레이 위에서 전송할 수 있도록 2계층에서 수정해야 할 부분을 설명한다.
2290 PPP IPCP를 위한 모바일-IPv4 설정 옵션 모바일 IP를 지원하기 위해 PPP IPCP에서 바뀌어야 할 부분을 정의한다.
2364 AAL5 위에서의 PPP AAL5(ATM) 위에서의 PPP(PPPoA) 프레임을 보내는 방법을 정의한다.
2516 이더넷 위에서의 PPP를 전송하는 방법 이더넷 위에서의 PPP 프레임(PPPoE)을 캡슐화하는 기법을 정의한다.
2615 SONET/SDH 위에서의 PPP SONET/SDH 링크 위에서의 PPP 프레임을 캡슐화하는 방법을 설명한다.

2013년 9월 11일 수요일

TCP/IP 프로토콜 슈트와 구조

TCP/IP 개요와 역사
  • TCP/IP 역사와 개발 과정
    • 원래 미국 국방부 고등 연구 계획국(DARPA 또는 ARPA, Defense Advanced Research Projects Agency)에서 만든 연구 네트워크의 일부로 설계 - ARPAnet이라 불림
    • 1973년 TCP(Transmission Control Program) 개발
    • 1977년 3월 TCP 버전 2가 문서화 - TCP가 너무 많은 짐을 지고 있음
    • 1980년 TCP와 IP가 공식 표준
  • TCP/IP의 성공에 중요한 역할을 한 요인
    • 통합 주소지정 체계
    • 라우팅을 위한 설계
    • 하부 네트워크와의 독립성
    • 확장성
    • 표준과 개발 절차 공개
    • 보편성

TCP/IP 서비스
  • 다른 프로토콜에 제공하는 서비스
  • 최종 사용자 서비스

TCP/IP 클라이언트/서버 구조 모델
    • TCP/IP 서비스는 주로 클라이언트/서버 모델에서 동작
  • 하드웨어와 소프트웨어의 역할
    • 웹 브라우저는 클라이언트 소프트웨어, 서버측은 다르다.
  • 트랜잭션 역할
    • 트랜잭션이란 특정 거래를 위해 컴퓨터 시스템이 완료해야 하는 일련의 처리 동작을 의미

TCP/IP 구조와 모델

    • TCP/IP 프로토콜 슈트는 OSI 참조 모델이 나오기 전에 개발됨
    • 개발자들은 고유한 구조 모델을 만듦(TCP/IP모델 또는 DARPA모델, DoD모델 등의 이름으로 불림)
  • 네트워크 인터페이스 계층(Network Interface Layer)
    • OSI 참조 모델의 데이터링크 계층(2계층)에 대응
    • 링크 계층이라고도 불림
    • 네트워크 접근 계층이라고 부르는 경우도 있음
  • 인터넷 계층(Internet Layer)
    • OSI 참조 모델의 네트워크 계층에 해당
    • 논리적 장비 주소지정, 데이터 패키징, 조작과 전달, 라우팅 등
    • 핵심인 IP, ICMP, 라우팅 프로토콜(RIP, OSFP, BGP 등) 등의 프로토콜이 존재
    • 차세대 IP인 IP 버전 6도 이 계층에 속함
  • 호스트 간 전송 계층(Host-to-Host Transport Layer)
    • 인터네트워크 상에서 종단간 통신을 쉽게 하는 것
    • 데이터를 보낼 수 있도록 하는 논리적 연결을 맺도록 함
    • 특정 출발지와 목적지 애플리케이션 프로세스를 식별하는 작업도 수행
    • TCP와 UDP가 핵심임
  • 애플리케이션 계층(Application Layer)
    • 최상위 계층
    • OSI 모델의 5에서 7계층까지를 포함
    • HTTP, FTP, SMTP와 같은 애플리케이션 프로토콜
    • SNMP, DHCP, DNS와 같은 관리 프로토콜

TCP/IP 프로토콜
※요약정보
TCP/IP 계층 프로토콜 약어 프로토콜 이름 설명
2계층 SLIP 직렬 회선 인터넷 프로토콜 직렬 회선으로 두 장비 간 2계층 연결을 맺어 기본적인 TCP/IP 기능을 제공한다.
2계층 PPP 점대점 프로토콜 SLIP과 같이 2계층 연결을 제공하지만 훨씬 복잡하고 강력하다. PPP는 그 자체로 프로토콜(또는 서브프로토콜) 슈트이며 인증, 데이터 캡슐화, 암호화, 링크 통합 등의 기능을 통해 WAN 링크에서 TCP/IP 동작을 촉진한다.
2/3계층 ARP 주소 결정 프로토콜 3계층 IP 주소를 2계층 물리적 네트워크 주소로 변환하는 데 쓰인다.
2/3계층 RARP 역순 주소 결정 프로토콜 머신의 2계층 주소를 가지고 3계층 주소를 알아낸다. 지금은 대부분 BOOTP와 DHCP로 대체됐다.
3계층 IP,
IPv6
인터넷 프로토콜,
인터넷 프로토콜 버전 6
TCP/IP 네트워크에서 전송 계층 메시지의 캡슐화와 비연결형 전달을 제공한다. 그리고 주소지정과 라우팅 기능도 제공한다.
3계층 IP NAT IP 네트워크 주소변환 사설 네트워크 주소를 자동으로 공중 네트워크 주소로 변환하여 주소를 공유하고 보안을 강화할 수 있도록 한다(일부 사람들은 IP NAT가 그 이름과 정확히 일치하는 프로토콜이 아니라고 주장한다).
3계층 IPsec IP Security IP 전송의 보안을 강화하는 IP 관련 프로토콜 모음
3계층 모바일 IP 인터넷 프로토콜 이동성 지원 모바일 장비와 연관된 IP의 일부 문제를 해결한다.
3계층 ICMP/ICMPv4,
ICMPv6
인터넷 제어 메시지 프로토콜 IP와 IPv6의 지원 프로토콜로 호스트 에러 보고와 정보 요청 응답 기능을 제공한다.
3계층 NDP 주변 탐색 프로토콜 IPv6에 새로 도입된 지원 프로토콜로 기존 IP의 ARP와 ICMP가 수행하던 기능을 포함한다.
3계층 RIP,

OSPF,

GGP,

HELLO,
IGRP,

EIGRP,

BGP,
EGP

라우팅 정보 프로토콜,
최단 경로 우선 프로토콜,
게이트웨이 간 프로토콜,
HELLO 프로토콜,
내부 경로 제어 프로토콜,
확장 내부 경로 제어 프로토콜,
경계 경로 프로토콜,
외부 게이트웨이 프로토콜
IP 데이터그램을 라우팅하고 라우팅 정보를 교환하는 데 쓰이는 프로토콜
4계층 TCP 전송 제어프로토콜 TCP/IP의 주요 전송 계층 프로토콜. 장비 간에 연결을 수립하고 관리하며 IP를 이용해 안정적이고 흐름 제어 가능한 방법으로 데이터를 전달하는 것을 보장한다
4계층 UDP 사용자 데이터그램 프로토콜 TCP의 기능을 대폭 축소한 버전이라고 볼 수 있는 전송 프로토콜. UDP는 애플리케이션 프로세스 간에 데이터를 보낼 때 사용할 수 있는 단순한 방법이다. UDP는 TCP와 같이 안정성과 흐름 관리 기능을 제공하지는 않지만 TCP보다 훨씬 효율적이다.
App 계층 DNS 도메인 네임 시스템 숫자로 된 IP 주소가 아니라 이름을 이용해서 IP 장비를 가리킬 수 있도록 한다. 머신의 이름을 해당하는 IP 주소로 변환한다.
App 계층 NFS 네트워크 파일 시스템 파일을 TCP/IP 네트워크에서 편리하게 교환할 수 있도록 한다.
App 계층 BOOTP 부트스트램 프로토콜 RARP와 관련된 문제를 해결하기 위해 개발됐고 RARP와 유사하게 쓰인다. BOOTP는 TCP/IP 장비의 추기 부팅시 환경 설정을 돕는다. BOOTP는 대부분 DHCP로 대체됐다.
App 계층 DHCP 동적 호스트 설정 프로토콜 TCP/IP 장비를 구성하고 IP 주소를 관리하기 위한 완전한 프로토콜. RARP와 BOOTP의 후속 프로토콜이며 여러 특징과 기능을 제공한다.

SNMP 단순 네트워크 관리 프로토콜 네트워크와 장비의 원격 관리를 위한 완전한 기능을 제공하는 프로토콜

RMON 원격 모니터링 네트워크 장비를 원격 모니터링하는 데 쓰이는 진단 프로토콜(SNMP의 일부임)

FTP,
TFTP

파일 전송 프로토콜,
간이 파일 전송 프로토콜
한 장비에서 다른 장비로 모든 유형의 파일을 전송하기 위해 설계된 프로토콜

RFC 822,
MIME,

SMTP,

POP,

IMAP

RFC 822,
다목적 인터넷 메일 확장,
단순 메일 전송 프로토콜,
포스트 오피스 프로토콜,
인터넷 메시지 접근 프로토콜
TCP/IP 네트워크에서 이메일 메시지의 포매팅, 전달, 저장을 정의하는 프로토콜

NNTP 유즈넷 뉴스 전송 프로토콜 호스트 간에 유즈넷 뉴스 메시지를 전달하여 유즈넷 온라인 커뮤니티가 잘 운영되도록 한다.

HTTP 하이퍼텍스트 전송 프로토콜 호스트 간에 하이퍼텍스트 문서를 전달한다. 월드와이드웹을 구현하는 프로토콜.

Gopher 고퍼 프로토콜 예전에 쓰이던 문서 검색 프로토콜로 월드와이드웹에 의해 대부분 대체됐다.

Telnet 텔넷 프로토콜 한 머신의 사용자가 원격 머신의 터미널 세션에 연결할 수 있도록 한다.

- 버클리 "r" 명령 원격 머신에서 명령과 작업을 수행할 수 있도록 한다.

IRC 인터넷 릴레이 채팅 TCP/IP 사용자 간에 실시간 대화를 할 수 있도록 한다.

- 관리/문제해결용 유틸리티와 프로토콜 관리자가 TCP/IP 인터네트워크를 관리하고, 구성하고, 문제를 해결할 수 있도록 하는 소프트웨어 도구 모음

※TCP/IP 프로토콜