임대일

혼자 공부하는 네트워크: Chapter 01: 컴퓨터 네트워크 시작하기 본문

네트워크

혼자 공부하는 네트워크: Chapter 01: 컴퓨터 네트워크 시작하기

limdae94 2024. 9. 25. 18:03
 

혼자 공부하는 네트워크 | 강민철 - 교보문고

혼자 공부하는 네트워크 | 혼자 해도 충분하다! 1:1 과외하듯 배우는 네트워크 자습서『혼자 공부하는 네트워크』는 개발자의 필수 지식인 네트워크를 기본부터 제대로 학습할 수 있도록 돕는

product.kyobobook.co.kr

 

01-2 네트워크 거시적으로 살펴보기

 

네트워크란 여러 장치가 서로 연결되어 정보를 주고 받을 수 있는 통신망이다. 네트워크는 그래프(Graph) 형태로 노드(Node)와 노드를 연결하는 간선(Edge)으로 이루어진 자료 구조(Data Structure)이다. 여기서 자료 구조는 정보를 표현하고 다루는 방법을 의미한다. 노드를 정점(Vertex), 간선은 링크(Link)라고도 부른다.

 

호스트(Host)는 가장자리 노드를 의미한다. 네트워크의 가장자리에 자리 잡고 있다는 점에서 종단 시스템(End System)이라고도 한다. 흔히 호스트는 네트워크상에서 특정한 역할을 수행하기도 하는데, 대표적인 역할로 서버(Server)클라이언트(Client)가 있다.

 

서버(Server)는 "어떠한 서비스"를 제공하는 호스트이다. 여기서 "어떠한 서비스"는 파일 서버, 웹 서버, 메일 서버 등을 제공하는 서비스가 될 수 있다. 반면 클라이언트(Client)는 서버에게 "어떠한 서비스"를 요청(Request)하고 서버의 응답(Response)을 제공받는 호스트이다.

 

예를 들어서 노트북에서 웹 브라우저를 열고 구글 웹 페이지에 접속을 시도했다고 가정하자. 구글 서버는 해당 요청을 받고, 그 요청에 맞는 웹 페이지를 웹 브라우저에 전달한다. 여기서 노트북은 클라이언트로서 구글 서버에 웹 페이지를 요청하고, 그에 대한 응답을 제공하는 것이다. 따라서 서버와 클라이언트는 각각 요청과 응답을 주고받는 호스트이다.

 

네트워크 노드는 호스트만 있는 것이 아니다. 네트워크 가장자리에 위치하지 않은 노드, 즉 호스트 간 주고받을 정보가 중간에 거치는 노드가 있다. 이를 중간 노드라고 한다. 중간 노드는 이더넷 허브, 스위치, 라우터, 공유기 등이 있다. 이러한 중간 노드들을 네트워크 장비라고 통칭한다. 네트워크 장비는 호스트 간 주고받는 정보가 원하는 수신지까지 안전하게 전송될 수 있도록 한다.

 

호스트, 네트워크 장비, 서버, 클라이언트는 역할과 책임이 완벽하게 분리된 개념이 아니다. 그저 노드의 역할에 따라 구분한 기준에 불과하다는 것이다. 오늘날 네트워크에서는 이와 같은 개념들이 칼로 자르듯이 명확하게 구분되지 않는다. 호스트 또는 네트워크 장비로서의 역할만을 수행할 수 있느 노드가 있는 반면, 그 모든 역할을 수행하는 노드도 존재한다. 일반적으로 호스트로 간주되는 개인 컴퓨터도 네트워크 장비 역할을 수행할 수 있다.

 

서버와 클라이언트 개념도 마찬가지이다. 단적인 예시로 개인 컴퓨터는 웹 브라우저를 통해 클라이언트로서 네트워크에 참여할 수 있지만, 동시에 간단한 프로그램 설치 및 설정을 통해 얼마든지 웹 서버로 사용할 수도 있다. 따라서 다음과 같이 생각하지 않기를 바란다.

  • 호스트와 네트워크 장비는 엄밀하게 다르다.
  • 서버와 클라이언트는 엄밀하게 다르다.

따라서 어디까지나 일반적인 관점으로 다음과 같이 기억해야 한다.

  • 호스트 역할을 수행할 수 있는 노드, 네트워크 장비 역할을 수행할 수 있는 노드가 있다.
  • 서버 역할을 수행할 수 있는 노드, 클라이언트 역할을 수행할 수 있는 노드가 있다.

 

 

통신 매체

그래프는 노드와 간선으로 이루어지기에, 호스트와 네트워크 장비 또한 유무선 매체를 통해 연결되어 있어야 한다. 각 노드를 연결하는 간선이 바로 통신 매체이다. 통신 매체는 노드들을 유선으로 연결하는 유선 매체, 무선으로 연결하는 무선 매체로 나뉜다.

 

 

