우선 장비를 언급하기 전에, OSI 7계층에 대한 이해가 필요하다. 블로그에 간단한 요약글이 있으니 참고하면 좋을 것 같다.


2계층 장비

Layer 2 장비 (L2 장비)에는 허브(Hub), 브리지(Bridge), 스위치(Switch)가 있는데, 스위치는 Layer 3에서 동작하는 경우도 있다. 이 경우엔 L3 스위치라고 하는데 여기서는 L2 스위치만을 언급할 것이다.

 

1. 허브(Hub)

[ 시스코(Cisco)에서 판매하는 허브(Hub) ]


위 그림처럼 허브는 포트에 케이블을 연결해서 컴퓨터 간의 통신을 수행한다. 근데 허브에서는 어떤 두 컴퓨터끼리 통신 중일 때 다른 컴퓨터는 포트를 사용할 수 없다. (즉 통신할 수 없는 것이다.) 그 이유는 CSMA/CD 프로토콜이라고 통신 중일 때 충돌이 날 수 있어서 한 번에 한 통신만 허용하기 때문이다. 이렇게 충돌이 날 수 있어 한 통신만 허용되는 영역을 콜리전 도메인(Collision Domain)이라고 한다. 허브에 연결된 컴퓨터들은 모두 하나의 콜리전 도메인에 속하는 것이다.





아래 그림처럼 하나의 컴퓨터에서 데이터를 전송해서 허브에 들어오면 모든 포트로 데이터를 뿌린다. 이렇게 전송 외에 할 일이 없기 때문에 허브는 속도가 빠른 편이며, 가격이 저렴하다. (단순 전송 장비)


각 컴퓨터는 자신의 네트워크 인터페이스 카드(이하 NIC)에 들어온 데이터의 맥주소를 보고 자신의 맥주소와 일치하면 CPU로 보내서 데이터를 처리하게 한다. 그러나 맥주소가 다르다면 그냥 버린다.



2. 브리지(Bridge)

요즘은 브리지 대신 스위치가 사용되고 있어서 잘 사용되지 않는다. 그러나 근본적으로 스위치와 같은 기능을 제공하기 때문에 기능을 살펴볼 필요는 있다.


브리지는 스위치보다 먼저 나온 장비로, 허브와는 달리 콜리전 도메인을 나눈다. 즉 한 번에 한 통신이 아니라 여러 통신이 발생할 수 있는 것이다.


이렇게 하나의 콜리전 도메인을 형성하는 공간을 세그먼트라고 부르기도 한다. 서로 다른 세그먼트에서는 통신이 동시에 발생할 수있다. 그리고 서로 다른 세그먼트를 다리를 놔서 연결한다 하여 브리지(Bridge)라고 부르는 것이다. 대신 세그먼트 A에 있는 어떤 컴퓨터가 세그먼트 B에 있는 어떤 컴퓨터에게 데이터를 전송하고 응답을 받는다면 두 세그먼트에서 모두 통신이 일어난 것이기 때문에 다른 컴퓨터들은 모두 통신할 수 없다.


브리지 내에는 맥 주소(MAC Address) 테이블이 존재하는데, 이 테이블에 통신하는 컴퓨터의 맥주소가 저장된다. 항상 저장하지 않고, 통신 할 때만 저장을 한다. 


브리지는 Learning, Flooding, Fowarding, Filtering, Aging 이라는 기능들도 제공한다. 하나씩 살펴보자.

  • Learning : 데이터가 도착하면, 브리지는 먼저 맥주소를 확인한다. 만약 처음 보는 맥주소라면 어떤 컴퓨터가 주인인지 알기 위해 모든 포트로 누구거냐~~~라고 물어보고 매칭 되는 컴퓨터의 맥주소를 알아내서 맥주소 테이블에 저장한다.

  • Flooding : 모든 포트로 데이터를 전송하는 기능인데, 처음 보는 맥 주소의 데이터가 올 때, 브로드캐스트나 멀티캐스트 방식의 데이터가 올 때 사용된다.

  • Fowarding : 데이터가 도착하면 브리지는 먼저 맥주소를 확인한다고 했었다. 만약 이미 맥주소 테이블에 기록된 데이터일 경우 특정 포트로 데이터를 보낸다.

  • Filtering : 콜리전 도메인을 나누는 궁극의(?) 기능으로, 세그먼트 사이의 다리를 건너지 않게 한다. 만약 같은 세그먼트에서 통신이 일어난 거면 궂이 다리를 건널 필요가 없기 때문에 이때는 필터링 기능을 사용한다. (위에서 언급했듯 서로 다른 세그먼트에서 개별적으로 발생한 통신은 서로 영향을 주지 않으므로 동시에 통신할 수 있다.)

  • Aging : 브리지도 나이를 먹는다. 이 때 나이는 장비의 나이가 아니라 맥주소 테이블에 저장된 맥주소의(?) 나이이다. 실제로 설정을 통해 맥주소 테이블에 얼마동안 맥주소를 보관할지 정할 수 있다. 300초를 정했으면 한번 도착한 데이터의 맥주소는 300초동안 맥주소 테이블에 저장되고, 300초가 지나면 제거된다. 대신 남은 시간이 있는데 한 번더 도착했으면 유효시간이 갱신된다.


아래는 3개의 콜리전 도메인으로 나눈 모습이다.



위 그림에서는 Computer1 (in Collision Domain A)과 Computer6 (in Collision Domain C)이 통신할 때,

 Computer3 (in Collision Domain B)Computer4 (in Collision Domain B) 통신할 수 있다.


3. 스위치(Switch)

브리지와 같은 기능을 제공하는데, 몇 가지 기능이 추가되었다. 브리지를 멸종시킨(?) 장비이다. 아무래도 기능이 많다 보니 허브보다 속도가 느리다. (기능이 훠얼씬 많은 라우터는 스위치보다 속도가 더 느리다!) 근데 요즘은 네트워크가 작은 규모일 경우 허브나 스위치나 속도 면에서 큰 차이를 보이진 않는다. (허브는 그냥 전송만하는 바보) 스위치는 해야할 일이 많아서 가격면에서 허브보다 비싼데, 요즘은 단점이라 하기도 뭐한 것이 장비 가격이 떨어져서 거기서 거기다. (스위칭 허브라고 하는 장비도 있는데 허브가 아니라 스위치라고 봐야한다.)



그럼 이제 스위치에는 어떤 기능이 추가되었는지 살펴보자. (브리지와 스위치의 차이점)


스위치는 브리지 + 추가 기능 이기 때문에 가격이 더 비싸다. 그럼에도 불구하고... 속도는 더 빠르다. 

