[Network] Network Core

chxghee·2024년 9월 5일

엔드 포인트를 연결하는 패킷 스위치(라우터, 링크레이어 스위치), 링크 그물망에 대해 알아보자

엔드 포인트들은 메세지(데이터)를 주고 받는데, 이 메세지를 송신하기위해 패킷으로 분할하여 송신한다.

이때 한 메세지를 분할해서 여러 패킷을 송신할때 항상 같은 data path를 거치는것은 아니다.

링크와 스위치의 네트워크를 통해 데이터를 이동시키는 두 가지 기본 방식이 있다

  • 패킷 교환(packet switching) : 보장되지 않는 (e.g., 인터넷)
  • 회선 교환(circuit switching) : 자원을 예약 → 보장된


Packet Switching

패킷 스위칭은 data를 여러 패킷으로 용량을 나누어 end point에서 라우터를 거쳐 수신지로 보내는 교환 방법이다.

이때 한 데이터에서 나온 패킷이 항상 같은 data path를 통해 이동하는 것은 아니다.

cf) 패킷의 순서는 수신자가 도착한 패킷을 확인하면서 처리하게 되며, 라우터는 그저 패킷을 경로를 따라 전송하는 역할만 수행
data path가 다르기 때문에 도착하는 순서가 달라질수 있는것이다.
(TCP 프로토콜을 통해 순서가 안 맞으면, 재전송 요청을 하거나 / 버퍼링을 통해 해결)

1. store-and-forward

저장 후 전달 방식을 사용한다

세개의 패킷이 위와 같이 송신되는 상황일때,

라우터에 한 패킷의 비트가 모두 도착할때 까지는 목적지로 전송하지 않는다.

즉, 딜레이가 생긴다.

Q. 한 패킷이 목적지로 가는데 걸리는 시간?

출발-라우터 transmission delay(bit / rate): L/R
라우터-출발 transmission delay(bit / rate): L/R
총 2L/R 소요

Q. 3개의 패킷이 목적지로 가는데 걸리는 시간?

패킷1 : 출발 ------ 라우터 ------ 목적지 
패킷2 :             출발 ------ 라우터 ------ 목적지 
패킷3 :                        출발 ------ 라우터 ------ 목적지 

위의 방식으로 저장 후 전달되기 때문에 총 4L/R의 end-end delay가 소요된다.

메세지 분할의 장단점

장점

  1. 네트워크 병목 현상 방지: 대형 메시지를 전송하는 대신 작은 단위로 쪼개어 보내면 네트워크 트래픽을 효과적으로 분산

  2. 효율적인 전송: 패킷 중 하나가 손실되더라도 모든 데이터를 다시 전송할 필요 없이 손실된 패킷만 재전송, 이를 통해 전체 전송 속도를 향상시키고 재전송으로 인한 대역폭 낭비를 줄일 수 있습니다.

  3. 에러 처리 용이: 각 패킷에 대해 독립적으로 오류 검사를 할 수 있습니다.

  4. 비용 효율성: 링크 전송률을 높이기 위해서는 하드웨어(피지컬미디어) 업그레이드가 필요하다(비쌈)

  5. 딜레이 시간 감소: 메세지를 나누어 보내면 통째로 보냈을 때 보다 총 딜레이 시간이 감소한다.

단점

  1. 오버헤드 증가: 각 패킷에는 헤더 정보가 포함되므로, 전체 메시지 크기에 비해 추가적인 오버헤드가 발생

  2. 복잡한 재조립 과정: 수신 측에서 패킷을 다시 원래의 메시지로 조립하는 데 시간이 소요

  3. 지연 발생 가능성: 중간 패킷의 손실이나 순서 뒤바뀜으로 인해 재전송이 필요할 경우 지연이 발생

2. queueing delay, loss

각 패킷 스위치는 접속된 여러 링크를 가지고 있으며, 패킷 스위치는 각 링크에 대해 출력 버퍼(=출력 큐)를 가지고 있다.