메시지

통신 매체로 연결된 노드가 주고받는 정보를 메시지(Message)라고 한다. 메시지는 웹 페이지, 파일, 메일 등이 될 수 있다. 네트워크는 가장자리 노드인 호스트, 중간 노드인 네트워크 장비, 노드들을 연결하는 간선인 통신 매체, 노드들이 주고받는 정보인 메시지로 구성된다.

 

 

범위에 따른 네트워크 분류

호스트가 메시지를 주고받는 범위는 일반 가정 혹은 기업이 될 수도 있으며, 때로는 도시나 국가가 될 수도 있다. 즉, 네트워크 구성 범위는 다양하다. 네트워크 구성 범위가 다양한 만큼, 네트워크를 범위에 따라 분류하는 기준도 존재한다. 네트워크는 범위에 따라 LAN(Local Area Network)WAN(Wide Area Network)으로 구분한다.

 

 

LAN

LAN은 가까운 지역을 연결한 근거리 통신망을 의미한다. 예를 들어 가정, 기업, 학교처럼 비교적 근거리를 연결하는 한정된 공간에서의 네트워크를 의미한다.

 

 

WAN

WAN은 먼 지역을 연결하는 광역 통신망을 의미한다. 멀리 떨어진 여러 LAN을 연결할 수 있는 네트워크가 WAN이다. 인터넷은 "네트워크의 네트워크"라는 이유는 바로 인터넷이 WAN으로 분류되기 때문이다. 같은 LAN에 속한 호스트끼리 메시지를 주고받아야 할 때는 인터넷 연결과 같은 WAN이 필요 없지만, 다른 LAN에 속한 호스트와 메시지를 주고받아야 할 때는 WAN이 필요하다.

 

사용자가 인터넷을 사용하기 위해 접속하는 WAN은 ISP(Internet Service Provider)라는 인터넷 서비스 업체가 구축하고 관리한다. ISP는 사용자에게 인터넷과 같은 WAN에 연결 가능한 회선을 임대하는 등 WAN과 관련한 다양한 서비스를 제공한다. 인터넷을 사용하기 위해 ISP와 계약하여 인터넷 사용 요금을 내는 이유에 해당된다. 국내의 대표적인 ISP는 KT, LG U+, SKT가 있다. 참고로, 인터넷이 WAN의 전부가 아니다. 멀리 떨어진 LAN을 연결하기 위해 특정 조직에서 불특정 다수에게 공개되지 않은 WAN을 얼마든지 구축할 수도 있다.

 

 

CAN와 MAN

지금까지 네트워크 범위에 따라 LAN과 WAN 두 종류로 설명했지만, 더 세밀하게 나누는 경우가 있다. LAN보다는 넓고 WAN보다는 좁은 범위의 대표적인 네트워크로 CAN(Campus Area Network)MAN(Metropolitan Area Network)이 있다. CAN은 학교 또는 회사의 여러 건물 단위로 연결되는 규모의 네트워크를 의미하고, MAN은 도시나 대도시 단위로 연결되는 규모의 네트워크를 의미한다. 네트워크의 범위를 기준으로 분류하면 WAN, MAN, CAN, LAN 순으로 작아진다고 볼 수 있다.

 

 

메시지 교환 방식에 따른 네트워크 분류

네트워크로 메시지를 주고받는 방식은 대표적으로 회선 교환 방식(Circuit Switching)패킷 교환 방식(Packet

Switching)으로 나눌 수 있다. 각 방식을 사용하는 네트워크를 각각 회선 교환 네트워크, 패킷 교환 네트워크라고 한다.

 

 

회선 교환 방식

회선 교환 방식은 먼저 메시지 전송로인 회선(Circuit)을 설정하고 이를 통해 메시지를 주고받는 방식이다. "회선을 설정한다"라는 말은 "두 호스트가 연결되었다", "전송로를 확보하였다"라는 말이다. 회선 교환 네트워크에서는 호스트들이 메시지를 주고받기 전에 두 호스트를 연결한 후, 연결된 경로로 메시지를 주고받는다.

 

회선 교환 방식은 우선 두 호스트 사이에 연결을 확보한 후에 메시지를 주고받는 특성 덕분에 주어진 시간 동안 전송되는 정보의 양이 비교적 일정하다는 장점이 있다. 회선 교환 네트워크가 올바르게 동작하기 위해서는 호스트 간의 회선을 적절하게 설정해야 한다. 이 역할을 수행하는 회선 교환 네트워크 장비로는 회선 스위치(Circuit Switch)가 있다. 회선 스위치는 호스트 사이에 일대일 전송로를 확보하는 네트워크 장비이다.

 