가장 중요한 것은 브리지는 포트에 연결된 PC들은 모두 같은 속도로 통신을 해야 하는데, 스위치는 포트별로 다른 속도를 제공할 수 있다. 포트 A가 100Mbps라면, 포트 B는 10Mbps로 통신할 수 있는 것이다. 게다가 브리지보다 제공하는 포트 수도 많다. 아주 많다.


그 외에도 데이터를 처리하는 방식에서도 차이를 보이는데, 브리지는 store-and-foward 방식을 사용하고, 스위치는 store-and-forward + cut-through 방식을 제공한다.


 store-and-forward 방식은 이름에서 알 수 있듯이 데이터가 올 때마다 보내는 것이 아니라 일단 챙겨놓는 방식이다. 전체 데이터가 도착할 때까지 챙겨놓고, 오류도 검사하고, 다왔는지 덜왔는지 살펴보고... 그렇게 해서 덜왔으면 재전송 요청하고, 보내도 괜찮으면 다른 포트로 보내는 방식이다.


cut-through 방식은 반대로 오는 데이터마다 다 보내버린다. 챙겨둠(?)따위는 없다. 처음 48-bit만 보고 바로바로 넘겨버린다. 그래서 데이터 처리 능력은 좋으나, 오류 감지 능력은 store-and-forward보다 뒤떨어진다.


언급한 두 방식을 합친 fragment-free 방식도 있다. 전체 데이터가 올 때까지 챙겨놓지는 않지만 오는 데이터마다 512-bit를 보기 때문에 오류 감지 능력이 cut-through 보다는 좋다.


실제로 브리지는 데이터를 소프트웨어적으로 처리를 한다. 그런데 스위치는 하드웨어적으로 데이터를 처리하기 때문에 (즉 코드가 스위치 내부 칩에 박혀있는 것이다.) 스위치가 브리지보다 훠얼씬 빠르게 데이터를 처리할 수 있는 것이다.


[ 위 그림처럼 여러 스위치를 쌓아 놓고 하나처럼 사용할 수도 있다. ]


추가적으로, 허브와 스위치를 각각 어떤 상황에서 사용해야 하는지 알아보자.


허브는 스위치보다 속도가 빠르지만 전송하는 기능만 있어서 단순하고 규모가 적은 네트워크에서 사용될 수 있다. 예를 들어, 메일이나 파일 전송처럼 네트워크 트래픽이 많지 않다면 허브를 사용하는 것이 더 좋다. 반대로, 많은 컴퓨터가 통신을 해야 하는 경우 스위치를 사용해야 한다.  또는 허브를 스위치에 연결해서 사용할 수도 있다. 이 방법은 더 많은 컴퓨터를 스위치에 연결할 수 있게 해주는 대신, 허브에 연결된 컴퓨터들은 모두 동일한 콜리전 도메인에 속한다.



스위치를 사용할 때 발생할 수 있는 문제점?

간혹 두 컴퓨터간의 경로가 둘 이상일 때가 있다. 그 이유는 하나의 스위치가 고장날 경우 다른 스위치를 통해 데이터를 전송하기 위해서인데, 이렇게 경로가 두 개인 경우 루핑(Looping)이 발생할 수 있다. 루핑은 하나의 PC에서 브로드캐스트를 하면 경로 상의 스우치가 들어오는 포트를 제외하고 모든 포트에 브로드캐스트를 전달하므로 다른 스위치도 브로드캐스트를 받게 될 것이고 또 들어오는 포트를 제외하고 모든 포트에 브로드캐스트를 전달한다. 두 스위치가 연결되는 경로가 두 개라면 이러한 브로드캐스트 패킷은 무한히 돌아다닐 것이다. 따라서 네트워크 트래픽이 커져서 다른 PC들이 통신을 못하게 된다.


물론 루핑을 막기 위해 스위치에서 제공하는 '스패닝 트리 알고리즘'이라는 것이 있는데, 단순히 두 경로 중 하나를 끊어버리는 거라고 생각하면 된다. 내부적인 구현을 어렵지만 추상적이게 본다면 둘 이상인 경로를 탐지하여 하나를 끊어버리고 하나가 고장나면 다른 경로를 사용할 수 있게 해주는 것이다. 이 알고리즘을 통해 하나의 경로에서만 통신을 하므로 둘 이상의 스위치라 하더라도 루핑이 생기지 않게 되는 것이다. 최근 대부분의 스위치는 스패닝 트리 알고리즘이 내장되어 있다. (이것이 바로 하드웨어적으로 처리한다는 것이다....)




3계층 장비

1. 라우터(Router)

라우터가 등장한 이유는 스위치의 단점인 브로드캐스트 처리때문이다. 스위치는 브로드캐스트로 들어온 패킷을 들어온 포트를 제외한 나머지 모든 포트로 뿌린다고 앞서 설명했었다. 이 문제는 저 머얼리 있는 아프리카에서(?) 컴퓨터 한번 껐다 키면 한국에까지 패킷이 전달될 수 있다는 의미이다. (컴퓨터가 켜지면서 인터넷에 연결될 때 ARP를 수행한다.) 이러한 브로드캐스트는 CPU 성능을 저하시키기 때문에 반드시 구분해줄 필요가 있다.


라우터의 핵심 역할은 브로드캐스트 영역을 나누는 것이라 봐도 무방하다. 그 외에도 많은 기능을 제공하는데, 먼저 라우터의 각 포트(인터페이스라고 한다.)는 네트워크 주소가 다르기 때문에 라우터가 다른 네트워크로 연결해주는 역할을 한다. 즉, 네트워크를 구분한다. 또한, 데이터 처리 및 흐름 제어 등 스위치보다 많은 기능을 제공하므로 당연히 스위치보다 비싸다. 대신 내부적으로 처리 할 일이 많아서 스위치보다 속도가 느리다.


네트워크를 구분하는 라우터...라는 말은 라우터를 넘어가지 않는 통신의 경우 같은 네트워크에서의 통신으로 볼 수 있다. MAC에 대하여에서 설명했듯이 라우터를 넘어가지 않는 통신의 경우 맥주소만으로도 통신이 가능하다. 여기서 언급하는 통신은 모두 다른 네트워크로 넘어가는 통신에 대한 것이다. IP주소를 보고 ARP 프로토콜을 사용하여 브로드캐스트를 통해 해당 IP주소의 맥주소를 찾아서 라우팅한다.


