-> 블로그 이전

[Network] Network Core - Circuit Switching/Packet Switching

2022. 2. 4. 17:29Major`/컴퓨터 네트워크

Host의 Packet 전송

1. Application Message를 받는다

2. 해당 Message를 Packet으로 분할 (분할된 Packet의 크기 : L)

3. Host와 Access Network를 연결하는 Link로 해당 Packet을 전송 (Link 대역폭 : R)

>> Host에서 Packet 하나를 내보내는데 걸리는 시간 : L/R[sec] 

 

Network Core

- 상호 연결된 Router/Switch의 연결망(Mesh)

Network Core의 목적

  • → Source에서 Destination까지 user의 Application Message를 전달 

- 전달방식 : Circuit Switching / Pakcet Switching 

 

 

 

Circuit Switching

- 주로 Telephone Network에서 사용한다

- 전달전에 반드시 user의 "call"이 존재해야 한다

  • user가 "call"하면 "call set up"과정을 거쳐서 해당 Data가 전달된다

 

call set up

1. Source → Destination까지의 경로를 결정한다

2. 해당 경로상의 자원을 예약한다 (Resource Reservation)

 

Network의 Resource를 분할하는 방법이 있어야 한다

  • 자원을 분할하지 않으면 / if 한 user가 해당 자원을 쓰면 분할이 안되어있기 때문에 다른 user가 남은 자원을 못쓰는 경우가 발생한다

 

자원 분할 방법

▶ FDM : Frequency-Division Multiflexing

- 각 user마다 별도의 주파수를 사용하게 한다

 

▶ TDM : Time-Division Multiflexing

- 각 user마다 특정한 시간들을 할당해준다

  • 특정 시간에 맞춰서 돌아가면서 자원을 사용한다

 

문제점

- 전화 Network에서는 Circuit Switching이 괜찮은 방법이다

- but, Data Network에서는 Circuit Switching 방법이 굉장히 효율이 떨어지는 방법이다

  • 이러한 문제점을 해결 : 패킷 스위칭(Packet Switching) 

 

if 전화

- call을 하면 서로서로 계속 통신을 이어간다

  • 따라서 예약된 자원의 낭비가 거의 없다

 

if 인터넷

- 인터넷의 경우에는 Request가 있으면 Data가 계속 발생하지만, Request가 없으면 Data는 발생하지 않는다

  • Circuit Switching의 경우에는 "call"을 하게되면 일단 call set up을 통해서 자원을 예약한다
  • 그리고 해당 예약 자원은 다른 user가 공유하지 못한다
  • 만약 Request가 없다면 Data는 발생하지 않고, Data가 발생하지 않음에 따라 예약된 자원은 사용되지 않고 낭비가 된다. 그리고 다른 user또한 해당 예약 자원을 사용하지 못한다

 

 

Packet Switching

No call set up :: No Resource Reservation

  • 자원을 예약하지 않고 해당 자원이 필요한 경우에만 사용한다
  • 각 Packet은 해당 Link의 전체 대역폭을 사용해서 전달된다
  • 만약, 여러개의 Packet이 동시에 하나의 Link로 전달된다면, 먼저 하나의 Packet의 전송이 완료될때까지 나머지 Packet들은 기다린다

 

Store and Forwarding

1. 일단 Router는 쪼개진 Packet들 전체를 Link로 받아야 한다 → 전체 Packet을 다 보유할 때까지 받기만 한다 (Store) 

2. 전체 Packet을 받았다면, 해당 Packet의 목적지를 확인한다

3. 해당 목적지로 Packet을 전송한다 (Forwarding) 

 

if Link2 사용 중 X

- Router에서는 전체 Packet을 Store하자마자 바로 Forwarding한다

 

if Link2 사용 중 O

- Router에서는 전체 Packet을 Store 후, 기다렸다가 Forwarding한다

 

 

문제점

만약에 Packet을 전송하는 통로인 Link가 사용중이라면 (나가는 Packet 양보다 들어오는 Packet의 양이 더 많을 경우)

1) 홉의 Buffer에 Packet들이 쌓여간다 (Queuing) 

  • 큐잉 지연이 발생하게 된다 :: 자원을 예약하지 않아서 필요한 자원을 예측할 수 없기 때문

2) Buffer의 용량에는 한계가 존재한다

  • Buffer의 용량이 한계인데 계속해서 Packet이 Buffer에 Queuing하려고 하면 당연히 Packet Loss가 발생하게 된다

>> Queuing + Packet Loss : Congestion 발생 

 

 

Example)

사용자들이 1Mbps의 대역폭을 보유하고 있는 Link를 공유하고, 각 사용자는 active시 100kbps의 대역폭을 사용하고, 전체 시간중 10%만 active할 경우

 

Circuit Switching

- 각 user가 100kbps씩 예약하기 때문에

  • 최대 10명의 사용자만 동시에 해당 Link를 이용할 수 있다 (1 Mbps/100 kbps = 10)

 

Packet Switching

- 특정 사용자가 활동하고 있을 확률은 10%

  • 최대 35명의 user가 동시에 해당 Link를 이용할 수 있다

 

>> Packet Switching은 Circuit Switching보다 3배 이상의 허용을 할 수 있다