회선 교환 방식의 대표적인 사례가 바로 전통적인 전화망이다. 누군가에게 전화를 걸면 수신자가 전화를 받기 전에 송신자와 수신자 사이에 연결이 되어야 하고, 한 번 연결이 설정되면 연결된 전송로를 통해서만 통화가 가능하다.

 

다만 회선 교환 방식에는 한 가지 문제가 있다. 회선의 이용 효율이 낮아질 수 있다는 것이다. 가능한 모든 회선에 끊임없이 메시지가 흐르고 있어야만 이용 효율이 높아진다. 이를 반대로 이야기하면 메시지를 주고받지 않으면서 회선을 점유하는 것은 낭비라고 볼 수 있다.

 

 

패킷 교환 방식

패킷 교환 방식은 회선 교환 방식의 문제점을 해결한 방식으로, 메시지를 패킷(Packet)이라는 작은 단위로 쪼개어 전송한다. 여기서 패킷은 패킷 교환 네트워크상에서 송수신되는 메시지의 단위이다. 현대 인터넷은 패킷 교환 방식을 이용한다. 따라서 회선 교환 네트워크보다도 패킷 교환 네트워크에 중점을 두고 설명한다.

 

예를 들어 사용자가 패킷 교환 방식으로 2GB 크기의 영화 파일을 다운로드하면, 2GB 크기의 영화 파일은 패킷의 크기만큼 분할되어 전송된다. 그리고 이렇게 쪼개진 패킷들은 수신자인 개인 컴퓨터에 도달한 뒤 재조립된다. 패킷 교환 네트워크는 회선 교환 네트워크와는 다르게 메시지를 송수신하는 두 호스트가 하나의 전송 경로를 점유하지 않기 때문에 네트워크 이용 효율이 상대적으로 높다.

 

패킷 교환 방식은 사전에 설정된 경로만으로 통신하는 회선 교환 방식과 달리, 패킷 교환 방식은 정해진 경로만으로 메시지를 송수신하지 않는다. 이 과정에서 메시지는 다양한 중간 노드를 거칠 수 있는데, 이때 중간 노드인 패킷 스위치(Packet Switch)는 패킷이 수신지까지 올바르게 도달할 수 있도록 최적의 경로를 결정하거나 패킷의 송수신 식별지를 식별한다. 대표적인 패킷 스위치 네트워크 장비로는 라우터(Router)스위치(Switch)가 있다.

 

패킷 교환 방식에서 주고받는 패킷은 소포, 꾸러미라는 의미이다. 택배와 비슷한 개념이다. 택배를 보내려면 먼저 상자 안에 보내고자 하는 물품을 담아야 한다. 그리고 상자 겉에 붙이는 송장에는 보내는 사람의 주소와 받는 사람의 주소 등 부가 정보가 있다. 이러한 과정이 선행되어야 올바르게 배송할 수 있다.

 

네트워크의 패킷도 마찬가지이다. 패킷을 통해 전송하고자 하는 데이터를 페이로드(PayLoad)라고 한다. 택배 상자에 넣을 물품이라고 생각해도 좋다. 또한 택배를 보낼 때 상자에 물품만 담아 보내지 않는 것처럼, 패킷 또한 페이로드로만 구성되지 않는다. 페이로드와 더불어 헤더(Header)도 패킷 앞에 포함된다. 때로는 패킷 뒤에 트레일러(Trailer)가 포함되기도 한다.

 

헤더와 트레일러는 패킷에 붙는 일종의 부가정보, 내지는 제어 정보이다. 즉, 페이로드가 택배 안에 담을 물품이라면, 헤더나 트레일러는 택배 상자에 붙이는 송장과 같다. 정리하자면, 패킷 교환 네트워크에서 주고받는 메시지의 단위는 패킷이며, 패킷은 전송하고자 하는 데이터인 페이로드와 부가 정보인 헤더 및 트레일러로 구성된다.

 

주소와 송수신지 유형에 따른 전송 방식

패킷의 헤더에 담기는 대표적인 정보로는 주소가 있다. 주소(Address)는 송수신지를 특정하는 정보를 의미한다. 택배 송장에 송수신지를 명시하는 것처럼, 네트워크에 흐르는 수많은 패킷에는 모두 송수신지가 담겨있다.

 

송수신지를 특정할 수 있는 주소가 있다면 송수신지 유형에 따라 다양한 방식으로 메시지를 보낼 수 있다. 가령 수신지를 특정 호스트 하나로 지정할 수도 있고, 네트워크 내 모든 호스트로 지정할 수도 있다. 또 수신지를 자신과 동일한 그룹에 속한 호스트로 지정할 수도 있다. 송수신지 유형별 전송 방식은 다양한 종류가 있지만, 네트워크의 기본 동작을 파악하기 위해 알아야 할 가장 중요한 전송 방식은 유니캐스트(Unicast)브로드캐스트(Broadcast)이다.

 