라우터의 또 다른 기능은 프로토콜이나 데이터의 크기, 중요도 등 여러 상황에 따라 트래픽의 전송 순서를 조정해주는 서비스 품질(QoS, Quality of Service) 기능도 제공한다. 게다가.. 로드 분배도 제공한다.. 즉 여러 개의 경로를 가지고 있기 때문에 데이터가 여러 경로를 타고 날아갈 수 있다. 한쪽에 문제가 생겨도 다른쪽으로 날아갈 수 있다. (스위치에서도 제공할 수 있는데 굉장히 제한적이다.)


스위치보다 좋은 기능도 많지만, 한편으로는 구성하기가 어렵다는 단점이 있다. 스위치는 대부분 전원만 공급해주면 사용이 가능하다. 소프트웨어적으로 처리하는 것이 아니라 장치에 내장된 칩에 모든 것이 있어서 하드웨어적으로 처리한다. 라우터는 라우팅 프로토콜도 정해주어야 하고(일반적으로 TCP/IP) 네트워크도 설정해주어야 한다. 필터링이니 보안이니 구성해 주어야 할 것이 많다.


이렇게 많은 라우터의 기능을 구현하는 스위치도 있는데 이를 L3 스위치라고 한다.

2. 라우터에서의 IP주소 이해하기

라우터의 포트(=인터페이스)는 이더넷 인터페이스와 시리얼 인터페이스로 나뉜다. 이더넷 인터페이스는 내부 네트워크에 연결되는 부분이고, 시리얼 인터페이스는 외부 네트워크로 연결되는 부분이다. (인터넷쪽으로 연결되는 인터페이스로, 전용선 모뎀에 연결된다.)


이와 같은 전제 조건에서 라우터가 받는 IP주소는 두 개라는 것을 알 수 있다. (네트워크가 다르잖아요?) 하나는 이더넷 인터페이스에 부여할 것이고, 다른 하나는 시리얼 인터페이스에 부여할 것이다. 이더넷용 IP주소는 내부에서 사용하기 위해 부여받은 IP주소 중 하나를 배정해야 한다. 예를 들어 내부 PC용으로 받은 주소가 203.120.150.1 ~ 203.120.150.255 까지라면 그 중 하나가 될 것이다. 보통 맨 앞의 숫자인 1을 쓴다. 이 예시에서는 203.120.150.1이 라우터 이더넷용 IP주소가 될 것이다. 주의할 것은 라우터에 부여한 주소는 다시 PC에 부여하면 안된다. 시리얼에 부여할 IP주소는 우리가 결정할 수 없다. 왜냐 라우터가 접속하는 상대편(ISP 업체) 라우터의 시리얼 인터페이스와 IP주소를 맞추어야 하기 때문이다. (이더넷용 IP주소와는 다른 네트워크다) 이런 이유로 라우터에서 포트가 다르면 다른 네트워크 주소를 갖기 때문에 네트워크를 구분하는 역할을 하는 것이다. 아무튼 상대편 라우터의 시리얼과 같은 네트워크가 되어야 하므로, IP주소의 네트워크 부분이 ISP업체의 라우터 시리얼 인터페이스와 같게 된다.


예를 들어, 상대편 라우터의 시리얼이 203.150.150.5에 서브넷 마스크가 255.255.255.252 (여기서 서브넷마스크 설명은 생략한다.) 라면 우리 라우터의 시리얼은 203.150.150.6에 서브넷 마스크는 255.255.255.252가 되는 것이다. 일단 서브넷 마스크는 서로 같아야 한다.



추가적으로, 몇 가지 용어를 살펴보고 가자.


폴트 톨러런트(Fault tolerant) : 네트워크 상에 어떤 문제가 발생할 수 있는데, 이를 미리 대비하는 방법을 말한다. 대부분 이중 구조를 의미한다. 예를 들어 라우터를 두 대 연결하면, 하나가 고장나면 다른 라우터가 기존의 라우터 역할을 수행하는 것이다. 이 예시에서는 교체를 의미하는 게 아니다. 라우터의 장비를 바꾸는 건 다른 해결책이고, 여기서는 미리 둘 이상의 라우터로 네트워크를 구성하여 하나가 고장났을 때 자동으로 다른 라우터가 기존의 역할을 수행하여 마치 오류가 없는 것처럼 보이게 하는 것이다.


로드 밸런싱(Load balancing) : 부하 분산이라는 의미인데, 네트워크에서는 로드를 분산하는 것을 뜻한다. 예를 들어, 인터넷 회선 하나를 이용하여 인터넷 접속을 하는 것보다 인터넷 회선 두 개를 사용하여 인터넷 접속을 하면 데이터들이 두 라인 중 하나를 선택하여 이용하므로 속도가 2배가 된다. 이렇게 분산되는 효과는 네트워크 뿐만 아니라 컴퓨터 자원에서도 많이 볼 수 있다. 로드 밸런싱은 폴트 톨러런트가 가능한데 그 이유는 회선 하나가 끊어지면 다른 회선으로 이전이 가능하기 때문이다. 반면 폴트 톨러런트는 로드 밸런싱이 안되는 경우가 있다.




정리하자면,

우리가 보통 쓰는 라우터에 배정해야 하는 IP주소는 이더넷용과 시리얼용이 있으며, 두 주소는 다르다. 이더넷용 IP주소는 부여받은 번호 중 하나를 쓰는 것이고(어떻게 배정받는지는 다음에!) 시리얼용 IP주소는 접속하는 ISP 업체에 따라 다르므로 ISP 업체에 문의해서 써야 된다.



'Network > Summary' 카테고리의 다른 글

MAC 에 대하여  (1) 2018.06.26


MAC : Media Access Control


Physical Address , 물리 주소라고 한다. 인터넷에 연결된 기기들을 구분하는 식별자, 48bit이며 앞 24bit는 회사를 식별하고, 24bit는 기기를 식별한다. 따라서 전세계적으로 고유하다실제로 Windows의  ipconfig /all 명령어를 명령 프롬프트(cmd)에 입력하면 IP주소와 MAC주소를 볼 수 있는데, MAC주소는 기억하기 쉽도록 16진수로 표현된다



F8-16-54 는 회사 식별자

00-92-95 는 기기 식별자


 실제로 인터넷에서 통신을 하려면 MAC주소와 IP주소가 같이 요구되는데, 그 이유는 아래에 나와있다. 



