새소식

대학생활/컴퓨터네트워크

컴퓨터 네트워크 정리 -11주차- <네트워크 레이어/4.4 ICMP- 4.5 Routing Algorithm>

  • -

(11주차) NAT : network address translation

-      NATip 주소를 라우터 내/외부로 나누며, 내부 IP들을 하나의 외부 IP에 묶는다.

-      특징

  • 외부에 알리지 않고, 내부 디바이스 IP주소를 바꿀 수 있다.
  • 모든 내부 디바이스는 하나의 IP 주소만 갖는다.
  • 내부 IP 주소의 영향 없이 ISP 변경 가능 (공유기 바꾸기)

-      구현

  • 변환 : 내부->외부 데이터그램 이동, 내부 IP (source IP, port#)을 외부 IP (NAT IP, new port#)으로 바꾼다. 이렇게 바뀐 주소는 NAT 테이블에 저장된다.
  • 기억 : NAT 테이블 안에선 내부 IP와 외부 IP가 짝을 이뤄 저장된다.
  • 변환 : 외부->내부 데이터그램 이동, 외부 IP를 내부 IP로 바꾼다. 이 때 매핑 정본 NAT 테이블에서 가져온다.

 

-      장단점

  • 장점 : 16bit의 포트넘버 => 하나의 랜 연결에 6만개의 연결이 가능
  • 단점 : 라우터는 네트워크-레이어(layer 3)에서 동작, 하지만 포트를 바꾸는 작업은 transport layer에서 이뤄진다. => end-end argument(principle)을 파괴한다.

NAT traversal problem 기출문제임

-      문제상황 : 외부의 사용자가, NATed 되어있는 클라이언트에 접속하려 할 때, 내부 IP를 알 수 없기에 해결할 방법이 필요하다.

-      솔루션01 : 라우터에 외부 IP와 내부 IP를 정적 할당

  • 사용자가 포트주소를 기억해야하는 불편함

-      솔루션02 : UPnP(Universal Plug and Play) IGD(Internet Gateway Device) 프로토콜 사용.

  • 외부 IP를 외우고, 일정 시간동안 거기에 맞는 포트번호를 부여한다.

-      솔루션03 : relaying (used in Skype)

  • 사설 IP를 가진, 클라이언트들이 relyaing할 수 있는 공인 IP를 가진 중개자와 연결시킨다.
  • 이 중개자가 만든 연결다리를 통해 패킷 송수신을 한다.

4.4 Internet Protocol – ICMP

ICMP : internet control message protocol

-      개요 : 우리는 source-dest까지 가는 중간에 들리는 router에서 생기는 상황을 알 수 없다.
때문에, 호스트와 라우터간 네트워크 계층 정보 통신을 위한 프로토콜이 필요하다.

-      목적 : error reporting(접근 불가 호스트/네트워크 탐색), echo request/reply (ping)

-      ICMP msgs IP 데이터그램을 통해 전달된다.

  • 메시지 내용 : type, code 그리고 8byte의 에러 메시지 설명

 

 

Traceroute and ICMP

-      Traceroute 명령어는 IP TTL 헤더를 가진 IP 데이터그램을 전송, 해당 TTL은 전송될 때 마다 1씩 증가한다.

-      N 번째 데이터그램이 N 번째 라우터에 도착하면

  • 라우터는 데이터그램을 무시하고, source에게 TTL expired(type 11, code0) ICMP를 보낸다.
  • N번째에 딱 닿으면 다시 처음으로 돌아갔다가 이제 N + 1번째를 목표로 다시 전송

-      ICMP 메시지가 다시 source에 도착하면 소스에선 RTT를 기록해, 지연 정도를 측정한다.

-      멈추는 경우

  • DestinationUPD segments가 도착하는 경우
  • ICMP msgtype3, code3 port unreachable 이 돌아오거나.
  • 소스 코드로 멈추거나

IPv6

-      개요 : 32비트의 IPv4의 주소 부족 문제를 염려해, 개발한 protocol

  • 추가 목표
    • Header format이 빠른 작업과 포워딩을 돕는다.
    • Quality of Service (QoS)의 사용을 위한 Header 변경

-      포맷 :

  • IPv4의 헤더는 20byte, IPv640byte를 갖는다.
  • Fragmentation이 허용되지 않는다.

-      특징 :

  • 주소기능의 확장(source address) : 32 -> 128 bit (16byte)
  • Next header을 통해 프로토콜(udp, tcp) 구분 (IPv4의 프로토콜 필드)
  • 우선순위(pri) : 데이터그램 간의 우선순위를 결정
  • 흐름 라벨링(flow label)
  • Checksum의 삭제, head, len, fragmentation 보조 필드(offset, flag, bit id 삭제)
  • ICMPv6 : Packet Too Big과 같은 추가 타입, 멀티캐스트 그룹 관리 함수 추가

Transition from IPv4 to IPv6

-      터널링 : IPv6를 사용하는 라우터에서 IPv4를 사용하는 라우터를 통해 IPv6로 다시 전달해야 하는 경우, IPv6->IPv4로 갈 때  IPv6 정보를 IPv4 데이터그램에 캡슐화하여해 IPv4->IPv6 장치로 전송할 때 캡슐화 해제를 해, IPv6를 전달한다.

4.3 4.4는 포워딩과 관련된 이야기라면, 4.5부터는 라우팅에 관련된 이야기다.

4.5 Routing-Algorithms

Routing algorithm classification(라우팅 알고리즘 분류)

-      Global : 모든 라우터(노드)가 연결되어 상태와 비용을 공유하는 상태다. Ex) link-state

-      Decentralized : 라우터들이 이웃간만 비용과 연결상태를 공유한다. Ex) distance-vector

-      Static : 루트들이 시간이 지남에 따라 천천히 변화한다.

-      Dynamic : 루트가 상당히 빠르게 변한다. (업데이트) <- 인터넷은 이걸 사용, 노드 상태 변화가 많기 때문

 

 

Link state algorithm

-      다익스트라 알고리즘

  • n  가정
    • u  링크 스테이트 브로드캐스트를 통해, 모든 링크의 가격을 알고 있다.
    • u  시작점을 정한 후, 그 점에 연결된 엣지 중 최소한의 가격을 갖는 엣지 선택.
    • u  위 과정을 노드의 개수만큼 반복하면 최단 거리가 만들어진다.
  • n  기호
    • u  c(x,y) : x->y 비용
    • u  d(v) : 시작->끝 까지의 현재 비용
    • u  p(v) :
    • u  N’ : 최소경로를 갖는 노드 셋

 

Distance Vector

-      벨만 포드 방정식

-      특징

  • 순차적, 비동기적
    • Local iteration은 다음과 같을 때 발생한다
      • Local link cost change
      • DV update message from neighbor
  • 분배
    • 각 노드는 자신의 DV가 바뀌었을 때 이웃에게 전달한다.
      • 그리고 수신 받은 이웃도 필요에 따라 자신의 이웃에게 전달한다.
  • n  각 노드의 라이프 사이클

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.