요약

노드는 링크 끝에 붙은 장치다. 단말(호스트)이든 스위치(라우터)든 속은 보통의 컴퓨터로, CPU와 메모리와 선을 이어 주는 네트워크 어댑터로 이루어진다. 메모리가 유한해서 패킷을 쌓아 둘 버퍼도 유한하다. 프로세서는 빠르고 메모리는 느려서, 요즘은 링크보다 노드가, 노드 안에서는 메모리가 병목이다.

예시로 보기

노드 안은 다음과 같이 이어져 있다.

CPU
 │
Cache
 │
Memory ──┬── I/O bus ── Network adaptor ──→ (To network)

패킷이 링크에서 들어오면 네트워크 어댑터가 받아 I/O 버스를 거쳐 메모리의 버퍼에 쌓는다. CPU가 헤더를 보고 내보낼 곳을 정하면, 다시 메모리에서 버스를 거쳐 어댑터로 나간다. 패킷 하나가 버스와 메모리를 두 번 지난다1. 링크가 아무리 빨라도 이 길이 막히면 노드가 따라가지 못한다.

sequenceDiagram
  participant L as 링크
  participant N as 네트워크 어댑터
  participant M as 메모리 버퍼
  participant C as CPU
  L->>N: 패킷 도착
  N->>M: I/O 버스로 옮김 (첫 번째)
  C->>M: 헤더를 읽고 내보낼 곳을 정함
  M->>N: I/O 버스로 옮김 (두 번째)
  N->>L: 패킷을 내보냄

패킷은 I/O 버스를 두 번 건너고, CPU가 헤더를 읽는 동안 메모리에 머문다. 링크 쪽 화살표는 처음과 끝 두 개뿐이다.

정의

노드는 단말(호스트)과 스위치(라우터)를 가리킨다. 범용, 즉 프로그래밍할 수 있는 컴퓨터(예: PC)로 이루어진다고 가정한다. 때때로 특수한 목적의 하드웨어로 대신하기도 한다.

구성 요소 네트워크에서의 뜻
유한한 메모리 버퍼 공간이 제한되어 있다. 넘치면 패킷을 버린다(패킷 스위칭의 혼잡)
네트워크 어댑터(NIC, 랜카드) 노드를 네트워크에 잇는다
프로세서와 메모리 프로세서는 빠르고 메모리는 느리다

단말·터미널·호스트는 같은 말이고, 스위치와 라우터도 비슷하게 쓴다. 요즘은 둘의 경계가 흐려져서 단말이 라우터 역할을 하기도 한다. 선이 실어 나르는 것은 신호이므로, 노드에는 신호를 데이터로 바꾸는 모뎀이 들어 있어야 한다.

활용

  • 통신망(링크 + 노드)의 병목은 오늘날 노드다(서버 병목). 노드가 병목일 때 노드 안에서는 메모리가, 그리고 버스가 병목이다.
  • 거리가 짧고 고속인 통신에서는 노드의 소프트웨어 처리 부하가 소요시간의 중요한 몫이 된다. 소요시간의 처리 지연이다.

연결

확인 문제

C1 노드의 구성 요소를 쓰고, “유한한 메모리”가 네트워크에서 무엇을 뜻하는지 쓰라.

답: CPU, 캐시, 메모리, I/O 버스, 네트워크 어댑터(NIC). 유한한 메모리는 패킷을 쌓아 둘 버퍼 공간이 제한되어 있다는 뜻이다. 한꺼번에 몰리면 버퍼가 넘쳐 패킷을 버린다.

C2 링크가 광케이블로 빨라진 오늘날, 병목이 링크가 아니라 노드, 그중에서도 메모리인 이유를 설명하라.

답: 광케이블로 링크의 속도는 크게 올랐다. 노드는 들어온 패킷마다 메모리에 쓰고, 처리하고, 다시 읽어 내보내야 한다. 프로세서는 빠르지만 메모리는 느리고, 패킷은 버스와 메모리를 여러 번 지난다. 그래서 링크가 실어 오는 속도를 노드의 메모리가 따라가지 못한다1.

  1. Peterson & Davie, Computer Networks: A Systems Approach, 2.1절(노드)의 내용이다. ↩ ↩2