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

개요
network core란 상호연결된 라우터들의 집합이며 네트워크들의 네트워크 그자체이다. 일반적인 유저에게는 드러나지 않은채 host들 사이의 연결이 이루어진다.
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의 속도로 전송된다는 의미이다. 따라서, 링크가 병목이 되거나 대역폭이 제한되지 않는 한, 패킷은 항상 링크가 허용하는 최대 속도로 전송된다.
또한 packet switcing은 store-and-forward 방식으로 동작한다. store-and-forward란 전체의 패킷이 라우터에서 output link로 전송되기 위해서는 전체 패킷이 모두 라우터에 수신되어야 함을 의미한다. 위 그림에서 첫번째 패킷의 일부가 라우터로 전송되었으나, 아직 첫 패킷 전체가 라우터에 전달되지 않아 이를 destination으로 전송할 수 없다. 그 대신의 라우터는 패킷의 bit를 버퍼에 저장해야 한다. 라우터가 패킷의 모든 bit를 수신한 후에는 비로소 패킷을 출력 링크로 전송할 수 있다. 이를 통해서 하나의 패킷과 전체(3개)의 패킷이 destination까지 전송되는 시간을 계산할 수 있다.[3]
- 하나의 패킷의 전송 시간: 2L/R
- host는 시간이 0일때 전송을 시작하며, 시간이 L/R이 되었을 때까지 라우터는 첫번째 패킷을 수신하고 저장한다.
- 라우터는 첫번째 패킷을 저장하였으므로 이를 destination으로 송신하고, 이는 L/R초가 소요된다.
- 시간 2L/R초가 되면 라우터는 전체 패킷을 전송 완료하였고 목적지는 전체 패킷을 수신 완료한다.
- 전체 패킷의 전송 시간: 4L/R
- 앞선 경우와 마찬가지로 host는 시간이 0일때 전송을 시작하며, 시간이 L/R이 될 때까지 라우터는 첫번째 패킷을 수신하고 저장한다.
- 시간이 L/R초가 되었을 때 라우터는 첫번째 패킷의 전송을 시작하고 host는 두번째 패킷의 전송을 시작한다.
- 시간이 2L/R초가 되었을 때 라우터는 두번째 패킷의 전송을 시작하고 host는 세번째 패킷의 전송을 시작한다.
- 시간이 3L/R초가 되었을 때 라우터는 세번째 패킷의 전송을 시작하고 host는 네번째 패킷의 전송을 시작한다.
- 시간이 4L/R초가 되면 destination은 마지막 세번째 패킷의 수신까지 완료한다.
또한 host에서부터 N개의 link를 걸쳐 destination까지 패킷을 전송 완료할 때까지의 시간은 다음과 같다.
이를 응용하여 N 개의 링크를 따라 PP 개의 패킷을 전송할 때의 지연 시간을 구하면 다음과 같다.
첫번째 패킷이 destination 까지 도착하는 데에는 의 시간이 걸린다. 또한 그 이후로 P-1개의 패킷이 destination의 직전 라우터에서 destination까지 전송되는데 추가로 의 시간이 걸리므로 위 공식이 성립한다.
Queueing delay, loss
각각의 패킷 스위치는 여러개의 link에 연결되어 있다. 이 때문에 패킷 스위치는 각각의 link에 대한 output buffer[4]를 가지고 있다. 패킷 스위치에 도착한 패킷은 특정한 output link로 전송되어야 하지만 해당 link가 다른 패킷을 전송하느라 사용 중일 경우[5]에는 해당 link의 output buffer에 저장되어 전송될 때까지 대기하여야 한다. 이러한 이유로 생기는 대기 시간을 queueing delay라고 한다. 또한 패킷이 output buffer에 저장되고자 할 때 해당 버퍼가 가득 차있다면 packet loss가 발생할 수 있다. 즉, 도착한 패킷이나 이미 대기 중인 패킷들 중 하나가 drop(삭제)될 수 있다. 삭제된 패킷은 다시 재전송 되어야한다.