유니캐스트는 가장 일반적인 형태의 송수신 방식으로, 하나의 수신지에 메시지를 전송하는 방식이다. 송신지와 수신지가 일대일로 메시지를 주고받는 경우이다. 정리하자면 주소는 송수신지를 특정할 수 있는 정보로, 이를 토대로 유니캐스트, 브로드캐스트 방식 등의 전송이 가능하다.

 

브로드캐스트는 자신을 제외한 네트워크상의 모든 호스트에게 전송하는 방식이다. 브로드캐스트가 전송되는 범위를 브로드캐스트 도메인(Broadcast Domain)이라고 한다. 브로드캐스트의 수신지는 브로드캐스트 도메인이며 이는 자신을 제외한 네트워크상의 모든 호스트이다.

 

이 외에도 네티워크 내의 동일한 그룹에 속한 호스트에게만 전송하는 방식인 멀티캐스트(Multicast), 네트워크 내의 동일한 그룹에 속한 호스트 중 가장 가까운 호스트에게 전송하는 방식인 애니캐스트(Anycast) 등 다양한 방식이 있다.

 

01-3 네트워크 미시적으로 살펴보기

이번에 학습할 개념은 크게 세가지이다. 프로토콜은 통신 과정에서 정보를 올바르게 주고받기 위해 합의된 규칙이나 방법을 의미한다. 통신이 일어나는 구조를 계층화한 네트워크 참조 모델, 통신 과정에서 이루어지는 캡슐화(역캡슐화)가 있다. 앞으로 택배를 송수신하는 과정을 빗대어 프로토콜, 네트워크 참조 모델, 캡슐화(역캡슐화) 등을 학습할 것이다.

 

프로토콜

프로토콜(Protocol)은 노드 간에 정보를 올바르게 주고받기 위해 합의된 규칙이나 방법을 의미한다. 따라서 서로 다른 통신 장치들이 정보를 주고받으려면 프로토콜이 통해야 한다. 우리가 인터넷을 이용할 수 있는 것도, 이메일을 주고받을 수 있는 것도, 파일을 주고받을 수 있는 것도 모두 상대 호스트와 동일한 프로토콜을 사용하기 때문이다. 일반적으로는 여러 프로토콜을 함께 사용한다.

 

IP(Internet Protocol)는 패킷을 수신지까지 전달하기 위해 사용되는 프로토콜이다. IP라는 규칙으로 정보를 주고받음으로써 패킷을 수신지까지 올바르게 전달할 수 있음을 의미한다.

 

ARP(Address Resolution Protocol)는 192.168.1.1과 같은 형태의 "IP 주소"를 A1:B2:C3:D4:E5:F6와 같은 형태의 "MAC 주소"로 대응하기 위해 사용되는 프로토콜이다. IP주소를 MAC(Media Access Control) 주소로 대응하기 위해서는 ARP라는 규칙으로 정보를 주고받아야 함을 의미한다.

 

HTTPS(Hyper Text Transfer Protocol Secure)는 HTTP에 비해 보안상 더 안전한 프로토콜이다. HTTPS와 HTTP는 모두 프로토콜이다. HTTP라는 규칙을 정보로 주고받는 것보다 HTTPS라는 규칙으로 정보를 주고받는 것이 보안상 더 안전함을 의미한다.

 

TCP(Transmission Control Protocol)UDP(User Datagram Protocol)에 비해 일반적으로 느리지만 신뢰성이 높은 프로토콜이다. TCP와 UDP는 모두 프로토콜이다. TCP라는 규칙으로 정보를 주고받는 것은 UDP라는 규칙으로 정보로 주고받는 것에 비해 데이터를 더 확실하게 전송할 수 있다고 짐작할 수 있다.

 

소개된 다양한 프로토콜에서 알 수 있는 중요한 점은 모든 프로토콜에는 저마다의 목적과 특징이 있다. 프로토콜의 임무는 정해져 있기에 저마다 목적과 특징이 다양하다. 패킷에는 페이로드 뿐 아니라 헤더라는 부가 정보에 프로토콜이 포함된다. 프로토콜마다 목적과 특징이 다르기에 이에 부합하는 정보도 달라질 수 있으며, 따라서 특정 프로토콜로 주고받는 패킷의 부가정보도 달라질 수 있다. 따라서 프로토콜마다 패킷의 헤더 내용이 달라질 수 있다. 참고로 헤더가 없는 프로토콜도 있다.

 

앞으로 학습할 TCP와 UDP 프로토콜의 헤더이다. TCP와 UDP라는 규칙으로 패킷을 주고받을 때는 그림과 같은 정보가 페이로드에 추가된다. TCP는 UDP에 비해 더 확실히 데이터를 전송할 수 있다고 했다. 그렇기에 TCP는 신뢰성 높은 전송을 수행하기 위한 정보로 구성되어 있고, 헤더에도 더 많은 정보가 포함되어 있다.

