컴퓨터 네트워크 시작하기
이번 포스트는 ‘혼자 공부하는 네트워크‘라는 책을 통해 컴퓨터 네트워크가 무엇을 지칭하는 단어이고, 이걸 공부해야 하는 이유가 무엇인지, 그리고 그런 네트워크를 가볍게 겉핥기해보기 위한 목적을 갖고 있다.
우선, 이런 좋은 책을 만들어주신 강민철 님에게 감사하다는 것을 전하고 시작하도록 하겠다. 강민철 님은 어려운 내용들을 쉽게 설명해내는 능력이 매우 띄어난 저자로, 같은 설명을 하시더라도 IT 초심자가 보아도 이해되게끔 풀어주셔서 머리 속에 더 잘 남게해주신다. 개발 관련해서 처음 배우는 학문이나 여러 번 공부했는데 머리 속에 박혀있지 못한 것이 있다면 강민철 님의 책이나 강의를 추천한다.
그럼 시작해보자.
1. 컴퓨터 네트워크란?
컴퓨터 네트워크란 스마트폰이나 데스크톱을 활용해 주변의 다른 장치와 정보를 주고받는 걸 가능하게 하는 기술이다. 그리고 이것은 다수의 장치를 유무선으로 연결하고 연결해서, 마치 그물처럼 만들어진 통신망을 말한다.
1.1 네트워크의 네트워크, 인터넷
네트워크를 이용하면 네트워크에 연결된 지구 반대편에 있는 장치와도 정보를 주고받을 수 있다. 이를 가능하게 하는 기술이 바로 인터넷이다. 인터넷은 여러 네트워크를 연결한 ‘네트워크의 네트워크’를 의미한다.
우리가 사용하는 데스크톱이나 노트북에서 인터넷 연결 없이 온전히 이용 가능한 프로그램이 얼마나 되는지 한 번 생각해보자. 또, 스마트폰의 앱 중에 인터넷 연결이 필요한 앱과 그렇지 않은 앱을 세어보자. 얼마나 많은 프로그램과 앱이 네트워크를 통해 다른 장치와 상호 작용하며 실행되는지 알 수 있다.
따라서 이런 프로그램을 개발하는 개발자 입장에서는 네트워크를 제대로 이해해야할 필요가 생기는 것이다.
1.2 개발자가 컴퓨터 네트워크를 알아야 하는 이유
개발자가 네트워크를 이해하면 구체적으로 어떤 점에서 유리할까?
개발자의 업무는 프로그램을 만드는 업무와 만들어진 프로그램을 유지 보수하는 업무로 나눌 수 있다. 그리고 네트워크 지식은 두 가지 업무에 모두 도움을 줄 수 있다.
1.2.1 프로그램을 만드는 업무에서 네트워크 지식을 활용하는 경우
프로그래밍 언어나 웹 프레임워크 혹은 라이브러리를 사용할 때 네트워크에 대한 배경지식이 있어야만 활용할 수 있는 기능들이 있다.
예를 들어 TCP/UDP 같은 네트워크에 대한 지식이 없다면 스프링 프레임워크의 Docs 내용을 제대로 이해하고 활용하기 어렵다.
열심히 개발한 웹사이트를 사용자에게 선보이기 위해 배포할 때도 DNS, HTTP/HTTPS, 포트 번호 등 다양한 네트워크 배경지식들이 필요하다. 또, 프로그램의 안정성과 안정성을 높이고 싶을 때도 네트워크 지식은 유용하게 활용된다.
1.2.2 프로그램을 유지 보수하는 업무에서 네트워크 지식을 활용하는 경우
프로그램을 유지 보수하는 업무에서도 마찬가지다. 사소하게는 갑자기 인터넷 연결이 안 되는 문제부터, 크게는 잘 작동하는 웹 서버가 동작하지 않는 문제까지, 네트워크 지식은 문제 발생 시 해결의 큰 실마리가 된다.
그리고 프로그램을 유지 보수할 때 자주 사용하는 도구나 명령어 중에는 네트워크 지식이 있어야만 이해할 수 있는 것들이 많다.
2. 네트워크 거시적으로 살펴보기
네트워크는 그래프의 형태를 띄고 있다. 그래프란 노드와 노드를 연결하는 간선으로 이루어진 자료 구조이다. 여기서 자료 구조란 정보를 표현하고 다루는 방법을 의미한다.
2.1 네트워크의 기본 구조
모든 네트워크는 ‘노드’, 노드를 연결하는 ‘간선’, 노드 간 주고받는 ‘메세지’로 구성된다. 노드는 정보를 주고받을 수 있는 장치, 간선은 정보를 주고받을 수 있는 유무선의 통신 매체라고 이해하면 쉽다.
2.1.1 호스트
네트워크의 가장자리에 위치한 노드는 네트워크를 통해 흐르는 정보를 최초로 생성 및 송신하고, 최종적으로 수신한다. 이는 서버 컴퓨터가 될 수도 있고, 개인 데스크톱, 노트북, 스마트폰이 될 수도 있다. 요즘은 종류가 더 다양해져서 시계, 자동차, 냉장고, TV 등이 될 수도 있다. 우리가 일상에서 사용하는 네트워크 기기 대부분이 여기에 속한다고 봐도 무방하다. 이러한 가장자리 노드를 네트워크에서는 호스트라고 부른다.
호스트는 네트워크 가장자리에 자리 잡고 있다는 점에서 종단 시스템(end system)이라고도 한다.
때로 호스트가 네트워크 상에서 특정한 역할을 수행하기도 하는데, 그러한 역할에는 대표적으로 서버와 클라이언트 역할이 있다.
서버는 ‘어떠한 서비스’를 제공하는 호스트이다. 여기서 ‘어떠한 서비스’는 파일이 될 수도(파일 서버), 웹 페이지가 될 수도(웹 서버), 메일이 될 수도(메일 서버) 있다.
반면 클라이언트는 서버에게 어떠한 서비스를 요청하고 서버의 응답을 제공받는 호스트이다.
2.1.2 네트워크 장비
네트워크 노드가 호스트만 있는 것은 아니다. 네트워크 가장자리에 위치하지 않은, 호스트 간 주고받을 정보가 중간에 거치는 노드도 있다. 이를 중간 노드라고 하는데, 대표적으로 이더넷, 허브, 스위치, 라우터, 공유기 등이 있다. 이 책에서는 중간 노드들을 네트워크 장비라 부를 것이다. 네트워크 장비는 호스트 간에 주고받는 정보가 원하는 수신지까지 안정적으로 전송될 수 있도록 한다.
2.1.3 통신 매체
그래프는 노드와 이를 연결하는 간선(링크)으로 이루어지기에, 호스트와 네트워크 장비 또한 유무선 매체를 통해 연결되어 있어야 한다. 이렇게 각 노드를 연결하는 간선이 바로 통신 매체이다. 이 통신 매체에는 노드들을 유선으로 연결하는 유선 매체, 무선으로 연결하는 무선 매체가 있다.
2.1.4 메세지
통신 매체로 연결된 노드가 주고받는 정보를 메세지라 한다. 메세지는 웹 페이지가 될 수도, 파일이 될 수도, 메일이 될 수도 있다.
2.2 범위에 따른 네트워크 분류
이런 요소들이 모여 형성된 네트워크의 범위는 어느 정도일까? 호스트가 메세지를 주고받는 범위는 일반 가정이 될 수도 있고, 기업이 될 수도 있고, 도시나 국가가 될 수도 있다.
네트워크 구성 범위가 다양한 만큼, 네트워크를 범위에 따라 분류하는 기준도 존재한다. 네트워크는 범위에 따라 크게 LAN과 WAN으로 구분한다.
2.2.1 LAN
LAN은 Local Area Network의 약자로 가까운 지역을 연결한 근거리 통신망을 의미한다. 예를 들어 가정, 기업, 학교처럼 한정된 공간에서의 네트워크를 LAN이라 한다.
2.2.2 WAN
Wide Area Network의 약자로 먼 지역을 연결하는 광역 통신망을 의미한다. 멀리 떨어진 LAN을 연결할 수 있는 네트워크가 바로 WAN이다. 인터넷이 WAN으로 분류된다.
우리가 인터넷을 사용하기 위해 접속하는 WAN은 ISP$^{Internet\ Service\ Provider}$라는 인터넷 서비스 업체가 구축하고 관리한다. ISP는 사용자에게 인터넷같은 WAN에 연결 가능한 회선을 임대하는 등 WAN과 관련된 다양한 서비스를 제공한다. 인터넷을 사용하기 위해 ISP와 계약해서 인터넷 사용 요금을 내는 것은 이러한 이유 때문이다.
인터넷이 아니더라도 멀리 떨어진 LAN에 연결하기 위해 특정 조직에서 불특정 다수에게 공개되지 않능 WAN을 얼마든지 구축할 수 있다.
2.3 메세지 교환 방식에 따른 네트워크 분류
네트워크로 메세지를 주고받는 방식은 대표적으로 회선 교환 방식과 패킷 교환 방식으로 나눌 수 있다. 각 방식을 사용하는 네트워크를 각각 회선 교환 네트워크, 패킷 교환 네트워크라고 한다.
2.3.1 회선 교환 방식
이 방식은 먼저 메세지 전송로인 회선$^{circuit}$을 설정하고 이를 통해 메세지를 주고받는 방식이다. ‘회선을 설정한다’라는 말은 ‘두 호스트가 연결되었다’, ‘전송로를 확보하였다’라는 말과도 같다. 회선 교환 네트워크에서는 호스트들이 메세지를 주고받기 전에 두 호스트를 연결한 후, 연결된 경로로 메세지를 주고받는다.
회선 교환 방식은 우선 두 호스트 사이의 연결을 확보한 후 메세지를 주고받는 특성 덕분에 주어진 시간 동안 전송되는 정보의 양이 비교적 일정하다는 장점이 있다.
회선 교환 네트워크가 올바르게 동작하기 위해서는 호스트 간의 회선을 적절하게 설정해야 한다. 이 역할을 수행하는 회선 교환 네트워크 장비로는 회선 스위치가 있다. 즉, 회선 스위치는 호스트 사이의 일대일 전송로를 확보하는 네트워크 장비이다.
이 방식의 대표적인 사례가 바로 전통적인 전화망이다. 누군가에게 전화를 걸면 수신자가 받기 전에 송신자와 수신자 사이에 연결이 설정되어야 하고, 한 번 연결이 설정되면 연결된 전송로를 통해서만 통화가 가능해진다.
이런 회선 교환 방식에는 한 가지 문제가 있다. 회선의 이용 효율이 낮아질 수 있다는 것이다. 가능한 모든 회선에 끊임없이 메세지가 흐르고 있어야만 회선의 이용 효율이 높아진다. 반대로 메세지를 주고받지 않으면서 회선을 점유하는 것은 낭비라고 볼 수 있다.
2.3.2 패킷 교환 방식
패킷 교환 방식은 회선 교환 방식의 문제점을 해결한 방식으로, 매세지를 패킷이라는 작은 단위로 쪼개어 전송한다. 여기서 패킷은 패킷 교환 네트워크상에서 송수신되는 메세지의 단위이다. 현대 인터넷은 이 방식을 이용한다.
예를 들어 패킷 교환 방식으로 2GB 크기의 영화 파일을 다운로드한다면, 패킷의 크기만큼 분할되어 전송된다. 그리고 이렇게 쪼개진 패킷들은 수신지인 우리의 컴퓨터에 도달한 뒤 재조립된다.
패킷 교환 네트워크는 회선 교환 네트워크와 다르게 메세지를 송수신하는 두 호스트가 하나의 전송 경로를 점유하지 않기에 네트워크 이용 효율이 상대적으로 높다.
만약 패킷이 패킷 교환 네트워크를 통해 지구 반대편에 있는 먼 곳까지 이동한다면 어떨까? 사전에 설정된 경로만으로 통신하는 회선 교환 방식과는 달리, 패킷 교환 방식은 정해진 경로만으로 메세지를 송수신하지 않는다. 다양한 중간 노드를 거칠 수 있는데, 이때 중간 노드인 패킷 스위치는 패킷이 수신지까지 올바르게 도달할 수 있도록 최적의 경로를 결정하거나 패킷의 송수신지를 식별한다. 대표적인 패킷 스위치 네트워크 장비로는 라우터와 스위치가 있다.
패킷 교환 방식에서 패킷은 본래 소포, 꾸러미라는 뜻으로 택배와 비슷한 개념이다. 택배를 보내기 위해 상자에 물품을 담고 송장에 보내는 주소와 받을 주소, 보내는 사람과 받는 사람 등 부가 정보를 적는다. 이런 과정이 선행되어야 올바르게 배송이 될 수 있다.
네트워크의 패킷도 마찬가지이다. 패킷을 통해 전송하고자 하는 데이터를 페이로드라고 한다. 택배 상자에 넣을 물품이라고 생각해도 좋다. 그리고 페이로드와 더불어 헤더라는 정보도 패킷 앞에 포함된다. 때로는 패킷 뒤에 트레일러라는 정보가 포함되기도 한다.
헤더와 페이로드는 패킷에 붙는 일종의 부가 정보, 내지는 제어 정보이다. 즉, 페이로드가 택배 안에 담을 물품이라면, 헤더와 트레일러는 송장과 같다.
패킷의 헤더에 담기는 대표적인 정보로는 주소가 있다. 주소는 송수신지를 특정하는 정보를 의미한다.
패킷의 헤더에 송수신지를 특정할 수 있는 주소가 있다면 송수신지 유형에 따라 다양한 방식으로 메세지를 보낼 수 있게 된다. 가령 수신지를 특정 호스트 하나로 지정할 수 있고, 네트워크 내 모든 호스트로 지정할 수도 있다. 또 수신지를 자신과 동일한 그룹에 속한 호스트로 지정할 수도 있다. 송수신지 유형별 전송 방식은 다양한 종류가 있지만, 네트워크의 기본 동작을 파악하기 위해 알아야 할 가장 중요한 전송 방식은 유니캐스트와 브로드캐스트이다.
먼저 유니캐스트는 가장 일반적인 형태의 송수신 방식으로, 하나의 수신지에 메세지를 전송하는 방식이다. 송신지와 수신지가 일대일로 메세지를 주고받는 경우다.
브로드캐스트는 자신을 제외한 네트워크 상의 모든 호스트에 전송하는 방식이다. 브로드캐스트가 전송되는 범위를 브로드캐스트 도메인이라 한다. 즉, 브로드캐스트의 수신지는 브로드캐스트의 도메인이며 이는 자신을 제외한 네트워크 상의 모든 호스트이다.
이 외에도 네트워크 내의 동일 그룹에 속한 호스트에게만 전송하는 멀티캐스트, 네트워크 내의 동일 그룹에 속한 호스트 중 가장 가까운 호스트에게 전송하는 방식인 애니캐스트 등 다양한 방식이 있다.
3. 네트워크 미시적으로 살펴보기
이번에 학습할 개념은 크게 세 가지이다. 바로 통신 과정에서 정보를 올바르게 주고받기 위해 합의된 규칙이나 방법을 의미하는 프로토콜, 통신이 일어나는 구조를 계층화한 네트워크 참조 모델, 통신 과정에서 이루어지는 캡슐화(역캡슐화)이다.
3.1 프로토콜
현대 인터넷에서 호스트 간 메세지를 교환하는 방법으로 대부분 사용하는 패킷 교환 방식을 현실과 유사한 예시인 택배를 들어 비교해보자.
- 선물할 책(페이로드)를 택배 상자에 담는다.
- 배송 주소 등 택배 기사가 읽을 메세지(헤더)를 작성하고 첨부한다.
- 택배 기사(네트워크 장비)를 통해 발송한다.
영수(수신지 호스트)가 책을 제대로 받아서 읽으려면 일단 언어가 통해야 한다. 즉, 선물하려는 책의 언어를 영수도 이해할 수 있어야 한다. 그리고 택배가 영수에게 올바르게 배송되려면 택배 기사 또한 택배 송장에 적인 메세지를 이해할 수 있어야 한다. 수신지, 수신자, 발송자(송신자) 등의 정보가 택배 기사가 이해할 수 없는 언어로 적혀 있다면 제대로 발송할 수 없다.
조금 더 나아가 택배 배송 과정에 여러 명의 택배 기사가 필요하다면 택배 기사끼리 주고받는 언어도 서로 통해야 한다. 네트워크에도 언어와 유사한 개념이 있다. 바로 프로토콜이다. 언어가 정보를 주고받기 위해 사회적으로 합의된 의사소통 방식이라면, 프로토콜은 노드 간에 정보를 올바르게 주고받기 위해 합의된 규칙이나 방법을 의미한다.
즉, 서로 다른 통신 장치들이 정보를 주고받으려면 프로토콜이 통해야 한다. 여러분이 인터넷을 이용할 수 있는 것도, 이메일을 주고받을 수 있는 것도, 파일을 주고받을 수 있는 거도 모두 상대 호스트와 동일한 프로토콜을 사용하기 때문이다.
IP는 패킷을 수신지까지 전달하기 위해 사용되는 프로토콜이다.
ARP는 192.168.1.1 과 같은 형태의 ‘IP 주소’를 A1:B2:C3:D4:E5:F6 과 같은 형태의 ‘MAC 주소’로 대응하기 위해 사용되는 프로토콜이다.
IP 주소를 MAC 주소로 대응하기 위해서 ARP 라는 규칙으로 정보를 주고받아야 한다.
중요한 점은 모든 프로토콜에는 저마다의 목적과 특징이 있다는 점이다. 프로토콜마다 목적과 특징이 다르기에 이에 부합하는 헤더의 정보가 달라질 수 있다.
3.2 네트워크 참조 모델
네트워크로 메세지를 송수신하는 것과 비슷한 택배의 예시를 다시 살펴보면 선물할 책을 보내는 과정을 정확하게 반대로 하면 영수가 택배를 받는 과정임을 알 수 있다. 다시 말해 택배를 주고받는 과정에는 정형화된 순서가 있다. 네트워크도 마찬가지로 정보를 주고받을 때 정형화된 여러 단계를 거친다. 이 과정을 계층으로 표현할 수 있고, 통신이 일너는 각 과정을 계층으로 나눈 구조를 네트워크 참조 모델 또는 네트워크 계층 모델이라 한다.
이와 같이 통신 과정을 계층으로 나눈 이유는 크게 두 가지이다.
첫째, 네트워크 구성과 설계가 용이하다.
각 계층이 수행해야 할 역할이 정해져 있어 계층의 목적에 맞게 프로토콜과 네트워크 장비를 구성할 수 있다.
물론 모든 프로토콜이나 네트워크 장비가 참조 모델과 완벽하게 들어맞는 것은 아니다. 때로는 명확하게 구분되지 않을 수도 있다.
둘째, 네트워크 문제 진단과 해결이 용이하다.
통신 과정에서 문제가 발생하더라도 문제의 원인을 계층별로 진단하는게 수월해진다. 가령 잘되던 인터넷이 갑자기 안 되면 가장 먼저 최하위에 있는 1계층에서 발생한 문제인지 판단하기 위해 케이블 등 유무선 매체의 접속 상태를 확인해 볼 수 있다. 이상이 없다면 다음 2계층에서 발생한 문제인지 판단하기 위해 정보가 수신지까지 제대로 전달되었는지 진단해본다.
이렇듯 네트워크를 계층별로 진단하면 문제 발생 지점을 추측할 수 있어, 문제 진단과 해결이 수월하다는 장점이 있다.
3.2.1 OSI 모델
OSI 모델은 국제 표준화 기구$^{International\ Organization\ for\ Standardzation}$에서 만든 네트워크 참조 모델이다. 통신 단계를 7개의 계층으로 나누는데, 최하위 계층에서 최상위 계층 순으로 각각 물리 계층, 데이터 링크 계층, 네트워크 계층, 전송 계층, 세션 계층, 표현 계층, 응용 계층이다.
- 물리 계층
물리 계층은 1과 0으로 표현되는 비트 신호를 주고 받는 계층이다. 통신 매체에 맞는 신호로 운반되도록 비트 데이터의 변환이 이루어지고 통신 매체를 통한 송수신이 이루어지는 계층이 바로 물리 계층이다. 그렇기에 물리 계층을 학습할 때는 주로 네트워크 장비, 통신 매체애 관한 이야기를 많이 하게 된다.
- 데이터 링크 계층
이 계층은 네트워크 내 주변 장치 간의 정보를 올바르게 주고받기 위한 계층이다. 이더넷을 비롯한 많은 LAN 기술이 이 계층에 녹아 있다. 여기서는 물리 계층을 통해 주고받는 정보에 오류가 없는지 확인하고, MAC 주소라는 주소 체계를 통해 네트워크 내 송수신지를 특정할 수 있다. 때로는 전송 과정에서 발생할 수 있는 충돌 문제를 해결하는 계층이기도 하다.
- 네트워크 계층
이 계층은 메세지를 (다른 네트워크에 속한) 수신지까지 전달하는 계층이다. 데이터 링크 계층에서 네트워크 내의 주변 장치 간의 통신이 이루어진다면, 네트워크 계층에서는 네트워크 간의 통신이 이루어진다. 예컨데 네트워크 계층은 인터넷을 가능하게 하는 계층이라고 할 수 있다. 이 계층에서는 IP 주소라는 주소 체계를 통해 통신하고자 하는 수신지 호스트와 네트워크를 식별하고, 원하는 수신지에 도달하기 위한 최적의 경로를 결정한다.
- 전송 계층
전송 계층은 신뢰성 있고 안정성 있는 전송을 해야 할 때 필요한 계층이다. 패킷이 정상적으로 보내졌는지, 중간에 유실된 정보는 없는지, 여러 개의 패킷을 보낼 때 순서가 뒤바뀐 것은 없는지 등을 확인해야 할 때가 있다. 이때 전송 계층에서는 패킷의 흐름을 제어하거나 전송 오류를 점검해 신뢰성 있고 안정적인 전송이 이루어지도록 한다. 이 외에도 포트라는 정보를 통해 실행 중인 응용 프로그램의 식별이 이루어지기도 한다.
- 세션 계층
이 계층은 ‘세션’을 관리하기 위해 존재하는 계층이다. 세션이라는 용어는 다양한 상황에서 폭넓게 사용되지만, 일반적으로 통신을 주고받는 호스트의 응용 프로그램 간 연결 상태를 의미한다. 세션 계층에서는 이러한 연결 상태를 생성하거나 유지하고, 종료되었을 때는 끊어 주는 역할을 담당한다.
- 표현 계층
표현 계층은 마치 번역가와 같은 역할을 하는 계층이다. 사람이 이해할 수 있는 언어인 문자를 컴퓨터가 이해할 수 있는 코드로 변환하거나, 압축, 암호화와 같은 작업이 표현 계층에서 이루어진다.
- 응용 계층
응용 계층은 OSI 참조 모델 최상단에 있는 계층으로 사용자 및 사용자가 이용하는 응용 프로그램과 가장 밀접하게 맞닿아 있는 계층이다. 응용 계층은 사용자가 이용할 응용 프로그램에 다양한 네트워크 서비스를 제공한다. 예를 들어 웹 브라우저 프로그램에 웹 페이지를 제공하거나 이메일 클라이언트 프로그램에 송수신된 이메일을 제공하는 등 실질적인 네트워크 서비스가 제공되는 계층이 바로 응용 계층이다. 응용 프로그램에 다양한 서비스가 제공될 수 있는 만큼 타 계층에 비해 응용 계층에 속한 프로토콜이 많다.
3.2.2 TCP/IP 모델
OSI 모델은 주로 네트워크를 이론적으로 기술하고 이해할 때 사용하는 반면 TCP/IP 모델은 이론보다 구현에 중점을 둔 네트워크 참조 모델이다. OSI 모델의 목적이 ‘이상적 설계’에 가깝다면, TCP/IP 모델은 ‘실용적 구현’에 가깝다.
TCP/IP 모델은 TCP/IP 4계층, 인터넷 프로토콜 스위트, TCP/IP 프로토콜 스택이라고도 부른다.
최하위 계층부터 살펴보자.
- 네트워크 액세스 계층
이 계층은 링크 계층 또는 네트워크 인터페이스 계층이라고도 부른다. OSI 모델의 데이터 링크 계층과 유사하다.
전통적인 TCP/IP 모델에서의 최하위 계층은 OSI 모델에서의 물리 계층보단 데이터 링크 계층 역할을 수행하는 쪽에 가까웠다. TCP/IP 모델에는 OSI 모델에서의 물리 계층에 해당하는 개념이 없다고 보는 견해도 있다.
그래서 많은 공식 문서와 전공 서적에서 OSI 모델과 TCP/IP 모델을 대응해 설명하기 위해 TCP/IP 모델에 물리 계층을 추가해 TCP/IP 모델을 5계층으로 확장하여 기술하기도 한다.
- 인터넷 계층
이 계층은 OSI 모델에서의 네트워크 계층과 유사하다.
- 전송 계층
OSI 모델에서의 전송 계층과 유사하다.
- 응용 계층
응용 계층은 OSI 모델의 세션 계층, 표현 계층, 응용 계층을 합친 것과 유사하다.
3.3 캡술화와 역캡슐화
패킷은 송신 과정에서 캡슐화가 이루어지고, 수신 과정에서 역캡슐화가 이루어진다.
3.3.1 캡슐화
송신 과정에서 헤더 및 트레일러를 추가해 나가는 과정을 캡슐화라고 부른다. 혹은 영문 그대로 인캡슐레이션이라고도 부른다.
3.3.2 역캡슐화
수신하는 과정에서 헤더 및 트레일러를 각 계층에서 확인한 뒤 제거한다. 이를 역캡슐화라고 한다. 영문 그대로 디캡슐레이션이라고도 부른다.
3.4 PDU
각 계층에서 송수신되는 메세지의 단위를 PDU$^{Protocol\ Data\ Unit}$라고 한다. 즉, 상위 계층에서 전달받은 데이터에 현재 계층의 프로토콜 헤더 및 트레일러를 추가하면 현재 계층의 PDU가 된다. OSI 모델의 각 계층에서의 PDU를 정리해보면 다음과 같다.
- 응용, 표현, 세션 : 데이터
- 전송 : 세그먼트, 데이터그램
- 네트워크 : 패킷
- 데이터 링크 : 프레임
- 물리 : 패킷
PDU는 주로 전송 계층 이하의 메세지를 구분하기 위해 사용한다. 전송 계층보다 높은 계층에서는 일반적으로 데이터 혹은 메세지로만 지칭하는 경우가 많다.