Network Core
네트워크 엣지에 대해 알아봤으므로 네트워크 코어 영역에 대해 알아볼 것이다. 네트워크 코어 영역에 네트워크를 통해서 어떻게 데이터가 교환되는지에 대한 근본적인 질문을 던질 수 있다. 이를 설명할 수 있는 것이 바로 회선 교환(Circuit Switching)과 패킷 교환(Packet Switching)이다.
Packet Switching
종단 시스템들은 서로 메세지를 교환한다. 이때, 패킷 교환은 한 컴퓨터에서 다른 컴퓨터로 데이터를 전송할 때 여러 개의 라우터를 거치고 거쳐 전송되는데, 이 때 데이터를 패킷 단위로 쪼개어 전송하는 방식이다. 이는 한 링크에서 링크로 보낼 때 일단 모든 패킷을 저장하고 버퍼에 저장되어 있는 패킷들을 하나씩 꺼내어 보내는 Store-and-Forward 방식을 따른다. Store-and-Forward 방식은 아래와 같은 과정이다.
1. 패킷들을 먼저 버퍼에 저장한다.
2. 라우터가 패킷을 모두 수신하면 output link로 패킷을 전송하기 시작한다.
이러한 방식에는 패킷 저장 공간이 존재하기 때문에 이를 내보내는데 지연과 손실이 발생하기 쉽다.
간단하게 경과 시간에 대해 계산해보자. 이때, 전파지연 시간은 무시한채로 계산할 것이다.
출발지에서 패킷 1을 송신하기 시작해 목적지에서 수신할 때까지의 경과 시간을 계산해보자.
0초
부터 전송을 시작하고, L/R초
일 때 패킷 1의 데이터를 모두 전송 완료한다. 전체가 라우터에 수신되고 저장된 상태이므로, 라우터는 output link를 통해 패킷을 전송하기 시작한다. 2L/R초
일 때, 라우터는 전체 패킷을 전송했고 목적지에서는 패킷 1 전체를 수신 완료한 상태가 된다.
출발지가 패킷 1을 송신하기 시작한 순간부터 목적지 노드가 3개의 모든 패킷을 수신할 때까지의 경과 시간을 계산해보자.
0초
부터 전송을 시작하고, L/R초
일 때 라우터는 패킷 1을 수신 완료한 상태가 된다. 그리고 이를 전송하며 출발지는 패킷 2를 전송하기 시작한다. 2L/R초
일 때 라우터는 패킷 2를 수신 완료한 상태가 되며 이를 전송하기 시작한다. 목적지에서는 패킷 1을 수신하고, 출발지에서는 패킷 3을 전송하기 시작한다. 3L/R초
일 때 라우터는 패킷 3을 수신하고 이를 다시 전송한다. 목적지는 패킷 2 전체를 수신하며, 4L/R초
일 때 패킷 3을 수신 완료 한다.
따라서, store-and-forward 방식은 3개의 패킷을 모두 수신하려면 4L/R초
가 소요된다는 것을 알 수 있다.
그렇다면, 출발지로부터 목적지 노드까지 N개의 링크로 구성되고 각각은 전송률이 R인 경로를 통해 하나의 패킷을 전송하는 경우에 지연 시간을 추측해볼 수 있다. 바로, N \* L/R
이다.
큐잉 지연과 패킷 손실
각각의 패킷 스위치는 여러 링크
를 가지고 있고 패킷 스위치는 각 링크에 대한 출력 버퍼(output buffer)
를 가지고 있다. 출력 버퍼는 출력 큐라고도 불리는데, 링크로 송신하려는 패킷을 저장하고 있다. 따라서, store-and-forward 방식만 패킷의 지연이 존재하는 것이 아니다.
도착하는 패킷은 한 링크로 전송되어야 하지만, 그 링크가 다른 패킷으로 전송중이라면 어떻게 해야 할까?
이 질문에 대한 답은 그냥 도착하는 패킷을 출력 버퍼에 대기하도록 하는 것이다. 그러나, 이렇게 대기하다보면 큐잉 지연(Queueing Delay)
이라는 것이 발생한다. 이는 패킷이 들어온 순서대로 처리되는 특성으로 자신보다 먼저 들어온 패킷이 나갈 때까지 대기하는 시간이라고 책에서 정의하고 있다. 큐잉 지연은 네트워크의 혼잡도에 따라 다르기 때문에 매우 가변적이다. 그렇다면, 도착하는 패킷을 버퍼에 계속 저장하다보면 버퍼가 가득찰 일이 발생할 것이다. 이런 경우, 패킷이 버퍼에 저장되지 못하고 버려지는 경우가 발생한다. 이를 패킷 손실(Packet Loss)
이라고 한다.
Forwarding & Routing
네트워크 코어 영역에서 가장 중요한 기능이 바로 forwarding과 routing이다. 라우터는 접속된 통신 링크로 패킷을 받아 또 다른 링크로 패킷을 전달한다. 이때 라우터는 패킷을 어디로 전송해야 할지 어떻게 결정할까?
인터넷에서 모든 종단 시스템은 IP 주소를 갖는다. 출발지에서 도착지로 패킷을 전달할 때 패킷의 헤더에 IP 주소를 포함해서 전송한다. 패킷이 네트워크 라우터로 도착하면 라우터는 패킷 헤더의 목적지 주소를 일부 확인하고 다른 라우터로 보낸다.
이때, Forwarding table
을 통해 목적지 주소와 output link를 매핑하여 라우터로 보낸다. Forwarding은 라우터 내부로 들어온 패킷을 외부로 빼내는 과정을 말한다. 그렇다면, 이 forwarding table은 어떻게 설정되는 것일까? 5장에서 더 자세히 언급할 내용이라 간단하게 설명하면 Routing Protocol을 통해 설정한다. 이때, Routing은 라우팅 알고리즘으로 생성된 라우팅 테이블을 참고하여 라우터에서 라우터로 전송하는 과정을 말한다.
Circuit Switching
패킷 교환과 상반된 개념으로 회선 교환이 존재한다. 회선 교환 방식은 데이터를 전송하기 전에 미리 네트워크 링크에 일정한 전송률을 예약하고 데이터를 전송하는 방식이다. 이 방식은 아래 과정으로 동작한다.
1. 송신자가 데이터를 전송하기 전에 네트워크는 송신자와 수신자 간의 연결을 설정한다.
2. 네트워크가 회선을 설정할 때 연결이 이루어지는 동안 네트워크 링크에 일정한 전송률을 예약한다.
3. 예약 방식이므로 송신자는 수신자에게 보장된 일정 전송률로 데이터를 보낼 수 있다.
위 그림처럼 회선 교환 방식은 두 호스트 사이에 지정된 종단 간 연결(end-to-end connection)
을 제공한다.
그렇다면, 한 호스트가 패킷 교환 네트워크를 통해 다른 호스트로 패킷을 보내는 경우에는 어떤 일이 발생할까?
회선 교환과 마찬가지로 패킷은 일련의 통신 링크로 전송된다. 그러나 패킷 교환은 링크 자원을 예약하지 않고 네트워크로 보내진다.
회선 교환은 두 가지의 방법으로 나뉜다. 바로 주파수 분할과 시분할이다.
먼저, 주파수 분할(FDM)은 말 그대로 주파수를 분할하여 예약하는 방법이다. 시분할(TDM)은 시간을 일정 주기의 프레임으로 나누어서 각 프레임이 고정된 슬롯을 가진다.
패킷 교환과 회선 교환
패킷 교환은 더 많은 사용자들이 네크워크를 사용할 수 있게 하기 때문에 회선 교환보다 효율적이다. 예를 들어, 같은 링크를 공유할 때 회선교환은 독점적인 특성으로 인해 10개의 호스트만 이용할 수 있지만, 패킷 교환은 많은 호스트들과 공유하기에 35개의 호스트가 이용할 수 있다. 패킷 교환이 좋은 점만 있는 것은 아니다. 패킷교환은 Packet Delay나 Loss와 같은 혼잡이 발생할 수 있어 고려가 필요한 부분이다.
'CS > 네트워크' 카테고리의 다른 글
[데이터통신] 1. Introduction(프로토콜, TCP/IP 레이어, OSI 모델) (0) | 2024.04.06 |
---|---|
[데이터통신] 1. Introduction(데이터 통신, 네트워크) (0) | 2024.04.06 |
[컴퓨터망] 1-4. 프로토콜 레이어 (0) | 2024.03.24 |
[컴퓨터망] 1-3. 성능, 보안 (1) | 2024.03.24 |
[컴퓨터망] 1-1. 인터넷, 프로토콜, 네트워크 구성요소 (1) | 2024.03.11 |