본문 바로가기

컴퓨터통신

[컴퓨터통신] 3장. 패킷스위칭 (스위칭과 포워딩)

  • 3-1) 스위칭과 포워딩
  • 3-2) 브리지 및 LAN 스위치

 

  • 3-1) 스위칭과 포워딩

A. 데이터그램 (Datagrams) - IP

데이터그램

Full-address에 대응하여 output port번호가 적힌 포워딩 테이블에 근거하여 각 패킷들을 독립적으로 보낸다. 

  • 연결 설정 단계가 없다. (사전 작업이 없다.) - 비연결성 모델이라고 한다.
  • 각각의 패킷은 독립적으로 포워드한다. (서로 어디로 가는지 관련이 없다.)
  • 우편 시스템과 유사한 형태다.
  • 목적지가 같다고 해서 경로가 같지 않다. (이어지는 패킷은 full address가 같으니까 같은 경로로 가는거 아녀?)

        - 장점 : 트래픽이 적은 새로운 길, 다른 경로 탐색 / 발견이 가능하다.

        - 단점 : 순서유지가 안 됨. 다른 경로로 가기 때문에 먼저 보낸 패킷이 나중에 도착할 수 있다.

  • 각 스위치는 포워딩(라우팅) 테이블을 유지한다.

 

Forwarding table

        - 각 패킷은 주소를 Full-address로 갖고있고 각 Switch들은 주소 별로 ouput port number를 저장하고 있다.

        - B라는 주소면 1번 포트로 보내고 A라는 주소면 2번 포트로 보내라는 정보를 갖고 있다. 

        - 이를 사람이 일일히 기록하거나 update하는 것이 불가능하다. 

        - 라우팅 : 목적지를 향해 경로 찾아가는 것 / 라우팅 알고리즘에 의해 포워팅 테이블을 작성한다.

        - 이때 네트워크 상태변화가 바뀌면 포워딩 테이블은 갱신된다. 

 

 

B. 가상회선 스위칭 (Virtual Circuit Switching)

Virtual Circuit Switching

 

선투자하여 패킷을 보내기전에 포워딩 테이블을 확인하여 경로를 설정하고 그 경로대로 이어지는 패킷들을 동일하게 보낸다.

  • 패킷스위칭이지만 서킷 스위칭을 흉내냈다. - 순서만 유지될 뿐 경로를 독점하는 건 아님. 그 경로에 다른 패킷도 존재.
  • 경로를 답사하여 명시적으로 연결을 설정하고 해지 과정 역시 명시적으로 한다.
  • 이어지는 패킷은 독립적이 아닌 같은 경로를 따라 전달한다. (like 전화)
  • 연결성 모델이라고 불린다.
  • 처음에 경로설정할때만 Full address 이용하면서 포워딩 테이블 이용하고 그 다음부터 포워딩 테이블 이용 안한다.
  • VC#가 key인데 네트워크 전체에서 각 패킷당 모든 스위치에 대해 unique한 키를 만들기 어렵다.

        - 스위치에 unique한 번호를 부여한 후 스위치를 지날 때마다 계속 변화시킨다.

  • 각 스위치는 가상회선 테이블을 유지한다.

가상회선 테이블

 

        - 매번 주소검색하지 않아서 Full address 붙이지 않고 Virtual Circuit 번호만 붙여주면 된다. 

        - 장점 : 이어지는 패킷의 순서가 유지된채 보내진다.

        - 단점 : 사고 발생시 대처가 힘들다. (중간에 네트워크 문제 생기면 다시 포워팅 테이블 보면서 답사 쫙해야해)

 

* 가상회선에서 포워딩 테이블을 유지하는거 아닌거같은데?? 각 port별로 vc 다르게 request보내고 ack 빨리온 놈 기준으로 vc, output-port 확인해서 패킷별로 VC테이블 완성하고 스위치별로 이 테이블들을 일시적으로 갖고있는 가상회선 테이블 유지하는 것 같은데??

참고 : https://refud.tistory.com/entry/Virtual-Circuit-Network

 

C. 가상회선 대 데이터그램

가상회선 vs 데이터그램

  • 주소 오버헤드 : 결정적 요인이 아니다 (대역폭이 아주 큰 요즘 시대에서)

        - 가상회선 : 연결 요청시, Full address / 패킷 전송 시 식별자만(VC#) - 패킷 헤더의 오버헤드 작다

        - 데이터그램 : 패킷이 모든 스위치에서 항상 Full address 가지므로 패킷 헤더 오버헤드 크다

  • 패킷 포워딩 시간 : 성능의 가장 큰 요인 (요즘은 링크보다 스위치가 병목이다)

        - 가상회선 : 가상회선 테이블이 포워딩 테이블보다 작다. array의 index사용으로 VC# 찾아서 O(1)로 찾을 수 있다.

        - 데이터그램 : 모든 주소 별로 모든 스위치가 포워딩 테이블 구성하므로 엄청 크다. 각 스위치에서 자신의 주소에 해당하는 output-port#찾으려면 최소O(logn)이다.

  • 장애극복 : 실질적인 결정 요인 (어떤 놈을 이용할지)

        - 가상회선 : state 경로들을 저장하여 캐시처럼 이용하므로 stateful 이라한다. (안정적)

        - 데이터그램 : 패킷이 독립적으로 다뤄지므로 stateless

        => 인터넷처럼 dynamic하게 비정상적 연결종료가 빈번하게 일어날때는 가상회선 테이블을 유지하기 힘들다.

             따라서 데이터그램에서 soft state(timeout걸어두고 soft하게 state정보들을 저장.기억) 하는 방식을 이용한다.

  • 서킷스위칭 vs 가상회선 스위칭

        - 서킷스위칭은 링크를 독점하고 선투자로 인해 성능이 유지된다.

        - 가상회선 스위칭은 링크를 독점하지 않는 패킷 스위칭이다. 단지 이어지는 패킷들이 같은 경로로 순서대로 갈 수 있게 할 뿐이다. 또한 링크를 다른 패킷들과 같이 이용하므로 성능이 유지되지 않는다.

 

D. 소스(발신자) 라우팅 (Source Routing)

  • 주소는 발신지로부터 목적지까지 경로의 포트 번호를 포함한다.

        - 주소가 목적지까지 경로의 포트 번호들을 포함하고 있다.

        - 발신자가 직접 어느 경로로 가라고 지정해준다. (스위치는 passive하게 하라는대로 할 뿐)

        - 장점 : 보안 철저해야 하는 경우 발신자가 경로를 control할 수 있다.

        - 단점 : 헤더길이가 가변적이어야 하므로 제어가 힘들다. 주소만 보고 몇개의 스위치를 들르라는 건지 파악 힘듦

 

E. 스위치 성능

  • 총 대역폭

        - I/O 버스 대역폭의 1/2이다. (800Mbps 버스의 스위치는 100Mbps포트 4개를 지원한다. - 왕복하기 때문)

        - 메모리를 빠른거를 쓰던가 I/O를 늘려야하지만 I/O 인터럽트 때문에 쉽게 I/O개수를 늘릴 수 없다. 

 

 

 


 

  • 3-2) 브리지 및 LAN 스위치 

A. 브리지 및 확장 LAN(무선은 무조건 이더넷)

  • 총 대역폭

        - I/O 버스 대역폭의 1/2이다