네트워크

네트워크의 기본 기능과 계층 모델

kyoulho 2024. 8. 6. 13:50

네트워크의 주요 기능


  1. 애플리케이션 목적에 맞는 통신 방법 제공: 애플리케이션이 서로 다른 목적에 맞게 데이터를 주고받을 수 있는 방법을 제공한다.
  2. 신뢰할 수 있는 데이터 전송 방법 제공: 데이터가 전송 중에 손실되거나 오류가 생기지 않도록 한다.
  3. 네트워크 간의 최적의 통신 경로 설정: 데이터가 출발지에서 목적지까지 최적의 경로를 찾아 효율적으로 전송되도록 한다.
  4. 목적지로 데이터 전송: 데이터가 올바른 호스트에 도착하도록 보장한다.
  5. 노드 사이의 데이터 전송: 네트워크에 연결된 장치들(노드) 간의 데이터 전송을 관리한다. 

애플리케이션에서 애플리케이션으로 데이터를 전송하기 위해서는 위와 같은 여러 기능들이 필요하다. 하지만, 이 모든 기능을 하나의 프로토콜로 구현하기는 어렵다. 따라서, 네트워크는 각 기능을 계층으로 나누어 구현한다. 이 계층적 접근 방식을 표준화한 것이 바로 네트워크 계층 모델이다.

 

네트워크 계층 모델


네트워크의 복잡한 기능을 효율적으로 처리하기 위해 계층 모델을 사용한다. 여기에는 두 가지 주요 모델이 있다.

OSI 7 계층 모델TCP/IP 4 스택이다.

OSI 7 계층 모델

네트워크 시스템 구성을 위한 범용적이고 개념적인 모델이다. ISO/IEC에서 관리한다.

1. Application Layer (L7)

관심사: 애플리케이션 간의 통신

  • 기능: 최종 사용자와 애플리케이션 간의 데이터 전송을 담당한다. 애플리케이션이 서로 소통할 수 있는 방법을 정의한다.
  • 프로토콜 예시: HTTP, FTP, SMTP, DNS
  • 설명: 웹 브라우저와 웹 서버 간의 통신, 이메일 클라이언트와 서버 간의 데이터 전송 등 사용자와 애플리케이션 간의 직접적인 상호작용을 처리한다.

2. Presentation Layer (L6)

관심사: 데이터 표현과 변환

  • 기능: 데이터의 포맷을 관리한다. 데이터가 송신자와 수신자 사이에서 제대로 이해될 수 있도록 인코딩, 디코딩, 압축, 암호화 및 복호화 등을 처리한다.
  • 프로토콜 예시: SSL/TLS, JPEG, MPEG
  • 설명: 데이터가 애플리케이션에 전달되기 전에, 올바른 형식으로 변환되도록 보장한다. 예를 들어, 텍스트 파일을 바이너리 데이터로 변환하거나, 암호화된 데이터를 복호화한다.

3. Session Layer (L5)

관심사: 통신 세션 관리

  • 기능: 애플리케이션 간의 세션을 설정, 유지, 종료하는 역할을 한다. 통신 세션의 제어를 담당하여 애플리케이션 간의 데이터 교환이 원활히 이루어지도록 한다.
  • 프로토콜 예시: NetBIOS, RPC
  • 설명: 두 애플리케이션 간의 연결을 설정하고, 연결이 유지되는 동안 데이터를 교환하며, 세션 종료 시 연결을 해제한다. 예를 들어, 원격 절차 호출(RPC)에서 서버와 클라이언트 간의 세션을 관리한다.

4. Transport Layer (L4)

관심사: 데이터 전송의 신뢰성과 흐름 제어

  • 기능: 데이터의 신뢰성 있는 전송을 보장하고, 데이터의 흐름을 제어한다. 데이터가 손실되지 않고, 순서대로 도착하도록 관리한다.
  • 프로토콜 예시: TCP, UDP
  • 설명: TCP는 데이터가 정확하게 도착하도록 보장하고, 손실된 데이터는 재전송한다. UDP는 데이터의 빠른 전송을 제공하지만, 신뢰성 있는 전송은 보장하지 않는다.

5. Network Layer (L3)

관심사: 데이터의 경로 설정 및 주소 지정

  • 기능: 데이터가 출발지에서 목적지까지 가는 최적의 경로를 설정한다. 네트워크 간의 라우팅과 주소 지정 기능을 담당한다.
  • 프로토콜 예시: IP, ICMP
  • 설명: 데이터 패킷이 네트워크를 통해 이동할 때, 목적지까지의 경로를 결정하고, 각 패킷에 주소를 부여하여 적절한 곳으로 전달되도록 한다. 예를 들어, IP는 각 장치에 고유한 주소를 부여한다.