TCP 헤더

 

UDP 헤더

 

네트워크 참조 모델

네트워크 참조 모델(Network Reference Model)은 통신이 일어나는 각 과정을 계층으로 나눈 구조이다. 계층으로 표현한다는 점에서 네트워크 계층 모델이라 부르기도 한다. 통신 과정을 계층으로 나눈 이유는 크게 두 가지이다.

1. 네트워크 구성과 설계가 용이하다.
모든 프로토콜이나 네트워크 장비가 참조 모델과 완벽히 들어맞는 것은 아니다. 때로는 칼로 자르듯이 명확하게 구분되지 않을 수도 있다. 특히 네트워크 장비는 상위 계층의 장비가 하위 계층의 장비 역할을 포괄해서 수행하는 경우도 많다. 그래도 네트워크 참조 모델은 네트워크 구성 및 설계에 있어 훌륭한 가이드라인 역하을 수행한다.

각 계층이 수행해야 할 역할이 정해져 있으므로 계층의 목적에 맞게 프로토콜과 네트워크 장비를 계층별로 구성할 수 있다. 예를 들어 2계층에서는 2계층의 목적에 부합하는 프로토콜과 네트워크 장비를, 3계층에서는 3계층의 목적에 부합하는 프로토콜과 프로토콜 장비를 사용할 수 있다.


2. 네트워크 문제 진단과 해결이 용이하다.
통신 과정에서 문제가 발생하더라도 문제의 원인을 계층별로 진단하기 수월하다. 가령 잘되던 인터넷이 갑자기 안 되면 가장 먼저 초하위에 있는 1계층에서 발생한 문제인지 판단하기 위해 케이블 등 유무선 매체의 접속 상태를 확인해 볼 수 있다. 이상이 없다면 다음 2계층에서 발생한 문제인지 판단하기 위해 정보가 수신지까지 제대로 전달되었는지 진단한다. 여기서도 이상이 없다면 3계층에서 이상이 없는지 순서대로 진단해 보면 된다. 이처럼 네트워크를 계층별로 진단하면 문제 발생 지점을 추측할 수 있어, 문제 진단과 해결이 수월하다는 장점이 있다.

 

 

OSI 모델

OSI 모델은 국제 표준화 기구(ISO:nternational Organization for Standardization)에서 만든 네트워크 참조 모델이다. 통신 단계를 7개의 계층으로 나누는데, 최하위 계층에서 최상위 계층순으로 각각 물리 계층, 데이터 링크 계층, 네트워크 계층, 전송 계층, 세션 계층, 표현 계층, 응용 계층이다. 각 계층이 수행하는 역할에 대해 학습한다.

OSI 7계층

 

물리 계층

물리 계층(Pysical Layer)은 OSI 모델의 최하단에 있는 계층으로, 컴퓨터가 이해할 수 있는 1(On)과 0(Off)으로 표현되는 비트(Bit) 신호를 주고받는 계층이다. 우리가 네트워크를 통해 전달받는 이메일, 사진, 동영상도 사실은 1과 0으로 이루어져 있다. 이렇게 1과 0으로 표현된 비트 데이터는 다양한 통신 매체를 통해 다양한 신호로 운반될 수 있다. 가령 같은 비트 데이터라도 통신 매체에 따라 전기, 빛, 전파 등의 신호로 운반될 수 있다.

 

통신 매체에 맞는 신호로 운반되도록 비트 데이터의 변환이 이루어지고 통신 매체를 통한 송수신이 이루어지는 계층이 바로 물리 계층이다. 그렇기에 물리 계층을 학습할 때는 주로 네트워크 장비, 통신 매체에 관한 이야기를 많이 한다.

 

 

데이터 링크 계층

데이터 링크 계층(Data Link Layer)은 네트워크 내 주변 장치 간의 정보를 올바르게 주고받기 위한 계층이다. 이더넷을 비롯한 LAN 기술이 데이터 링크 계층에 녹아 있다. 물리 계층에서 주고받는 정보에 오류가 없는지 확인하고, MAC 주소라는 주소 체계를 통해 네트워크 내 송수신지를 특정할 수 있다. 때로는 전송 과정에서 발생할 수 있는 충돌 문제를 해결하는 계층이기도 하다. 데이터 링크 계층은 물리 계층과 서로 밀접하게 연관된 계층이다.

 

 

네트워크 계층

네트워크 계층(Network Layer)은 메시지를 (다른 네트워크에 속한) 수신지까지 전달하는 계층이다. 데이터 링크 계층에서 네트워크 내의 주변 장치 간의 통신이 이루어진다면, 네트워크 계층에서는 네트워크 간의 통신이 이루어진다. 예컨데 네트워크 계층은 인터넷을 가능하게 하는 계층이라고 할 수 있다. 네트워크 계층에서는 IP 주소 체계를 통해 통신하고자 하는 수신지 호스트와 네트워크를 식별하고, 원하는 수신지에 도달하기 위한 최적의 경로를 결정한다.

 

 

