티스토리 뷰

OSI 7계층 모델의 탄생 배경 

OSI 모델은 1984년 국제표준화기구(ISO)에서 제정한 표준으로, 당시 네트워크 기술의 혼란을 해소하고 표준화된 프레임워크를 제공하기 위해 개발되었다. 컴퓨터 네트워킹이 급속도로 발전하던 시기에 각 제조사마다 독자적인 통신 프로토콜을 개발하였고, 이로 인해 서로 다른 시스템 간의 통신이 어려웠다. OSI 모델은 이러한 상호운용성 문제를 해결하기 위한 이론적 프레임워크로서 네트워크 통신 과정을 7개의 논리적 계층으로 분류하여 복잡한 네트워킹 개념을 체계화하였다. 

 

OSI 모델의 각 계층은 특정 기능을 담당하며, 하위 계층은 상위 계층에 서비스를 제공하는 구조로 설계되었다. 이러한 계층적인 접근 방식은 네트워크 문제를 효과적으로 분리하고 해결할 수 있게 해주며, 어느 한 계층의 기술 발전이 다른 계층에 미치는 영향을 최소화할 수 있게 했다. 예를 들어 물리적 연결 방식이 변경되더라도 상위 계층의 소프트웨어는 수정할 필요가 없게 되는 것이다.  

 

OST 7계층 모델의 구조

1) 물리 계층 

물리 계층은 OSI 모델의 최하위 계층으로, 실제 데이터를 전기 신호 및 광 신호, 또는 전파로 변환하여 전송 매체를 통해 전달하는 역할을 담당한다. 이 계층에서는 비트(0과 1)의 스트림이 물리적 매체를 통해 전송되는 방식을 정의한다. 

 

물리 계층의 주요 기능

  • 디지털 데이터를 물리적 신호로 변환하여 전송한다.  
  • 케이블(구리선, 광섬유), 무선 매체(전파) 또는 기타 물리적 연결 방식을 관리한다. 
  • 디지털 데이터를 실제 전송에 적합한 형태로 인코딩한다. 
  • 비트 경계를 정확히 인식할 수 있도록 송신자와 수신자 간의 클럭 동기화를 유지한다. 

물리 계층에서 발생할 수 있는 문제로는 신호 감쇠, 왜곡, 잡음, 간섭 등이 있다. 이러한 문제를 해결하기 위해 신호 증폭기, 리피터, 허브와 같은 장치가 사용된다. 실제 구현 예로는 RS-232, RS-449, X.21, 이더넷(IEEE 802.3), 토큰 링(IEEE 802.5), USB, Bluetooth 등이 있다. 최근에는 5G, Wi-fi 6 (IEEE 802.11ax)와 같은 고속 무선 기술도 물리 계층의 중요한 부분을 차지하고 있다.

 

2) 데이터 링크 계층 

데이터 링크 계층은 물리 계층을 통해 송수신되는 데이터의 오류를 감지하고 수정하며 직접 연결된 두 노드 간의 신뢰할 수 있는 데이터 전송을 보장한다. 이 계층은 비트 스트림을 프레임(frame)이라는 논리적 단위로 구성하여 관리한다. 

 

데이터 링크 계층은 다음과 같은 두 개의 하위 계층으로 나뉜다. 

  1. LLC(Logical Link Control) - 오류 제어, 흐름 제어, MAC 부계층에 대한 인터페이스 제공
  2. MAC(Media Access Control) - 물리적 주소 지정, 채널 접근 제어, 토폴로지 관리 담당 

데이터 링크 계층의 주요 기능 

  • 비트 스트림을 프레임 단위로 분할하고 각 프레임의 시작과 끝을 구분하기 위한 헤더와 트레일러를 추가한다. 
  • 네트워크 인터페이스 카드(NIC)에 할당된 MAC 주소를 사용하여 로컬 네트워크 내에서 장치를 식별한다. 
  • 전송 중에 발생한 오류를 감지하고 손상된 프레임을 재전송한다. 
  • 송신자와 수신자 간의 데이터 전송 속도를 조절하여 수신자의 버퍼 오버플로우를 방지한다. 
  • 공유 매체에서 여러 장치가 충돌 없이 통신할 수 있도록 조정한다. 

실제 프로토콜 예로는 이더넷, Wi-Fi, PPP, HDLC 등이 있다. 스위치는 데이터 링크 계층에서 동작하는 대표적인 네트워크 장비로, MAC 주소 테이블을 유지하면서 프레임을 적절한 포트로 전달한다. 

 

3) 네트워크 계층 

네트워크 계층은 서로 다른 네트워크 간의 패킷 라우팅과 전달을 담당하는 계층이다. 논리적 주소(IP 주소) 지정을 통해 발신지에서 목적지까지의 최적 경로를 결정하고, 그 경로를 따라 패킷을 전달한다. 

 

