OSI 7 Layer

hsy·2025년 3월 12일

OSI-RM(Open System Interconnection Reference Model)

ISO/IEC 7498

ITU-T X.200

의미:

개방형 시스템 내의 내부 인터페이스 표준화
네트워크 상호 간 접속을 위한 각종 규격 개발작업을 조정하는 공통기반
각기 따로 개발된 표준 규격들이, 이러한 참조모델에 의거, 쉽게 적응토록 하기 위함

각 계층의 기능과 규격을 정의함으로써 가능케 함. 각 계층마다:
1. 기능 정의: 각 계층이 수행해야 할 기능
2. 인터페이스 정의: 상하 계층 간의 통신 방식
3. 서비스 정의: 각 계층이 상위 계층에 제공해야 할 서비스
4. 프로토콜 규격: 동등 계층 간 통신 규약
이 모든 내용이 ISO/IEC 7498 표준문서에 정의되어 있음

의의:

상호운용성(interoperability): 서로 다른 제조업체의 시스템들이 함께 작동할 수 있다.
모듈화(Modularity): 각 계층이 독립적으로 개발·수정될 수 있어 전체 시스템을 변경하지 않고도 특정 계층의 기술을 업데이트할 수 있다.
표준화된 인터페이스(Standardized Inerfaces): 개발자들이 명확하게 정의된 인터페이스를 기반으로 작업할 수있어 개발 효율성을 높인다.
문제 분리(Problem Isolation): 네트워크 문제가 발생했을 때 해당 계층만 분석하면 되므로 문제 해결이 용이하다.
기술 발전촉진(Technology Evolution): 각 계층별로 독립적인 기술 발전이 가능하다.

LayerNamePDUFUNCTION
L7ApplicationMessage, Data사용자 인터페이스 및 응용 프로그램 서비스
L6PresentationMessage, Data데이터 형식 변환 및 암호화
L5SessionMessage, Data세션 연결 설정 및 유지
L4TransportSegment네트워크 종단 간 통신 제어
L3NetworkPacket경로 설정 및 논리적 주소 지정
L2DatalinkFrame노드 간 데이터 전송 관리
L1Physical(Bit)비트 단위의 데이터 전송

표현:

모델적용:

브라우저 요청부터 응답까지의 과정

요약: 브라우저에 www.example.com을 입력하면, 요청이 응용계층에서 시작해 물리계층까지 내려가며 패킷이 변환된다. 이 패킷은 네트워크를 통해 서버로 전달되고, 서버에서는 물리계층부터 응용계층까지 올라가며 처리된 후, 같은 경로로 응답이 돌아와 브라우저에 웹페이지가 표시된다.

상세:

7 응용 계층
-프로토콜: HTTP/HTTPS
-동작: 브라우저가 "GET www.example.com" HTTP 요청 생성
-장치: 웹 브라우저(클라이언트), 웹서버(서버)
6. 표현 계층
-프로토콜: TLS/SSL(HTTPS사용 시), MIME
-동작: 데이터 암호화(HTTPS), 문자 인코팅, 데이터 형식 지정
-기능: Content-Type헤더로 데이터 형식 지정(HTML, JSON 등)
5. 세션 계층
-프로토콜: HTTP 세션, 쿠키
-동작: 서버와의 통신 세션 설정·유지
-기능: 쿠키를 통한 사용자 인증 정보 관리
4. 전송 계층
-프로토콜: TCP(80/443 포트), UDP
-동작: 연결 수립(3-way handshake), 데이터 분할·흐름 제어
-장치: 클라이언트/서버의 TCP/IP스택
3. 네트워크 계층
-프로토콜: 이더넷, Wifi(802.11), ARP
-동작: IP주소를 MAC주소로 변환, 프레임 생성
-장치: 라우터, L3 스위치
2. 데이터 링크 계층
-프로토콜: 이더넷, Wifi(802.11), ARP
-동작: IP 주소를 MAC 주소로 변환, 프레임 생성
-장치: 스위치, NIC(네트워크 인터페이스 카드)
1. 물리 계층
-프로토콜: 이더넷, Wifi, 광섬유
-동작: 디지털 신호를 전기/광/전파 신호로 변환하여 전송
-장치: 케이블, 허브, 리피터, 네트워크 카드

데이터 흐름:

  1. 브라우저에 URL 입력: 응용 계층에서 HTTP GET 요청 생성
  2. DNS 조회: 도메인 이름(www.example.com)을 IP 주소(예: 93.184.216.34)로 변환
  3. TCP 연결: 클라이언트와 서버 간 3-way handshake로 연결 수립
  4. 요청 전송:
    응용 계층 → 물리 계층으로 데이터가 캡슐화되며 내려감
    각 계층마다 헤더 정보 추가(HTTP 헤더, TCP 헤더, IP 헤더, MAC 헤더)
  5. 네트워크 이동: 라우터들이 IP 헤더를 읽고 최적 경로로 패킷 전달
  6. 서버 수신 처리:
    물리 계층 → 응용 계층으로 데이터가 역캡슐화되며 올라감
    각 계층의 헤더 정보를 해석하며 처리
  7. 서버 응답 생성: 요청된 웹페이지 데이터로 HTTP 응답 생성
  8. 응답 전송: 서버에서 클라이언트로 같은 경로를 통해 데이터 전송
  9. 브라우저 렌더링: 수신된 HTML, CSS, JavaScript를 해석하여 웹페이지 표시