전송 계층

전송 계층(Transport Layer)은 신뢰성 있고 안정성 있는 전송을 해야할 때 필요한 계층이다. 패킷이 정상적으로 보내졌는지, 중간에 유실된 정보는 없는지, 여러 개의 패킷을 보낼 때 순서가 뒤바뀐 것은 없는지 등을 확인해야 할 때가 있다. 이때 전송 계층에서는 패킷의 흐름을 제어하거나 전송 오류를 점검해 신뢰성 있고 안정적인 전송이 이루어지도록 한다. 이 외에도 포트(Port)라는 정보를 통해 실행 중인 응용 프로그램의 식별이 이루어지기도 한다.

 

응용 프로그램(Application Software)은 사용자가 특정 목적을 위해 사용하는 일반적인 프로그램을 의미한다. 일상적으로 사용하는 워드 프로세서, 인터넷 브라우저, 메모장, 게임 등과 같은 프로그램 대부분이 응용 프로그램이다.

 

 

세션 계층

세션 계층(Session Layer)은 이름 그대로 "세션"을 관리하기 위해 존재하는 계층이다. 세션(Session)이라는 용어는 다양한 상황에서 폭 넓게 사용되지만, 일반적으로 통신을 주고받는 호스트의 응용 프로그램 간 연결 상태를 의미한다. 세션 계층에서는 이러한 연결 상태를 생성하거나 유지하고, 종료되었을 때는 끊어 주는 역할을 담당한다.

 

 

표현 계층

표현 계층(Presentation Layer)은 마치 번역가와 같은 역할을 하는 계층이다. 사람이 이해할 수 있는 언어인 문자를 컴퓨터가 이해할 수 있는 코드로 변환하거나, 압축, 암호화와 같은 작업이 표현 계층에서 이루어진다.

 

 

응용 계층

응용 계층(Application Layer)은 OSI 참조 모델 최상단에 있는 계층으로 사용자 및 사용자가 이용하는 응용 프로그램과 가장 밀접하게 맞닿아 있는 계층이다. 응용 계층은 사용자가 이용할 응용 프로그램에 다양한 네트워크 서비스를 제공한다. 예를 들어서 웹 브라우저 프로그램에 웹 페이지를 제공하거나 이메일 클라이언트 프로그램에 송수신된 이메일을 제공하는 등 실질적인 네트워크 서비스가 제공되는 계층이 바로 응용 계층이다. 응용 프로그램에 다양한 서비스가 제공될 수 있는 만큼 타 계층에 비해 응용 계층에 속한 프로토콜이 많다.

 

 

TCP/IP 모델

OSI 모델은 주로 네트워크를 이론적으로 기술하고 이해할 때 사용하는 반면에 TCP/IP 모델은 이론보다는 구현에 중점을 둔 네트워크 참조 모델이다. OSI 모델의 목적이 "이상적 설계"에 가깝다면, TCP/IP 모델은 "실용적 구현"에 가깝다.

 

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를 중심으로 한 이러한 프로토콜의 집합을 통칭하기 위해 인터넷 프로토콜 스위트, TCP/IP 프로토콜 스택이라는 이름이 붙게 된 것이다. 네트워크 참조 모델에 TCP/IP라는 프로토콜 이름이 붙은 이유는 단순하다. 이 두 프로토콜이 오늘날 네트워크 구현의 핵심으로 간주되기 때문이다.

 

TCP/IP 모델은 최하위 계층에서 최상위 계층순으로 각각 네트워크 액세스 계층, 인터넷 계층, 전송 계층, 응용 계층으로 이루어진다. 각 계층을 살펴보자.

TCP/IP 모델과 OSI 모델 비교

네트워크 액세스 계층

네트워크 액세스 계층(Network Access Layer)링크 계층(Link Layer) 혹은 네트워크 인터페이스 계층(Network Interface Layer)라고도 부른다. 이 계층은 OSI 모델의 데이터 링크 계층과 유사하다.

 

전통적인 TCP/IP 모델에서의 최하위 계층인 네트워크 액세스 계층은 OSI 모델에서의 물리 계층보다는 데이터 링크 계층 역할을 수행하는 쪽에 가까웠다. TCP/IP 모델에는 OSI 모델에서의 물리 계층에 해당하는 개념이 없다고 보는 견해도 있다. 그래서 많은 공식 문서와 전공 서적에는 OSI 모델과 TCP/IP 모델을 대응하여 설명하기 위해 TCP/IP 모델에 물리 계층을 추가해 TCP/IP 모델을 5계층으로 확장하여 기술하기도 한다.

 

인터넷 계층