네트워크 계층의 주요 기능

  • IP 주소와 같은 논리적 주소를 사용하여 서로 다른 네트워크에 위치한 장치들을 식별한다. 
  • 발신지에서 목적지까지의 경로를 결정한다. (라우팅) 
    • 정적 라우팅은 네트워크 관리자가 수동으로 라우팅 테이블을 구성하는 방식이다. 
    • 동적 라우팅은 RIP, OSPF, BGP와 같은 라우팅 프로토콜을 사용하여 자동으로 최적 경로를 계산하고 업데이트하는 방식이다. 
  • 라우팅 테이블을 기반으로 패킷을 다음 홉(hop)으로 전달한다. 각 라우터는 목적지 IP 주소를 확인하고 라우팅 테이블에서 일치하는 엔트리를 찾아 해당 인터페이스로 패킷을 전달한다. 
  • 큰 패킷을 네트워크의 MTU(Maximum Transmission Unit)에 맞게 작은 조각으로 나누고 목적지에서 다시 원래 패킷으로 재조립한다. 
  • 혼잡 제어 및 서비스 품질(QoS)관리 등을 통해 네트워크 트래픽을 효율적으로 관리한다. 

주요 프로토콜

  • IP
  • ICMP
  • IGMP
  • ARP
  • 라우팅 프로토콜

라우터는 네트워크 계층에서 동작하는 대표적인 장비로, 서로 다른 네트워크를 연결하고 패킷을 적절한 경로로 전달한다. 현대 네트워크에서는 SDN(Software-Define Networking)과 같은 기술을 통해 네트워크 계층의 기능을 소프트웨어로 제어하는 추세이다. 

 

4) 전송 계층

전송 계층은 종단 간(end-to-end) 통신을 담당하며, 애플리케이션 간의 데이터 전송을 신뢰성 있게 제공한다. 이 계층은 세그먼트(segment)라는 단위로 데이터를 관리하며 포트 번호를 통해 특정 애플리케이션으로 데이터를 전달한다. 

 

전송 계층의 주요 기능 

  • 상위 계층에서 전달받은 데이터를 세그먼트로 분할하고, 목적지에서 다시 원래 메시지로 재조립한다. 
  • 통신 방식에 따라 연결 지향형과 비연결형 서비스를 제공한다.
    • 연결 지향형 서비스는 TCP와 같이 데이터 전송 전에 연결을 설정하고 전송이 완료된 후 연결을 종료한다. 
    • 비연결형 서비스는 UDP와 같이 연결 설정 없이 데이터를 전송한다. 
  • 16비트 포트 번호를 사용하여 동일한 호스트 내의 여러 애플리케이션을 구분한다. 포트 번호는 다음과 같이 분류된다. 
    • Well-known 포트(0-1023) 
    • 등록된 포트(1024-49151)
    • 동적/사설 포트(49152-65535) 
  • 송신자와 수신자 간의 데이터 전송 속도를 조절하여 수신자의 버퍼 오버플로우를 방지한다. 
  • 데이터 전송 중에 발생하는 오류를 감지하고 복구한다. 
  • 네트워크 혼잡을 감지하고 대응하여 성능을 최적화한다. 

주요 프로토콜

  • TCP/UDP
  • SCTP
  • DCCP

전송 계층은 네트워크 프로그래밍에서 소켓(socket) 인터페이스를 통해 접근할 수 있으며, 개발자는 전송 계층 프로토콜의 특성을 이해하고 적절한 프로토콜을 선택하는 것이 중요하다. 

5) 세션 계층

세션 계층은 애플리케이션 간의 대화(session)을 관리하고 제어하는 계층으로, 연결 설정 및 유지, 연결 종료, 데이터 교환 중의 동기화를 담당한다. 

 

세션 계층의 주요 기능 

  • 두 애플리케이션 간의 통신 세션을 생성하고 관리한다. 
  • 두 시스템 간의 통신을 반이중(half-duplex)이나 전이중(full-duplex) 방식으로 관리한다. 
  • 데이터 전송 중에 체크포인트를 설정하여 오류 발생 시 마지막 체크포인트부터 재개할 수 있도록 한다. 
  • 양방향 토큰에서 어느 쪽이 데이터를 전송할 수 있는지 제어하기 위해 토큰을 사용할 수 있다. 

주요 프로토콜

  • NetBIOS
  • RPC
  • SIP
  • SQL
  • ASP

세션 계층의 동작 예시를 살펴보면 웹 애플리케이션의 로그인 세션 관리가 대표적이다. 사용자가 로그인하면 세션이 생성되고, 세션 ID나 쿠키가 URL 파라미터로 클라이언트에 전달된다. 이후 통신에서는 이 세션 ID를 통해 사용자를 식별하고, 로그아웃하거나 일정 시간이 지나면 세션이 종료된다. 

 

