Finn.ian
article thumbnail

04. 서버 프로그램 구현 - OSI 7 계층

서버 프로그램은 일반적으로 응용 계층에서 구현된다. 응용 계층에서는 사용자의 요청을 처리하고, 데이터를 전송하거나 수신한다. 응용 계층에서 데이터를 전송하거나 수신하기 위해서는 하위 계층의 기능을 이용해야 한다.

 

OSI 7 계층을 이해한다면, 서버 프로그램의 구현을 보다 쉽게 이해할 수 있으며, 네트워크 통신에서 발생하는 문제를 해결하는 데에도 도움이되기 때문에 아래 글을 작성해본다.

1. 개념

  • 국제표준화기구(ISO)에서 개발한 모델로, 네트워크 프로토콜 디자인과 통신을 계층으로 나눠 설명한 것으로
    실제 인터넷에서 사용되는 TCP/IP는 OSI 참조 모델 기반으로 상업적이고 실무적으로 이용 가능하도록 단순화한 것이다.
  • 개방형 시스템 상호 연결 모델의 표준이다.

 

출처 : Flicker Jinho Jung

 

2. 탄생 배경

  • 초기 여러 정보 통신 업체의 장비들은 자신의 업체 장비들끼리만 연결되어 호환이 되지 않았다.
  • 모든 시스템들의 상호 연결에 있어 문제 없도록 표준을 정한 것이 OSI 7 Layer이다.
  • 표준(호환성)과 학습도구에 의미로서의 그림처럼 제작되었다.
    (01.개념 부분에서의 이미지 참고)

3. 작동 원리

  1. OSI 7 Layer : 응용, 표현, 세션, 전송, 네트워크, 데이터링크, 물리계층으로 분리
  2. 전송 시, 7계층 → 1계층으로 각 층마다 인식할 수 있는 헤더를 붙임 (캡슐화)
  3. 수신 시, 1계층 → 7계층으로 헤더를 떼어냄 (디캡슐화)
  4. 출발지에서 데이터가 전송될 때 헤더가 추가되는데 2계층에서만 오류제어를 위해 꼬리부분이 추가
  5. 물리계층에서 1, 0의 신호가 되어 전송매체를 통하여 전송
    • 전송매체는 동축케이블, 광섬유 등

4. OSI 7 Layer 종류 및 특징

[그림1. OSI 7 Layer Model과 TCP/IP Protocol 설명]

4-1. 물리 계층(Physical Layer) 🕋

[그림2. 리피터 이미지, 출처 : Gmarket 이미지]

  • 7계층 중 최하위 계층
  • 주로 전기적, 기계적, 기능적 특성을 이용하여 데이터를 전송
  • 데이터 단위 : 비트(Bit)
    • 즉, On/Off의 전기적 신호 상태로 이루어져 이 계층은 데이터 전송이 주 목적
  • 역할 : 데이터 전송
  • 장비 : 케이블, 리피터, 허브 등

4-2. 데이터링크 계층(DataLink Layer) 🧨

[그림3. 랜카드 이미지, 출처 : 캉통님 게시글]

  • 물리적인 연결을 통하여 인접한 두 장치 간의 신뢰성 있는 정보 전송을 담당 (Point-To-Point 전송)
  • MAC 주소로 통신
  • 역할 : 오류 감지 시, 재전송 기능 존재 (안전한 정보 전달을 위해)
  • 데이터 단위 : 프레임(Frame)
  • 장비 : 브리지, 스위치 등

4-3. 네트워크 계층(Network Layer) 📍

[그림4. L3 스위치, 출처 : 자이젤코리아 이미지]

  • 전송 데이터를 목적지까지 경로를 찾아 전송하는 계층
  • 라우팅 기능을 맡고 있는 계층으로 목적지까지 가장 안전하고 빠르게 데이터를 보내는 기능을 가짐
    • 즉, 최적의 경로를 알려주는 계층
  • 컴퓨터에게 데이터를 전송할지 주소를 갖고 있어서 통신 가능
    ( = 우리가 자주 듣는 IP 주소가 바로 네트워크 계층 헤더에 속함 )
  • 주소(IP)를 정하고, 경로(Route)를 선택하고, 패킷을 전달하는 것이 가장 핵심인 계층
  • 데이터 단위 : 패킷(Packet)
  • 장비 : 라우터, L3 스위치 등

4-4. 전송 계층(Transport Layer) 📞

  • 데이터를 전송하고 전송 속도를 조절하며, 오류가 발생된 부분은 다시 맞춰주는 계층
  • 종단 간 신뢰성 있고, 정확한 데이터 전송을 담당
  • 데이터 전송을 위하여 Port 번호 사용
  • 역할 : 오류검출 및 복구, 흐름제어, 중복 검사 등 수행
  • 데이터 단위 : TCP(Segment), UDP(Datagram)

