네트워크계층

Updated:

강의

http://www.kocw.net/home/search/kemView.do?kemId=1159726

네트워크계층

  • 라우팅 기법 : 전송 측에서 목적지 호스트까지 데이터 패킷이 거쳐가는 최적의 경로를 선택하여 배정하는 기능

  • DV 라우팅 : 주변정보 거리 계산
  • LS 라우팅 : 전체 네트워크의 비용을 계산

1. IP 주소 체계

  • IPv4 : 32비트, IPv6 : 128비트

  • 주민등록번호 : 컴퓨터가 생산되면 각 고유의 번호를 부여
    • IP 개수 부족
    • 만일 충분하다면? 개별 IP 등록, 관리가 불가능. 데이터, 비용 낭비
    • 전화는 Circuit 스위칭. 인터넷은 패킷 스위칭.
    • 서킷 스위칭은 연결 비용이 많이 들어도 됨. 한 번 연결되면 계속 이용.
  • 우편주소체계
    • IP가 ISP에 따라 바뀔 수 있다.
    • 고정 IP의 경우 모든 컴퓨터 설정 정보를 바꿔야 함
    • IP 개수 부족

1.1 Classless Inter-Domain Routing (CIDR)

  • 클래스 없는 도메인 간 라우팅 기법으로1993년 도입되기 시작한, 최신의 IP주소 할당 방법이다.

  • 기존의 IP 주소 할당 방식이었던 네트워크 클래스를 대체하였다.

  • IP 주소의 영역을 여러 네트워크 영역으로 나눌 때 기존방식에 비해 유연성을 더해준다.

  • 급격히 부족해지는 IPv4 주소를 보다 효율적으로 사용하게 해준다.

  • 접두어를 이용한 주소 지정 방식을 가지는 계층적 구조를 사용함으로써 인터넷 광역 라우팅의 부담을 줄여준다.

  • 형태 : 192.30.250.00/18

  • “192.30.250.00”은 네트웍 주소 그 자체이며, “18”이라는 것은 처음 18 비트가 네트웍 주소 부분

  • 나머지 14 비트가 특정한 호스트 주소라는 것을 가리킨다.

1.2 서브넷 (Subnet)

  • 서브넷은 말그대로 부분망이라는 의미
  • IP 주소에서 네트워크 영역을 부분적으로 나눈 부분망, 부분 네트워크를 의미.
  • 그리고 이 서브넷을 만들 때 쓰이는 것이 바로 서브넷 마스크 이다..
  • 서브넷 마스크를 이용하여 IP주소 체계의 네트워크 ID와 host ID를 서브넷 마스크를 통해 분리할 수 있다.
  • IP주소는 IP 클래스에 의해 분리되는 Network Prefix와 나머지 Host Number로 분리되게 된다.
  • 서브넷 마스크에 의해 이루어지는 서브넷팅은 이 Host Number를 Subnet Number와 서브넷안에서 식별되는 Host Number로 다시 분리

  • 서브넷 마스크의 형태는 기본적으로 IP주소와 같은 32bit 이진수.
  • IP와 똑같은 xxx.xxx.xxx.xxx 의 형태를 가지고 있다.
  • 서브넷 마스크의 목적은 IP주소와 AND연산하여 Network 부분의 정보를 걸러내려는 것입니다.
  • 아래는 각 IP 클래스들의 기본 서브넷(Default Subnet)

  • 클래스 A를 예로 들어보면 클래스 A의 IP가 116.81.97.8 일 경우 클래스 A의 서브넷 마스크는 255.0.0.0 이므로 이것을 이진수로 변환했을 경우 AND 조건을 수행했을 시 나오는 것은 116.0.0.0이다.
  • 이것이 바로 클래스 A의 Network ID
  • 나머지는 Host를 식별하는 Host ID

116.81.97.8 => 01110100.01010001.01100001.00001000

255. 0. 0. 0 => 11111111.00000000.00000000.00000000

—————————————————————

