Network core: 두 판 사이의 차이

youngwiki
편집 요약 없음
 
(같은 사용자의 중간 판 19개는 보이지 않습니다)
1번째 줄: 1번째 줄:
상위 문서: [[컴퓨터 네트워크]]
상위 문서: [[컴퓨터 네트워크]]
[[파일:NetworkCore.png|섬네일|398x398픽셀]]
==개요==
==개요==
network core란 상호연결된 라우터들의 집합이며 네트워크들의 네트워크 그자체이다.  
[[파일:NetworkCore.png|섬네일|398x398픽셀|Figure 1. Network core]]network core란 상호연결된 라우터들의 집합이며 네트워크들의 네트워크 그자체이다.  
일반적인 유저에게는 드러나지 않은채 host들 사이의 연결이 이루어진다.
일반적인 유저에게는 드러나지 않은채 host들 사이의 연결이 이루어진다.


==packet switching과 circuit switching==
==packet switching과 circuit switching==
===packet switching===
===packet switching===
host에서 destination으로 data를 보내기 위해, 출발 host는 data를 더 작은 data 조각들로 나누는데, 이를 packet(패킷)이라고 한다.  
host에서 destination으로 data를 보내기 위해, '''송신측 host는 data를 더 작은 data 조각들로 나누는데, 이를 packet(패킷)'''이라고 한다.  
packet은 도착점으로 삼은 host까지 각 패킷은 communication link와 packet switch<ref>router와 switch로 구분된다.</ref>를 통해 이동한다.
packet은 도착점으로 삼은 host까지 각 패킷은 communication link와 packet switch<ref>router와 switch로 구분된다.</ref>를 통해 이동한다.


이때 각 패킷은 링크의 최대 link capacity<ref>transmission rate</ref>으로 전송된다. 즉, 패킷이 링크를 통해 전송될 때, 해당 링크의 Transmission Rate(R)로 보낸다는 뜻이다. 예를 들어, 링크의 전송 속도가 10 Mbps(메가비트/초) 라면, 패킷이 이 링크를 통과할 때 10 Mbps의 속도로 전송된다는 의미이다. 따라서, 링크가 병목이 되거나 대역폭이 제한되지 않는 한, 패킷은 항상 링크가 허용하는 최대 속도로 전송된다.  
이때 각 패킷은 링크의 최대 link capacity<ref>transmission rate</ref>으로 전송된다. 즉, 패킷이 링크를 통해 전송될 때, 해당 링크의 Transmission Rate(R)로 보낸다는 뜻이다. 예를 들어, 링크의 전송 속도가 10 Mbps(메가비트/초) 라면, 패킷이 이 링크를 통과할 때 10 Mbps의 속도로 전송된다는 의미이다. 따라서, 링크가 병목이 되거나 대역폭이 제한되지 않는 한, '''패킷은 항상 링크가 허용하는 최대 속도로 전송'''된다.  
[[파일:PacketSwitching1.png|가운데|섬네일|Figure 2. Packet switching]]


[[파일:PacketSwitching1.png|테두리|프레임없음|300x300픽셀]]
또한 packet switcing은 store-and-forward 방식으로 동작한다. '''store-and-forward란 패킷이 라우터에서 output link로 전송되기 위해서는 패킷이 모든 부분이 라우터에 수신되어야 함'''을 의미한다. 위 그림에서 첫번째 패킷의 일부분이 라우터로 전송되었으나, 아직 첫 패킷 전체가 라우터에 전달되지 않아 이를 destination으로 전송할 수 없다. 그 대신의 라우터는 패킷의 bit를 버퍼에 저장해야 한다. 라우터가 패킷의 모든 bit를 수신한 후에는 비로소 패킷을 출력 링크로 전송할 수 있다. 이를 통해서 하나의 패킷과 전체(3개)의 패킷이 하나의 라우터를 걸쳐 destination까지 전송되는 시간을 계산할 수 있다.<ref>propagation delay는 무시한다.</ref>
 