인터넷 계층(Internet Layer)은 OSI 모델에서의 네트워크 계층과 유사하다.

 

전송 계층

전송 계층(Transport Layer)은 OSI 모델에서의 전송 계층과 유사하다.

 

응용 계층

응용 계층(Application Layer)은 OSI 모델에서의 세션 계층, 표현 계층, 응용 계층을 합친 것과 유사하다.

 

 

캡슐화와 역캡슐화

패킷은 송신 과정에서 캡슐화가 이루어지고, 수신 과정에서 역캡슐화가 이루어진다. 캡슐화와 역캡슐화의 개념을 이해하려면 네트워크로 메시지를 주고받는 과정을 잘 이해해야 한다. 송수신하는 메시지는 송신지 입장에서는 가장 높은 계층에서부터 가장 낮은 계층으로 이동하고, 수신지 입장에서는 가장 낮은 계층에서부터 가장 높은 계층으로 이동한다.

각 계층마다 추가되는 헤더 정보들

 

캡슐화

패킷 교환 네트워크에서 메시지는 패킷 단위로 송수신된다.

  • 패킷은 헤더와 페이로드, 때로는 트레일러를 포함하여 구성된다.
  • 프로토콜의 목적과 특징에 따라 헤더의 내용은 달라질 수 있다.

어떤 정보를 송신할 때 각 계층에서는 상위 계층으로부터 내려받은 패킷을 페이로드에 담아, 프로토콜에 걸맞는 헤더(혹은 트레일러)를 덧붙인 후 하위 계층으로 전달한다.

즉, 한단계 아래 계층은 바로 위 계층으로부터 받은 패킷에 헤더 및 트레일러를 추가해 나간다. 이렇게 송신 과정에서 헤더 및 트레일러를 추가해 나가는 과정을 캡슐화(Encapsulation)라고 부른다. 혹은 영문 그대로 인캡슐레이션이라고도 부른다.

 

 

역캡슐화

역캡슐화(Decapsulation)는 어떤 메시지를 수신할 때 캡슐화 과정에서 붙였던 헤더(및 트레일러)를 각 계층에서 확인한 뒤 제거하는 과정을 의미한다. 영문 그대로 디캡슐레이션이라고도 부른다.

 

PDU

각 계층에서 송수신되는 메시지의 단위를 PDU(Protocol Data Unit)라고 한다. 즉, 상위 계층에서 전달받은 데이터에 현재 계층의 프로토콜 헤더(및 트레일러)를 추가하면 현재 계층의 PDU가 된다. OSI 모델의 각 계층에서의 PDU를 정리해 보면 다음과 같다.

각 계층마다 PDU

응용 계층의 PDU는 데이터 대신 메시지(Message), 네트워크 계층의 PDU는 패킷 대신 IP 데이터그램(IP Datagram), 물리 계층의 PDU는 비트 대신 심볼(Symbol)이라 지칭하기도 한다.

 

PDU는 주로 전송 계층 이하의 메시지를 구분하기 위해 사용한다. 전송 계층보다 높은 계층에서는 일반적으로 데이터 혹은 메시지로만 지칭하는 경우가 많다. 전송 계층의 PDU는 TCP 프로토콜이 사용되었을 경우 세그먼트(Segment), UDP 프로토콜이 사용되었을 경우 데이터그램(Datagram)이 된다.

 

참고로 "패킷"이라는 용어는 패킷 교환 네트워크에서 쪼개어져 전송되는 단위를 통칭하기 위한 일반적인 용어로 사용되기도 했지만, 네트워크 계층에서의 송수신 단위를 지칭하기 위해 사용되기도 한다. 네트워크 계층의 PDU인 "패킷"은 후자이고, 패킷 교환 네트워크에서 사용된 "패킷"은 전자인 셈이다. 혼동 방지를 위해 네트워크 계층의 PDU는 IP 패킷이라고 지칭한다.

 

 

OSI 7계층, TCP/IP 4계층은 사실 아무것도 해 주지 않는다.

네트워크 참조 모델을 처음 학습하면 네트워크 모델을 반드시 지켜져야 하는 규칙이며, 모든 프로토콜이나 네트워크 장비는 네트워크 참조 모델에 근거해 반드시 특정 계층에 완벽히 대응될 것이라고 오해할 수 있지만, 그렇지 않다.

 

네트워크 참조 모델은 모든 프로토콜과 네트워크 장비가 반드시 지켜야 하는 엄격한 규칙이나 법규가 아니다. 앞서도 말한 것처럼 가이드라인이다. 네트워크 참조 모델은 분명 중요한 개념이지만, 네트워크 "참조" 모델이라는 이름처럼 네트워크 구조에 대한 개념을 참조하기 위해 사용하는 것이 바람직하다.

 