우선, MAC 주소만으로 통신을 할 수 있는지 알아보자.


 결론부터 말하면, 자신과 같은 네트워크 공간에 있는 컴퓨터와 통신을 하려면 MAC주소만 있으면 된다. 같은 네트워크 공간이라는 것은 안방에 부모님 컴퓨터가 있고, 거실에 공용 컴퓨터가 있고, 내 방에 내 컴퓨터가 있을 때 세 대의 컴퓨터가 통신하는 공간으로 생각하면 된다. 혹은 회사 사무실에서 김과장과 이과장이 각자의 컴퓨터로 통신하는 정도로 생각하면 된다.


 인터넷은 크고 작은 네트워크들을 하나로 묶은 것인데, 각 네트워크들끼리는 라우터(Router)라는 장비로 구분된다. 데이터를 전송할 때 라우터를 넘어가게 되면 IP주소가 필요하다. 통신에서 IP주소가 필요한 이유가 바로 라우터에서 다른 네트워크로 데이터를 보내기 위함이다.



그렇다면 MAC주소로 어떻게 통신하는가?


 같은 네트워크 공간에 있는 컴퓨터라 하더라도 데이터를 주고 받으려면 장비가 필요하다. 이 장비를 스위치(Switch)라고 하는데, 스위치에는 작은 메모리가 있어서 MAC주소를 저장할 수 있다. , 어떤 컴퓨터가 어떤 MAC주소로 소유했는지 테이블에 기록하는 것이다. A컴퓨터에서 B컴퓨터로 데이터를 전송하려면 중간에 스위치를 거쳐야만 한다. 만약 스위치에 해당 MAC주소를 가진 컴퓨터가 없다면, 목적지가 없는 데이터가 되어버린다목적지를 찾을 수 없을 경우 그냥 버려진다이렇게 네트워크에서 돌아다니는 데이터를 패킷(Packeet)이라고 부른다.

 서로 다른 네트워크 공간에서 데이터를 전송하는 경우를 생각해보자. 같은 네트워크 공간에서는 스위치를 통해 데이터를 전송한다고 했는데, 스위치는 컴퓨터와 연결될 뿐만 아니라 라우터와도 연결된다. , 다른 네트워크로 데이터를 송신하는 경우 컴퓨터->스위치->라우터 순서로 외부로 나가게 되는 것이다

 각 장치에서 패킷의 구조는 변하는데 설명을 덧붙이자면, 스위치에서는 MAC주소만 필요하게 되므로 전송할 데이터 위에 송신자 MAC주소와 수신자 MAC주소가 적힌 헤더(Header)라는 것이 벗겨졌다가 씌워진다. 라우터에서는 IP주소가 적힌 헤더(Header)라는 것이 씌워진다. 자꾸 벗겨지니 씌워지니 하니 표현이 이상한데, 헤더를 까서(?) 내용물을 확인하는 걸로 이해하면 된다. 내용물을 확인하는 것은 목적지가 어디인지 알아야 하기 때문이다. 이 헤더가 어떤 원리로 쌓이고, 어떤 원리로 하나씩 벗겨지는지는 다음에(?) 알아보자.


 반대로, 외부에서 들어오는 데이터(수신받는 경우)는 라우터->스위치->컴퓨터 순서로 거쳐올 것이다. 라우터에서 IP주소가 적힌 헤더를 벗겨서 확인하면, MAC주소 헤더만 있는 패킷이 스위치로 전달되고, 스위치는 MAC주소 헤더를 벗겨본다. 자신의 메모리에서 목적지 MAC주소가 있는지 확인해보고 없으면 버려버려(?) 여하튼 주인이 있으면 그 컴퓨터한테 돌려준다. 



정리를 하자면,


 목적지 컴퓨터가 위치한 네트워크를 찾기 위해 IP주소를 사용하며, 해당 네트워크에서 실제 목적지 컴퓨터(End-point라고 표현한다.)를 찾기 위해 MAC 주소를 사용한다. 요즘 개인용 컴퓨터는 공유기를 사용하는데, 공유기는 라우터와 스위치의 역할을 모두 해낸다. (정말 똑똑한 녀석이다.) 자 여기서 IP주소를 MAC주소로 바꾸는 과정이 필요한데, 바로 라우터가 IP주소를 보고 MAC주소를 어떻게 알려주는지에 대한 것이다. 단순히 IP주소만 있는 헤더를 까본다고 해결될 문제가 아니다. 하여튼, IP주소를 MAC주소로 바꾸는 과정ARP(Address Resolution Protocol)라고 하며, 여기서 사용되는 통신규약을 ARP 프로토콜이라고 한다ARP 프로토콜은 어떤 원리인가? 이것도 다음에(?) 알아보자. 


 추가로, 한 컴퓨터에서는 여러 개의 프로그램들을 실행한다. A프로그램이 다른 네트워크랑 통신하고, B프로그램도 통신한다고 가정하자. 데이터가 수신될 때 두 프로그램 중 누구에게 전달해야 하는가? 라는 문제가 발생한다. 이건 포트(Port)라는 걸로 해결한다. 즉, 통신할 때 응용 프로그램을 식별하기 위해 포트(Port) 번호가 사용된다. 까지의 범위인데, 이 중 예약된 포트번호가 있다. 흔히 아는 80포트(HTTP통신), 443포트(HTTPS통신) 등은 사용할 수 없다.



'Network > Summary' 카테고리의 다른 글

네트워크 장비에 대하여  (0) 2018.07.02

 

 

Switching

 

- 다수의 기기를 unicast 방식으로 서로 통신할 수 있도록 중간 장치(switch, router)를 설치하는 방법 (사실 multicast, broadcast 도 지원한다.)

 

- Point-to-Point(점대점) 연결 방식이다.

 

- Switch : 스위치에 연결된 둘 또는 다수의 기기들 사이에 일시적인 연결을 만들게 하는 하드웨어 또는 소프트웨어적인 기기이다. 스위치에 꼽힌 케이블을 통해 목적지 포트를 향해 데이터들이 전송된다. 계층별로 있으며 2계층 장비는 L2 스위치, 3계층은 L3 스위치라고 부른다.

 

- 스위치는 기기간의 연결이 아닌 중간장치의 역할이며, 하드웨어적인 기기의 경우 속도가 빠르나 유연성이 낮고 비용이 많이 든다.

 

 

 

Switched Network

 

- 회선 교환 방식(Circuit-Switched Networks)

 

- 패킷 교환 방식(Packet-Switched Netwoks)

  • 데이터그램 방식(Datagram Networks)

  • 가상 회선 방식 (Virtual-Circuit Networks)

 

- 메시지 교환 방식(Message-Switched Networks)

 

 

 

TCP/IP 통신 계층들과 스위칭 방식

 

- 물리 계층(Physical Layer, 1계층) : 회선 교환 방식이 이루어지며, 신호들이 하나의 경로 또는 다른 경로에서 이동한다.

 

- 데이터 링크 계층(Data-Link Layer, 2계층) : 패킷 교환 방식이 이루어지며, 일반적으로 가상회선 방식을 이용한다.

 

