2022. 2. 4. 17:29ㆍMajor`/컴퓨터 네트워크
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를 이용할 수 있다