네트워크 아키텍처
네트워크에서 컴퓨터와 네트워크 장비들이 데이터를 주고받기 위한 규칙이 필요합니다. 이런 규칙은 `프로토콜(Protocol)`이라 불리며, 데이터 전송 상대방, 형식, 전송 순서와 절차, 방법 등을 규정합니다. 즉 네트워크를 구성하는 컴퓨터와 다양한 네트워크 장비들은, 프로토콜에 따라 데이터를 주고 받습니다.
네트워크는 복잡한 시스템이기 때문에 이를 단순화하고 이해하기 쉽게 만들기 위해 네트워크 아키텍처(Network Architecture)를 사용합니다. 이 아키텍처는 모듈화(Modularity) 와 계층화(Layering) 를 통해 네트워크를 추상화(Abstraction) 시키는 방법입니다.
- 추상화: 복잡한 것을 간단하게 만드는 원리로, 네트워크를 논리적인 단계로 분할하여 각 단계마다 핵심 기능을 정의합니다.
- 모듈화: 시스템을 기능 단위로 나누는 원리로, 독립적인 모듈이 상호 연결되어 전체 시스템을 이룹니다.
- 계층화: 모듈을 계층적 구조로 배열한 것으로, 데이터의 이동과 관련된 각 단계를 나눠 설명합니다.
네트워크 아키텍처에서는 각 계층의 고유한 기능을 프로토콜로 정의합니다. 각 계층은 프로토콜에 정의된 기능을 수행하며, 이로써 전체 네트워크가 작동합니다. 따라서 네트워크 아키텍처는 다양한 프로토콜의 집합으로 이루어져 있습니다.
이를 통해 복잡한 네트워크가 단계적으로 처리되며, 각 계층이 독립적으로 작동하기 때문에 다른 계층에 영향을 미치지 않아 유지 보수가 용이해집니다. 이러한 특성으로 복잡성 감소와 유연성, 호환성을 제공합니다.
OSI 모델과 TCP/IP 모델
두 가지 주요 네트워크 아키텍처 모델은 OSI 7계층과 TCP/IP 4계층입니다.
OSI 7계층은 데이터 전송 과정을 7개의 계층으로 분류한 국제 표준 모델이지만 복잡성으로 인해 실무에서는 사용되지 않습니다.
TCP/IP 4계층은 4개의 계층으로 간단히 데이터 전송을 설명하며, 현실에서 널리 사용되고 있는 모델로 사실상의 표준이 되었습니다. TCP/IP 모델은 실용성과 신속한 프로토콜 개발을 중시하여 네트워크 표준화에 많은 영향을 미쳤습니다. 컴퓨터와 네트워크 장비는 TCP/IP 모델을 기반으로 설계되어, 제조업체에 상관없이 상호 연결성을 확보합니다.
요약하면, 네트워크 아키텍처는 프로토콜의 조합을 통해 데이터 통신을 관리하며, 모듈화와 계층화로 복잡한 네트워크를 단순화합니다. 네트워크 아키텍처 중 TCP/IP 모델은 실질적인 표준으로 자리 잡아, 하드웨어와 소프트웨어가 이 모델의 프로토콜을 준수하여 개발되며, 이로써 어디에서나 인터넷 접속이 가능해졌습니다.
💁 TCP/IP 4계층 vs 5계층
기존 TCP/IP 4계층은 응용 계층, 전송 계층, 인터넷 계층, 데이터 링크 계층(네트워크 인터페이스 계층)으로 구성되어 있었습니다. 하지만, 인터넷 개발 이후 꾸준히 표준이 갱신되면서 데이터 링크 계층이 세분화되어 데이터 링크 계층과 물리 계층으로 나뉘어졌습니다. 개념을 공부하는데는 4계층, 5계층은 상관없기 때문에 TCP/IP 4계층으로 설명을 하도록 하겠습니다.
TCP/IP 4계층
TCP/IP 모델은 4개의 계층으로 구분됩니다. 각 계층은 다양한 프로토콜로 구성되며, 이러한 프로토콜은 컴퓨터의 하드웨어, 소프트웨어, 그리고 네트워크 장비에서 해당 계층의 역할을 수행합니다. 데이터 통신은 응용 계층의 프로토콜을 통해 프로그래밍된 응용 애플리케이션, 전송 계층과 인터넷 계층의 TCP/IP 소프트웨어, 그리고 이더넷 프로토콜을 준수하는 랜카드와 같은 요소들이 협력하여 이루어집니다.
TCP/IP 모델은 기본적으로 TCP를 전송 계층에서 사용하고, 인터넷 계층에서는 IP를 사용합니다. 이 일관성으로 인해 모델은 TCP/IP로 불립니다. 각 서비스의 특성에 따라 HTTP, SMTP, POP3, FTP 등과 같은 응용 계층 프로토콜을 선택하거나, 새로운 서비스를 개발할 때, 적합한 응용 계층 프로토콜을 만든 후, 데이터의 안정성을 위해 TCP와 IP를 기반으로 데이터를 전송합니다.
응용(애플리케이션) 계층:
사용자가 인터넷을 통해 다양한 서비스를 이용할 수 있도록 하는 계층입니다. 웹 서비스(HTTP), 이메일(SMTP/POP3), 파일 전송(FTP)과 같은 서비스의 내용을 결정하며, 사용자에게 서비스 관점에서 편의를 제공합니다. 이 계층에는 다양한 프로토콜이 존재하며, 각 서비스에 대한 규칙을 정의합니다. 새로운 서비스를 개발할 때마다 해당 서비스에 맞는 응용 계층 프로토콜을 만들 수 있습니다.
전송계층:
전송 계층은 데이터의 안전한 전송과 효율적인 배포를 보장하는 역할을 수행합니다. 이 계층은 데이터가 목적지로 안전하게 전송되고 각 애플리케이션에 정확하게 분배되도록 관리하여, 네트워크 인터페이스 계층과 인터넷 계층이 최적의 경로를 찾아 데이터를 전달하는 역할을 보완합니다. 즉, 전송 계층은 데이터 전송 과정 중 데이터의 손상, 유실, 그리고 효율적인 분배를 담당합니다.
여러 애플리케이션과 동시에 데이터 통신을 처리하는 현대 컴퓨터 환경에서, 데이터가 수신지의 올바른 애플리케이션으로 전달되어야 합니다. 이를 위해 전송 계층은 송신지 애플리케이션에서 보낸 데이터가 수신지 컴퓨터의 어떤 애플리케이션으로 전송되어야 하는지 식별할 수 있는 주소 또는 번호인 `포트 번호`를 사용합니다.
- 데이터 신뢰성: 전송 계층은 데이터가 안전하게 전달되도록 보장합니다. 이를 위해 데이터 손상 여부를 확인하고 필요하면 재전송합니다.
- 데이터 효율성: 데이터 통신의 효율성을 유지하며, 전송 속도를 조절하여 네트워크 혼잡을 방지합니다.
- 애플리케이션 식별: 수신지 컴퓨터에 도착한 데이터를 올바른 애플리케이션으로 분배하기 위해 포트 번호를 활용하여 애플리케이션을 식별합니다.
전송 계층에서는 주로 두 가지 프로토콜이 사용됩니다:
- TCP (Transmission Control Protocol):
데이터의 정확성과 신뢰성을 중요시하는 프로토콜로, 데이터 전송 속도를 조절하고 도달하지 않은 데이터를 재전송하는 기능을 제공합니다. 이를 통해 데이터를 안정적으로 전달할 수 있습니다. 웹 브라우징, 이메일 전송과 같이 데이터의 정확성이 중요한 애플리케이션에서 주로 사용됩니다. - UDP (User Datagram Protocol):
데이터의 일부가 유실되더라도 빠르고 효율적으로 데이터를 전송하기 위한 프로토콜입니다. 신속한 데이터 전송이 필요한 동영상 스트리밍 서비스와 같은 애플리케이션에서 주로 사용됩니다.
인터넷 계층:
인터넷 계층은 서로 다른 네트워크에 위치한 컴퓨터 간의 데이터 전송을 조율하는 역할을 합니다. 이 계층은 인터넷, 즉 서로 직접 연결되지 않은 컴퓨터와 네트워크 간의 데이터 통신을 가능케 하는 중요한 역할을 담당하며, 이를 위해 라우터라는 주요 장비를 활용합니다.
라우터는 서로 다른 네트워크를 연결하고 데이터를 전송하는 역할을 수행합니다. 예를 들어, LAN과 WAN을 연결하거나 전 세계의 LAN을 통합하여 인터넷을 형성하는 데 필수적입니다. 라우터는 데이터를 여러 네트워크를 거쳐 최종 목적지까지 안전하게 전달하는 역할을 담당하며, 이를 위해 데이터의 경로를 결정합니다.
데이터는 라우터에서 라우터로 전달되며, 각 라우터는 데이터를 최적의 경로로 전달하기 위한 결정을 내립니다.(라우팅) 이 과정은 수많은 라우터를 거쳐 이뤄지며, 데이터 통신을 가능케 하는 주요 프로토콜인 IP 프로토콜을 사용하여 이루어집니다.
인터넷 계층에서는 컴퓨터와 네트워크 장비를 식별하기 위해 IP 주소를 사용합니다. IP 주소는 데이터를 보낼 호스트를 명확하게 지정하기 위한 주소 시스템으로 사용됩니다. 이 IP 주소는 호스트가 속한 네트워크와 관계 없이 고유하며, 라우터는 이 주소를 활용하여 데이터를 목적지까지 안전하게 전달합니다.
요약적으로, 네트워크 인터페이스 계층에서는 데이터 전송을 처리하는 반면, 인터넷 계층은 데이터의 경로 설정 및 관리를 담당하여 서로 다른 네트워크 간 컴퓨터 간의 효율적인 데이터 전송을 지원합니다.
데이터 링크 계층(네트워크 인터페이스 계층):
TCP/IP 모델의 1계층인 데이터 링크 계층 은 실제로 데이터를 전송하기 위해 필요한 하드웨어 및 네트워크 연결을 관리합니다. 핵심적인 요구 사항은 네트워크의 하드웨어 연결입니다. 컴퓨터가 네트워크에서 데이터를 전송하려면, 물리적인 네트워크를 통해 컴퓨터와 네트워크 장비를 연결해야 합니다. 이것은 랜 케이블과 같은 전선을 사용하여 유선 네트워크를 구축하거나, 공기 중을 통해 전파를 이용하여 무선 네트워크를 구축하는 것을 의미합니다.
데이터 링크 계층은 서로 다른 컴퓨터와 네트워크 장비를 연결하기 위한 인터페이스 규칙과 전송 매체의 표준 규격을 정하는 주요 기술로 이더넷과 와이파이(Wi-Fi)를 사용합니다. 이더넷은 유선 LAN을 구축하기 위한 표준 규격으로, 이더넷 표준을 준수하는 랜 포트와 랜 케이블을 사용하여 데이터 통신을 가능케 합니다. 반면 와이파이는 무선 LAN 기술(IEEE 802.11)을 기반으로 하며, 무선으로 기기들을 연결하여 데이터 통신을 제공합니다.
TCP/IP 모델에서는 네트워크의 물리적인 연결을 특정한 프로토콜에 제한하지 않고, 모든 표준 규격과 기술적인 프로토콜을 지원합니다. 따라서 네트워크 인터페이스 계층에서 특정 프로토콜을 강제하지 않고 모든 프로토콜을 허용합니다. 이더넷 프로토콜은 이와 같은 유연성을 제공하며 많은 네트워크에서 사실상 표준으로 사용됩니다.
※ MAC 주소:
또한, 네트워크 인터페이스 계층에서는 같은 네트워크 내에서 직접 연결된 물리적 장비 간에 데이터를 전송하기 위해 물리 주소(Physical address 또는 MAC 주소)를 사용합니다. 이 물리 주소를 통해 어느 장비로 데이터를 전송할지 결정됩니다. 데이터 링크 계층에서 사용하는 물리 주소 또는 MAC 주소는 마치 각 장비의 고유한 신분증과 같습니다. 이 주소는 컴퓨터와 네트워크 장비가 같은 네트워크에 속할 때 사용됩니다. 예를 들어, 집 안에서 다양한 기기를 무선 네트워크에 연결하고 싶을 때, 각 기기에는 고유한 물리 주소가 할당됩니다. 이 주소를 통해 데이터를 정확한 기기로 전달할 수 있습니다. 같은 네트워크에 연결된 기기들은 서로 데이터를 주고받을 때 이 물리 주소를 사용하여 목적지를 결정합니다. 이것은 마치 우편물을 보낼 때 수신자의 주소를 확인하여 정확한 위치로 배송하는 것과 유사합니다. 따라서 물리 주소를 통해 데이터가 어느 기기로 전송되어야 하는지 명확하게 파악할 수 있으며, 이것이 데이터 링크 계층에서의 중요한 역할입니다.
TCP/IP 데이터 전송 과정
호스트 간에 TCP/IP 기반의 데이터 통신이 이루어질 때, TCP/IP의 각 계층은 아래에서 위로 인접한 계층으로부터 데이터를 받아 처리하며 통신이 진행됩니다.
데이터는 송신 호스트에서 응용 계층에서 출발하여 네트워크 인터페이스 계층까지 총 4개의 계층을 거치며 전송 매체로 전달됩니다. 데이터는 여러 중간 노드를 거쳐 수신 호스트에 도착하게 됩니다. 수신 호스트에서는 데이터가 최하위 계층인 네트워크 인터페이스 계층부터 상위 계층인 응용 계층까지 4개의 계층을 순서대로 통과하면서 처리됩니다.
따라서 한 계층이 정상적으로 기능하기 위해서는 데이터를 전송한 바로 이전 계층이 정상적으로 동작하고 있어야 하며, 송신 호스트와 수신 호스트의 4개 계층의 프로토콜이 모두 정상적으로 작동해야만 성공적인 데이터 전송이 이루어집니다.
(위 이미지에서는 5개 계층)
데이터 전송 과정에서, 각 계층은 헤더라는 정보를 데이터에 추가하여, 해당 계층으로부터 받은 데이터를 하위 계층으로 넘깁니다. 헤더는 수신 호스트의 해당 계층에서 데이터를 처리하는 데 필요한 정보를 포함하며, 주로 데이터의 출발지와 목적지 정보, 해당 프로토콜이 전송하고 있는 데이터에 대한 정보가 담겨 있습니다. 이 과정에서 데이터는 캡슐화(Encapsulation)되며, 각 계층에서 헤더가 추가되어 하위 계층으로 이동합니다.
반대로 수신 호스트는 받은 데이터를 수신 호스트의 각 계층을 거칠 때마다 해당 계층의 프로토콜을 처리하고 헤더 부분의 정보를 사용하여 데이터를 처리한 후, 사용한 헤더 부분을 제거하고 데이터를 상위 계층으로 전달합니다.(역캡슐화:Decapsulation) . 각 계층은 오직 자신의 하위 계층으로부터 받은 헤더만을 사용하며, 데이터가 상위 계층으로 넘어갈 때마다 헤더는 삭제되어 결국 송신 호스트가 보낸 원본 데이터만이 수신 호스트에서 수신되는 것입니다.
각 계층은 프로토콜에 따라 헤더에 추가되는 정보가 다르지만, 모든 헤더에는 최소한 출발지와 목적지 주소 정보, 그리고 해당 프로토콜의 데이터 유형을 식별하는 정보가 포함됩니다. 이것은 각 계층에서 데이터를 전송할 때 사용하는 PDU(Protocol Data Unit, 프로토콜 데이터 단위)로, 헤더가 추가된 데이터는 응용 계층에서 메시지(Message), 전송 계층에서 세그먼트(Segment), 인터넷 계층에서 데이터그램(Datagram, UDP) 또는 패킷(Packet, TCP), 네트워크 인터페이스 계층에서 프레임(Frame) 등의 PDU 형식을 가집니다. 이러한 헤더 정보를 사용하여 각 계층에서 데이터의 송신 및 수신을 처리하게 됩니다.
'CS > 네트워크' 카테고리의 다른 글
네트워크 컴퓨터 네트워크의 구성 요소와 네트워크의 종류 (0) | 2023.10.12 |
---|