- 네트워크 계층(Network Layer, 3계층) : 패킷 교환 방식이 이루어지며, 가상 회선 방식과 데이터그램 방식 둘 다 이용한다.

 

- 응용 계층(Application Layer, 7계층) : 메시지 교환 방식을 이용한다.

 

 

 

회선 교환 방식의 네트워크 (Circuit-Switched Network)

 

- 물리 계층에 연결된 스위치들로 이루어진다. , 주로 물리 계층에서 작용하는 네트워크로 하드웨어 측면에서 속도가 빠르다.

 

- 출발지와 목적지 사이의 하나의 연결이 하나 또는 다수의 링크들로 만들어진 망 자원을 전용으로 할당받는다.

 

- 각각의 링크는 주파수 분할 다중화(FDM) 또는 시 분할 다중화(TDM) 방식에 의해 n개의 채널들로 나누어 진다.

 

- 망이 전용자원으로서 할당되기 때문에 다른 사용자와 함께 사용할 수 없으므로 전송 중에 다른 데이터가 끼어들 수도 없다.

 

- 연결 개수가 제한되기 때문에 연결의 전체 시간측면에서 효율성이 떨어진다.

 

- 주로 전화망에서 사용하는 스위칭 방식이다.

 

- 연결 설정 단계 : 미리 연결을 설정한다. 이를 우리는 셋업 절차(setup)라고 표현한다.

  • 데이터 전송 단계에서 이용되어질 자원을 예약한다.

  • 이 자원들은 채널(타임 슬롯이나 주파수), 버퍼, 처리 시간, 입출력 포트를 의미하며, 데이터 전송 동안은 전용으로 할당되어진다.

  • 종단간의 주소(End-to-end addressing)가 이용되어진다. ex) 출발지 및 목적지 IP 주소

 

- 데이터 전송 단계

  • 데이터(세그먼트)는 패킷으로 분할되지 않고, 하나의 연속적인 흐름으로 전송된다.

  • 주소는 헤더의 필드값에 저장되므로 데이터는 주소를 포함하지 않는다.

 

- 연결 해제 단계

  • 자원을 해제한다.

 

- 미리 연결 설정하여 전용 자원을 할당하므로 실제 데이터만 전송할 때는 지연(delay)없이 데이터가 쭉 흘러간다.

 

 

 

회선 교환 방식의 네트워크 (Packet-Switched Network)

 

- 상위 계층(전송 계층, 4계층)에서 세그먼트가 캡슐화되어 3계층에 내려오면, 데이터그램이 되는데, 데이터그램은 세그먼트(4계층 헤더+데이터)3계층 헤더(IP헤더)를 포함한다. , 오버헤드

 

- 상위계층으로부터 도착한 메시지(데이터그램)가 고정되거나 가변적인 크기의 패킷들로 나뉘어진다.

 

- 패킷에 대한 전용자원을 할당하지 않는다.

 

- FIFO(First-In-First-Out) 방식을 기반으로 자원이 할당된다.

 

- 스위치나 라우터에 큐(Queue)라는 버퍼가 있는데 버퍼가 꽉차면 큐잉 지연이 발생할 수 있다.

 

- Store-and-forward 방식 : 큐에 저장했다가 어디로 내보낼지 정한 뒤, 스위치(또는 라우터) 내부에 입력 버퍼에서 출력버퍼로 포워딩(forwarding)하는 방식이다.

 

- 주로 컴퓨터 통신에 이용되어진다. 데이터가 폭발적이므로 연결설정을 하지 않는다.

 

- 데이터를 패킷 단위로 작게 쪼개는 이유 : 메시지(데이터)가 클수록 오류 검출을 위한 오버헤드가 커지게 된다

 

 

 

데이터그램 방식의 네트워크 (Datagram Network)

 

- 패킷 교환 방식 중 하나로, 데이터그램이 패킷들로 분해된 후 각각의 패킷(나뉜 데이터그램)은 독립적으로 여겨진다.

 

- 연결 설정 단계가 없다.

 

- 수신측에서는 패킷들을 다 받아서 하나의 데이터그램으로 조합한다. 이 때, 패킷들 사이에 지연(delay)가 발생하여 데이터그램들이 목적지에 도착하는 순서가 어긋날 수 있다. 패킷이 하나라도 없으면 조합할 수 없기 때문이다.

 

- 패킷들은 전송 중에 손실되거나, 버퍼가 가득 차서 오버플로우가 발생하면 버려질 수 있다.

 

- 네트워크 계층(3계층)에서 주로 이용되는 방식이다.

 

- 링크를 사용자들이 돌아가면서 사용하기 때문에 하나의 링크를 이용할 수 있는 사용자 수가 많다. 따라서 회선 교환 방식보다 효율성이 높다.

 

- 라우터는 라우팅 프로토콜(Routing Protocol)이 만든 포워딩 테이블을 이용하는데, 포워딩 테이블에는 목적지 IP주소와 출력 포트번호가 저장되어 있다.

 

- 라우터는 패킷의 헤더에 있는 목적지 IP주소와 포워딩 테이블에 있는 IP주소를 비교한 뒤, 해당 IP주소에 맞는 출력 포트로 패킷을 포워딩한다. 모든 경로가 이런 방식으로 안내되어진다.

 

- 전체 지연 시간 = (transmission delay) + (hop )*(propagation delay) + (processing delay) + (queueing delay)

 

 

 

가상 회선 방식의 네트워크 (Virtual-Circuit Network)

 

- 회선 교환 방식과 패킷 교환 방식의 혼합방식이다.

 

- 패킷 교환 방식 중 하나이지만, 연결 지향적인 네트워크로서 연결 설정 단계가 있다.

 

- 자원들은 셋업 절차나 필요 시에만 할당될 수 있다.

 

- 데이터는 패킷화되어지고, 각 패킷들은 연결 식별자(Virtual-Circuit Identifier, VCI)를 옮긴다.

 

- 모든 패킷들은 연결단계에서 설정된, 같은 경로를 따른다. 따라서 순서에 맞게 간다.

 

- 보통 데이터 링크 계층(2계층)에서 구현되며, 속도가 빠르다.

 

- 연결 단계에서 Global unique 주소가 연결 식별자(VCI)를 만들기 위해서만 이용되어진다.

 

- VCI는 스위치가 직접 관리하는 식별자로, 실질적으로 데이터를 전송할 때 이용된다. 숫자가 작고 Locally unique 주소라서 오버헤드가 축소된다.

 

- Label Swapping : 스위치를 지날 때마다 VCI를 바꾸는 것으로, 현 스위치가 식별하는 값을 다음 스위치가 식별할 수 있는 값으로 변경하는 것이다.

 