여러 엔드포인트에서 패킷을 한번에 보내게 되면 위와 같은 상황이 일어난다.

도착하는 패킷은 한 링크로 전송되어야 하지만 그 링크가 다른 패킷을 전송하고 있는 중이면 딜레이가 일어난다.

들어오는 속도(arrival rate)가 나오는 속도(transimission rate)보다 빠르다면 라우터에 패킷이 쌓이게 되고(큐잉 딜레이), 점점 쌓이다 보면 출력 버퍼 크기 이상으로 패킷이 쌓이게 된다

-> 어쩔수 없이 도착하는 패킷 또는 큐에 대기 중인 패킷을 폐기(drop)한다.(packet loss)

포워딩 테이블과 라우팅 프로토콜

라우터는 접속된 통신 링크 중 하나로 도착하는 패킷을 받아, 접속된 통신 링크 중 다른 링크로 그 패킷을 전달한다.

그렇다면 라우터는 그 패킷을 어느 링크로 전달해야 하는지를 어떻게 결정할까?

이러한 경로의 결정하는 것이 각 라우터의 포워딩 테이블이다.

각 라우터들은 라우팅 알고리즘을 통해 목적지 주소(또는 일부)를 라우터의 출력 링크로 매핑하는 포워딩 테이블을 가지고 있다.

과정을 다음과 같다.
1. 패킷이 라우터에 도착
2. 라우터는 패킷의 IP 주소를 조사
3. 해당 목적지 주소를 이용하여 포워딩 테이블을 검색
4. 그 패킷을 출력 링크로 보낸다.



Circuit Switching

쉽게 말하면, 데이터를 보낼 때 네트워크의 리소스를 미리 예약을 하고 데이터를 보내는 방식이다.(데이터를 분할하지 않고 통째로 보낸다)

  1. 송신자가 정보를 보내기 전, 네트워크는 송신자와 수신자 간의 연결을 설정해야 한다.
  2. 네트워크가 회선을 설정할 때, 그 연결이 이루어지는 동안 네트워크 링크에 일정한 전송률을 예약한다.
    (이때 출발지와 목적지 간의 전용 경로가 설정되고 예약된다)
  3. 주어진 전송률이 송신자-수신자 연결을 위해 예약되기 때문에, 송신자는 수신자에게 보장된(guaranteed) 일정 전송률로 데이터를 보낼 수 있다.

시간 내에 데이터를 전달하는 것을 보장하지 않는 패킷 스위칭과 달리
리소스를 예약했기 떄문에 transmission rate가 보장된다.

한 링크가 위에 그림과 같이 네개의 서킷로 나눠 사용하는 것이다.

한 링크가 100Mbps 라면 그중 하나의 서킷를 예약을 했다면 25Mbps를 보장받고, 사용하는 것이다.(보통은 전화망에서 사용된다)

이 방식의 단점은 리소스를 예약하고 사용시간 동안 해당 리소스를 점유하게되는데, 이 때 실질적인 데이터의 전송이 일어나지 않으면 그 점유시간동안 리소스가 아무 일도 안하고 낭비되게된다.

-> 전화통화 100분 중 실질적으로 말하는 시간이 10분이라면 90분을 리소스를 점유한 채로 낭비한다는 것이다.

이러한 낭비를 최소화 하기 위해 서킷 스위칭 다중화라는 것을 지원한다.

서킷 스위칭 다중화

한 링크 내 하나의 서킷이 구현되는 방법에는 FDM TDM두 가지가 있다

주파수 분할 다중화(Frequency-Division Multiplexing, FDM)

FDM은 주파수를 기준으로 서킷을 나눈다.

그 링크는 연결되는 동안 각 연결에 대해 주파수 대역을 고정 제공한다. = 대역폭(bandwidth)

-> 하나를 쭉 사용한다

예제

<조건>
패킷 사이즈 : 640000 bit
transmission rate : 1.536 Mdps
리소스 예약 시간 : 0.5초
이 링크는 24개의 서킷으로 나눈다.