[그림5. TCP/UDP 비교, 출처 : Subspace 이미지]

04-5. 세션 계층(Session Layer) 📮

  • 네트워크 상 양쪽 연결을 관리하고 연결을 지속시켜주는 계층
  • 통신 장치 간 상호작용 및 동기화 제공
  • TCP/IP 세션을 만들고 삭제시킴
  • 역할 : 세션 생성 및 유지 / 세션 종료 / 전송 중단 시 복구 관리
  • 대표적인 예시 : OS

[그림6. 운영체제 종류, 출처 : 컴공K 게시글 이미지]

 

04-6. 표현 계층(Presentation Layer) 🙆

  • 데이터를 어떻게 표현할지 정하는 역할을 하는 계층
  • 데이터가 다양하기 때문에 데이터를 이해할 수 있게 응용프로그램에 맞춰 변함
  • 표현 계층의 3가지 역할
    1. 송신자에서 온 데이터 해석을 위한 데이터 부호화, 변화
    2. 수신자에서 데이터 압축을 풀 수 있는 방식인 데이터 압축
    3. 데이터의 암호화와 복호화 (MIME 인코딩이나 암호화)
  • 대표적인 예시 : JPEG, TIFF, GIF, MPEG 등

 

[그림7. 이미지 압축방식 이해하기, 출처 : dydtjr1128 게시글 이미지]

04-7. 응용 계층(Application Layer) 🗣️

  • OSI의 최상위 계층
  • 사용자와 가장 밀접한 계층으로 사용자 또는 어플리케이션이 네트워크에 접근할 수 있도록 도와줌
  • 사용자를 위한 인터페이스 지원(사용자에게 보이는 유일한 계층)
  • 대표적인 예시 : 메일 전송, 인터넷 접속, 동영상 플레이어 등

[그림8. freepik image]

 

 

[참고자료]

더보기

https://blog.naver.com/zkdxhd10823/221243470867

 

NIC(Network Interface Card 또는 랜카드)

이번 시간에는 NIC에 대해 알아보도록 합시다. . . NIC은 Network Interface Card의 약자로, 우리...

blog.naver.com

http://www.zyxel.kr/product_discontinue.php

 

자이젤코리아

유무선 네트워크 솔루션

www.zyxel.kr

https://velog.io/@sj_dev_js/네트워크-OSI-7계층을-왜-배울까

 

[네트워크] OSI 7계층을 왜 배울까?

네트워크를 공부할 때 가장 먼저 배우게 되는 것이 TCP/IP 모델 혹은 OSI 모델이다.오늘날의 네트워크에서 OSI모델은 참조적 모델일 뿐이고 실제로 쓰이는 것은 TCP/IP 모델이라는데 그렇다면 OSI 모

velog.io

https://velog.io/@nellholic108/네트워크-OSI-7-계층

 

네트워크 OSI 7 계층

네트워크 관련 개념을 공부하던 중에 '데이터를 패킷으로 감싼다' 이런 개념이 많이 나왔습니다. 대략적으로 이해를 하고 있다가 스터디 중에 검색키워드를 알려주셔서이 부분에 대해서 조금

velog.io

https://subspace.com/resources/tune-tcp-udp-performance

 

Introductory Guide to Tuning Your TCP and UDP Performance

There are some basic considerations and best practices for tuning TCP and UDP performance. Buffer and write sizes can have a dramatic impact.

subspace.com

https://computer-science-student.tistory.com/384

 

운영체제(OS, Operating System) - 정의, 종류, 기능, 목적

운영체제(OS, Operating System)란? 운영체제(OS, Operating System)는 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고, 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프

computer-science-student.tistory.com

https://dydtjr1128.github.io/image/2019/07/01/Image-compression.html

 

이미지 압축방식 이해하기(bmp, jpeg, jpg, png, svg) - dydtjr1128's Blog

Image compression 1. Intro 이미지 압축 방식을 이해하기 앞서 이해해야 할 몇가지가 있다. Lossy vs Lossless Indexed...

dydtjr1128.github.io

https://www.freepik.com/free-psd/technology-icon-rendering_52803684.htm#query=3d%20mail%20server&position=5&from_view=search&track=ais&uuid=0e9f3bce-ca50-4a4e-854c-46dd5eb1f81b

 

Free PSD | Technology icon rendering

Download this Free PSD File about Technology icon rendering, and discover more than 99 Million Professional Graphic Resources on Freepik. #freepik #psd #3d #3d #sync

www.freepik.com

 

profile

Finn.ian

@Finn_

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그