- 연결 설정 단계 : 연결에 필요한 VCI 테이블을 만들기 위해 출발지와 목적지의 글로벌 주소가 이용된다.

 

- 데이터 전송 단계 : 입력 포트 번호 및 VCI를 기반으로, 스위치가 출력 포트 번호 및 VCI를 찾기 위해 VCI 테이블을 탐색한다.

 

- 연결 해제 단계 : VCI 테이블의 VCI값은 이 단계에서 저장되어지며, 대응하는 entry들을 없앤다는 것을 스위치에게 알린다.






 


 

인터넷에서의 라우팅

 

이전까지 알아본 라우팅 기법은 모두 이상적인 환경을 가정하고 있었는데, 이상적인 환경이란 모든 라우터가 동일하며, “하나의 네트워크임을 의미한다.

 

현실에서는 아래와 같은 문제점을 가지게 된다.

  • 규모의 확장(Scale) : 억 단위의 목적지(호스트)로 인해 모든 목적지를 라우팅 테이블에 저장할 수 없다는 것과 라우팅 테이블 정보의 교환은 링크의 대역폭을 고갈시킨다는 문제가 발생한다.

  • 관리 자치권(Administrative autonomy) : 인터넷은 여러 네트워크의 집합으로 거대한 하나의 네트워크인데, 각 네트워크 관리자는 자신의 네트워크에서 라우팅을 제어하길 원한다는 문제가 발생한다.

 

 

 

자치 시스템(Autonomous System, AS)

 

라우터들을 영역으로 그룹화한 것으로 확장성(Scale) 문제를 해결한다.

(자치 시스템 외에 도메인으로도 확장성 문제를 해결 할 수 있다.)

 

인트라 AS 라우팅(intra-AS routing)

  • 같은 자치 시스템(AS) 내부에 호스트와 라우터들 간의 라우팅 방식이다.

  • AS 내의 모든 라우터들은 같은 인트라 도메인 프로토콜(intra domain protocol)을 수행한다.

  • 다른 AS의 라우터들은 다른 인트라 도메인 프로토콜을 수행한다.

  • 게이트웨이 라우터(Gateway Router) : 자신의 AS 내에서 가장자리에 있는 라우터로, 다른 AS의 라우터와 연결한다.

  • ex) OSPE, RIP

 

인터 AS 라우팅(inter-AS routing)

  • 서로 다른 자치 시스템(AS) 의 라우팅 방식이다.

  • 게이트웨이 라우터가 인트라 도메인 라우팅뿐만 아니라 인터 도메인 라우팅(inter domain routing)도 수행한다.

  • ex) BGP

 

 

 

Interconnected AS

 

포워딩 테이블은 인트라 AS & 인터 AS 라우팅 알고리즘에 의해 설정된다.

 

인트라 AS 라우팅은 해당 AS 내부에 목적지들에 대한 포워딩 테이블의 명부(Entry)를 설정한다.

 

- 인터 AS와 인트라 AS 라우팅 둘다 외부 목적지에 대한 포워딩 테이블의 명부(Entry)를 설정한다.

 

인터 AS의 작업 : AS1 안의 임의의 라우터가 AS1 밖으로 나가려는 데이터그램을 수신한다면, 해당 라우터는 게이트웨이 라우터로 패킷을 전달한다이 때, 여러 게이트웨이 라우터들 중 하나의 게이트웨이 라우터를 선택하는 방식이 필요한데 이는 인터-AS 라우팅의 핵심 역할이라고 볼 수 있다.

  • 다른 AS를 경유하여 도달할 수 있는 목적지들을 학습한다.

  • 이 도달 정보(라우팅 정보)AS1 내부의 모든 라우터들에게 전파한다.

인트라 AS 라우팅(Intra-AS Routing)

  • 내부 게이트웨이 프로토콜(Interior Gateway Protocol, IGP)이라고도 한다.

  • 대부분 흔히 인트라 AS 라우팅 프로토콜을 사용한다.

  • 라우팅 정보 프로토콜(Routing Information Protocol, RIP) : 거리벡터 알고리즘이 구현되어 매 30초마다 거리벡터 값(DV)을 알린다.

  • 개방형 최단경로 우선 프로토콜(Open Shortest Path First, OSPF) : IS-IS 라우팅 프로토콜과 본질적으로 유사하다.

  • 내부 게이트웨이 라우팅 프로토콜(Interior Gateway Routing Protocol, IGRP) : 시스코(Cisco) 독점 프로토콜

 

 

 

개방형 최단경로 우선 프로토콜(OSPF)

 

개방형으로 라우팅 프로토콜이 공용으로 이용할 수 있다.

 

- RIP는 주로 하위 계층 ISP나 기업 네트워크 구축에 사용되는 반면, OSPF는 상위 계층 ISP들이 사용한다.

 

링크 상태 알고리즘(Link State Algorithm)을 사용한다.

  • 다익스트라 알고리즘을 이용하여 최소 비용 경로를 계산한다.

  • 링크 상태 패킷 정보를 전파한다.

  • 각 노드에게 전체 AS의 토폴로지 맵이 주어진다.

- 라우터는 AS의 모든 라우터에게 OSPF 링크 상태 알림(라우팅 정보)을 브로드캐스트한다.

  • 링크 상태 정보를 Flooding

  • TCP, UDP가 아닌 IP를 통해 OSPF 메시지를 직접 전달한다. IP 데이터그램에 OSPF 메시지가 헤더가 아닌 data(페이로드)에 들어 있다.

보안(Security) : 모든 OSPF 메시지는 인증되어야 하므로, 아무나 라우팅 정보를 보낼 수 없다.

 

다수의 동일 비용 경로 허용 : 한 목적지까지 동일한 비용의 여러 경로가 존재할 때, 여러 경로를 사용할 수 있다

(RIP에서는 한 경로만 존재한다.)

 

각 링크에 다른 서비스 유형(Type Of Service, TOS)에 대해 동일 비용의 여러 경로(Equal Cost Multi Path, ECMP)의 측정값을 매긴다. 예를 들어 위성 링크의 비용을 최선(best-effort)의 경우 낮게 측정하고, 실시간(real-time)인 경우는 높게 측정한다. , 위성 링크는 상황에 따라 비용(cost)이 바뀔 수 있다.

 

유니캐스트(Unicast)와 멀티캐스트(Multicast)를 통합 지원한다.

(Multicast OSPF(MOSPF)OSPF와 같은 토폴로지 데이터베이스를 사용한다.)


넓은 도메인 영역에서는 계층적 OSPF”를 지원한다.

 