지금도 새로운 프로토콜과 네트워크 장비는 만들어지고 있고, 모든 프로토콜이 모든 모델의 특정 계층에 완벽히 대응되지는 않는다. 그래서 특정 계층으로 명확히 분류되는 프로토콜이나 네트워크 장비도 물론 다수 있지만, 특정 계층으로 분류하기 어렵거나 여러 계층을 포괄하는 프로토콜이나 네트워크 장비도 얼마든지 있을 수 있다.

 

OSI 모델과 TCP/IP 모델 간의 비교도 마찬가지이다. 앞서 TCP/IP 모델 소개에서 "유사하다"라는 다소 애매한 표현을 사용한 이유이다. OSI 모델의 목적은 이론적 설계를 위한 참조에 가깝고, TCP/IP 모델의 목적은 실용적 구현을 위한 참조에 가깝다. 즉, 두 모델은 별개의 목적을 가진 별개의 모델이다. 그래서 사실 두 모델 계층 간의 직접적인 비교는 기술적으로 엄밀하지 않는다. OSI 모델과 TCP/IP 모델은 분명 네트워크를 이해하는 데 매우 유용하고 중요한 개념이지만, 모든 네트워크 프로토콜과 장비들이 이 모델 계층에 예외 없이 부합하리라 속단하는 것은 오해이다.

 

 

트래픽과 네트워크 성능 지표

트래픽(Traffic)이란 네트워크 내의 정보량을 의미한다. 통신 매체를 도로, 통신 매체에 흐르는 정보를 자동차라고 생각해보자. 자동차 수가 트래픽 양인 셈이다. 이에 대한 용례로 "라우터에 트래픽이 몰린다", "서버(호스트)의 트래픽을 분산한다"라는 표현이 있다. 특정 노드에 트래픽이 몰린다는 것은 해당 노드가 특정 시간 동안 처리해야 할 정보가 많음을 의미한다. 이 경우 해당 노드에 과부하(Overhead)가 생길 수 있다. 컴퓨터에서 여러 프로그램을 동시에 실행하면 CPU가 뜨거워지며 성능이 저하되는 것처럼, 트래픽이 몰려 특정 노드에 과부하가 생기면 성능의 저하로 이어질 수 있다. 네트워크 성능을 평가할 수 있는 세가지 대중적인 지표가 있다. 처리율, 대역폭, 패킷 손실이다.

 

 

처리율

처리율(Throughput)은 단위 시간당 네트워크를 통해 실제로 전송되는 정보량을 의미한다. 일반적으로 bps(bit/s: Bit per Second), Mbps(Mbit/s: Megabits per Second), Gbps(Gbit/s: Gigabits per Second) 단위로 표현한다. 때로는 초당 패킷 수를 표현하기 위 pps(p/s: Packet per Second) 단위를 사용하기도 한다.

 

처리율은 비교적 실시간성이 강조된 지표로, 특정 노드가 얼마만큼의 트래픽을 처리하는 중인지 판단하기 위해 사용되는 경우가 많다. 그래서 처리율은 매 순간 변하는 모습으로 표현되거나, 처리율의 평균값이 주로 활용된다.

 

 

대역폭

대역폭(Bandwidth)이라는 용어는 신호 처리영역에서의 정의와 네트워크 성능 측정 영역에서의 정의가 다소 다르다. 전자는 주파수의 범위를 의미하지만, 후자는 단위 시간 동안 통신 매체를 통해 송수신할 수 있는 최대 정보량을 의미한다. 처리율과 같이 bps, Mbps, Gbps를 단위로 사용한다. 예를 들어 통신 매체가 높은 대역폭을 갖고 있다면 이는 많은 정보를 송수신할 능력이 있음을 의미한다. 마치 도로의 너비가 넓어 오갈 수 있는 자동차가 많은 상황과 같다.

 

 

패킷 손실

패킷 손실(Packet Loss)은 말 그대로 송수신되는 패킷이 손실된 상황을 의미한다. 높은 트래픽으로 인해 노드가 순간적으로 처리해야 할 패킷이 너무 많아지거나 네트워크상에 예기치 못한 장애가 발생해서 패킷을 처리하지 못하면 패킷 손실이 발생할 수 있다. 패킷 손실은 전체 패킷 중 유실된 패킷을 백분위로 표현한 값을 사용하는 경우가 많다.

 

패킷 손실은 명령 프롬프트(CMD) 혹은 터미널에서 ping 명령으로 확인할 수 있다. ping 명령어는 수신지로 다수의 패킷을 전송해 수신지까지 도달 가능한지 여부를 알려준다. 몇 개의 패킷을 보내고, 받았는지, 몇 %의 패킷이 손실되었는지를 확인할 수 있다.

 

다음 장에서부터 물리 계층과 데이터 링크 계층을 학습하여 OSI 최하위 계층부터 최상위 계층까지 학습을 진행한다.