<문제>
1. 1개의 서킷이 사용하는 transmission rate : 
	- 1.536 Mdps / 24 = 64 Kbps

2. 하나의 서킷으로 파일을 전송하는데 걸리는 시간 :
	- (전송지연) + 리소스 예약시간 
	= (640000 bit / 64 Kbps) + 0.5 = (640000 bit / 64000 bps) + 0.5 = 10.5 초

시분할 다중화(Time-Division Multiplexing, TDM)

TDM은 시간을 일정 주기의 프레임으로 구분하고(파초노빨), 각 프레임은 고정된 수의 time slot으로 나뉜다.(파란색 칸)

그 후 번갈아 가며 한 슬롯 동안 전체 대역폭을 얻는다.

하나의 서킷에 해당하는 transimission rate = 프레임 rate X 하나의 time slot에 들어가는 bit 수

ex) 8000 프레임/sec * 8 bit = 64000 bps(bit/sec)
특징TDMFDM
데이터 전송 방식시간을 분할하여 여러 사용자에게 대역폭을 할당주파수를 분할하여 여러 사용자에게 대역폭을 할당
대역폭 사용 방식전체 대역폭을 시간 단위로 나누어 사용주파수 대역을 분할하여 동시에 사용
동시 전송time slot에 따라 순차적으로 전송여러 사용자가 동시에 전송 가능
지연대기 시간이 발생할 수 있음지연이 적음
대역폭 효율성비활성 time slot에서는 대역폭이 낭비됨각 주파수 대역이 고정되면 사용하지 않아도 낭비
필터링 필요 여부불필요주파수 간 간섭 방지를 위한 필터링이 필요
주로 사용되는 곳디지털 통신, 전화 시스템아날로그 방송, 케이블 TV, 초기 셀룰러 네트워크
복잡성시간 동기화 필요, 상대적으로 간단주파수 필터링이 필요해 상대적으로 복잡


패킷 스위칭 VS 서킷 스위칭

특징서킷 스위칭(Circuit Switching)패킷 스위칭(Packet Switching)
데이터 전송 방식고정된 경로를 통해 연속적으로 전송데이터를 작은 패킷으로 나누어 다양한 경로로 전송
경로 설정통신 전 미리 경로를 설정각 패킷이 독립적으로 경로를 결정
대역폭 사용통신 중에 항상 대역폭이 차지됨필요할 때만 대역폭을 사용 (on demand)
지연 시간지연 시간이 거의 없음 (실시간 통신에 적합)패킷이 다른 경로로 전송되므로 지연이 발생할 수 있음
실시간 통신실시간 음성/영상 통신에 적합실시간 통신에서 추가적인 지연 관리가 필요
효율성통신하지 않을 때도 대역폭 낭비대역폭을 효율적으로 사용
오류 처리경로 고정, 오류가 적음패킷 손실 시 재전송이 필요
전화 통신, ISDN인터넷, TCP/IP, 이더넷

패킷 스위칭이 좋다!!

  • 패킷 교환이 회선 교환보다 전송 용량의 공유에서 더 효율적이다.
  • 패킷 교환이 회선 교환보다 더 간단하고 효율적이며, 구현 비용이 적다.

근거

  • 회선 교환에서 통신을 위해서는 자원이 항상 각각의 사용자에게 예약되어야만 한다.
  • 할당된 회선이 비활용 기간(silent period)에는 자원을 점유한 채로 놀게 되기 때문에 자원 이용률이 감소한다.
  • 즉, 회선 교환에서는 사용되지 않는 네트워크 자원(연결 경로상의 링크 주파수 대역이나 슬롯)은 다른 진행 중인 연결이 대신해서 사용할 수 없기 때문에
    패킷 교환이 더 효율적이다.

