프로토콜
프로토콜은 노드 간에 정보를 올바르게 주고받기 위해 합의된 규칙이나 방법이다.
패킷이 호스트에게 전달되기 위해선 여러 중간노드를 통해서 전달되는데, 패킷을 올바르게 목적지로 보내기 위해선 중간 노드가 패킷에 적힌 주소 정보를 읽고 보내야 한다. 이때 중간 노드가 이해할 수 있는 방식으로 정보가 제공되어야 하기 때문에 프로토콜이 필요하다.
패킷이 수신할 노드 또한 패킷에 적힌 내용을 읽고 파악해야 하는데, 이때에도 호스트가 이해할 수 있는 정보로 구성하기 위해서 프로토콜이 필요하다.
일반적으로 여러 프로토콜을 함께 사용한다.
프로토콜은 여러 종류가 존재하며, 각자의 목적과 특징이 있다. 패킷에는 헤더와 트레일러라는 부가 정보가 포함되는데, 이 정보 또한 프로토콜에 맞게끔 정보가 바뀔 수 있다. 즉, 프로토콜마다 패킷의 헤더, 트레일러 내용이 달라질 수 있다.
네트워크 참조 모델
네트워크를 통해 정보를 주고받을 때는 정형화된 여러 단계를 거친다. 이 과정은 계층으로 표현할 수 있다.
이렇게 통신이 일어난 각 과정을 계층으로 나눈 구조를 네트워크 참조 모델(Network Reference Model)이라고 한다. 계층으로 표현한다는 점에서 네트워크 계층 모델이라 부르기도 한다.
통신 과정을 계층으로 나눈 이유는 크게 두 가지이다.
- 네트워크 구성과 설계가 용이하다. 계층별로 수행할 역할이 정해져 있으므로 계층의 목적에 맞게 프로토콜과 네트워크 장비를 구성할 수 있다. 물론 모든 프로토콜이나 네트워크 장비가 참조 모델과 완벽히 들어맞는 것이 아니지만, 네트워크 구성 및 설계에 있어 훌륭한 가이드라인 역할을 수행한다.
- 네트워크 문제 진단과 해결이 용이하다. 통신 과정에서 문제가 발생했을때 원인을 계층별로 진단하기 수월하다. 1 계층부터 차근차근 확인해 보면서 문제가 있는 계층을 식별하기가 쉽다.
OSI 모델
OSI 모델은 국제 표준화 기구(ISO : International Organization for Standardization)에서 만든 네트워크 참조 모델이다.
OSI는 7개의 계층으로 나뉘며 다음과 같다.
- 물리 계층(Physical Layer) : 1과 0으로 표현되는 비트 신호를 주고받는다. 근원적인 통신이 이루어지며, 통신매체를 통해 다양한 신호로 운반된다. 신호는 매체에 따라 전기, 빛, 전파 등을 사용한다.
- 데이터 링크 계층(Data Link Layer) : 네트워크 내 주변 장치간의 정보를 올바르게 주고받기 위한 계층이다. 물리 계층을 통해 주고받는 정보에 오류가 없는지 확인하고, MAC 주소라는 주소 체계를 통해 네트워크 내 송수신지를 특정할 수 있다. 때로는 전송 과정에서 발생하는 충돌 문제를 해결하는 계층이기도 하다.
- 네트워크 계층(Network Layer) : 메시지를 다른 네트워크에 속한 수신지까지 전달하는 계층이다. 데이터 링크 계층과 달리 네트워크 계층은 네트워크 간의 통신이 이루어진다. 인터넷을 가능하게 하는 계층이라고 할 수 있다. 네트워크 계층에서는 IP 주소라는 주소 체계를 통해 통신하고자 하는 수신지 호스트와 네트워크를 식별하고 원하는 수신지에 도달하기 위한 최적의 경로를 결정한다.
- 전송 계층(Transport Layer) : 신뢰성 있고 안정성 있는 전송을 할 때 필요한 계층이다. 패킷의 흐름을 제어하거나 전송 오류를 점검해 신뢰성 있고 안정적인 전송이 이루어지도록 한다. 이 외에도 포트라는 정보를 통해 실행 중인 응용 프로그램의 식별이 이루어지기도 한다.
- 세션 계층(Session Layer) : 세션을 관리하기 위해 존재하는 계층이다. 세션은 상황에 따라 폭넓게 사용되는 용어지만, 일반적으로 통신을 주고받는 호스트의 응용 프로그램 간 연결 상태를 의미한다. 연결 상태를 생성하거나 유지하고, 종료되었을 때 끊어주는 역할을 한다.
- 표현 계층(Presentation Layer) : 사람이 이해할 수 있는 언어인 문자를 컴퓨터가 이해할 수 있는 코드로 변환하거나 압축, 암호화와 같은 작업이 이루어진다.
- 응용 계층(Application Layer) : 사용자 및 사용자가 이용하는 응용 프로그램과 가장 밀접히 맞닿아있는 계층이다. 사용자가 이용할 응용 프로그램에 다양한 네트워크 서비스를 제공한다. 응용 프로그램에 다양한 서비스가 제공될 수 있는 만큼 타 계층에 비해 응용 계층에 속한 프로토콜이 많다.
TCP/IP 모델
TCP/IP 모델은 이론 보다는 구현에 중점을 둔 네트워크 참조 모델이다. OSI 모델이 이상적 설계에 가깝다면, TCP/IP 모델은 실용적 구현에 가깝다.
TCP/IP 모델은 4 계층, 인터넷 프로토콜 스위트(Internet Protocol Suite), TCP/IP 프로토콜 스택(Protocol Stack)이 로고도 부른다. 여기서 사용된 TCP와 IP라는 용어는 앞으로 학습할 프로토콜의 이름이며, IP는 인터넷 프로토콜(Internet Protocol)의 약자이다.
💡 프로토콜 스위트, 프로토콜 스택이란? 다양한 계층의 프로토콜 집합을 프로토콜 스위트, 프로토콜 스택이라고도 한다. TCP/IP 모델에서도 TCP, IP를 포함해 UDP, ARP, HTTP 등 다양한 프로토콜들이 주로 묶여 함께 사용된다.
TCP/IP 모델은 4개의 계층으로 이루어지며 다음과 같다.
- 네트워크 엑세스 계층(Network Access Layer) : 링크 계층 또는 네트워크 인터페이스 계층이라고도 불리며, OSI 모델의 데이터 링크 계층과 유사하다. 전통적인 TCP/IP 모델에서의 최하위 계층은 OSI 모델의 물리 계층보다는 데이터 링크 계층 역할을 수행하는 쪽에 가깝다. TCP/IP 모델에는 물리 계층에 해당하는 개념이 없다고 보는 견해도 있어서, 앞으로는 TCP/IP 모델에 물리 계층을 추가해서 표현한다.
- 인터넷 계층(Internet Layer) : OSI 모델에서의 네트워크 계층과 유사하다. 자세한 내용은 3장에서 살펴본다.
- 전송 계층(Transport Layer) : OSI 모델의 전송 계층과 유사하다. 자세한 내용은 4장에서 살펴본다.
- 응용 계층(Application Layer) : OSI 모델의 세션 계층, 표현 계층, 응용 계층을 합친것과 유사하다. 자세한 내용은 5장에서 살펴본다.
캡슐화와 역캡슐화
패킷은 송신 과정에서 캡슐화가 이루어지고, 수신 과정에서 역캡슐화가 이루어진다.
캡슐화
어떤 정보를 송신할 때 각 계층에서는 상위 계층에서 내려받은 패킷을 페이로드 삼아, 프로토콜에 걸맞는 헤더(또는 트레일러)를 덧붙인 후 하위 계층으로 전달한다.
송신 과정에서 헤더 및 트레일러를 추가해 나가는 과정을 캡슐화(encapsulation)라고 부른다. 혹은 영문 그대로 인캡슐레이션이라고도 한다.
역캡슐화
역캡슐화는 캡슐화와 반대라고 보면 된다. 어떤 메시지를 수신할 때 캡슐화 과정에서 붙였던 헤더(및 트레일러)를 각 계층에서 확인한 뒤 제거한다. 이를 역캡슐화(decapsulation) 또는 디캡슐레이션이라고 부른다.
PDU
각 계층에서 송수신되는 메시지의 단위를 PDU(Protocol Data Unit)라고 한다.
상위 계층에서 전달받은 데이터에 현재 계층의 프로토콜 헤더(및 트레일러)를 추가하면 현재 계층의 PDU가 된다. OSI 모델의 각 계층에서의 PDU를 보면 다음과 같다.
OSI 계층 PDU
OSI 계층 | PDU |
응용 계층 | 데이터(data) |
표현 계층 | |
세션 계층 | |
전송 계층 | 세그먼트(segment), 데이터 그램(datagram) |
네트워크 계층 | 패킷(packet) |
데이터 링크 계층 | 프레임(frame) |
물리 계층 | 비트(bit) |
응용 계층의 PDU는 메시지(message), 네트워크 계층의 PDU는 IP 데이터 그램(IP datagram), 물리 계층의 PDU는 심볼(symbol)이라 지칭하기도 한다.
PDU는 주로 전송 계층 이하의 메시지를 구분하기 위해 사용한다. 전송계층보다 높은 계층에서는 일반적으로 데이터 혹은 메시지로만 지칭하는 경우가 많다.
전송 계층의 PDU는 TCP 프로토콜의 경우 세그먼트, UDP 프로토콜의 경우 데이터그램이 된다.
패킷이라는 용어는 패킷 교환 네트워크에서 쪼개어져 전송되는 단위를 통칭하는 용어로 사용되기도 하지만, 네트워크 계층에서의 송수신 단위를 지칭하기 위해 사용되기도 한다. 혼동을 방지하기 위해 앞으로 이 글에서 네트워크 계층의 PDU는 IP 패킷이라고 지칭한다.
OSI 7계층, TCP/IP 4 계층은 사실 아무것도 해 주지 않는다
네트워크 참조 모델은 반드시 지켜져야 하는 규칙이며, 모든 프로토콜이나 네트워크 장비는 네트워크 참조 모델에 근거해 반드시 특정 계층에 완벽히 대응될 것이라고 오해할 수 있지만 그렇지 않다.
네트워크 참조 모델은 반드시 지켜야 하는 엄격한 규칙이나 법규가 아닌, 가이드라인과 같다.
네트워크 참조 모델이나 특정 계층은 네트워크를 작동시키는 주체가 아니다. 프로토콜 혹은 네트워크 장비 같은 참조 모델에 속한 대상이 네트워크를 작동시키는 주체이자 ‘무언가를 해 주는’ 대상이다.
트래픽과 네트워크 성능 지표
트래픽이란 네트워크 내의 정보량을 의미한다. 특정 노드에 트래픽이 몰린다는 것은 해당 노드가 특정 시간 동안 처리해야 할 정보가 많음을 의미하며, 해당 노드에 과부하(overhead)가 생길 수 있다.
네트워크의 성능을 평가하기 위해선 3가지 대중적인 지표가 있다. 처리율, 대역폭, 패킷 손실이다.
처리율
처리율(throughput)은 단위 시간당 네트워크를 통해 실제로 전송되는 정보량을 의미한다. 일반적으로 bps(bit per second), Mbps(megabits per second), Gbps(gigabits per second) 단위로 표현한다. 때로는 초당 패킷 수를 표현하기 위해 pps(packet per second) 단위를 사용하기도 한다.
처리율은 비교적 실시간성이 강조된 지표로, 특정 노드가 얼마만큼의 트래픽을 처리하는 중인지 판단하기 위해 사용되는 겨우가 많다.
대역폭
대역폭(bandwidth)이라는 용어는 신호 처리 영역에서의 정의와 네트워크 성능 측정 영역에서의 정의가 다소 다르다. 전자는 주파수의 범위를 의미하지만, 후자는 단위 시간 동안 통신 매체를 통해 송수신할 수 있는 최대 정보량을 의미한다. 대역폭이 높다면 정보를 송수신할 능력이 그만큼 높다고 볼 수 있다.
패킷 손실
패킷 손실(packet loss)은 말그대로 송수신되는 패킷이 손실된 상황을 의미한다. 높은 트래픽으로 인해 노드가 처리해야 할 패킷이 너무 많아지거나, 네트워크 장애로 패킷을 처리하지 못하면 패킷 손실이 발생할 수 있다. 전체 패킷 중 유실된 패킷을 백분위로 표현한 값을 사용하는 경우가 많다.
'도서 정리 > 혼자 공부하는 네트워크' 카테고리의 다른 글
[혼자 공부하는 네트워크] Chapter 2 - 3 허브 (0) | 2024.07.14 |
---|---|
[혼자 공부하는 네트워크] Chapter 2 - 2 NIC와 케이블 (0) | 2024.07.12 |
[혼자 공부하는 네트워크] Chapter 2 - 1 이더넷 (0) | 2024.07.11 |
[혼자 공부하는 네트워크] Chapter 1 - 2 네트워크 거시적으로 살펴보기 (0) | 2024.07.11 |
[혼자 공부하는 네트워크] Chapter 1 - 1 컴퓨터 네트워크를 알아야 하는 이유 (0) | 2024.07.11 |