컴퓨터 네트워크 Chapter 5-2 컴퓨터 네트워크
거리벡터(Distance Vector) 라우팅 알고리즘 분산된(distributed) 정보를 사용하여 라우팅을 실시 각 노드는 하나 혹은 그 이상의 인접한(직접 물리 링크를 통하여 연결된) 이웃끼리 서로 정보를 주고받음 라우팅 계산을 한 후에, 그 결과를 이웃에게 알려 줌 정보를 주고받는 과정이 반복되다가, 더 이상 서로 주고받을 데이터가 없을 경우에는 스스로 라우팅 계산 동작을 멈춤 각 노드들은 라우팅 정보를 전달함에 있어서 특정한 타이밍에 의존하지 않고, 보낼 정보가 있는 노드들은 서로 자유로이 정보를 교환 거리 벡터 라우팅 알고리즘의 갱신하는 과정 1) 인접한 노드로부터 새로운 라우팅 정보를 기다림 2) 새로 수신한 라우팅 정보를 이용하여 새로운 라우팅 경로를 다시 계산 3) 만약, 어느 목적지 노드까지의 경로 중에 최소 경로가 갱신되면, 새로운 정보를 이웃 노드에게 전송. 그러나 최소 경로가 갱신되지 않으면 전송을 하지 않고 다시 이웃으로부터의 새로운 라우팅 정보를 기다림 컴퓨터 네트워크
거리 벡터 테이블(distance vector table) 그 목적지에 도달하기 위하여 사용해야 하는 경로를 포함 각 라우터에 대하여 하나의 항복만을 가짐 열(row)은 그 네트워크에서의 가능한 모든 목적지 노드 행(colume)은 그 노드와 인접된 이웃에 연결된 노드가 기록됨 각 엔트리는 그 소스 노드에서 각 목적지 노드로 향하는 비용 DX (Y,Z): 노드 X 에서의 거리 벡터 엔트리 값으로서 “노드 X에서 노드 Z를 경유하여, 목적지 노드 Y 까지의 경로 값” c(X,Z): 노드 X와 노드 Z 까지의 한 홉 링크 비용(cost) minW{DZ(Y,w)}: 노드 Z에서 Y 까지의 최소 비용, 즉, 노드 Z에서 노드 Y까지 가는 많은 경로들 중에서 가장 작은 비용을 요하는 경로의 비용. 컴퓨터 네트워크
[예제] 아래의 그림에 대한 거리벡터 테이블과 라우팅 테이블을 구하라. 그림: 거리벡터 라우팅 테이블의 예 [풀이] 그림: 거리벡터 라우팅 테이블의 예 [풀이] 거리 벡터 테이블의 각 엔트리 중에 소스 노트 C로부터 노드 A를 경유하여 각 노드들로 향하는 엔트리 값은 다음과 같이 구할 수 있다. 컴퓨터 네트워크
그림: 노드 C에서의 거리벡터 테이블과 라우팅 테이블 컴퓨터 네트워크
거리벡터알고리즘의 예 X Z 1 2 7 Y 컴퓨터 네트워크
Y X Z 1 2 7 D (Y,Z) c(X,Z) + min {D (Y,w)} = 7+1 = 8 D (Z,Y) c(X,Y) + min {D (Z,w)} w = 2+1 = 3 Y 컴퓨터 네트워크
거리벡터 알고리즘에서 링크의 값이 변화하는 경우(1) 링크의 값이 변하면 1) 링크에 연결된 노드가 변화를 감지 2) 거리 테이블을 갱신 3) 최소 경비의 경로가 변경된 경우 이웃 노드에게 알림 1 Y 4 1 X Z 50 알고리즘 자동멈춤 “good news travels fast” 컴퓨터 네트워크
거리벡터 알고리즘에서 링크의 값이 변화하는 경우(2) 링크의 값이 변하면 1) 링크에 연결된 노드가 변화를 감지 2) 거리 테이블을 갱신 3) 최소 경비의 경로가 변경된 경우 이웃 노드에게 알림 1 Y 4 1 X Z 50 algorithm continues on! 컴퓨터 네트워크
사람들의 근심 대부분의 사람들이 가장 근심을 많이 하는 것을 열거해 보면 다음과 같습니다. 결코 일어나지 않을 일을 가지고 근심합니다. 이것은 전체의 40%에 해당합니다. 다음으로 근심한다고 해서 되돌이킬 수 없는 과거의 일을 가지고 근심합니다. 이것이 30%이며, 세 번째로 불필요한 건강 걱정이 12%를 차지하고 있으며, 시시한 잡동사니에 대해서가 10%입니다. 진실로 근심해야 될 일을 가지고 근심하는 경우는 8%에 지나지 않는다고 합니다. 컴퓨터 네트워크
링크상태(Link State) 라우팅 알고리즘 링크상태 라우팅 알고리즘에서 네트워크 내의 모든 노드들은 전체 네트워크 토폴로지와 모든 링크의 비용을 알고 있음 모든 노드들은 주기적으로 링크 상태 정보를 네트워크 내의 모든 노드들로 방송(Broadcasting) 다익스트라(Dijkstra) 알고리즘 하나의 노드에서 네트워크 내에 있는 다른 모든 노드에 이르는 최소비용 경로를 계산 만약 소스 노드를 제외한 k 개의 노드가 있다면 k 번의 알고리즘 반복을 통하여 k 노드까지의 최소비용 경로를 얻을 수 있음 용어 c(i,j): 노드 i와 노드 j 까지의 비용을 말하는 것으로, 만약 노드 i와 노드 j 가 직접 연결되지 않았으면, 그 비용은 무한대 값을 가짐 D(v): 소스 노드에서 목적지 노드 v 까지 현재 최소 비용을 가지는 경로의 비용을 말함 p(v): 소스에서 노드 v까지 최소비용 경로에서의 노드 v의 이전 노드 N: 소스부터 최저비용 경로가 명확히 알려진 노드의 집합 컴퓨터 네트워크
Dijkstra's 알고리즘 1) 0 단계: 초기 단계에서 에 속한 노드는 오직 소스 노드 뿐 2) 1 단계: 처음에 소스 노드로부터 인접한 모든 노드들 중에서 가장 가까운 노드를 찾음. 가깝다는 의미는 가장 비용이 적다는 의미와 같음 선택되어진 노드는 집합 에 포함되며, 더 이상의 계산에서 제외됨 3) 2 단계: 두 번째 단계에서는 소스 노드와 두 번째로 가까운 노드를 찾음 이 노드는 소스 노드와 인접이거나 혹은 1 단계에서 구해진 소스 노드와 가장 가까운 노드와 인접 노드임. 선택된 노드를 집합 에 포함시킴 4) 3 단계: 세 번째 단계에서 얻어진 소스 노드와 세 번째로 가까운 노드는 소스 노드와 인접이거나 앞의 두 단계에서 얻어진 노드들과 인접이어야 함. 선택된 노드를 집합 에 포함시킴 5) 4 단계: 모든 노드가 집합 에 포함될 때까지 앞의 과정을 반복 컴퓨터 네트워크
예제: 아래 그림의 네트워크에서 소스 노드 A에서 각 노드들에 대한 최소경비(least cost) 경로를 구하라. 컴퓨터 네트워크
인터넷 라우팅 프로토콜 상이한 네트워크를 연결하여 인터넷을 구성함에 있어서 라우터 필요 라우터는 네트워크로부터 패킷을 수신하여 목적지로 향하는 다른 라우터로 패킷을 순방향 전송 메트릭(metric): 라우터가 패킷을 순방향 전송하는데 사용하는 기준이 되는 비용(cost) 혹은 성능기준 현재 라우팅에서 많이 사용되어지는 메트릭 * 라우터의 수(hop 수) * 지연(delay) * 부하(Load) * 전송에 필요한 비용(cost) * 서비스의 질(Quality of Service: QoS) * 거리(Distance) 컴퓨터 네트워크
인터넷은 전 세계에 분포된 너무 많은 라우터에 의해 연결되어 있음 라우팅 테이블을 갱신하는 일이 매우 어려움 ->계층화된 라우팅 자율 시스템(Autonomous System: AS) * 하나의 단일 기관에서의 라우터와 네트워크의 그룹 * 내부 게이트웨이 라우팅(Interior Gateway Routing) = 인트라-AS(intra-AS) 라우팅 (예) 라우팅 정보 프로토콜(Routing Information protocol: RIP) OSPF(Open Shortest Path First)라우팅 프로토콜 * 외부 게이트웨이 라우팅(Exterior Gateway Routing) = 인터-AS(inter-AS) 라우팅 게이트웨이 라우터(gateway router) 어떤 AS에서 외부의 목적지 AS에 패킷을 전달하는 라우터 내부에 인트라-AS 라우팅 프로토콜과 인터-AS 라우팅 프로토콜 모두를 가짐 컴퓨터 네트워크
어느 AS에 속한 소스 호스트 A에서 다른 AS에 연결되어 있는 목적지 호스트 B로 데이터그램을 전달하는 과정 예제: 어느 AS에 속한 소스 호스트 A에서 다른 AS에 연결되어 있는 목적지 호스트 B로 데이터그램을 전달하는 과정 소스 호스트 A는 인트라 AS 라우팅 프로토콜을 사용하여 데이터그램을 자신이 속해있는 AS의 게이터웨이 라우터에게 전송 2) 데이터그램을 수신한 게이트웨이 라우터는 인터-AS 라우팅 프로토콜을 사용하여 목적지 호스트 B가 속한 AS의 게이트웨이로 데이터그램을 전송 3) 호스트 B가 속한 AS의 게이트웨이 라우터는 인트라-AS 라우팅 프로토콜 을 사용하여 수신한 데이터그램을 호스트 B에게 전송 컴퓨터 네트워크
그림: 인트라-AS 프로토콜과 인터-AS 프로토콜을 통한 패킷의 전송 컴퓨터 네트워크
RIP 프로토콜(Routing Information Protocol) 거리벡터 라우팅(Distance Vector Routing) 알고리즘에 기반을 둔 내부 라우팅 프로토콜 홉(hop) 수를 메트릭으로 사용 - 각 링크의 비용은 1 직접 연결된 노드끼리 라우팅 정보를 교환하기 때문에 커다란 네트워크 에서는 부적절 RIP 프로토콜에서 최고 비용을 15로 제한 * 소스 호스트로부터 목적지 호스트까지 최대 15 개의 라우터만을 경유할 수 있음 * 링크 비용이 16 - 그 호스트에 도달할 수 없음(unreachable)을 나타냄 직접 연결된 인접한 라우터끼리 주기적으로 라우팅 정보를 교환하여 라우팅 테이블을 만듦 동일한 목적지 호스트까지 최소 경비의 루트가 하나 이상 존재하더라도, 라우터에는 오직 하나의 경로만을 가짐 라우팅 테이블 * 목적지 네트워크의 IP 주소 * 홉의 수 * 패킷이 전달되어야 하는 다음 라우터(next router) 컴퓨터 네트워크
RIP에서 라우팅 테이블은 RIP 응답 메시지인 RIP Advertisement 사용 약 30초 마다 이웃 노드들끼리 교환 한 번 보낼 때마다 AS내의 25개 목적지 네트워크에 이르기까지 송신 호스트의 라우팅 테이블 엔트리를 포함 정규 갱신 메시지의 통보를 제어하는 타이머 - 주기적 타이머(periodic timer) 최소한 180 초 동안 이웃 노드로부터 응답을 받지 못하는 경우에, 이웃에 도달할 수 없다고 판단 * 이웃 노드가 고장 혹은 연결 링크가 고장 * 해당 경로에 대한 신규 갱신을 수신할 때마다 타이머는 다시 설정 - 만료 타이머(expiration timer) 문제점 패킷이 동일한 라우터 사이에 반복하는 경우와 같은 불안정한 경우 컴퓨터 네트워크
(1) 카운트-투-인피니티(count-to-infinity) 문제 라우터 A는 네트워크 1에 직접 연결되어 있음 라우터 B와 C가 그림과 같이 연결되어 있다고 가정 라우터 A에서 네트워크 1에 대해 가지는 비용은 1이고, B 라우터는 2, 그리고 라우터 C는 3의 값을 가짐 라우터 A에서 네트워크 1에 대한 연결이 끊어지는 경우 * 라우터 A는 네트워크 1에 대한 비용을 무한대 값인 16으로 갱신 ( 무한대 값 대신에 16의 값을 가짐) * 링크 비용 값이 바뀐 것에 대한 정보의 전달은 30초를 기다려야 한다. * 만약 30초가 되기 전에 라우터 B로부터 갱신 메시지를 수신하는 경우 → 네트워크 1에 대한 비용을 16에서 3으로 바꿈 컴퓨터 네트워크
이 후에 갱신된 라우팅 정보를 라우터 A는 라우터 B로 전송 4로 바꿈 라우터 B는 라우터 A로 다시 갱신 메시지를 전송 (반복) * 라우터 A와 라우터 B에서의 네트워크 1 으로의 비용은 계속 증가 * 루프가 형성되었기 때문 컴퓨터 네트워크
(2) 수평 분할(split horisons) 방식 라우터가 한 인터페이스를 통하여 경로 갱신 정보를 수신하게 되면 같은 경로에 대한 정보를 수신한 인터페이스를 통해서는 전송하지 않음 라우터 B는 네트워크 1에 대한 정보를 라우터 A로부터 수신하였으므로, 네트워크 1에 대한 정보를 라우터 C로는 전송하지만, 라우터 A로 전송 하지 않음 따라서 라우터 A는 네트워크 1로의 비용을 16으로 가지며, 다른 경로 를 통해서 네트워크 1로 접근할 수 없음을 알게 됨 이 후에 라우터 A가 라우팅 테이블을 라우터 B 에게 전송하게 되면, 라우터 B도 네트워크 1 에 대한 경비를 16으로 수정하게 되어 이 문제 를 해결하게 됨 컴퓨터 네트워크
(3) 포이슨 리버스(Poisoned Reverse) 방식 수평분할 방식을 약간 수정한 방식 한 인터페이스를 통해 들어온 라우팅 정보는 동일 인터페이스로 나가는 경우, 경비 값을 16으로 설정하여 전송 라우터 B는 네트워크 1에 대한 정보를 라우터 A에게 전송할 경우 그 경비 값을 16으로 설정하여 전송 라우터 A는 라우터 B를 경유하여 네트워크 1로 가는 경로는 없다는 것을 알게 됨 (4) 홀드다운(Hold Down) 어느 라우터가 "네트워크에 도달 불능"이란 수신 메시지를 받은 후에 일정 기간 동안에 그 네트워크에 대한 새로운 정보를 무시하도록 하는 것 거리-벡터 라우팅 알고리즘에서는 라우팅 정보가 이웃끼리 주고받기 때문에 최근의 도달 불능 정보가 먼 곳 까지 전달되기까지 시간이 걸린다. 따라서 정해진 기간(보통 가장 먼 곳까지 전송되어질 수 있는 최대시간) 안에 들어오는 새로운 정보는 잘못된 정보일 가능성이 많으므로 무시 느리게 수렴되는 문제를 해결하는 한 가지 방법 컴퓨터 네트워크
RIP 메시지 요청 메시지 새로 생기거나 시간이 만료된 항목을 가진 라우터에 의해 전송됨 요청은 특정 항목이나 모든 항목에 대해 이루어질 수 있음 응답 메시지 요청 메시지의 응답에 의해 혹은 응답 메시지 없이도 보내어질 수 있음 요청된 응답은 요청 메시지를 받은 이 후에 보내어지는데 요청되어진 목적지에 대한 정보를 포함 요청되지 않은 응답 메시지는 30 초 주기로 전송되어짐 컴퓨터 네트워크
RIP 프로토콜 특성 요약 거리벡터 라우팅 알고리즘을 사용 RIP는 거리를 측정하기 위하여 홉 카운트를 메트릭으로 사용 종단간의 호스트 사이에 최대 15 개의 라우터를 가지는 적은 네트워크에 사용 UDP 위에서 수행되어지는 응용계층 프로토콜 라우터는 RIP 요청 메시지와 응답 메시지를 UDP에게 전송 UDP 패킷은 표준 IP 패킷으로 라우터 사이에 전달됨 RIP에 할당된 잘 알려진 포트 번호는 520번 RIP는 네트워크 계층 프로토콜 기능인 라우팅 알고리즘을 구현하기 위하여 네트워크 계층 프로토콜(IP) 위의 전송계층 프로토콜인 UDP를 컴퓨터 네트워크
OSPF(Open Shortest Path First) 현재 가장 많이 사용되어지고 있는 내부 라우팅 프로토콜 링크 상태 라우팅(Link State Routing) 알고리즘을 사용 OSPF 프로토콜의 특성 1) OPEN이 뜻하는 바와 같이 개방된 표준 * 누구든지 라이센스 비용을 지불하지 않고 구현할 수 있다. 2) 서비스 경로배정에 타입을 포함 * 서비스 타입에 따라서 다중 경로를 가질 수 있음 * 같은 경로일지라도 서비스의 타입에 따라서 경로 비용을 다르게 지정할 수 있음 * (예) 위성 링크에서 데이터 트래픽보다 실시간 트래픽에게 더 큰 비용을 할당함으로 실시간 트래픽이 이 링크로 라우팅 하지 못하게 함 3) 부하분산(load balancing)을 제공 4) 라우터간의 모든 메시지 교환이 인증(authentication)되도록 지정 컴퓨터 네트워크
자율 시스템을 여러 개의 지역(areas)으로 나눈다. 지역: 자율 시스템 내에 포함되는 호스트, 라우터 및 네트워크들의 모음 하나의 지역 내의 라우터는 경로 정보를 지역 내로 플러딩(flooding) 지역 내의 모든 라우터가 라우팅 정보의 변화가 있을 때에 브로드캐스팅 함으로 정보를 공유 라우터는 링크상태가 변경되지 않더라도 최소한 30분마다 한 번씩 정기적 으로 링크 상태를 브로드캐스트 자율 시스템 내에 있는 모든 라우터들은 같은 라우팅 정보를 가지고 라우팅 테이블을 갱신 Dijkstra's 알고리즘을 사용 → 다른 모든 호스트로의 최단경로(Shortest Path) 소스 호스트로부터 목적지 호스트로 동일한 비용을 가지는 여러 경로를 가질 수 있음 각 링크에 대하여 서비스의 종류에 따라 각기 다른 메트릭을 사용할 수 있음 컴퓨터 네트워크
OSPF 프로토콜의 계층화된 라우터 1) 경계 라우터(Area border router) 각 지역 내에는 하나 이상 가짐 그 지역 내의 라우팅 정보를 가지며, 인접한 지역 경계 라우터와 정보를 교환 2) 내부 라우터(internal router): 지역 내의 라우터들 3) 지역 경계 라우터(area border router): 지역 외부로의 라우팅을 책임 4) 백본 라우터(backbone router): 백본 영역에서는 AS 영역 사이의 라우팅을 담당하는데, 백본 라우터는 지역 경계 라우터와 함께 백본 영역에서의 라우팅을 담당 5) 경계 라우터(boundary router): 다른 AS에 속한 라우터와 라우팅 정보를 교환하는 역할을 담당 - 이 라우터를 통해 다른 라우터들이 외부 네트워크와의 경로를 알 수 있음 컴퓨터 네트워크
그림: 구조화된 OSPF 프로토콜의 AS 컴퓨터 네트워크
OSPF는 지역 내의 경로를 갱신하기 위하여 링크 상태 라우팅 알고리즘을 사용 지역 내의 모든 라우터들이 이웃하는 라우터들과 자신의 정보를 공유 (링크 상태 알고리즘의 특성) * 각 라우터는 지역 내의 모든 다른 라우터들에게 자신의 이웃에 대한 상태를 전송 상태를 플러딩(flooding)에 의해 전송 * 각각의 이웃은 또 자신의 이웃들에게 패킷을 전송 -> 패킷을 수신한 모든 라우터는 복사 본을 이웃에게 전송하는 것 -> 결과적으로 모든 라우터는 동일한 정보를 소유 * 각 라우터는 라우팅 정보에 변화가 있을 경우에만 자신의 이웃에게 정보를 전달 (변화가 없을 경우에도 주기적으로 정보를 전달하는 거리벡터 라우팅 알고리즘과 다른 점) → 그러나 OSPF에서는 최소한 30분 마다 한 번씩 브로드캐스트 컴퓨터 네트워크
BGP 프로토콜(Border Gateway Protocol) 자율시스템 간의 라우팅 프로토콜 = 인터-AS 라우팅 프로토콜 BGP 버전 4는 현재 인터넷의 실재적 인터-AS 라우팅 프로토콜 인트라-AS/인터-AS 라우팅 프로토콜의 비교 인트라-AS 라우팅 프로토콜 * 자율 시스템(AS) 내의 모든 라우터들이 하나의 기관에서 운영 * 최소 비용을 가지는 경로를 찾음 인터-AS 라우팅 프로토콜 여러 서로 다른 AS를 거치게 됨 최소비용을 가지는 경로 보다 정책(Policy)을 우선적으로 고려 경로 상에 있는 자율 시스템들 중에 하나가 정책에 위반되면, 해당 경로와 목적지는 무시 * 이 경로에 대한 라우팅 테이블을 갱신하지도 않고, 이 메시지를 이웃에 전송하지도 않음 컴퓨터 네트워크
BGP 프로토콜(Border Gateway Protocol) 거리벡터 프로토콜과 비슷하지만, 경로 벡터(path vector) 프로토콜에 더 가까움 경로 벡터 프로토콜: 라우터에서 BGP가 비용 대신에 BGP 피어라고 부르는 상세한 경로 정보를 전파 * 목적지 호스트까지의 전체 경로를 브로드캐스트 [예제] 어떤 게이트웨이 A가 다른 게이트웨이 B까지의 경로를 브로드캐스트하는 경우 경로(A,B) = A, c1, c2, c3, ......, B 만약 게이트웨이 A가 다른 게이트웨이 D에게 게이트웨이 B로의 이 경로 정보를 전달하는 경우 * 게이트웨이 D는 이 정보를 취할 수도 있고 무시할 수도 있음 * 만약 게이트웨이 D가 이 정보를 취한다면 D로부터 게이트웨이 B까 지는 다음과 같은 경로를 가지게 된다. 컴퓨터 네트워크
* 게이트웨이 A가 게이트웨이 B로 데이터를 전송하기 원치 않을 경우, 경로(D,B) = d, 경로(A,B) * 게이트웨이 A가 게이트웨이 B로 데이터를 전송하기 원치 않을 경우, 게이트웨이 B로 라우팅 정보를 보내지 않음으로 게이트웨이 B로 가는 트래픽을 제어할 수 있음 BGP 프로토콜에서 사용되는 네 가지 기본적인 메시지 타입 * OPEN: 통신을 초기화 * UPDATE: 경로를 알리거나 철회 * NOTIFICATION: 부정확한 메시지에 대해 응답 * KEEPALIVE: 피어 연결성을 능동적으로 테스트 컴퓨터 네트워크
변화를 막는 20가지 고정관념 컴퓨터 네트워크
ICMP(Internet Control Message Protocol) -- 인터넷 제어 메시지 프로토콜 IP 전송에서 오류가 발생하였을 경우에 오류 메시지를 보내는데 사용하는 프로토콜 IP는 비신뢰성이며 최선형의 서비스를 제공 * 전송되어진 데이터그램은 손실, 중복, 지연, 그리고 순서가 바뀌어 전달 되어질 수 있음 * 헤더의 내용은 데이터그램이 라우터를 지날 때 마다 바뀜 *수신 호스트에서는 데이터그램을 수신하면 검사합을 통하여 헤더에서 발생 할 수 있는 에러를 검출 * 만약 하나의 비트라도 손상되었다면, 검사합의 값은 0 이 아님 * 이 경우에 헤더의 어느 부분이 손상되었는지를 모르기 때문에 데이터그램에 있는 어떤 필드라도 신뢰할 수 없음 컴퓨터 네트워크
헤더에 오류가 발생한 데이터그램을 목적지 호스트로 전송하지 않고 폐기시킴 * 최종 목적지 호스트는 소스 호스트에서 전송한 데이터그램을 수신할 수 없을 수 있음 * 인터넷의 일부 경로가 고장 * 데이터그램의 최종 목적지 호스트가 고장 IP 프로토콜은 오류 메시지를 보낼 때 ICMP를 사용 ICMP는 메시지를 전달하기 위하여 IP를 사용 ICMP는 여러 오류 메시지를 전송하기 위하여 IP를 사용 문제가 발생한 데이터그램의 원래 소스에게 ICMP 메시지를 전달 하기 위하여 IP 데이터그램을 생성 데이터그램의 페이로드(payload)에 ICMP 메시지를 캡슐화 또한 데이터그램은 물리 네트워크를 통해 전송되기 위하여 프레임 으로 캡슐화 컴퓨터 네트워크
그림: ICMP 메시지의 캡슐화 과정 컴퓨터 네트워크
ICMP 오류 메시지 표 컴퓨터 네트워크
오류 메시지 예 * 목적지에 도달할 수 없음(Destination Unreachable) : 지정된 목적지 호스트에 도달할 수 없는지 혹은 목적지가 부착된 네트워크에 도달할 수 없는 지를 명시 * 반향 요청/응답(Echo Request/Reply) 반향 요청 메시지에 대한 응답으로, ICMP 소프트웨어는 ICMP 반향 응답 메시지를 전송할 것을 요청받음 * 소스 호스트 억제(Source Quench) 라우터는 더 이상 유용한 버퍼 공간이 없을 만큼 많은 데이터그램을 받을 때마다 소스 호스트 억제 메시지를 전송 버퍼 공간이 일시적으로 바닥난 라우터는 도착하는 데이터그램을 버림 이 메시지는 혼잡제어를 수행하기 위한 것이지만 실재 잘 사용하지 않음 * 시간초과(Time Exceed) 라우터가 데이터그램에 있는 TTL 필드를 0 으로 감소시킬 때 마다 데이터 그램을 폐기하고 시간초과 메시지를 보냄 주어진 데이터그램으로부터의 모든 단편들이 도착하기 전에 재조립 타이머가 끝나면 호스트에 의해 시간초과 메시지가 보내짐 컴퓨터 네트워크
DHCP(Dynamic Host Configuration Protocol) 대부분의 네트워크에서는 네트워크 관리자가 호스트에게 필요한 IP 정보를 수동적으로 구성하는 방법을 제공 대규모 네트워크에서 호스트들에게 IP 주소를 동적으로 할당해 주기 위하여 사용 DHCP 프로토콜은 클라이언트-서버 모델을 가짐 클라이언트: 자신의 IP 주소가 포함된 네트워크 구성 정보를 얻으려는 새로운 호스트 일반적으로 각 네트워크는 한 개 이상의 DHCP 서버를 가짐 가장 간단한 구성에서 DHCP 서버는 단지 호스트 구성 정보를 위한 집중화된 저장장소로써의 기능을 수행 컴퓨터 네트워크
주소변환 프로토콜(Address Resolution Protocol: ARP) IP 주소는 인터넷상의 호스트를 구분하는데 사용 각 호스트들은 네트워크에서 물리적인 인터페이스를 통해서 연결되어 있음 인터넷상의 각 노드들은 하나의 IP 주소를 가지며, 각 노드의 어뎁터는 물리 네트워크에서 하나의 또 다른 주소를 가짐 전송된 데이터그램을 목적지 호스트의 물리적 인터페이스를 통하여 최종 프로세스까지 전송되어지기 위해서는 인터페이스 하드웨어의 특정한 주소체제로 변환시켜 주어야 함 그림: IP 주소와 랜(LAN) 주소 컴퓨터 네트워크
호스트는 E6-E8-FF-00-CA-00 의 랜 주소로 물리 네트워크에 연결 전송 호스트의 IP 주소는 203.237.123.3 호스트는 E6-E8-FF-00-CA-00 의 랜 주소로 물리 네트워크에 연결 물리 네트워크에서 데이터그램을 전송하기 위하여서는 IP 주소와 물리주소 모두가 필요 IP 데이터그램과 목적지 호스트의 랜 주소를 전달받으면, 송신 호스트의 어뎁터는 수신 라우터의 랜 주소를 포함하는 데이터링크 계층의 프로토콜 데이터 유니트인 프레임을 만들어서 라우터로 전송 프레임을 생성하기 위하여 앞에서 설명되었듯이 송신 호스트는 목적지 노드의 IP 주소 뿐 만 아니라 랜 주소도 알아야 함 주소변환 프로토콜(Address Resolution Protocol: ARP): IP 주소에 대한 랜 주소로 변환시켜 주는 메커니즘 즉, IP주소는 알고 있으나, MAC 주소를 모르는 경우에 사용되는 프로토콜 컴퓨터 네트워크
IP 주소를 물리적 주소로 변환하는 일반적인 방법 ARP 테이블을 각 노드에서는 유지 ARP 테이블은 플러그-앤-플레이 방식으로 구축 -> ARP 테이블은 네트워크가 동작하면서 자동으로 구축됨 표: 어느 호스트에서 가지는 ARP 테이블의 예 컴퓨터 네트워크
ARP의 사용 방법 1) 전송 호스트가 데이터그램을 전송하고자 함 2) 목적지 호스트의 IP 주소를 아는데 그에 대응하는 물리 주소를 모르는 경우 3) 먼저 자신의 ARP 테이블을 검사 4) 원하는 IP 주소에 대한 MAC 주소가 있는 경우에는 전송 5) ARP 테이블에 대응되는 엔트리가 없을 때에는 ARP 프로토콜을 호출 - 네트워크 전체로 ARP 요청 메시지를 브로드캐스트 (ARP 요청 메시지는 네트워크의 모든 노드들에게 브로드캐스트 되어 짐) 6) 요청되어진 IP 주소가 자신의 주소와 일치하는 호스트는 자신의 물리주소 를 포함한 응답신호를 요청한 호스트로 전송 7) 응답 메시지는 브로드캐스트 되어지지 않고 직접 ARP 요청 메시지를 전송한 노드로 전송되어짐 8) 응답을 받은 호스트는 응답 메시지에 포함된 정보를 자신의 ARP 테이블에 저장하여 다음의 필요할 때에 사용 물리주소는 알고 있으나 이에 대응되는 IP 주소를 모를 때에는 RARP(Reverse Address Resolution Protocol)을 사용 컴퓨터 네트워크
ARP 프로토콜의 특성 1) 캐싱(caching) 기능을 가짐 그림: ARP와 RARP의 동작 ARP 프로토콜의 특성 1) 캐싱(caching) 기능을 가짐 특정 IP 주소와 이에 대한 물리 주소 쌍을 저장하여 나중에 사용 2) ARP 프로토콜은 지역적(local): 어떤 호스트가 다른 호스트의 물리 주소를 얻기 위해서는 두 호스트가 같은 물리 네트워크에 함께 있어야 한다. 만약 두 호스트가 서로 다른 물리 네트워크에 속하다면 주소변환 기능은 수행되지 않음 컴퓨터 네트워크
ARP 메시지는 데이터링크 계층에서 전달되어야 하므로 프레임에 실려 전송되어짐 ARP 메시지는 프레임의 페이로드에 실린다. 필드의 내용을 검사하지 않음 그림: ARP 메시지의 프레임 페이로드로의 캡슐화 과정 컴퓨터 네트워크
차세대 인터넷 프로토콜(IPv6) IPv4의 문제점 IPv6(Internet Protocol version6) 1) 주소 공간 부족 2)보안성의 결여 3) 신뢰성 결여 4) 사용자의 서비스 질 요구에 대한 지원 불가 IPv6(Internet Protocol version6) = IPng(Internet Protocol Next Generation) 1) 확장된 주소 공간 128 비트로 이루어져 있으므로 충분한 주소 공간이 확보 2) 헤더 형식의 개선 IPv4에서는 옵션으로 말미암아 헤더의 길이가 서로 다름 IPv6에서는 옵션 필드를 기본 헤더에서 분리 간소화된 40 바이트의 같은 길이의 헤더로 말미암아 라우팅 과정이 단순 데이터그램을 더 빠르게 처리 컴퓨터 네트워크
흐름 라벨(Flow Label)을 통하여 사용자의 서비스의 질에 대한 요구를 충족시킴 4) 향상된 보안성 지원 3) 자원 할당에 대한 지원 흐름 라벨(Flow Label)을 통하여 사용자의 서비스의 질에 대한 요구를 충족시킴 4) 향상된 보안성 지원 IPv6에서는 암호화와 인증 옵션 등의 추가로 인하여 패킷 전송의 신뢰성을 향상 5) 주소 자동설정 IPv4에서는 IP 주소, 네트워크 마스크, 게이트웨이 주소 등과 같은 여러 가지 설정을 입력해야 하는 등의 절차를 필요 네트워크의 규모가 커질수록 더욱 복잡 IPv6에서는 로컬 IP 주소를 자동으로 생성 랜 상의 MAC 주소와 라우터가 제공하는 네트워크 프리픽스(prefix)를 결합하여 IP 주소를 생성할 수 있음 컴퓨터 네트워크
IPv6의 주소 유형 IPv6의 주소 표현 1) 유니캐스트(Unicast) 주소 단일 호스트를 정의 - 1대 1의 전송을 위한 주소 2) 애니캐스트(anycast) 주소 그룹의 멤버 중의 하나, 즉 가장 가깝거나 가장 접근이 쉬운 멤버에게 정확히 전달되어 짐 3) 멀티캐스트(multicast) 주소 그룹의 각 멤버들에게 전달 IPv6의 주소 표현 16 진수 콜론 표기법(hexadecimal colon notation)을 사용 128 비트의 긴 주소를 보다 읽기 쉽게 하기 위하여 128 비트를 16 비트씩 8 개의 필드로 나누어 콜론(:)으로 구분 각 16 비트의 필드는 16 진수 값으로 표현 [예] ABCD:0000:FFFF:1234:8765:1001:0000:FFFF 컴퓨터 네트워크
IPv6의 주요 필드 ◇ 버전: IPv6의 이 필드 값은 '6' 컴퓨터 네트워크
우선 처리 등의 구분을 위하여 데이터그램의 흐름을 인식하는데 사용 ◇ 흐름(Flow): 우선 처리 등의 구분을 위하여 데이터그램의 흐름을 인식하는데 사용 흐름 = 라우터에 의해 특별한 조정이 필요한 특정 소스 호스트로부터 특정 목적지로 보내지는 패킷의 연속 = 같은 경로를 통과하고 같은 자원을 사용하며, 같은 등급의 보안을 가지는 등 동일 특성을 공유하는 패킷의 연속 소스 호스트 주소와 흐름 레이블 값의 조합은 유일하게 패킷의 흐름을 정의 ◇ 다음 헤더(next header): 기본 헤더 다음의 헤더를 정의하는 8 비트의 필드 선택적인 확장 헤더 중의 하나 UDP 또는 TCP와 같은 상위 계층 프로토콜을 위한 헤더 컴퓨터 네트워크
◇ 홉 제한(Hop Limit): 라우터를 거칠 때마다 이 값이 1 씩 감소하고, 0 인 경우에는 폐기 ◇ 페이로드 길이: 16 비트 40 바이트의 헤더 길이를 제외한 데이터 부분의 크기 최대 65,535 바이트를 지정할 수 있음 ◇ 소스 주소와 목적지 주소: 128 비트 ◇ 데이터: 데이터그램의 페이로드 부분 상위 계층인 전송계층 프로토콜 데이터 유니트인 세그먼트가 캡슐화되어 있음 컴퓨터 네트워크
IPv4에서 IPv6로의 전환하는 두 가지 방식 1) 이중-스택(dual-stack) 방식 * 라우터는 그 패킷을 폐기 * ICMP의 ‘패킷이 너무 크다’라는 에러 메시지를 통하여 송신 호스트에게 전달 * 송신 호스트는 IP 데이터그램의 크기를 줄여서 다시 전송 IPv4에서 IPv6로의 전환하는 두 가지 방식 1) 이중-스택(dual-stack) 방식 IPv6 노드가 완벽하게 IPv4를 구현 RFC 2893에서 IPv6/IPv4 노드라고 부름 이 노드는 IPv4와 IPv6 패킷을 모두 받고 보낼 수 있음 IPv6/IPv4 노드는 IPv4 주소와 IPv6 주소 모두를 가지고 있어야 한다. 패킷을 전송할 다른 노드가 IPv4 노드 인지 IPv6 노드 인지 분간할 수 있어야 함 IPv6 패킷의 데이터를 IPv4 패킷으로 변환함에 있어서 IPv4와 맞지 않는 플로우와 같은 특정 필드의 값의 손실이 일어나는 문제점을 가짐 컴퓨터 네트워크
그림: 이중-스택(dual-stack) 방식을 통한 IPv6 패킷의 전송 컴퓨터 네트워크
2) 터널링(tunneling) 방식 그림: 터널링 방식을 통한 IPv6 패킷의 전송 IPv6 패킷을 IPv4 패킷의 페이로드에 넣고, IPv4 노드의 상대편 목적지 호스트의 주소를 IPv4 패킷 헤더에 넣어서 전송 이를 받은 목적지 호스트에서 다른 IPv6 노드로 패킷을 전송하는 경우에는 IPv4 패킷의 페이로드에 캡슐화되어 있는 IPv6 패킷을 꺼내어 전송 따라서 IPv6의 어떤 필드의 정보도 손실되지 않음 그림: 터널링 방식을 통한 IPv6 패킷의 전송 컴퓨터 네트워크
모든 일은 당신에게 달린 일.. 한 곡의 노래가 순간에 활기를 불어넣을 수 있다. 한 송이 꽃이 꿈을 일깨울 수 있다. 한 그루 나무가 숲의 시작일 수 있고, 한 마리 새가 봄을 알릴 수 있다. 한 번의 악수가 영혼에 기운을 줄 수 있다. 한 개의 별이 바다에서 배를 인도할 수 있다. 한 줄기의 햇살이 방을 비출 수 있다. 한 자루의 촛불이 어둠을 몰아 낼 수 있고, 한 번의 웃음이 우울을 날려 보낼 수 있다. 한 걸음이 모든 여행의 시작이다. 한 단어가 모든 기도의 시작이다. 한 가지 희망이 당신의 정신을 새롭게 하고, 한 번의 손길이 당신의 마음을 보여 줄 수 있다. 한 사람의 가슴이 무엇이 진실인가를 알 수 있고, 한 사람의 인생이 세상에 차이를 가져다 줄 수 있다. 이 모든 것이 당신에게 달린 일이다. 컴퓨터 네트워크