아니? 서킷 스위칭이 좋은데?

  • 패킷 교환은 실시간 서비스에는 적당하지 않다.

  • 근거 : 주로 큐잉 지연에서 발생하는 종단 간의 지연 (불규칙적이고 예측할 수 없음)

  • 패킷 스위칭은 혼잡 상황에서 더 나은 효율성을 제공할 수 있지만, 반드시 속도가 더 빠르다고 할 수는 없다. (혼잡 상황에서는 오히려 패킷이 지연되거나 손실될 수 있다)


예를 들어 확인해 보자.

상황 1

  • 35명의 사용자가 1 Gbps 링크를 공유한다고 가정
  • 각 사용자들은 활동 시간과 비활동 시간을 반복한다.
  • 사용자는 전체 시간에서 10%만 활동하며 나머지 90% 시간에는 활동하지 않는다.
    -> 활동기간: 100Mbps / 비활동 기간: 900Mbps

서킷 스위칭: 10명 까지만 사용가능

  • 한 사용자가 100Mbps의 리소스를 점유해야 하므로 총 10명까지밖에 사용한다.

패킷 스위칭: 최대인원인 35명 모두 사용가능하다

  • 35명 중 11명 이상이 동시에 active할 확률은 0.0004 보다 작다
  • 거의 대부분의 상황에서 10명 이하로 active하다.
  • 결과적으로 35명이 동시에 사용할 수 있다.(효율이 좋다)

Q. 35명 보다 유저가 많아지면..?

  • 동시에 active할 확률은 증가
  • 하지만 여전히 패킷 스위칭이 더 좋은 성능

상황 2

  • 10명의 사용자가 있다고 가정
  • 모든 사용자는 1 Mbps 링크를 공유한다.
  • 한 사용자가 한번에 1,000비트 패킷을 1,000개 생성하고 다른 사용자는 패킷을 생성하지 않는다.

서킷 스위칭: 100만 비트를 모두 전송하려면 10초가 걸린다.

  • 한 프레임은 10개 슬롯으로 구성되고 각 슬롯은 1,000비트로 구성되었다면
  • 한 사용자가 100Mbps의 리소스를 점유해야 하므로 총 10명까지밖에 사용한다.

패킷 스위칭: 100만 비트는 1초 만에 모두 전송된다.

  • 사용자는 1 Mbps의 링크가 가득 찰 때까지 패킷을 계속 보낼 수 있다.
  • 혼자서 계속 보낼 수 있따.

정리하면 패킷 스위칭이 더 좋은 성능을 발휘한다.

서킷 스위칭 : 요구에 관계없이 미리 전송 링크의 사용을 할당한다. + 예약 구현 복잡 + 오디오 비디오 애플리케이션에서 데이터 전송을 보장하는데 좋다.

패킷 스위칭 : 요구할 때만 링크의 사용을 할당한다. + 단순 + bursty 데이터에 적합하다(데이터 몰림)



Internet Structure

  • 오늘날의 인터넷(네트워크의 네트워크)는 12개 정도의 1계층 ISP들과 수십만 개의 하위 계층 ISP들로 구성되어 있다.

  • 하위 계층 ISP들은 상위 계층 ISP들과 연결하고, 상위 계층 ISP들은 서로 연결한다.

  • 사용자와 콘텐츠 제공자는 하위 계층 ISP 고객이고, 하위 계층 ISP들은 상위 계층 ISP들의 고객이다.

  • 최근에 주요 콘텐츠 제공자(구글)도 자신의 네트워크를 구축했고 가능한 곳에서 하위 계층 ISP들과 직접 연결한다.

여러개의 global ISP가 IXP로 연결되고,
그 ISP가 하위 지역 ISP와 연결되고,
그 지역 ISP가 각 access net에 연결되어 인터넷이 구축된다.

최근에는 구글 같은 콘텐츠 제공자들이 자신의 네트워크를 구축한다.
-> 상위 계층 ISP들에게 지불하는 요금을 줄일 수 있다.

profile
다 같이 화이팅! 🙋‍♂️

0개의 댓글