현대의 인터넷 프로토콜 스택에서는 세션 계층의 기능이 대부분 애플리케이션 계층이나 전송 계층에 흡수되어 구현되는 경향이 있다. 예를 들어 HTTP 쿠키, WebSocket 연결 유지 메커니즘, OAuth 토큰 관리 등이 사실상 세션 계층의 기능을 수행한다. 

 

6) 표현 계층

표현 계층에서는 애플리케이션 계층에서 전달받은 데이터를 네트워크 전송에 적합한 형식으로 변환하거나 수신된 데이터를 애플리케이션이 이해할 수 있는 형식으로 변환하는 역할을 담당한다. 

 

표현 계층의 주요 기능 

  • 서로 다른 시스템 간의 데이터 형식을 일관되게 유지하기 위한 변환 작업을 수행한다. 
  • 데이터 보안을 위해 암호화 알고리즘을 적용하거나 암호화된 데이터를 원래 형태로 복원한다. 
  • 네트워크 대역폭을 효율적으로 사용하기 위해 데이터를 압축하고, 수신 측에서 다시 압축을 해제한다. 
  • 다양한 언어와 문자 집합을 지원하기 위한 인코딩 방식을 관리한다. 

주요 프로토콜 

  • MIME
  • TLS/SSL
  • XDR
  • ASN.1

표현 계층의 동작 예시를 살펴보면, 웹 브라우저에서 HTTPS 통신 시 다음과 같은 과정을 거친다. 

1. 브라우저가 JSON 형식의 데이터를 서버로 전송하려고 한다. 

2. 표현 계층에서는 이 JSON 데이터를 바이트 스트림으로 직렬화한다. 

3. TLS를 사용하는 경우, 직렬화된 데이터를 암호화한다. 

4. 암호화된 데이터는 하위 계층을 통해 서버로 전송된다. 

5. 서버 측에서는 표현 계층이 수신된 데이터를 복호화한다. 

6. 복호화된 바이트 스트림을 다시 JSON 객체로 역직렬화하여 애플리케이션 계층에 전달한다. 

 

현대 웹 애플리케이션에서는 JSON, XML, Protocol Buffers, MessagePack 등 다양한 데이터 표현 방식이 사용되며, 이러한 형식 간의 변환과 처리가 표현 계층의 중요한 역할이다. 또한 HTTPS, FTPS와 같은 보안 프로토콜에서 암호화 기능 역시 표현 계층의 핵심적인 요소이다. 

 

특히 웹 환경에서는 브라우저와 서버 간의 다양한 데이터 포맷 변환이 필요하다. 브라우저는 JavaScript 객체를 JSON으로 변환하고 서버는 이를 다시 내부 객체로 변환하는 과정이 모두 표현 계층의 영역이다. 멀티미디어 처리에서도 이미지, 오디오, 비디오 등의 인코딩과 디코딩이 표현 계층에서 이루어진다. 

 

7) 애플리케이션 계층 

애플리케이션 계층은 OSI 모델의 최상위 계층으로, 사용자나 애플리케이션에 직접 서비스를 제공하는 역할을 담당한다. 이 계층은 사용자 인터페이스, 이메일, 파일 전송, 웹 브라우징과 같은 네트워크 서비스를 제공하는 프로토콜을 포함한다. 

 

애플리케이션 계층의 주요 기능 

  • 네트워크를 통해 사용자에게 이메일 및 파일 공유, 웹 액세스 등의 서비스를 제공한다. 
  • 서로 다른 호스트에서 실행 중인 애플리케이션 간의 통신을 지원한다. 
  • 네트워크 서비스를 식별하고 접근할 수 있게 한다. 
  • 통신 중인 애플리케이션 간의 상호작용을 조정한다. 

주요 프로토콜 

  • HTTP/HTTPS
  • SMTP/POP3/IMAP
  • FTP/SFTP
  • DNS
  • DHCP
  • Telnet, SSH
  • SNMP
  • RTP
  • MQTT
  • WebSocket

웹 브라우저 통신 과정의 실제 동작 방식을 살펴보자. 

1. 사용자가 웹 브라우저에 URL을 입력한다. 

2. DNS 프로토콜을 사용하여 도메인 이름을 IP 주소로 변환한다. 

3. HTTP/HTTPS 프로토콜을 사용하여 웹 서버에 요청을 보낸다. 

4. 웹 서버는 요청을 처리하고 HTTP/HTTPS 응답을 반환한다. 

5. 브라우저는 응답을 받아 사용자에게 웹 페이지를 표시한다. 

 

API와 웹 서비스도 애플리케이션 계층에서 작동한다. RESTful API, SOAP, GraphQL 등은 모두 애플리케이션 간의 통신을 위한 인터페이스를 제공한다. 현대 웹 개발에서는 마이크로서비스 아키텍처(MSA)가 널리 사용되면서 애플리케이션 계층의 프로토콜이 다양해지고 있다. gRPC, Apache Thrift, Apache Kafka 등의 기술은 분산 시스템 간의 효율적인 통신을 가능하게 한다. 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함