개발자공부일기
OSI 7계층 본문
OSI 7계층(Open Systems Interconnection 7-Layer Model)은 네트워크 통신을 이해하고 설계하는 데 중요한 이론적 모델로, 각 계층이 맡는 기능을 명확하게 구분하여 복잡한 네트워크 시스템을 관리하기 쉽게 만듭니다. OSI 모델은 국제 표준화 기구인 ISO(International Organization for Standardization)에서 정의하였으며, 네트워크 통신을 7개의 계층으로 나누어 설명합니다. 이 모델은 각 계층이 명확한 역할을 가지며, 각 계층에서 발생하는 기능을 잘 이해하고 디버깅할 수 있도록 돕습니다.
각 계층의 기능과 동작 방식에 대해 더 자세히 설명하겠습니다.
1. 물리 계층 (Physical Layer)
기능:
물리 계층은 네트워크 장비 간의 실제 전송 매체를 통해 비트를 전송하는 역할을 합니다. 즉, 데이터를 전기적 신호나 광 신호로 변환하여 물리적 매체를 통해 전송합니다.
주요 역할:
- 데이터 전송: 1과 0으로 이루어진 비트를 전기 신호로 변환하고, 이를 물리적 매체(구리선, 광섬유, 무선 등)를 통해 전달합니다.
- 물리적 장비 규격 정의: 케이블, 네트워크 카드, 리피터 등
- 연결 방식 정의: 네트워크 케이블의 종류와 전송 방식, 전압 등
- 데이터의 전송 속도와 전송 방식을 결정합니다.
예시:
- 케이블: 이더넷 케이블 (RJ-45), 광섬유
- 장비: 허브, 리피터, 네트워크 카드
2. 데이터 링크 계층 (Data Link Layer)
기능:
데이터 링크 계층은 물리 계층에서 전송된 비트를 프레임 단위로 묶어 데이터의 전송을 관리합니다. 또한, 오류 감지 및 수정을 담당하고, **물리 주소(MAC 주소)**를 사용하여 장치 간의 연결을 설정합니다.
주요 역할:
- 데이터 프레임 생성: 데이터를 프레임으로 묶어 전송하고, 수신 측에서는 이를 다시 데이터로 변환합니다.
- 오류 감지 및 수정: 전송 중 발생할 수 있는 비트 오류를 감지하고 수정하는 기능을 제공합니다.
- 흐름 제어: 데이터를 전송하는 속도를 제어하여 네트워크의 혼잡을 방지합니다.
- MAC 주소를 기반으로 장치 간의 주소 지정 및 데이터 전송을 관리합니다.
예시:
- 프로토콜: 이더넷, Wi-Fi, PPP (Point-to-Point Protocol)
- 장비: 스위치, 브리지, NIC(네트워크 인터페이스 카드)
3. 네트워크 계층 (Network Layer)
기능:
네트워크 계층은 데이터를 패킷 단위로 전송하며, **논리적 주소(IP 주소)**를 사용하여 네트워크 간에 데이터를 라우팅합니다. 즉, 여러 네트워크 간에 데이터를 어떻게 전달할지 결정하는 계층입니다.
주요 역할:
- 라우팅: 데이터를 목적지까지 전달하기 위해 최적의 경로를 찾습니다.
- IP 주소 지정: 각 장치에 고유한 IP 주소를 부여하여, 인터넷 또는 네트워크 내에서 장치가 서로를 식별하고 통신할 수 있게 합니다.
- 패킷 포워딩: 데이터를 패킷으로 분할하고, 각 패킷을 올바른 경로로 전달합니다.
- 네트워크 주소 변환: 예를 들어, NAT(Network Address Translation)을 통해 사설 IP 주소와 공인 IP 주소 간의 변환을 처리합니다.
예시:
- 프로토콜: IP, ICMP, ARP
- 장비: 라우터, 게이트웨이
4. 전송 계층 (Transport Layer)
기능:
전송 계층은 종단 간 통신을 담당하며, 데이터를 세그먼트 단위로 나누어 전송하고, 데이터의 신뢰성 있는 전송을 보장합니다. 이를 위해 흐름 제어와 오류 제어를 수행합니다.
주요 역할:
- 세그먼트화: 데이터를 작은 세그먼트로 나누어 전송하고, 이를 수신 측에서 재조합합니다.
- 흐름 제어: 송신자와 수신자 간의 데이터 전송 속도를 조절하여 버퍼 오버플로우를 방지합니다.
- 오류 제어: 데이터 전송 중 오류를 감지하고, 손실된 데이터를 재전송합니다.
- 연결 지향적 통신: TCP는 연결을 설정한 후 데이터를 전송하고, 수신 확인을 통해 오류를 복구합니다.
- 비연결 지향적 통신: UDP는 빠른 전송을 위해 연결을 설정하지 않고 데이터를 전송합니다.
예시:
- 프로토콜: TCP, UDP
- 장비: 게이트웨이, 방화벽 (전송 제어 기능을 지원)
5. 세션 계층 (Session Layer)
기능:
세션 계층은 세션의 설정, 유지, 종료를 관리합니다. 세션은 두 장치 간의 연결된 대화를 의미하며, 이를 통해 통신의 동기화 및 상태를 관리합니다.
주요 역할:
- 세션 관리: 클라이언트와 서버 간의 통신을 설정하고, 대화 상태를 유지합니다.
- 동기화: 대화 중 메시지가 올바르게 전송되고 처리되도록 동기화 작업을 합니다.
- 세션 종료: 데이터 전송 후 연결을 종료하고, 리소스를 반환합니다.
예시:
- 프로토콜: NetBIOS, RPC (Remote Procedure Call)
6. 표현 계층 (Presentation Layer)
기능:
표현 계층은 데이터를 형식화하거나 인코딩하여 다른 형식으로 변환합니다. 또한, 데이터를 암호화/복호화하거나 압축하는 작업을 처리합니다. 서로 다른 시스템 간 데이터 형식 차이를 해결하는 역할을 합니다.
주요 역할:
- 데이터 형식 변환: 데이터 포맷을 변환하여, 서로 다른 시스템에서 읽을 수 있도록 합니다.
- 암호화 및 복호화: 데이터 보안을 위해 데이터를 암호화하고, 수신 측에서 복호화합니다.
- 데이터 압축: 전송 데이터를 압축하여 효율적인 전송을 지원합니다.
예시:
- 프로토콜: SSL/TLS, JPEG, GIF, PNG, MPEG, ASCII, EBCDIC
7. 응용 계층 (Application Layer)
기능:
응용 계층은 최종 사용자가 직접적으로 상호작용하는 계층으로, 네트워크 서비스 및 응용 프로그램 간의 인터페이스를 제공합니다. 이 계층에서 사용자와 네트워크 간의 데이터 통신이 이루어집니다.
주요 역할:
- 사용자 인터페이스 제공: 사용자가 네트워크를 통해 서비스를 이용할 수 있도록 지원합니다.
- 애플리케이션 간 통신: 웹 브라우징, 파일 전송, 이메일 등의 애플리케이션 서비스를 제공합니다.
예시:
- 프로토콜: HTTP, FTP, SMTP, DNS, POP3, IMAP
OSI 모델의 데이터 흐름
- 하향식: 데이터가 전송될 때는 상위 계층에서 시작해 하위 계층으로 내려가며, 각 계층은 데이터를 처리한 후 다음 계층으로 전달합니다.
- 상향식: 수신된 데이터는 물리 계층에서 받아서 각 계층을 통해 다시 상위 계층으로 올라가며, 각 계층은 데이터를 분석하고 처리합니다.
OSI 모델의 의의
- 모듈화: 각 계층은 독립적으로 설계되고 운영되므로, 한 계층의 변경이 다른 계층에 미치는 영향을 최소화합니다.
- 상호운용성: 다른 종류의 시스템이 네트워크에서 상호작용할 수 있도록 합니다.
- 디버깅과 문제 해결: 네트워크 문제 발생 시, 각 계층을 독립적으로 분석하여 원인을 찾을 수 있습니다.
OSI 7계층 모델은 네트워크 설계와 문제 해결에 중요한 이론적 도구이며, 실무에서도 네트워크 관련 이슈를 해결하는 데 많은 도움이 됩니다.
'TIL(Today I Learned)' 카테고리의 다른 글
아이탬시뮬레이터 트러블 슈팅 (0) | 2024.11.28 |
---|---|
Prisma Transaction (0) | 2024.11.27 |
express-session (0) | 2024.11.26 |
Prisma (0) | 2024.11.25 |
RDBS, MySQL (0) | 2024.11.22 |