6. Data Link Layer (L2)

관심사: 직접 연결된 장치 간의 통신

  • 기능: 물리적으로 연결된 장치 간의 데이터 전송을 처리한다. 데이터의 오류를 검출하고 수정하며, MAC 주소를 사용하여 장치 간의 통신을 관리한다.
  • 프로토콜 예시: Ethernet, PPP, ARP
  • 설명: 장치 간의 데이터 전송을 담당하며, 오류가 발생한 경우 이를 수정한다. ARP(주소 결정 프로토콜)를 통해 IP 주소를 MAC 주소로 변환하여 데이터 링크를 설정한다.

7. Physical Layer (L1)

관심사: 데이터의 물리적 전송

  • 기능: 데이터를 비트 단위로 물리적인 매체를 통해 전송한다. 전기 신호, 광 신호, 무선 신호 등 물리적인 전달 방법을 포함한다.
  • 프로토콜 예시: 이더넷 케이블, 광섬유, 무선 통신
  • 설명: 실제 전선이나 무선 주파수를 통해 비트 단위의 데이터를 전송한다. 데이터가 물리적으로 전달되기 위한 신호의 생성과 수신을 담당한다.

 

TCP/IP 스택

 

현재 수많은 프로그램들이 인터넷으로 통신하는데 있어 가장 기반이 되는 프로토콜로 실제 대다수 프로그램은 TCP와 IP로 통신하고 있다. 

ARPANET이 개발된 이후 현재의 인터넷으로 발전해나가는 과정에서 대부분의 데이터 통신이 TCP와 IP기반으로 이루어졌기에 인터넷 프로토콜 그 자체를 표현하는 용어이기도 했고, 다양한 프로토콜이 개발된 현 시점에도 사실상 인터넷 프로토콜을 대표하는 용어로 사용중이다. 이를 이용해서 컴퓨터를 연결하는 체계를 이더넷(Ethernet)이라고 부른다. IETF에서 인터넷 표준을 관리(RFC)한다. TCP, UDP, IP 스펙은 RFC 에서 정의되어 있다.

Application Layer

역할: 애플리케이션 간의 데이터 전송을 처리한다. 웹 브라우저, 이메일 클라이언트 등과 같은 사용자 애플리케이션이 이 계층에서 동작한다.

예시: HTTP, FTP, SMTP

Transport Layer

역할: 데이터 전송의 신뢰성을 보장합니다. 데이터가 정확하게 도착하도록 하고, 흐름을 제어한다.

예시: TCP(신뢰성 있는 전송), UDP(빠른 전송)

Internet Layer

역할: 데이터가 네트워크를 통해 최적의 경로로 전달되도록 한다. 패킷의 주소 지정과 라우팅을 담당한다.

예시: IP (Internet Protocol)

Link Layer

역할: 물리적인 네트워크 매체를 통해 데이터 프레임을 직접 전송한다. 네트워크 인터페이스 카드와 같은 하드웨어가 이 계층에서 동작한다.

예시: Ethernet, Wi-Fi

 

데이터 전송 과정


A 컴퓨터에서 B 컴퓨터로 데이터를 전송하는 과정은 다음과 같다.

  1. A 컴퓨터에서 데이터를 전송하기 위해, 데이터는 상위 레이어에서 하위 레이어로 이동하면서 각 계층의 헤더가 추가된다. 각 계층은 자신만의 헤더를 데이터에 붙여서 다음 계층으로 전달한다.
  2. 데이터는 네트워크를 통해 이동하면서 여러 라우터를 만나게 된다.
  3. 라우터는 Physical Layer부터 Network Layer까지 헤더를 제거하며 데이터를 검증한다.
  4. 각 라우터는 데이터의 목적지를 확인하고, 최적의 경로를 선택하여 다음 라우터로 데이터를 전달한다. 이 과정에서 데이터를 라우팅 하고 네트워크의 흐름을 관리한다.
  5. B 컴퓨터가 데이터를 수신하면, 각 계층에서 헤더를 제거하여 원래의 데이터를 복원한다. 상위 계층으로 올라가면서 각 계층의 헤더가 하나씩 제거된다.
  6. 데이터가 애플리케이션 레이어에 도착하면, 모든 헤더가 제거된 원래의 데이터가 애플리케이션에 전달되어 최종적으로 애플리케이션이 처리한다.

'네트워크' 카테고리의 다른 글

실제 구현상에서의 Socket  (0) 2024.08.06
TCP Connection 과 Socket  (0) 2024.08.06