01110100.00000000.00000000.00000000

  • 위 IP주소 뒤에 /24 같은 표시는 서브넷 마스크이 bit수를 의미
  • 클래스 A를 예로 들면 서브넷마스크의 초기 8개의 bit가 1로 되어있기 때문에 /8로 붙는다.
  • 또 하나의 예를 들면 192.168.3.19/24는 네트워크 ID가 192.168.3.0 이며 서브넷 마스크는 255.255.255.0 이라는 뜻
  • 이 서브넷 마스크는 Network ID부분은 1이 연속적으로 있어야하며, Host ID부분은 0이 연속적으로 있어야 합는 규칙이 있다.

  • 서브넷 마스크는 클래스 체계에 의해서 기본적으로 Network를 나누기 위한 개념

1.3 IP 할당

1.3.1 서버 할당
  • ISP or 기관에서 Subnet 영역 할당

  • ICANN (Internet corporative for Assigned Names Numbers) : 국제 인터넷 주소 관리기구

    • 서버 운영시 state IP를 ISP or 기관에 요청하여 할당받음

    • 기계에 수동 입력

1.3.2 서버가 아닌 경우 할당
  • DHCP (Dynamic Host Config Protocol)

  • 호스트(서버)에서 보유하고 있는 IP를 유동적으로 관리하는 프로토콜
  • 즉, 자동할당 과 분배

  • DHCP 서버가 남는 IP 중 하나를 골라서 응답
  • 집에 공유기가 바로 그 역할
1.3.3 NAT (Network Address Translation)

  • IP 패킷의 TCP/UDP 포트 숫자와 소스 및 목적지의 IP 주소 등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고 받는 기술

  • 패킷에 변화가 생기기 때문에 IP나 TCP/UDP의 체크섬(checksum)도 다시 계산되어 재기록
  • NAT를 이용하는 이유는 대개 사설 네트워크에 속한 여러 개의 호스트가 하나의 공인 IP 주소를 사용하여 인터넷에 접속하기 위함
  • 즉 내부 망에서는 사설 IP 주소를 사용하여 통신을 하고, 외부망과의 통신시에는 NAT를 거쳐 공인 IP 주소로 자동 변환

  • 그러나 이것은 port 개수의 한계로 IP할당이 제한 되어 있다.
  • 그래서 port를 재사용하기 위한 endpoint-dependent mapping(EDM) table과 endpoint-independent mapping(EIM) table이 있음.
1.3.4 NAT에서의 P2P 지원
  • 그럼 EIM, EDM을 사용해서 port 재사용하면 좋은 것 아니냐?
  • 역시나 항상 그런 것은 아니다.

  • p2p의 경우 peer가 서버 역할을 할 수가 없다. NAT 뒤에 숨어 있기 때문에. 그렇다면 peer 끼리 어떻게 연결할 것인가?
1.3.4.1 해결책
  1. static map 사용
    • peer의 IP나 port 등 사전 설정이 필요. 즉, 사용자의 사전 지식이 필요하다.
  2. relay host 사용
    • 예로 skype가 relay host 역할. 대리 역할이라고 보면 됨.
    • global IP를 가지는 relay host가 B에게 주기적으로 패킷을 보내 연결을 유지
    • 그러다가 A가 B에게 전화하고 싶다고 skype 서버에 요청
    • 그럼 skype 서버는 relay host에게 연결해보라며 말함.
    • 그럼 A는 replay host에게 요청.
    • relay host는 B와 유지하고 있던 연결을 A와 연결시킴
    • EIM, EDM 모두 사용 가능
  3. Hole puncturing
    • skype가 미리 B의 port를 뚫어 놓다가 A가 요청이 오면 A에게 뚫어 놓은 B의 port 번호를 알려줌
    • global IP를 가지는 서버와 내부의 client가 사전 연결을 가짐
    • 각 NAT 라우터의 port 맵핑 테이블에 등록
    • 노드가 연결을 시도할 때 해당 port를 알려줌
    • 즉, EDM을 사용할 수 없음.