개발하는 자몽

[Network] 네트워크와 OSI 7 계층 1: OSI 7 계층과 user mode, kernel mode 본문

개발 지식

[Network] 네트워크와 OSI 7 계층 1: OSI 7 계층과 user mode, kernel mode

jaamong 2026. 5. 7. 14:08

네트워크 공부 해야 해!!!라고 생각만 하다가 드디어 시간이 나서 강의를 듣고 있다. 공부하고 뒤돌아보면 까먹으니, 기록해 두기 위해서 포스팅을 작성하려고 한다.

네트워크, OSI 7 Layer

네트워크란 뭘까? 개념보단 추상적으로 알고있다는 느낌이 드는 용어다. 현재 듣고 있는 강의에서는 다음과 같이 생각한다고 한다.  (정의 X)

  • 네트워크 = 관계
  • 네트워킹(networking) = 상호작용

누군가와 상호작용을 하기 위해서는 몇 가지 고려할 것이 있다. 

  1. 언어
  2. 소통 방법 : 말 / 글(email, sms)
  3. 말 → 공기중, 근처에 있어야 함

아래에서 위로 올라갈수록, 아래의 조건이 전제되어야 위의 것이 가능하다는 것을 알 수 있다. → 위가 아래를 의존하는 계층 구조(Layered) 형태.

그리고 '의존적 관계가 성립하는 프로토콜(protocol, 규칙)을 계층 구조로 나열한 것이 OSI 7 Layer'라고 한다. 

 

OSI 7 Layer는 개념에 관한 것이다. 우리가 자주 접하는 TCP/IP는 개념이 아닌 프로토콜(개념)의 구현이다. 따라서 이 둘을 알기 위해서는 '네트워크가 무엇인가', '전송 계층이란 무엇인가'를 공부하는 것이 아닌 이들의 문법이나 규칙을 공부해야 한다. 전자를 공부하는 것은 비유하자면 철학을 공부하는 것과 비슷하다고 한다. 

 

User mode, Kernel mode

컴퓨터는 하드웨어와 소프트웨어로 이루어진다. 그리고 소프트웨어는 User mode application, Kernel mode software로 나누어진다. 

하드웨어에는 흔히 랜카드(LAN card)라고 하는 NIC(Network Interface Card)가 존재한다. 그리고 어떤 하드웨어가 있을 때 이를 제어하기 위한 소프트웨어가 존재한다. 이 소프트웨어를 드라이버(Driver)라고 한다. NIC을 사서 컴퓨터에 장착해도 드라이버가 설치되어 있어야 작동할 수 있다. 

그 드라이브 위 커널(운영체제)을 이루고 있는 구성 요소에는 프로토콜이 구현된 소프트웨어가 있다. 그중에 TCP와 IP가 존재한다. 

커널 모드의 구성 요소를 사용자 모드 애플리케이션 프로세스(예: Chrome 브라우저)가 접근할 수 있도록 커널에서 길을 열어준다. 애플리케이션 프로세서(사용자 모드)에서 운영 체제(커널 모드)로 접근하려면 커널이 정해준 인터페이스를 통해야 한다. 이 인터페이스는 파일 형태이며, TCP/IP를 추상화한 인터페이스 파일을 소켓(Socket)이라고 한다. 

"소켓(파일)을 열었다/닫았다."라고 하는데, 이 소켓을 여는 주체는 프로세스이다. → "어떤 프로세스가 어떤 소켓을 열었다. 즉, 파일을 열었다."라고 보면 된다. 

 

Notice1 커널과 운영 체제는 다르고, 드라이버도 다르다.

Notice2 드라이버 위 커널/OS가 있다고 했는데, 계층 상 표현이 그렇다. 드라이버는 커널에서 실행된다. 

 

위 내용을 OSI 7 계층으로 보면,

  • S/W
    • User mode (프로세스 수준으로 설명이 가능하고, 어떤 프로그램이 가지고 있는 특징으로 볼 수 있음)
      • L7 : Application
      • L6 : Presentation
      • L5 : Session → Socket(File)
    • Kernel mode
      • L4 : Transport TCP (전송에 대해 다룸)
      • L3 : Network IP (네트워크 자체에 대해 다룸)
  • H/W
    • L2 : Data Link → 하드웨어 일정 수준 ~ 커널의 드라이버 영역
    • L1 : Physical → NIC
        •  
Comments