[ 파란색은 backbone area(백본 영역)이고, 점선 영역은 local area(지역 영역)이다. ]


- AS가 크면, Flooding 할 때 오버헤드가 증가한다. 이에 따라 제어 메시지(control message)가 증가하는데 이를 방지하기 위해 계층적으로 영역을 나눈다.


- 2계층 구조 : 지역 영역(local area)와 백본 영역(backbone area)

  • 한 영역 내에서만 링크 상태를 광고하며, 바깥 노드는 축약된 정보만 받는다.

  • 각 노드들은 상세한 영역 토폴로지를 가진다.

  • 다른 영역의 네트워크에 대해서는 최단 경로의 방향만 알고 있다.

  • AS(자치 시스템, 하나의 네트워크 관리자)에서 하나의 OSPF 영역만을 백본 영역으로 설정한다.

  • boundary router : 트래픽 양을 줄이기 위해 계속해서 축약된 정보를 backbone 영역의 라우터들에게 전파한다. 다른 AS에 속한 라우터들과 연결한다.

  • backbone router : 백본 내에서 OSPF 라우팅을 수행하는 비경계 라우터이다.

  • area border router : 하나의 영역에서 네트워크에 거리를 요악하여 다른 영역 경계 라우터(area border router)들에게 알린다. , 외부 영역으로 패킷 라우팅을 책임진다.


 

 

경계 게이트웨이 프로토콜(BGP)

 

사실상 인터 AS 라우팅 프로토콜을 의미한다.


- exterior BGP(eBGP) : 이웃 AS로부터 목적지 도달하기 위해 필요한 정보(서브넷 도달성 정보)를 얻는다. 라우터 간의 TCP기반의 통신이다.

 

- interior BGP(iBGP) : 모든 AS 내부의 라우터에게 도달성 정보를 전파한다. AS 내부에서 라우팅 정보를 주고받는다.

 

도달성 정보와 AS 정책을 기반으로 다른 네트워크에 좋은 경로"를 결정한다.

 

서브넷이 자신의 존재를 외부 네트워크에게 알리도록 한다. 광고를 통해 그쪽으로 정보 전달이 가능하다.

 

[ 번개 모양의 꺾은 부분이 있는 선은 eBGP 연결이며, 구름 영역 내부의 직선은 모두 iBGP 연결이다. ]


- BGP 세션(session) : 두 개의 BGP 라우터(peer)가 반영구적 TCP 연결을 통해 BGP 메시지(라우팅 정보)를 교환한다.

 

다른 목적지 네트워크 프리픽스(prefixes)의 경로를 광고한다.  → 경로 벡터 알고리즘(Path Vector Algorithm)

 

- AS3의 게이트웨이 라우터가 경로 (AS3, X)AS2 게이트웨이 라우터에게 광고한다고 하면, AS3AS2에게 X로 향하는 데이터그램을 전달하겠다고 약속한다.

  • (AS3, X) : XAS3 거쳐옴을 의미한다.

 

경로 속성과 BGP route

  • 광고된 네트워크 프리픽스(prefix)BGP 속성을 포함한다.

  • 프리픽스(prefix) + 속성(attribute) = 루트(route)

  • AS-PATH : 프리픽스 광고가 거쳐간 AS를 포함하는 리스트로 어딜 거쳐왔는지에 대한 라우팅 정보가 포함된다.

  • NEXT_HOP : 다음 hopAS로 가기 위해 거쳐야하는 특정 내부 AS 라우터를 표시한다.

루트 광고를 수신하는 게이트웨이 라우터는 중요한 정책(important policy)을 통해 해당 광고의 수락 및 거절을 결정한다.

 

중요한 정책이란 여러 정보 중 우선순위를 결정하거나 정보의 수락 및 거절, 다른 이웃 AS들에게 경로를 알릴지 등을 결정하는 정책을 말한다.

 

경로 벡터(path verctor)의 전달 과정

  1. AS2의 라우터 2c가 경로 광고(AS3, X)eBGP를 통해서 AS3의 라우터 3a로부터 수신한다.

  2. AS2 정책을 기반으로, AS2 라우터 2c는 경로 정보(AS3, X)를 받아들이고, iBGP를 통해서 모든 AS2 내부 라우터들에게 전파한다.

  3. AS2 정책을 기반으로, AS2 라우터 2aeBGP를 통해서 경로 정보 (AS2, AS3, X)AS1 라우터 1c에게 알린다.

 

게이트웨이 라우터는 목적지까지 다수의 경로에 대해 알 수 있다.


예를 들어, 위의 과정에서 AS3 라우터 3a가 바로 AS1 라우터 1c에게 경로정보 (AS3, X)를 전파할 수도 있다. 그 때는 AS1 라우터 1cAS2로부터 온 정보와 AS3로부터 온 정보 중 하나를 선택할 수 있다. 이후 iBGP를 통해 AS1 내부의 모든 라우터들에게 경로 정보를 알린다.

 

- BGP 메시지 : TCP 연결 상의 peer들 사이에서 교환되는 메시지로 아래와 같은 네 가지가 있다.

  • OPEN : 다른 BGP 피어와의 연결, TCP 연결을 시작하고, 송신측 BGP 피어의 인증을 거친다.

  • UPDATE : 새로운 경로정보를 광고하고, 오래된 정보는 철회한다.

  • KEEPALIVE : 업데이트가 없어도 연결을 유지하며, OPEN 요청에 대한 ACK를 한다.

  • NOTIFICATION : 이전의 메시지에 대한 에러를 보고하며, 연결 종료에도 사용된다.

 

 

 

포워딩 테이블 엔트리

 

라우터의 포워딩 테이블 엔트리에 프리픽스를 저장하는 방법 : AS 내에 특정 라우터가 수신하면 내부에 모든 다른 라우터들에게 경로 정보를 알린다.

 

예를 들어 라우터 a, b, c, d가 있다고 가정하자. ceBGP를 통해 경로 정보를 수신했다면, a, b, d에게 해당 정보를 알리고, a, b, diBGP를 통해 c로부터 전달받은 목적지 X까지의 경로를 학습한다. 라우터 aOSPF 인트라 도메인 라우팅을 사용하여 c에 도달하는 출력 로컬 인터페이스 중 하나로 포워딩한다. 나머지 라우터 bd도 같은 행동을 수행한다. 그 때 목적지 X와 인터페이스 정보를 포워딩 테이블의 하나의 엔트리로 저장한다.

 

 

 

BGP 경로 설정

 

라우터는 목적지 AS로 가는 다수의 라우팅 정보에 대해 배울 수 있고, 아래의 속성을 통해 하나의 정보를 선택한다.

 

