CS/Network

[Chapter 2] 네트워크 모델(OSI 참조 모델)

devrabbit22 2025. 2. 7. 16:19

네트워크에 연결된 컴퓨터들이 데이터를 주고 받으려면 서로 연동할 수 있게 표준화된 인터페이스를 지원해야 한다.

일반적으로 컴퓨터 네트워크에서 계층 구조로 모듈화된 프로토콜 스택(STACK)을 사용한다.

국제 표준화 기구인 ISO가 확립한 OSI(Open System Interconnection) 7계층 모델은 개방화된 데이터 통신 환경에 적합한 계층적 구현 모델의 표준이다.

 

OSI 7계층 모델

ISO(International Standard Organization에서 제시한 OSI 7계층 모델

 

  • 연결된 두 호스트가 각각 7계층으로 구성된 모듈을 수행함으로써 데이터 송수신이 가능하다.
  • 전송 데이터는 송신 호스트의 응용계층에서 시작해 하위 계층으로 순차적으로 전달되어, 최종적으로 물리 계층에서 수신 호스트에 전달된다.
  • 수신 호스트에서는 데이터를 상위 계층으로 순차적으로 이동시켜 응용 계층까지 보내준다.
  • 데이터가 하위 계층으로 내려갈 때는 각 계층의 프로토콜에서 정의한 헤더 정보가 추가된다.
  • 물리 계층을 제외한 모든 계층에서 헤더 정보가 추가되고, 데이터를 수신하는 호스트에서는 반대로 상위 계층으로 올라가며 순차적으로 헤더 정보를 제거하고 해석한다.

 

용어 정의

임의의 호스트에서 실행되는 계충n 모듈은 상대 호스트의 계층 n 모듈과 논리적으로 통신하는데, 이들이 사용하는 규칙을 계층 n 프로토콜이라 한다. 프로토콜의 역할은 프로토콜에서 정의된 기능을 수행하면서 필요한 정보를 서로 교환하는 것이다. 프로토콜 기능을 원활하게 수행하려면 주소 표현 방법, 오류 제어, 흐름 제어 등의 기능이 설계와 구현 과정에서 반영되어야 한다.

동일 계층에 위치한 통신 양단은 같은 프로토콜을 사용하여 통신하기 때문에 동료 프로세스(peer process)라 한다. 한 호스트에서 상하로 이웃하는 계층에 위치한 모듈 사이에는 인터페이스가 정의되어 둘 사이의 접근 방법을 제한한다. 상위 계층에서는 하위 계층의 인터페이스를 통해 하위 계층의 서비스를 이용할 수 있다.

송신 호스트에서 데이터를 전달할 때는 동료 프로세스에 직접 전달하는 것이 아니라, 하위 계층을 통하여 간접적으로 서비스를 요청한다. 이 요청은 최하위에 있는 물리 계층까지 반복된다. 수신 호스트에서는 반대로 상위 계층으로 데이터가 전달되면서 프로토콜 기능이 동작한다.

각 계층의 동료 프로세스가 직접 통신하는 형태를 보이지만, 실제로는 항상 물리 계층을 통해 데이터가 전송되는 것 이다.

 

헤더 정보

프로토콜 스택의 맨 위에 위치한 일반 사용자는 전송 데이터가 있으면 이를 응용 계층에 보내 전송을 요청한다. 응용 계층에서는 데이터에 자신의  프로토콜에서 정의한 헤더 정보를 추가해 표현 계층에 보낸다. 표현 계층도 표현 계층에서 사용하는 프로토콜의 헤더 정보를 추가해 하위 계층으로 보낸다. 이러한 일련의 과정은 물리 계층에서 데이터가 물리적으로 전송될 때 까지 반복된다.

물리 계층에서는 수신 호스트에 데이터를 실제로 전송하고, 이를 수신한 호스트에서는 송신 절차와 반대 방향으로 헤더를 제거하는 과정이 반복된다. 즉, 계층별로 해당 계층의 헤더 정보를 해석하여 적절히 처리한 후에 상위 계층으로 올려준다. 따라서 송신 호스트에서 계층별로 추가된 헤더 정보가 수신 호스트에서 해석 및 삭제되어 최상위 수신자는 원래 전송 데이터만 받는다. 이 때 각 계층의 프로토콜은 정해진 기능을 수행하여 데이터 송신 과정에서 발생하는 문제점을 해결해준다.

 

중개 기능

송신 호스트에서 수신 호스트로 데이터를 전달하려면 중개 역할을 수행하는 중개 노드를 거쳐야 한다. 중개 시스템은 데이터가 목적지까지 올바르게 전달되도록 경로 배정 기능을 수행한다. 중개 시스템에서는 경로 배정 기능을 수행하는 네트워크 계층의 프로토콜이 동작하는데 이와 같은 경로 배정 기능을 라우팅 이라 한다.

중개 노드인 라우터는 자신에게 도착한 데이터의 헤더 정보를 해석해서 적절한 경로로 전달하며, 다음 라우터로 보내기 전에 헤더 정보를 수정하는 작업도 진행한다. 라우터 좌우에 위치한 네트워크는 종류가 다를 수 있다. 따라서 헤더 정보의 값을 해석하여 변환하는 작업은 라우터의 중요 기능에 해당한다.

 

계층별 기능

OSI 7계층 모델의 모든 계층이 중요하지만, 특히 전송 계층이 중요하다. 전송 계층은 통신 양단에 있는 최종 사용자(프로세스) 사이의 종단 연결을 제공한다. 호스트 앞에서 실행되는 프로세스와 프로세스 사이의 연결을 설정하여 데이터를 주고 받을 수 있게 해주는 것이 바로 전송 계층이다. 전화 시스템을 에로 들면 통화자 사이에 통화 연결을 설정하는 것이 바로 전송 계층이다.

전송 계층의 하위에 있는 물리계층, 데이터 링크 계층, 네트워크 계층은 전송 계층의 연결을 설정하고 지원하는 역할을 수행한다. 상위에 있는 세션 계층, 표현 계층, 웅용 계층은 전송 계층의 연결을 어떻게 활용할지에 대하여 다룬다. 따라서 OSI 7계층 모델은 전송 계층을 기준으로 두 부분으로 나뉜다고 볼 수 있다. 실제로 TCP/IP모델에서는 운영체제 내부에 계층 4까지의 기능을 구현하고, 상위 계층의 기능은 사용자 프로그램으로 구현한다.

 

물리 계층

OSI 7계층의 맨 밑에 위치하는 물리 계층은 전송 매체의 물리적인 인터페이스에 관한 사항을 기술한다. 즉, 전송 매체에서는 개별 정보의 비트 교환 문제를 다룬다. 물리 계층은 하드웨어 시스템으로 구현되고, 계층 2 이상의 프로토콜들은 소프트웨어적으로 구현된다.

물리 계층에서 다루는 전송 매체의 특성에는 데이터의 전송 속도, 송수신 호스트 사이의 클록 동기화 방법, 물리적 연결 형태 등이 있다.

 

데이터 링크 계층

데이터 링크 계층은 물리 계층을 통해 전송되는 데이터의 물리적 전송 오류를 해석한다. 결과적으로 상위의 네트워크 계층에 신뢰성이 있는 패킷 전송을 보장해주어 전송 오류에 대한 부담을 없애준다. 데이터 링크 계층은 갈림길에서 전송 경로를 선택할 수 없으므로 두 호스트가 일대일로 직접 연결된 환경에서만 데이터 전송을 지원한다.

데이터 링크 계층을 이용해 전송되는 데이터를 프레임이라 부른다. 프레임 헤더에 표시되는 송수신 호스트 정보에는 LAN 카드에 내장된 송수신 호스트의 MAC 주소가 기록된다. 데이터 링크 계층은 다른 상위 계층처럼 송신 호스트와 수신 호스트 사이의 전송 속도 차이를 고려한 흐름 제어 기능도 지원할 수 있다.

 

네트워크 계층

네트워크 계층은 송신 호스트가 전송한 데이터가 어떤 경로를 통해 수신 호스트에 전달되는지를 결정하는 라우팅 문제를 처리한다. 전달 경로 선택은 미리 정해지는 정적인 방식과 네트워크의 현재 부하 상태에 따라 결정되는 동적인 방식으로 구분한다.

네트워크 계층에서는 전송 데이터를 패킷이라 부르며, 중개 과정에서 경로 선택의 기준이 되는 호스트 주소가 필요하다. 인터넷에서는 IP 프로토콜이 네트워크 선택의 기준이 되는 호스트 주소가 필요하다. 인터넷에서는 IP 프로토콜이 네트워크 계층의 기능을 수행하므로 호스트의 IP 주소가 경로 선택에 중요한 기준이 된다. 인터넷에 연결된 호스트는 네트워크 계층의 주소와 데이터 링크 계층의 주소를 모두 가진다.

컴퓨터 네트워크를 이용해 전송되는 패킷이 지나치게 많으면 네트워크의 전송 속도가 떨어진다. 네트워크의 전송 속도가 감소하면 프로토콜 동작에 많은 영향을 미칠 수 있는데, 네트워크의 트래픽이 과도하게 증가하는 문제를 조절하는 혼잡 제어 기능도 네트워크 계층에서 담당한다.

 

전송 계층

전송 계층은 송신 프로세스와 수신 프로세스를 직접 연결하는 단대단 통신 기능을 제공한다. 전송 계층 아래에 있는 하위 계층은 호스트와 호스트 사이의 데이터 전송 과정에서 발생하는 문제들만 반영한다. 반면 전송 계층은 컴퓨터 내부에서 논리적으로 구축되는 통신 당사자인 프로세스 사이의 통신 문제를 다룬다.

전송 계층에서는 전송 오류율, 전송 속도 등과 같은 일반 사용자의 서비스 요구 유형에 대한 고려와 흐름 제어 기능도 제공한다.

 

 

세션 계층

세션 계층의 기능은 전송 계층과 거의 유사하다. 그러나 사용자에게 원격 파일 전송이나 원격 로그인 등과 같은 상위적 연결 개념인 세션 기능을 제공한다는 점이 다르다.

세션 계층에서는 송수신 호스트 사이의 대화 제어를 비롯해 상호 배타적인 동작을 제어하기 위한 토큰 제어, 일시적인 전송 장애를 해결하기 위한 동기 기능을 제공한다.

 

표현 계층

계층 5까지는 주로 데이터의 전송에 관한 내용을 다루지만 표현 계층은 데이터의 의미와 표현 방법을 처리한다.

즉, 통신 양단에서 서로 이해할 수 있는 표준방식으로 데이터를 코딩하는 문제를 다룬다.

호스트의 데이터 표현 방법이 서로 다르면 상대방의 데이터를 이해할 수 있도록 적절하게 변환하는 과정이 필요하다. 인터넷상에서 개인 정보의 유통과 상거래가 활발해지면서 보안의 중요성이 강조되고 있는데, 데이터를 암호화하는 기술도 표현 계층에서 다룬다. 또한 영상 정보 같은 대용량 데이터의 크기를 줄여주는 압축도 표현 계층의 주요 기능이다.

 

응용 계층

최상위 응용 계층에서는 다양하게 존재하는 응용 환경에서 공통으로 필요한 기능을 다룬다. 응용 환경은 매우 다양해 범위가 방대하지만 인터넷 환경에서 많이 사용하는 서비스는 FTP로부터 시작된 파일 공유 서비스이다. 네트워크 파일을 이용해야 할 때는 파일을 공유할 뿐 아니라 허가된 사용자가 적절한 접근 권한에 따라 사용할 수 있게 해야한다. 텔넷이 제공하는 가상 터미널, 전자 메일 등도 대표적인 인터넷 서비스이다. 네트워크 파일을 이용해야 할 때는 파일을 공유할 뿐 아니라 허가된 사용자가 적절한 접근 권한에 따라 사용할 수 있게 해야 한다. 텔넷이 제공하는 가상 터미널, 전자 메일 등도 대표적인 인터넷 서비스이다.


Reference

쉽게 배우는 데이터 통신과 컴퓨터 네트워크

중개기능 이미지 출처:  https://soso-hyeon.tistory.com/m/95

 

[쉽게 배우는 데이터 통신과 네트워크] CH2. 네트워크 모델

01. 계층 구조의 개념프로토콜의 설계 과정은 모듈(Module)화를 통하여 이루어진다. 이렇게 함으로써 사용자에게 더 편리하고 간편한 통신 기능을 제공할 수 있다. 1. 계층적 모듈 구조모듈은 독립

soso-hyeon.tistory.com