또한 packet switcing은 store-and-forward 방식으로 동작한다. store-and-forward란 전체의 패킷이 라우터에서 output link로 전송되기 위해서는 전체 패킷이 모두 라우터에 수신되어야 함을 의미한다. 위 그림에서 첫번째 패킷의 일부가 라우터로 전송되었으나, 아직 첫 패킷 전체가 라우터에 전달되지 않아 이를 destination으로 전송할 수 없다. 그 대신의 라우터는 패킷의 bit를 버퍼에 저장해야 한다. 라우터가 패킷의 모든 bit를 수신한 후에는 비로소 패킷을 출력 링크로 전송할 수 있다. 이를 통해서 하나의 패킷과 전체(3개)의 패킷이 destination까지 전송되는 시간을 계산할 수 있다.<ref>propagation delay는 무시한다.</ref>
* 하나의 패킷의 전송 시간: 2L/R
* 하나의 패킷의 전송 시간: 2L/R
*# host는 시간이 0일때 전송을 시작하며, 시간이 L/R이 되었을 때까지 라우터는 첫번째 패킷을 수신하고 저장한다.
*# host는 시간이 0일때 전송을 시작하며, 시간이 L/R이 되었을 때까지 라우터는 첫번째 패킷을 수신하고 저장한다.
27번째 줄: 24번째 줄:
*#시간이 4L/R초가 되면 destination은 마지막 세번째 패킷의 수신까지 완료한다.
*#시간이 4L/R초가 되면 destination은 마지막 세번째 패킷의 수신까지 완료한다.
또한 host에서부터 N개의 link를 걸쳐 destination까지 패킷을 전송 완료할 때까지의 시간은 다음과 같다.
또한 host에서부터 N개의 link를 걸쳐 destination까지 패킷을 전송 완료할 때까지의 시간은 다음과 같다.
<big><math>d_{end-to=end} = N \cdot \frac{L}{R}</math></big>
이를 응용하여 N 개의 링크를 따라 P개의 패킷을 전송할 때의 지연 시간을 구하면 다음과 같다.
<big><math>d_{end-to=end} = (N+P-1) \cdot \frac{L}{R}</math></big>
첫번째 패킷이 destination 까지 도착하는 데에는 <math>N \cdot \frac{L}{R}</math>의 시간이 걸린다. 또한 그 이후로 P-1개의 패킷이 destination의 직전 라우터에서 destination까지 전송되는데 추가로 <math>P-1 \cdot \frac{L}{R}</math>의 시간이 걸리므로 위 공식이 성립한다.
====packet delay and loss====
[[파일:Queueing_delay.png|가운데|섬네일|450x450픽셀|Figure 3. Packet delay and loss]]
각각의 패킷 스위치는 여러개의 link에 연결되어 있으며, 패킷 스위치는 output buffer<ref>output queue라고도 한다.</ref>를 가지고 있다. 패킷 스위치에 도착한 패킷은 특정한 output link로 전송되어야 하지만 해당 link가 다른 패킷을 전송하느라 사용 중일 경우<ref>라우터에 전송되는 패킷의 전송 속도가 라우터가 ouput link에 전송하는 속도보다 더 빠른 경우</ref>에는 output buffer에 저장되어 전송될 때까지 대기하여야 한다. 이러한 이유로 생기는 대기 시간을 queueing delay라고 한다. 또한 패킷이 output buffer에 저장되고자 할 때 해당 버퍼가 가득 차있다면 packet loss가 발생할 수 있다. 즉, 도착한 패킷이나 이미 대기 중인 패킷들 중 하나가 drop(삭제)될 수 있다. 삭제된 패킷은 다시 재전송 된다.
자세한 내용은 [[Performance measures in networks#Delay and loss in networks|Delay and loss in networks]] 문서를 참조하십시오.
====Forwarding Tables and Routing Protocols====
[[파일:Forwarding.png|섬네일|300x300픽셀|Figure 4. Forwarding in a nut shell]]
인터넷의 '''모든 end system(host)에는 IP Address라는 고유한 주소가 할당'''된다. 송신측 호스트에서 수신측 호스트로 패킷을 전송하고자 할 때 해당 패킷에는 destination의 IP 주소가 포함된다. IP 주소는 계층적 주소를 지니고 있어 라우터는 패킷의 주소를 일부만 확인하고도 '''어떤 output link로 패킷을 전송할지 결정'''할 수 있다. 이를 가능케 하는 것이 바로 '''forwarding table'''이다.


<big><math>d_{end-to=end} = N \cdot \frac{L}{R}</math></big>
각 라우터에는 forwarding table이 존재한다. 라우터는 forwarding table을 이용해 destination의 주소(혹은 일부)와 해당 패킷을 전송할 outbound link를 매핑한다. 매핑된 input link로 들어온 패킷을 outbound link로 송신하여 다음 라우터로 보내고, 해당 과정을 반복하여 destination에 패킷이 도달한다. 이렇게 forwarding table을 활용해 '''input link로 들어온 패킷을 outbound link로 송신하는 것을 forwarding'''이라고 하며, 이러한 작업은 switch와 라우터에 의해서 수행된다.


이를 응용하여 N 개의 링크를 따라 PP 개의 패킷을 전송할 때의 지연 시간을 구하면 다음과 같다.
이를 가능케 하기 위해서는 라우터에 의해 실행되는 routing이란 과정이 수행되어야 한다. '''routing이란 source에서 destination까지 패킷이 도달할 수 있도록 routing(shortest) path를 찾고 결정'''하는 과정이다. 이렇게 찾아진 routing path를 따라 패킷 스위치는 forwarding을 통해서 outboundn link를 결정한다.


<big><math>d_{end-to=end} = (N+P-1) \cdot \frac{L}{R}</math></big>
===Circuit Switching===
[[파일:CircuitSiwtching.png|가운데|섬네일|300x300픽셀|Figure 5. Circuit switching example]]
Circuit Switching Network에서는 source와 destination간의 '''통신을 위한 경로의 resource<ref>버퍼, 링크 전송 속도 등</ref>를 통신 전에 미리 reserve'''한다. 이러한 특성은 예약된 자원이 오로지 예약된 통신만을 위해 사용되기 때문에 항상 빠르고 안정적인 통신이 가능하다. 예를 들어서 위 그림에서 host간의 통신을 위해서는 2개의 링크에서 각각 1개의 circuit(회선)을 예약해야 한다. 이 경우에서는 첫 번째 링크에서는 2번째 회선이, 두 번째 링크에서는 네번째 회선이 사용되었다.<ref>각 링크에는 총 4개의 회선이 있기 때문에 각 링크에서 전체 전송 용량의 1/4이 해당 회선에 할당된다.</ref>


첫번째 패킷이 destination 까지 도착하는 데에는 <math>N \cdot \frac{L}{R}</math>의 시간이 걸린다. 또한 그 이후로 P-1개의 패킷이 destination의 직전 라우터에서 destination까지 전송되는데 추가로 <math>P-1 \cdot \frac{L}{R}</math>의 시간이 걸리므로 위 공식이 성립한다.  
===packet switch VS circuit switch===
'''packet switch는 circuit switch보다 더욱 많은 유저가 네트워크에 접속할 수 있도록 한다.'''
* 예를 들어서 link가 1 Mb/s의 대역폭을 지원하고, 활성화 되어 있을때 100kb/s의 대역폭을 요구하는 유저가 전체 시간의 10% 동안만 활성화되어 있다고 하자.
** circuit switching은 오직 10명의 유저가 접속하는 것을 허용한다. 하지만 이를 통해서 활성화된 모든 유저들에게 보장된 대역폭을 제공한다.
** packet switching은 35명의 유저가 접속하는 것을 허용한다. 11명 이상의 유저가 동시에 활성화될 가능성은 약 0.04%이다. 이는 약 99.96%시간 동안 circuit switching과 거의 비슷한 대역폭을 사용자에게 제공한다는 것을 의미한다. 만약 11명 이상의 유저가 동시에 활성화되면 패킷의 도착 capacity가 링크의 출력 capacity를 초과하여 output queue가 증가하며 일시적으로 속도가 느려진다.
이러한 packet switcing의 특징은 '''유저들이 실제 활성화되어 있는 시간 사이에 쉬어가는 시간이 많기 때문에''' 가능하다. '''circuit switching은 각 유저에게 고정된 대역폭을 제공'''하므로 유저가 대기 중일 때도 자원을 예약해두어 더 적은 수의 유저만 동시에 접속할 수 있다는 특징이 있다. 반면 packet switching은 유저가 실제로 활성화된 시간 사이에 비활성화되어 있는 시간이 길다는 점에서 착안해 네트워크 자원을 더욱 유동적으로 사용하여 더욱 많은 사람이 하나의 link를 통해 통신을 할 수 있도록 허용한다.


====Queueing delay, loss====
====FDM과 TDM====
[[파일:Queueing delay.png|테두리|프레임없음|450x450픽셀]]
[[파일:FDMTDM.png|섬네일|300x300픽셀|Figure 6. FDM/TDM example]]


각각의 패킷 스위치는 여러개의 link에 연결되어 있으며, 패킷 스위치는 각각의 link에 대한 output buffer<ref>output queue라고도 한다.</ref>를 가지고 있다. 패킷 스위치에 도착한 패킷은 특정한 output link로 전송되어야 하지만 해당 link가 다른 패킷을 전송하느라 사용 중일 경우<ref>라우터에 전송되는 패킷의 전송 속도가 라우터가 ouput link에 전송하는 속도보다 더 빠른 경우</ref>에는 해당 link의 output buffer에 저장되어 전송될 때까지 대기하여야 한다. 이러한 이유로 생기는 대기 시간을 queueing delay라고 한다. 또한 패킷이 output buffer에 저장되고자 할 때 해당 버퍼가 가득 차있다면 packet loss가 발생할 수 있다. 즉, 도착한 패킷이나 이미 대기 중인 패킷들 중 하나가 drop(삭제)될 수 있다. 삭제된 패킷은 다시 재전송 되어야한다.
Circuit Switching과 Packet Switching은 각각 Frequency-Division Multiplexing(FDM), Time-Division Multiplexing(TDM)으로 구현된다.  
* '''FDM: link의 주파수 스펙트럼을 여러개의 대역으로 나누어 각 연결에 할당'''하는 방식이다.  
** 이를 통해서 각 연결은 회선이 유지되는 동안 일정한 '''주파수 대역을 독점적으로 사용'''한다.
** FDM은 예약된 회선에 대해서 항상 유저가 접근가능하므로 '''circuit switching의 구현 방식'''이다.
* '''TDM: 시간을 일정한 길이의 frame으로 나누고, 각 프레임을 다시 여러 개의 time slot으로 분할'''하여 각 time slot마다 각 유저의 네트워크 연결을 할당한다.
** 이러한 연결은 '''time slot 동안 해당 사용자에 대해 독점적으로 할당'''되어 매 프레임마다 하나의 time slot에서 유저가 해당 link를 독점적으로 사용할 수 있다.
** TDM은 유저가 비활성화되어 있는 시간을 고려하여 일정한 시간 동안에만 특정 유저에 대해 활성화되어 있으므로 '''packet switching'''의 구현방식이다.


====Forwarding Tables and Routing Protocols====
결국 packet switching은 현재의 network에서 이견이 없는 지배자라고 볼 수 있다. 이는 packet switching이 resource의 분배가 더욱 효율적이고, 회선에 대한 reservation이 필요가 없어 더욱 간단하여 대부분의 network 연결에서 사용되고 있기 때문이다. 하지만 circuit switching이 아예 쓰이지 않는 것은 아니다. circuit switching은 국가의 명령 체계나 비행기와 관제탑의 연결처럼 안정적인 정보의 송수신이 필요한 분야에서 사용되고 있다.
[[파일:Forwarding.png|섬네일|300x300픽셀|forwarding in a nut shell]]
인터넷의 모든 end system에는 IP Address라는 고유한 주소가 할당된다. source end system에서 destination end system으로 패킷을 전송하고자 할 때 해당 패킷에는 destination의 IP 주소가 포함된다. IP 주소는 계층적 주소를 지니고 있어 라우터는 패킷의 주소를 일부만 확인하고도 어떤 output link로 패킷을 전송할지 결정할 수 있다. 이를 가능케 하는 것이 바로 forwarding table이다.


각 라우터에는 forwarding table이 존재한다. 라우터는 forwarding table을 이용해 destination의 주소(혹은 일부)와 해당 패킷을 전송할 outbound link를 매핑한다. 매핑된 input link로 들어온 패킷을 outbound link로 송신하여 다음 라우터로 보내고, 해당 과정을 반복하여 destination에 패킷이 도달한다. 이렇게 forwarding table을 활용해 input link로 들어온 패킷을 outbound link로 송신하는 것을 forwarding이라고 하며, 이러한 작업은 switch와 라우터에 의해서 수행된다.
==A Network of Networks==
end system(host)는 access ISP<ref>반드시 통신사나 케이블 회사일 필요는 없으며, 예를 들어 대학(학생, 교직원, 교수에게 인터넷 접근을 제공)이나 회사(직원에게 인터넷 접근을 제공)일 수도 있다.</ref>를 통해 인터넷에 연결된다. 하지만 end system과 ISP를 연결하는 것 만으로는 전세계를 하나로 묶을 수 없다. 즉 전세계를 네트워크를 통해서 연결하기 위해서는 access ISP가 서로 연결되어야 한다. 전세계를 하나로 묶는 인터넷은 a network of nwtworks를 만들어서 구현된다.  


routing이란 source에서 destination까지 패킷이 도달할 수 있도록 shorteset path를 찾고 결정하는 과정이다. routing은 오직 라우터에 의해서만 실행된다.  
이때 a network of networks는 매우 복잡한 구조로 발달하였다. 이는 네트워크 간의 연결이 ISP의 숫자가 매우 늘어난 것 외에도 경제성, 국가 간의 정치적인 지형에 의해 영향을 받았기 때문이다. 결국 a network of networks는 계층적인 구조로 발달하였다.
추후 과정을 상세히 설명


https://chatgpt.com/c/67d25576-2144-8012-b28b-448a47cf7201
===a network of networks의 구성===


https://aws.amazon.com/ko/what-is/routing/
* 극 초창기에는 ISP의 숫자가 그리 많지 않았기 때문에 각각의 ISP들 사이를 모두 연결하였다. 하지만 ISP의 숫자가 늘어남에 따라 이러한 방식은 쓸 수 없게 되었다. 그 이유는 ISP의 개수가 N개일 경우 요구되는 연결의 수는 O(n<sup>2</sup>)이기 때문이다.
[[파일:Tier 1 ISP Network.png|섬네일|300x300픽셀|Figure 7. Tier 1 ISP까지 구성된 네트워크 구조]]
*이러한 문제를 해결하기 위해서 '''모든 access ISP를 하나의 global ISP에 연결하는 방식이 도입'''되었다. 이러한 방식은 각각의 access ISP가 global ISP를 구축한 회사에 요금을 지불하며 유지된다. 그 결과 수익성이 있는 global ISP가 구축되면, 이에 경쟁하는 또다른 global ISP가 도입된다. 이 경우 서로 경쟁하며 가격과 서비스가 개선되는 효과가 있다. 이렇게 발생한 '''최상위 global ISP들을 Tier 1 ISP'''라고 한다. 이 경우에는 각각의 Tier 1 ISP도 서로 연결되어야 한다. 그렇지 않으면 하나의 Tier 1 ISP에 연결된 액세스 ISP는 다른 Tier 1 ISP에 연결된 액세스 ISP와 통신할 수 없기 때문이다.
* 이 때문에 Tier 1 ISP간의 연결을 가능하게 하기 위해서 '''PoP'''<ref>해당 provider ISP 내에 하나 이상의 라우터를 설치하여 그곳에서 customer ISP들이 provider ISP에 연결할 수 있도록 하는 지점이다.</ref>,  '''peering link''', '''IXP''', [[multi-homing]]이 새롭게 추가된다. '''peering은 Tier 1 ISP사이에 요금 지불 없이 직접 연결을 지원해 그보다 상위의 ISP를 거치지 않도록 하는 것'''이고, peering link는 이를 가능케 하는 link를 의미한다. 또한 '''[[Internet eXchange Point|IXP]]는 이러한 peering link들이 서로 직접연결되는 허브의 역할을 하는 물리적인 장소'''이다.[[파일:RecentNetwork.png|섬네일|300x300픽셀|Figure 8. 현대의 네트워크 구조]]
* 또한 이러한 계층이 만들어지는 와중 세계의 각 지역에는 여러 regional ISP가 생겨난다. 각 지역의 access ISP는 해당 지역의 regional ISP에, regional ISP는 연결되어있는 Tier 1 ISP에 요금을 지불하는 식으로 계층적인 구조가 생겨난다.
* 마지막으로 위 네트워크 구조에 '''content-provider network'''들이 추가되어 현재의 network 구조가 완성된다. content-provider network<ref>google, youtube, netflix, naver등...</ref>는 주로 웹사이트, 비디오 스트리밍, 클라우드 서비스와 같은 콘텐츠를 제공하고 배포하는 네트워크를 의미한다. '''content-provider는 자체적으로 구축한 고유한 네트워크 인프라'''를 통해서 사용자에게 빠르게 해당 콘텐츠가 전달되도록 한다. 이를 위해서 전 세계에 분산된 데이터 센터를 통해서 네트워크를 구성하고 사용자에게 지리적으로 가까운 서버에서 서비스를 제공하는 등의 역할을 한다. 이는 서비스 품질을 향상 시킬 뿐만 아니라 Tier 1 ISP에 지불하는 비용도 대폭 감소시킬 수 있다는 장점이 있다. 이러한 content-provider network는 하위 계층의 ISP와 peering<ref>Tier 1 ISP에 지불할 비용을 우회 가능하다.</ref>을 하거나 Tier 1 ISP와 IXP에서 직접연결을 하여<ref>Tier 1 ISP 없이는 연결할 수 없는 access ISP가 존재하기 때문에, 요금을 지불하고 연결한다.</ref> 현재의 네트워크를 완성시킨다.


===Circuit Switching===
===PoP와 IXP의 비교===
Circuit Switching Network에서는 source와 destination간의 통신을 위한 경로의 resource<ref>버퍼, 링크 전송 속도 </ref>를 통신 전에 미리 reserve한다. 이러한 특성은 예약된 자원이 오로지 예약된 통신만을 위해 사용되기 때문에 항상 빠르고 안정적인 통신이 가능하다.  
'''PoP(Point of Presence)'''는 ISP나 CDN, 클라우드 제공자들이 '''고객이나 다른 네트워크에 연결하기 위해 설치한 물리적인 접속 지점'''을 의미한다. 하나의 조직(통신사, CDN, 클라우드 회사 등...)이 자기 네트워크를 외부에 제공하기 위해 설치하며, POP 안에는 라우터, 스위치, 서버, 광케이블 등이 있다. 보통 도시 단위로 존재한다. 이를 통해서 사용자가 해당 네트워크에 접속하여 자사 서비스 등을 이용할 수 있도록 한다.


'''[[Internet eXchange Point|IXP]](Internet Exchange Point)'''는 서로 다른 ISP, 클라우드, CDN 등이 직접 데이터를 주고받기 위해 모이는 '''중립적인 교환 지점'''을 의미한다. IXP는 '''서로 다른 네트워크 간의 직접 연결(peering)''' 을 통해 트래픽 교환을 빠르고 효율적으로 처리하려는 목적을 가지고 있다. 이는 다양한 네트워크 운영자들(예: KT, LG U+, Google, Cloudflare 등)이 참여하며, 이를 통해 중간 ISP 없이 직접 상호 연결(peering)하며 구현된다. 이는 delay 감소, 비용 절감, 속도 향상 등의 이점을 가질 수 있게 된다.
{| class="wikitable"
|+
!항목
!PoP
!IXP
|-
|주체
|단일 사업자(ISP, CDN, 클라우드...)
|다수의 네트워크 사업자
|-
|목적
|사용자에게 자기 서비스를 제공하기 위한 접점
|네트워크 간 트래픽 교환을 위한 지점
|-
|역할
|사용자에게 콘텐츠를 전달하고, 접속을 지원
|상호 네트워크 사업자 간의 트래픽 교환
|-
|중립성
|소유자가 있으므로 중립적이지 않음
|다수의 사업자가 참여하므로 중립적으로 운영됨
|}


==각주==
==각주==

2025년 4월 23일 (수) 01:07 기준 최신판

상위 문서: 컴퓨터 네트워크

개요

Figure 1. Network core

network core란 상호연결된 라우터들의 집합이며 네트워크들의 네트워크 그자체이다.

일반적인 유저에게는 드러나지 않은채 host들 사이의 연결이 이루어진다.

packet switching과 circuit switching

packet switching

host에서 destination으로 data를 보내기 위해, 송신측 host는 data를 더 작은 data 조각들로 나누는데, 이를 packet(패킷)이라고 한다. packet은 도착점으로 삼은 host까지 각 패킷은 communication link와 packet switch[1]를 통해 이동한다.

이때 각 패킷은 링크의 최대 link capacity[2]으로 전송된다. 즉, 패킷이 링크를 통해 전송될 때, 해당 링크의 Transmission Rate(R)로 보낸다는 뜻이다. 예를 들어, 링크의 전송 속도가 10 Mbps(메가비트/초) 라면, 패킷이 이 링크를 통과할 때 10 Mbps의 속도로 전송된다는 의미이다. 따라서, 링크가 병목이 되거나 대역폭이 제한되지 않는 한, 패킷은 항상 링크가 허용하는 최대 속도로 전송된다.

Figure 2. Packet switching

또한 packet switcing은 store-and-forward 방식으로 동작한다. store-and-forward란 패킷이 라우터에서 output link로 전송되기 위해서는 패킷이 모든 부분이 라우터에 수신되어야 함을 의미한다. 위 그림에서 첫번째 패킷의 일부분이 라우터로 전송되었으나, 아직 첫 패킷 전체가 라우터에 전달되지 않아 이를 destination으로 전송할 수 없다. 그 대신의 라우터는 패킷의 bit를 버퍼에 저장해야 한다. 라우터가 패킷의 모든 bit를 수신한 후에는 비로소 패킷을 출력 링크로 전송할 수 있다. 이를 통해서 하나의 패킷과 전체(3개)의 패킷이 하나의 라우터를 걸쳐 destination까지 전송되는 시간을 계산할 수 있다.[3]

  • 하나의 패킷의 전송 시간: 2L/R
    1. host는 시간이 0일때 전송을 시작하며, 시간이 L/R이 되었을 때까지 라우터는 첫번째 패킷을 수신하고 저장한다.
    2. 라우터는 첫번째 패킷을 저장하였으므로 이를 destination으로 송신하고, 이는 L/R초가 소요된다.
    • 시간 2L/R초가 되면 라우터는 전체 패킷을 전송 완료하였고 목적지는 전체 패킷을 수신 완료한다.
  • 전체 패킷의 전송 시간: 4L/R
    1. 앞선 경우와 마찬가지로 host는 시간이 0일때 전송을 시작하며, 시간이 L/R이 될 때까지 라우터는 첫번째 패킷을 수신하고 저장한다.
    2. 시간이 L/R초가 되었을 때 라우터는 첫번째 패킷의 전송을 시작하고 host는 두번째 패킷의 전송을 시작한다.
    3. 시간이 2L/R초가 되었을 때 라우터는 두번째 패킷의 전송을 시작하고 host는 세번째 패킷의 전송을 시작한다.
    4. 시간이 3L/R초가 되었을 때 라우터는 세번째 패킷의 전송을 시작하고 host는 네번째 패킷의 전송을 시작한다.
    5. 시간이 4L/R초가 되면 destination은 마지막 세번째 패킷의 수신까지 완료한다.

또한 host에서부터 N개의 link를 걸쳐 destination까지 패킷을 전송 완료할 때까지의 시간은 다음과 같다.

dendto=end=NLR

이를 응용하여 N 개의 링크를 따라 P개의 패킷을 전송할 때의 지연 시간을 구하면 다음과 같다.

dendto=end=(N+P1)LR

첫번째 패킷이 destination 까지 도착하는 데에는 NLR의 시간이 걸린다. 또한 그 이후로 P-1개의 패킷이 destination의 직전 라우터에서 destination까지 전송되는데 추가로 P1LR의 시간이 걸리므로 위 공식이 성립한다.

packet delay and loss

Figure 3. Packet delay and loss

각각의 패킷 스위치는 여러개의 link에 연결되어 있으며, 패킷 스위치는 output buffer[4]를 가지고 있다. 패킷 스위치에 도착한 패킷은 특정한 output link로 전송되어야 하지만 해당 link가 다른 패킷을 전송하느라 사용 중일 경우[5]에는 output buffer에 저장되어 전송될 때까지 대기하여야 한다. 이러한 이유로 생기는 대기 시간을 queueing delay라고 한다. 또한 패킷이 output buffer에 저장되고자 할 때 해당 버퍼가 가득 차있다면 packet loss가 발생할 수 있다. 즉, 도착한 패킷이나 이미 대기 중인 패킷들 중 하나가 drop(삭제)될 수 있다. 삭제된 패킷은 다시 재전송 된다.

자세한 내용은 Delay and loss in networks 문서를 참조하십시오.

Forwarding Tables and Routing Protocols

Figure 4. Forwarding in a nut shell

인터넷의 모든 end system(host)에는 IP Address라는 고유한 주소가 할당된다. 송신측 호스트에서 수신측 호스트로 패킷을 전송하고자 할 때 해당 패킷에는 destination의 IP 주소가 포함된다. IP 주소는 계층적 주소를 지니고 있어 라우터는 패킷의 주소를 일부만 확인하고도 어떤 output link로 패킷을 전송할지 결정할 수 있다. 이를 가능케 하는 것이 바로 forwarding table이다.

각 라우터에는 forwarding table이 존재한다. 라우터는 forwarding table을 이용해 destination의 주소(혹은 일부)와 해당 패킷을 전송할 outbound link를 매핑한다. 매핑된 input link로 들어온 패킷을 outbound link로 송신하여 다음 라우터로 보내고, 해당 과정을 반복하여 destination에 패킷이 도달한다. 이렇게 forwarding table을 활용해 input link로 들어온 패킷을 outbound link로 송신하는 것을 forwarding이라고 하며, 이러한 작업은 switch와 라우터에 의해서 수행된다.

이를 가능케 하기 위해서는 라우터에 의해 실행되는 routing이란 과정이 수행되어야 한다. routing이란 source에서 destination까지 패킷이 도달할 수 있도록 routing(shortest) path를 찾고 결정하는 과정이다. 이렇게 찾아진 routing path를 따라 패킷 스위치는 forwarding을 통해서 outboundn link를 결정한다.

Circuit Switching

Figure 5. Circuit switching example

Circuit Switching Network에서는 source와 destination간의 통신을 위한 경로의 resource[6]를 통신 전에 미리 reserve한다. 이러한 특성은 예약된 자원이 오로지 예약된 통신만을 위해 사용되기 때문에 항상 빠르고 안정적인 통신이 가능하다. 예를 들어서 위 그림에서 host간의 통신을 위해서는 2개의 링크에서 각각 1개의 circuit(회선)을 예약해야 한다. 이 경우에서는 첫 번째 링크에서는 2번째 회선이, 두 번째 링크에서는 네번째 회선이 사용되었다.[7]

packet switch VS circuit switch

packet switch는 circuit switch보다 더욱 많은 유저가 네트워크에 접속할 수 있도록 한다.

  • 예를 들어서 link가 1 Mb/s의 대역폭을 지원하고, 활성화 되어 있을때 100kb/s의 대역폭을 요구하는 유저가 전체 시간의 10% 동안만 활성화되어 있다고 하자.
    • circuit switching은 오직 10명의 유저가 접속하는 것을 허용한다. 하지만 이를 통해서 활성화된 모든 유저들에게 보장된 대역폭을 제공한다.
    • packet switching은 35명의 유저가 접속하는 것을 허용한다. 11명 이상의 유저가 동시에 활성화될 가능성은 약 0.04%이다. 이는 약 99.96%의 시간 동안 circuit switching과 거의 비슷한 대역폭을 사용자에게 제공한다는 것을 의미한다. 만약 11명 이상의 유저가 동시에 활성화되면 패킷의 도착 capacity가 링크의 출력 capacity를 초과하여 output queue가 증가하며 일시적으로 속도가 느려진다.

이러한 packet switcing의 특징은 유저들이 실제 활성화되어 있는 시간 사이에 쉬어가는 시간이 많기 때문에 가능하다. circuit switching은 각 유저에게 고정된 대역폭을 제공하므로 유저가 대기 중일 때도 자원을 예약해두어 더 적은 수의 유저만 동시에 접속할 수 있다는 특징이 있다. 반면 packet switching은 유저가 실제로 활성화된 시간 사이에 비활성화되어 있는 시간이 길다는 점에서 착안해 네트워크 자원을 더욱 유동적으로 사용하여 더욱 많은 사람이 하나의 link를 통해 통신을 할 수 있도록 허용한다.

FDM과 TDM

Figure 6. FDM/TDM example

Circuit Switching과 Packet Switching은 각각 Frequency-Division Multiplexing(FDM), Time-Division Multiplexing(TDM)으로 구현된다.

  • FDM: link의 주파수 스펙트럼을 여러개의 대역으로 나누어 각 연결에 할당하는 방식이다.
    • 이를 통해서 각 연결은 회선이 유지되는 동안 일정한 주파수 대역을 독점적으로 사용한다.
    • FDM은 예약된 회선에 대해서 항상 유저가 접근가능하므로 circuit switching의 구현 방식이다.
  • TDM: 시간을 일정한 길이의 frame으로 나누고, 각 프레임을 다시 여러 개의 time slot으로 분할하여 각 time slot마다 각 유저의 네트워크 연결을 할당한다.
    • 이러한 연결은 time slot 동안 해당 사용자에 대해 독점적으로 할당되어 매 프레임마다 하나의 time slot에서 유저가 해당 link를 독점적으로 사용할 수 있다.
    • TDM은 유저가 비활성화되어 있는 시간을 고려하여 일정한 시간 동안에만 특정 유저에 대해 활성화되어 있으므로 packet switching의 구현방식이다.

결국 packet switching은 현재의 network에서 이견이 없는 지배자라고 볼 수 있다. 이는 packet switching이 resource의 분배가 더욱 효율적이고, 회선에 대한 reservation이 필요가 없어 더욱 간단하여 대부분의 network 연결에서 사용되고 있기 때문이다. 하지만 circuit switching이 아예 쓰이지 않는 것은 아니다. circuit switching은 국가의 명령 체계나 비행기와 관제탑의 연결처럼 안정적인 정보의 송수신이 필요한 분야에서 사용되고 있다.

A Network of Networks

end system(host)는 access ISP[8]를 통해 인터넷에 연결된다. 하지만 end system과 ISP를 연결하는 것 만으로는 전세계를 하나로 묶을 수 없다. 즉 전세계를 네트워크를 통해서 연결하기 위해서는 access ISP가 서로 연결되어야 한다. 전세계를 하나로 묶는 인터넷은 a network of nwtworks를 만들어서 구현된다.

이때 a network of networks는 매우 복잡한 구조로 발달하였다. 이는 네트워크 간의 연결이 ISP의 숫자가 매우 늘어난 것 외에도 경제성, 국가 간의 정치적인 지형에 의해 영향을 받았기 때문이다. 결국 a network of networks는 계층적인 구조로 발달하였다.

a network of networks의 구성

  • 극 초창기에는 ISP의 숫자가 그리 많지 않았기 때문에 각각의 ISP들 사이를 모두 연결하였다. 하지만 ISP의 숫자가 늘어남에 따라 이러한 방식은 쓸 수 없게 되었다. 그 이유는 ISP의 개수가 N개일 경우 요구되는 연결의 수는 O(n2)이기 때문이다.
Figure 7. Tier 1 ISP까지 구성된 네트워크 구조
  • 이러한 문제를 해결하기 위해서 모든 access ISP를 하나의 global ISP에 연결하는 방식이 도입되었다. 이러한 방식은 각각의 access ISP가 global ISP를 구축한 회사에 요금을 지불하며 유지된다. 그 결과 수익성이 있는 global ISP가 구축되면, 이에 경쟁하는 또다른 global ISP가 도입된다. 이 경우 서로 경쟁하며 가격과 서비스가 개선되는 효과가 있다. 이렇게 발생한 최상위 global ISP들을 Tier 1 ISP라고 한다. 이 경우에는 각각의 Tier 1 ISP도 서로 연결되어야 한다. 그렇지 않으면 하나의 Tier 1 ISP에 연결된 액세스 ISP는 다른 Tier 1 ISP에 연결된 액세스 ISP와 통신할 수 없기 때문이다.
  • 이 때문에 Tier 1 ISP간의 연결을 가능하게 하기 위해서 PoP[9], peering link, IXP, multi-homing이 새롭게 추가된다. peering은 Tier 1 ISP사이에 요금 지불 없이 직접 연결을 지원해 그보다 상위의 ISP를 거치지 않도록 하는 것이고, peering link는 이를 가능케 하는 link를 의미한다. 또한 IXP는 이러한 peering link들이 서로 직접연결되는 허브의 역할을 하는 물리적인 장소이다.
    Figure 8. 현대의 네트워크 구조
  • 또한 이러한 계층이 만들어지는 와중 세계의 각 지역에는 여러 regional ISP가 생겨난다. 각 지역의 access ISP는 해당 지역의 regional ISP에, regional ISP는 연결되어있는 Tier 1 ISP에 요금을 지불하는 식으로 계층적인 구조가 생겨난다.
  • 마지막으로 위 네트워크 구조에 content-provider network들이 추가되어 현재의 network 구조가 완성된다. content-provider network[10]는 주로 웹사이트, 비디오 스트리밍, 클라우드 서비스와 같은 콘텐츠를 제공하고 배포하는 네트워크를 의미한다. content-provider는 자체적으로 구축한 고유한 네트워크 인프라를 통해서 사용자에게 빠르게 해당 콘텐츠가 전달되도록 한다. 이를 위해서 전 세계에 분산된 데이터 센터를 통해서 네트워크를 구성하고 사용자에게 지리적으로 가까운 서버에서 서비스를 제공하는 등의 역할을 한다. 이는 서비스 품질을 향상 시킬 뿐만 아니라 Tier 1 ISP에 지불하는 비용도 대폭 감소시킬 수 있다는 장점이 있다. 이러한 content-provider network는 하위 계층의 ISP와 peering[11]을 하거나 Tier 1 ISP와 IXP에서 직접연결을 하여[12] 현재의 네트워크를 완성시킨다.

PoP와 IXP의 비교

PoP(Point of Presence)는 ISP나 CDN, 클라우드 제공자들이 고객이나 다른 네트워크에 연결하기 위해 설치한 물리적인 접속 지점을 의미한다. 하나의 조직(통신사, CDN, 클라우드 회사 등...)이 자기 네트워크를 외부에 제공하기 위해 설치하며, POP 안에는 라우터, 스위치, 서버, 광케이블 등이 있다. 보통 도시 단위로 존재한다. 이를 통해서 사용자가 해당 네트워크에 접속하여 자사 서비스 등을 이용할 수 있도록 한다.

IXP(Internet Exchange Point)는 서로 다른 ISP, 클라우드, CDN 등이 직접 데이터를 주고받기 위해 모이는 중립적인 교환 지점을 의미한다. IXP는 서로 다른 네트워크 간의 직접 연결(peering) 을 통해 트래픽 교환을 빠르고 효율적으로 처리하려는 목적을 가지고 있다. 이는 다양한 네트워크 운영자들(예: KT, LG U+, Google, Cloudflare 등)이 참여하며, 이를 통해 중간 ISP 없이 직접 상호 연결(peering)하며 구현된다. 이는 delay 감소, 비용 절감, 속도 향상 등의 이점을 가질 수 있게 된다.

항목 PoP IXP
주체 단일 사업자(ISP, CDN, 클라우드...) 다수의 네트워크 사업자
목적 사용자에게 자기 서비스를 제공하기 위한 접점 네트워크 간 트래픽 교환을 위한 지점
역할 사용자에게 콘텐츠를 전달하고, 접속을 지원 상호 네트워크 사업자 간의 트래픽 교환
중립성 소유자가 있으므로 중립적이지 않음 다수의 사업자가 참여하므로 중립적으로 운영됨

각주

  1. router와 switch로 구분된다.
  2. transmission rate
  3. propagation delay는 무시한다.
  4. output queue라고도 한다.
  5. 라우터에 전송되는 패킷의 전송 속도가 라우터가 ouput link에 전송하는 속도보다 더 빠른 경우
  6. 버퍼, 링크 전송 속도 등
  7. 각 링크에는 총 4개의 회선이 있기 때문에 각 링크에서 전체 전송 용량의 1/4이 해당 회선에 할당된다.
  8. 반드시 통신사나 케이블 회사일 필요는 없으며, 예를 들어 대학(학생, 교직원, 교수에게 인터넷 접근을 제공)이나 회사(직원에게 인터넷 접근을 제공)일 수도 있다.
  9. 해당 provider ISP 내에 하나 이상의 라우터를 설치하여 그곳에서 customer ISP들이 provider ISP에 연결할 수 있도록 하는 지점이다.
  10. google, youtube, netflix, naver등...
  11. Tier 1 ISP에 지불할 비용을 우회 가능하다.
  12. Tier 1 ISP 없이는 연결할 수 없는 access ISP가 존재하기 때문에, 요금을 지불하고 연결한다.