지역 선호 값 속성(local preference value attribute)이 제일 높은 선호도 값의 루트를 선택, 이 속성은 정책에 의해 결정된다.

 

최단 AS-PATH : 똑같은 정보 중 최단 경로를 선택한다.

 

가장 가까운 NEXT-HOP 라우터를 갖는 경로를 선택한다. , 경로의 비용이 최소인 라우터를 선택하는 방식으로 다음에 설명할 핫 포테이토 라우팅방식이다.

 

위 세 개를 적용했음에도 여러 경로가 남아있다면 추가적인 기준을 사용한다.

 

 

 

핫 포테이토 라우팅(Hot Potato Routing)

 

언어적 의미는 뜨거운 감자를 만졌을 때 사람들이 뜨겁다며 빠르게 던지는 모습에서 따온 의미이다.

 

경로 정보를 가진 패킷이 왔을 때 큐가 짧은 쪽으로 빨리 보내는 라우팅 방식이다. , AS 중에서는 짧은 경로의 AS로 빨리 내보낸다.

 

가장 작은 인트라 도메인 비용을 가진 로컬 게이트웨이 라우터를 선택한다.

 

예를 들어, 어떤 AS 내부에 라우터 a, b, c, d가 있다고 하고, d의 출력 인터페이스가 모든 라우터(a, b, c)와 연결되어 있다면 최저 비용을 가진 인터페이스로 패킷(경로 정보)을 전달한다. 이 때, 인터 도메인 비용은 고려하지 않는다.

 

 

 

BGP 라우팅 정책

 

- ISP는 자신을 사용하는 네트워크(customer network)를 통해서만 트래픽(traffic)을 라우팅하기를 원한다. 다른 ISP 간의 트래픽이 전송되는 것을 방지하기 위함이다.

 

 

- ABC에게 경로 정보 Aw를 알린다. (Aw : A를 통해서 w로 정보 전달 가능하다라는 의미이다.)

 

- BC에게 경로 정보 BAw를 알릴지 말지 선택할 수 있다.

  • B가 전송하지 않는다면, Cw로 데이터를 전송할 때 절대로 B를 거치지 못한다. 대신 Aw를 받았기 때문에 A를 거쳐서 w로 데이터를 전송할 수 있다.

  • B가 전송한다면 CB를 거쳐서 w로 데이터를 전송할 수 있다.

- C, A, wBcustomer network가 아니므로 CBAw 라우팅은 어떤 동작도 하지 않는다.

 

- CCBAw 경로를 학습하지 못한다.

 

- x는 두 provider network에 연결된 듀얼 홈 네트워크(dual-homed network), ISP의 서비스를 받을 수 있다.

 

- x는 자신을 경유하여 B에서 C로 라우팅을 원하지 않는다. 따라서 XB에게 C로의 경로를 광고하지 않는다.

 

 

 

인터-AS & 인트라-AS 라우팅의 차이

 

정책(policy)

  • 인트라-AS(내부AS) : 하나의 관리자가 제어하므로 정책 결정이 필요 없다.

  • 인터-AS(외부AS) : 각 네트워크 관리자는 어떻게 트래픽이 라우팅되고, 누가 자신의 네트워크를 경유할 것인지를 제어한다.

확장성(scale) : 계층적 라우팅으로 인해 테이블 크기를 절약하고 업데이트 트래픽도 감소시킨다.

 

성능(performance)

  • 인트라-AS : 성능에 초점을 맞춘다.

  • 인터-AS : 성능보다 정책에 초점을 맞춘다. 최소 비용이 더 중요하기 때문이다.

 

 

 

인터넷 제어 메시지 프로토콜(ICMP)

 

네트워크 계층 정보를 통신하기 위해 호스트와 라우터들에 의해 이용되어진다.

 

오류 보고(error reporting)

목표 : 도달할 수 없는 호스트, 네트워크, 포트, 프로토콜 등을 보고하며, IP 데이터그램 전달 오류를 출발지 호스트에게 알리기

방법 : ping을 통해(like ping test) 에코 요청이나 응답을 한다.

 

- ICMP 메시지는 IP 데이터그램의 헤더가 아닌 데이터 영역(페이로드)에 저장되어 전송된다.

 

- ICMP 메시지 : 타입(type), 코드(code), 설명(description)으로 이루어진다. 에러 설명 부분은 8바이트이다.

 

아래는 ICMP 메시지 중 몇몇 설명에 대한 동작이다.

  • source quench (congestion control not used) -> 혼잡 상황을 라우터가 출발지에게 빨리 알려줌
  • route advertisement -> 어떤 서브넷에 들어가면 ICMP 메시지를 통해 주기적으로 자신(라우터)을 광고한다.

  • router discovery -> 내가 속한 서브넷의 라우터 정보를 받아온다.

  • bad IP header -> 체크섬계산 오류시 전송되는 메시지 설명이다.

 

 

 

Traceroute

 

- Traceroute 진단 프로그램 : 출발지와 목적지 사이의 라우터 이름과 주소를 추적하는 프로그램이다.

 

- ICMP 메시지를 이용한다.

 

지정된 목적지 경로에 따라 출발지에서 라우터까지 지연시간을 측정한다.

 

경로 상 모든 라우터의 동작 : 경로 상의 어떤 라우터 x에 대해 3개의 패킷을 송신한다면, 라우터 x는 송신자에게 패킷을 리턴한다. 그 다음, 송신자는 패킷 송신과 응답 사이 시간을 측정한다.

 

- Traceroute 원리

  • 출발지는 목적지에 일련의 UDP 세그먼트를 보내고, 첫 번째 데이터그램의 TTL=1, 다음 hop을 거듭할수록 TTL=2, 3, 4, ... ,n 으로 계속 1씩 증가한다. UDP는 포트번호가 없다. (TTL 설정 방법)

  • n번째 데이터그램이 n번째 라우터에 도착하면, 라우터는 데이터그램을 폐기한다.

  • 출발지에 ICMP 메시지를 보낸다.(type:11, code:0)

  • 메시지에 라우터의 이름과 IP주소가 포함된다.

  • ICMP 메시지가 도착하면 출발지는 RTT를 계산한다.

 

표준 Traceroute 프로그램은 같은 TTL 값을 갖는 패킷을 3번 보낸다.

 

중단 조건(stopping criterion)

  • UDP 세그먼트가 최종 목적지에 도착하고, 목적지가 ICMP port unreachable 패킷(type:3, code:3)을 반환하는데 여기서 UDP는 포트번호가 없으므로 오류를 반환한다.

  • 그 다음 출발지가 이 ICMP 메시지를 받으면 traceroute를 중단한다.






+ Recent posts