주요 개념:

캡슐화(Encapsulation): 상위 → 하위 계층

Peer Protocol에 필요한 정보를 감싸는 과정
1. 응용 계층: 사용자 데이터 생성
2. 표현 계층: 데이터 변환+헤더 추가
3. 세션 계층: 세선 정보+헤더 추가
4. 전송 계층: 세그먼트/데이터그램 생성 + TCP/UDP 헤더 추가
5. 네트워크 계층: 패킷 생성 + IP 헤더 추가
6. 데이터 링크 계층: 프레임 생성 + MAC 헤더와 트레일러 추가
7. 물리 계층: 비트로 변환하여 전송 매체로 전송

역캡슐화(Decapsulation): 하위 → 상위 계층

각 계층에서 해당 계층의 헤더를 읽고 제거하면서 순차적으로 상위계층으로 데이터를 전달

동등 계층 프로토콜(Peer Protocol):

각 계층의 Peer protocol은 수직적으로는 자신의 시스템 내 상하 계층과 통신하고, 수평적으로는 상대방 시스템의 동일 계층과 통신한다. 이 과정에서 네트워크 패킷은 헤더를 통해 어떤 프로토콜로 처리해야 하는지 정보를 포함하게 된다.

Peer Protocol의 적용:

응용 계층의 Peer Protocol
클라이언트와 서버 간 HTTP 통신 시

  • 클라이언트의 브라우저가 HTTP GET 요청을 생성
  • 서버의 웹 서버가 같은 HTTP 프로토콜로 이해하고 응답
  • 두 시스템의 응용 계층이 HTTP라는 동일한 언어로 대화

전송계층의 Peer Protocol

  • 클라이언트 TCP스택이 SYN 패킷 발송
  • 서버의 TCP 스택이 SYN-ACK로 응답
  • 클라이언트가 다시 ACK로 응답하여 연결 수립
  • 두 시스템의 전송 계층이 TCP라는 동일한 프로토콜로 통신

네트워크 계층의 Peer Protocol

  • 출발지 라우터가 IP패킷 전송
  • 목적지로 가는 경로의 각 라우터가 IP헤더 해석
  • 모든 라우터가 IP라는 동일한 프로토콜로 통신

처리과정: 헤더와 페이로드 구분

네트워크의 각 노드들이 헤더와 페이로드를 구분하는 방법은 4가지 핵심 메커니즘에 의존함

1. 고정된 헤더 길이

많은 프로토콜이 고정된 헤더 길이를 가짐

  • IPv4 헤더: 기본 20바이트 (옵션 필드 추가 시 최대 60바이트)
  • TCP 헤더: 기본 20바이트 (옵션 필드 추가 시 변동)
  • 이더넷 헤더: 14바이트 + 4바이트(VLAN 태그, 선택적)
    장치는 이 고정된 길이를 알고 있어 어디까지가 헤더인지 정확히 파악할 수 있음

2. 헤더 내 길이 필드

가변 길이 헤더를 사용하는, 프로토콜의 경우 헤더 자체에 길이 정보를 포함

  • IPv4 헤더: "Header Length"필드가 헤더 길이를 4바이트 단위로 지정
  • TCP 헤더: "Data Offset"필드가 헤더 길이를 4바이트 단위로 지정
  • HTTP 헤더: 빈 줄(CRLF)로 헤더의 끝을 표시

3. 패킷 구조 정의

각 프로토콜은 패킷 구조에 대한 명확한 정의를 가짐

  • 이더넷 프레임: 프리앰블(8바이트)→ 목적지 MAC(6바이트) → 출발지 MAC(6바이트) → 타입(2바이트) → 데이터 → FCS(4바이트)
  • IP패킷: 버전(4비트) → 헤더 길이(4비트) → 서비스 유형(8비트) → 전체 길이(16비트) → ... → 데이터

4. 프로토콜 식별자:

상위 계층 프로토콜을 식별하기 위한 필드

  • 이더넷 프레임: "EtherType"필드 (0x0800은 IPv4, 0x86DD는 IPv6)
  • IP헤더: "Protocol"필드 (6은 TCP, 17은 UDP)
  • TCP/UDP: "Port" 번호(80은 HTTP, 443은 HTTPS)

실제 적용 예시: 라우터가 네트워크 패킷을 받으면

  1. 이더넷 프레임 처리:
  • 처음 14바이트를 이더넷 헤더로 해석
  • EtherType필드 (2바이트)를 확인해 다음 프로토콜 결정(예: 0x0800 = IPv4)
  1. IP패킷 처리:
  • 헤더 길이 필드를 읽어 IP헤더의 실제 길이 계산
  • 목적지 IP 주소 확인하여 라우팅 결정
  • Protocol 필드로 다음 프로토콜 식별(예: 6=TCP)
  1. 필요 시 TCP 세그먼트 처리:
  • Data Offset 필드로 TCP헤더 길이 확인
  • 목적지 포트 확인하여 어떤 응용 프로그램으로 전달할지 결정
    라우터는 주로 네트워크 계층(IP)까지만 처리하고, 전송 계층(TCP/UDP)은 최정 목적지에서 처리
profile
hi

0개의 댓글