OSI 7계층 이해할 때까지 공부하기

드뮴·2025년 1월 3일
149

🌐 네트워크

목록 보기
1/2
post-thumbnail

OSI 7계층은 네트워크 공부를 시작하게 되면 처음에 접하게 되는 개념이다. 각 계층이 어떤 역할을 하는지 많이 봐왔지만 정확히 이해했다고 느낀 적은 없었다.

그래서 OSI 7계층이 등장한 이유부터, 각 계층이 정확히 어떤 역할을 하는지와 전체적 흐름에 대해서 이해할 때까지 공부하고 정리해보았다.

📌 계층 별로 이해하기 쉽게 계층 별 특징을 한 눈에 볼 수 있게 시각 자료를 만들어서 넣어두었다.


왜 OSI 7계층이 등장했을까?

컴퓨터 네트워크가 발전하면서 각 회사마다 자신들만의 독자적인 네트워크 프로토콜을 개발했다. 이로 인해서 서로 다른 시스템 간 통신이 불가능한 문제가 발생했다.

이러한 문제를 해결하고자 국제표준화기구(ISO)는 1984년에 개방형 시스템 간 상호 연결(Open Systems Interconnection, OSI) 모델을 제안했다. 네트워크 통신의 표준 프레임워크로, 서로 다른 시스템들이 효과적으로 통신할 수 있게 만든 것이다.

계층을 나눈 이유

  1. 복잡성 관리
    네트워크 통신은 복잡한 과정이다. 이를 각각 독립된 계층으로 나눠서 각 계층은 자신의 역할에만 집중할 수 있다. 예를 들어 애플리케이션 계층은 사용자 인터페이스만 신경 쓰고 실제 데이터가 어떻게 전송되는지 신경쓰지 않아도 된다.
  2. 유지보수
    각 계층은 독립적으로 동작하기 때문에 한 계층 기술을 업데이트하거나 수정할 때 다른 계층에 영향을 주지 않는다.

계층 별로 알아보자

제7계층: 응용 계층(Application Layer)

사용자가 네트워크와 직접 상호작용할 수 있게 해주는 인터페이스를 제공한다.
사용자 의도를 네트워크가 이해할 수 있는 데이터로 변환하고, 반대로 네트워크로 받은 데이터를 사용자가 이해할 수 있는 형태로 표현한다.

응용 계층의 예시: 웹 사이트 접속

웹 브라우저로 사용자가 웹 사이트를 방문하는 예시로 응용 계층을 이해해보려한다.

  1. 사용자의 의도를 네트워크가 이해할 수 있는 데이터로 변환하는 과정
    • 사용자가 웹 브라우저에 "www.naver.com"을 입력 후 엔터를 친다.
    • 응용 계층에서는 이 행동을 "네이버로 접속하고 싶다"라는 의도로 해석한다.
    • HTTP GET 요청으로 변환(네트워크가 이해할 수 있는 형식)한다.
  2. 네트워크로부터 받은 데이터를 사용자가 이해할 수 있는 형태로 변환하는 과정
    • 네트워크로부터 HTML 파일을 받는다.
    • 응용 계층에서 HTML 코드를 해석해 사용자에게 웹 페이지로 변환하여 화면에 표시해준다.

응용 계층은 사용자와 네트워크가 상호작용할 수 있는 인터페이스를 제공한다고 했다. 위 예시에서 인터페이스는 웹 브라우저가 되는 것이다.

응용 계층의 예시: 이메일

웹 사이트 접속 예시 말고도 이메일 전송 예시로 응용 계층을 한 번 더 이해해볼 수 있다.

  1. 사용자가 이메일을 작성하고 보내기 버튼을 클릭한다.
  2. 응용 계층(이메일 프로그램)에서는 사용자가 작성한 내용은 SMTP 프로토콜이 이해할 수 있는 형식으로 변환한다.

📌 응용 계층은 우리가 사용하는 프로그램(인터페이스)을 통해 사용자의 행동, 의도를 네트워크 프로토콜이 이해할 수 있는 명령어와 데이터로 변환해준다.
그리고 네트워크로부터 받은 기계적인 데이터를 사용자가 이해할 수 있는 형태(웹 페이지, 이메일 메시지 등)로 표현해준다.

주요 프로토콜

  • HTTP/HTTPS(웹 통신)
    • 웹 브라우저와 웹 서버 간의 통신을 담당한다.
    • 요청과 응답 구조로 동작하고, GET, POST, PUT, DELETE 등 메소드를 이용한다.
  • FTP(파일 전송)
    • 클라이언트와 서버 간의 파일 전송을 위한 프로토콜이다.
    • 제어 연결(21번 포트)과 데이터 연결(20번 포트)을 분리하여 사용한다.
  • SMTP/POP3/IMAP(이메일)
    • SMTP는 메일 발송을 담당한다.
    • POP3은 메일 수신을 담당하고, 서버에서 메일을 다운로드하면 서버에서 삭제된다.
    • IMAP은 더 발전된 형태의 메일 수신 프로토콜로 서버와 동기화를 유지한다.
  • DNS(도메인 이름 시스템)
    • 도메인 이름을 IP 주소로 변환하는 역할을 한다.
    • 계층적 구조로 이루어진 분산 데이터베이스 시스템이다.
  • DHCP(동적 호스트 설정)
    • 네트워크 장치에 자동으로 IP 주소를 할당한다.
    • DORA(Discover, Offer, Request, Acknowledge) 프로세스를 통해 동작한다.

제6계층: 표현 계층(Presentation Layer)

서로 다른 시스템 간 데이터를 주고 받을 때 양쪽 모두가 이해할 수 있는 공통의 형식으로 변환해준다.
표현 계층에서는 데이터 변환과 처리를 담당하고, 현대의 다양한 멀티미디어 통신을 가능하게 해준다.

표현 계층의 주요 기능

1. 문자 인코딩 변환

  • 한글을 사용하는 컴퓨터에서 영어만 지원하는 시스템으로 데이터 전송
    • 송신 측: 안녕하세요 (UTF-8 인코딩)
    • 표현 계층에서 변환
    • 전송된 데이터: 0xEC 0x95 0x88 0xEB 0x85 0x95 ...
    • 수신 측 표현 계층에서 해석
    • 수신 측: 안녕하세요 (해당 시스템이 지원하는 인코딩으로 변환)

2. 데이터 압축과 해제

  • 고화질 이미지 전송
    • 원본 이미지: 10MB JPEG 파일
    • 표현 계층에서 압축
    • 전송 데이터: 3MB로 압축된 데이터
    • 수신 측 표현 계층에서 압축 해제
    • 수신 측: 10MB JPEG 파일로 변환

3. 암호화와 복호화

  • 인터넷 뱅킹 데이터 전송
    • 원본 데이터: 계좌이체 100만원
    • 표현 계층에서 암호화
    • 전송 데이터: x8f2a9b7c4d6e...
    • 수신 측 표현 계층에서 복호화
    • 수신 측: 계좌이체 100만원

4. 데이터 포맷 변환

  • JSON 데이터를 XML 형식으로 변환
    • 웹 브라우저에서 서버로 JSON 형식의 데이터를 전송
    • 표현 계층에서 XML 형식으로 변환
      • XML로 변환하는 경우는 기존 시스템이 XML 기반인 경우 필수적인 과정이다.

실제 표현 계층의 응용 사례

  1. 웹 브라우저에서의 동작
    • 이미지 표시: 다양한 이미지 포맷을 화면에 표시 가능한 형태로 변환한다.
    • 웹 폰트: 다양한 폰트 파일을 브라우저에서 표시 가능한 형태로 변환한다.
    • 비디오 재생: MP4, WebM 등 다양한 비디오 포맷을 재생 가능한 형태로 처리한다.
  2. 국제 메신저 서비스
    • 다양한 언어의 문자셋 지원 (한글, 영어, 일본어, 중국어 등)
    • 이모지 처리: 서로 다른 플랫폼 간에도 동일한 이모지가 보이도록 변환
    • 파일 첨부 기능: 다양한 파일 형식을 주고 받을 수 있도록 처리

표현 계층이 없다면?

  • 한글을 지원하지 않는 시스템에서는 한글이 깨져서 표현된다.
  • 고화질 이미지/동영상을 전송할 때마다 네트워크가 과부화된다.
  • 민감한 정보가 암호화되지 않은 채로 전송되어 보안 위험에 노출된다.

주요 프로토콜

  • SSL/TLS(보안)
    • 데이터 암호화보안 통신을 담당한다.
    • 인증서를 통한 신원 확인과 데이터 암호화를 제공한다.
  • JPEG, MPEG(데이터 압축)
    • 이미지와 영상의 압축을 담당한다.
    • 데이터 크기를 줄여 효율적인 전송이 가능하게 한다.

제5계층: 세션 계층(Session Layer)

응용 프로세스가 통신을 관리하기 위한 방법을 제공하는 계층이다.
세션 계층은 통신 세션을 수립하고 유지하는 역할을 담당하고 신뢰성 있는 통신을 보장하고 효율적인 데이터 전송을 가능하게 하는 계층이다.

세션 계층의 주요 기능

1. 세션 수립과 유지

  • 통신을 시작할 때
    • 컴퓨터 A: 안녕하세요. 통신하고 싶어요.
    • 컴퓨터 B: 네. 통신을 시작합시다.
    • 세션 ID 생성: 1234

이후에 모든 통신은 세션 ID 1234로 관리된다. 고유한 ID를 통해 통신을 관리한다.

2. 동기화

  • 대용량 파일(100MB)을 전송하는 상황
    • 체크: 25MB 전송 완료
    • 체크: 50MB 전송 완료
    • 체크: 75MB 전송 중(네트워크 오류 발생)
    • 재연결 후: 75MB부터 다시 시작

연결이 끊겨도 다시 연결하면 이전 기록에 이어서 전송을 시작한다.

3. 대화 제어

  • 화상회의 상황
    • 참가자 A: 발언권 요청
    • 시스템: A에게 발언권 부여
    • 참가자 B: 발언권 요청
    • 시스템: 대기열에 B 등록(A가 발언 중)
    • 참가자 A: 발언 종료
    • 시스템: B에게 발언권 부여

양방향 통신에서 누가 데이터를 전송할 차례인지를 관리하여, 데이터가 충돌 없이 순차적으로 전송될 수 있도록 보장한다.

4. 세션 복구

  • 네트워크 오류 발생 상황
    • 활성 세션 상태
      • 세션 ID: 1234
      • 전송 진행률: 80%
      • 마지막 체크: 75%
    • 네트워크 끊김 발생
    • 세션 복구 과정
      • 이전 세션 ID(1234) 확인
      • 마지막 체크포인트(75%)로 복원
      • 나머지 25% 전송 시작

네트워크 오류로 인해 연결이 끊어졌을 때, 이전 상태를 복구하고 통신을 재개할 수 있도록 한다.

실제 세션 계층의 응용 사례

  1. 온라인 뱅킹
    • 로그인 세션 관리
    • 보안을 위한 세션 타임아웃
    • 동시 접속 제한
  2. 온라인 게임
    • 게임 세션 유지
    • 플레이어 간 실시간 상호작용 관리
    • 게임 상태 동기화
  3. 스트리밍 서비스
    • 재생 위치 기억
    • 화질 자동 조정
    • 일시정지/재개 기능

세션 계층이 없다면?

  • 파일 전송 중단 시 처음부터 다시 시작해야한다.
  • 게임에서 연결이 순간적으로 끊기면 게임을 처음부터 다시 시작해야한다.
  • 화상회의에서 많은 사람이 동시에 말하게 되면 혼란이 발생한다.

주요 프로토콜

  • NetBIOS(네트워크 기본 입출력)
    • 컴퓨터 간 세션 연결을 담당한다.
    • 네트워크 상에서 컴퓨터의 이름을 관리한다.
  • SSH(Secure Shell)
    • 보안 세션 연결을 담당한다.
    • 원격 로그인과 명령 실행을 위한 안전한 세션을 제공한다.
  • PPTP(Point-to-Point Tunneling Protocol)
    • 가상 사설망(VPN) 세션을 담당한다.
    • 두 지점 간의 보안 연결을 유지한다.

제4계층: 전송 계층(Transport Layer)

데이터를 안전하고 효율적으로 전달한다.
보내고자하는 데이터의 용량과 속도, 목적지를 처리한다.

주요 프로토콜에는 TCP, UDP가 있다.

TCP(Transmission Control Protocol)

안전하고 신뢰성있는 전송을 보장한다.

주요 특징

  • 연결 지향성: 3-way handshake를 통해 통신을 시작하고 싶다고 알리고 상대방 측에서 준비가 되었다는 연락을 받고, 통신을 시작하겠다고 알리는 과정이 있다.
  • 신뢰성 보장: 데이터 조각을 보낼 때마다 수신 확인을 하고, 누락된 것이 발견되면 재전송 요청을 한다.
  • 순서 보장: 데이터 조각마다 번호를 부여해서 수신 측에서 올바른 순서로 재조립한다.

3-way handshake로 연결을 하는 이유

총 3단계로 연결을 설정한다. A, B가 통신한다면 A가 B에게 보낼 수 있는지도 확인해야하고 B도 A에게 보낼 수 있는지 확인해야한다. 이렇게 하기 위해 총 3단계가 필요한 것이다.

UDP

빠르게 전송할 수 있지만 신뢰성은 TCP보다 낮다.

주요 특징

  • 비연결성: 사전 연결 설정 없이 바로 전송한다.
  • 빠른 전송 속도: 확인 응답도 없고 순서 보장도 없다.
  • 실시간성 중시: 영상 스트리밍, 온라인 게임에 적합하다.

실제 전송 계층의 응용 사례

  1. 웹 브라우징(TCP)
    • 사용자가 www.naver.com 접속 요청
    • TCP
      • 웹 서버와 연결 수립
      • 페이지 데이터를 작은 조각으로 분할
      • 순서대로 전송하며 각 조각이 도착했는지 확인
      • 누락된 데이터는 재전송
      • 모든 데이터가 도착하면 브라우저에 전달
  2. 실시간 게임(UDP)
    • 사용자가 캐릭터 이동 명령
    • UDP
      • 즉시 서버로 위치 정보 전송
      • 일부 데이터가 손실되어도 계속 진행
      • 새로운 위치로 정보 업데이트

전송 계층의 중요한 기능

  • 포트번호 관리: 포트번호는 하나의 컴퓨터(IP 주소)에서 여러 프로그램이 동시에 통신할 수 있도록 구분해준다. 전송 계층에서 포트번호를 관리해서 들어오는 데이터를 어떤 포트로 전달할지 관리한다.
  • 흐름 제어: 수신 측에서 처리할 수 있는 데이터가 얼마인지 확인하고 그 속도에 맞춰 데이터를 전송한다.
  • 혼잡 제어: 패킷 손실이 발생하면 전송 속도를 감소하고, 정상적으로 전송되면 점진적으로 속도를 증가시킨다.

전송 계층이 없다면?

  • 신뢰성 있는 데이터 전송이 불가능하다.
  • 포트 번호 관리가 불가능해서 하나의 컴퓨터에서 여러 애플리케이션이 동시에 네트워크 통신을 할 수 없다.
  • 흐름 제어와 혼잡 제어가 불가능해져서 데이터 전송 속도를 조절할 수 없게 되어 네트워크 혼잡이 발생한다.
  • 연결 관리 기능이 상실되어, 안정적인 통신 세션을 보장할 수 없다.

주요 프로토콜

  • TCP(전송 제어 프로토콜)
    • 신뢰성 있는 데이터 전송을 담당한다.
    • 연결 지향적이며, 순서 보장과 흐름 제어를 수행한다.
  • UDP(사용자 데이터그램 프로토콜)
    • 빠른 데이터 전송을 담당한다.
    • 비연결형이며, 실시간 통신에 적합하다.

제3계층: 네트워크 계층(Network Layer)

데이터 패킷이 출발지에서 목적지까지 최적의 경로로 전달되도록 관리한다.
네트워크에서 데이터가 효율적으로 전달될 수 있는 핵심 역할을 수행한다.

네트워크 계층의 주요 기능

  1. 라우팅

    • 데이터 패킷의 최적의 경로를 설정한다.
    • A에서 B로 데이터를 전송할 때, 가능한 경로들 중 현재 경로의 트래픽 상황, 각 경로의 거리, 네트워크 상태를 고려하여 최적의 경로를 선택한다.
  2. 논리적 주소 지정(IP Addressing)

    • IP 주소는 논리적 주소로 네트워크 관리자가 할당하는 주소다.
    • 다른 네트워크와 통신할 때 사용되는 주소다.
  3. 패킷 포워딩

    • 데이터를 작은 패킷으로 나누어 전송한다.
    • 큰 데이터가 있다면 여러 패킷으로 나누어서 각 패킷에 헤더에 순서 번호를 넣어 전송한다.

네트워크 계층이 없다면?

  • 경로 선택이 불가능해서 데이터가 목적지를 찾아가지 못할 수도 있고, 비효율적인 경로로 전송되어 네트워크 혼잡이 발생할 수 있다.
  • 새로운 네트워크 추가가 어렵고 네트워크 구조 변경이 어렵다.
  • 트래픽 관리가 불가능해지고, 네트워크 자원을 낭비하게 된다.

주요 프로토콜

  • IP(인터넷 프로토콜)
    • 패킷의 라우팅과 전달을 담당한다.
    • 출발지에서 목적지까지 경로 설정을 담당한다.
  • ICMP(인터넷 제어 메시지)
    • 네트워크 상태와 오류 보고를 담당한다.
    • 네트워크 문제 진단에 사용된다.

2개의 인접한 네트워크 노드 간의 데이터 전송을 담당하는 계층이다.
데이터 링크 계층은 신뢰성 있는 데이터 통신의 기반을 제공하며, 근거리 통신망에서 중요한 역할을 수행한다.

데이터 링크 계층의 주요 기능

  1. 프레임화: 네트워크 계층에서 받은 데이터를 프레임이라는 단위로 분할하고 관리한다.
  2. MAC 주소 관리: 물리적 주소(MAC)를 사용하여 장치를 식별한다.
    • MAC 주소는 하드웨어 주소로 네트워크 카드마다 고유하게 부여된 물리적 주소다.
    • 같은 네트워크 안에서 통신할 때 사용한다.
  3. 오류 제어: 데이터 전송 중 발생할 수 있는 오류를 검출하고 수정한다.
  4. 흐름 제어: 송신자와 수신자 간의 데이터 전송 속도를 조절한다.

실제 동작 예시

근거리 통신망(LAN)에서의 데이터 전송 과정

  1. 컴퓨터 A가 컴퓨터 B로 데이터 전송 시도
    • A의 데이터 링크 계층
      • 데이터를 프레임으로 변환
      • B의 MAC 주소 추가
      • 오류 검출 코드 생성
      • 프레임 전송
  2. 스위치의 역할
    • MAC 주소 테이블 참조
    • 목적지 포트로 프레임 전달
  3. 컴퓨터 B의 데이터 링크 계층
    • 프레임 수신
    • MAC 주소 확인
    • 오류 검사
    • 데이터 추출 및 상위 계층으로 전달

📌 IP 주소와 MAC 주소는 각각 언제 사용될까?

IP 주소는 전체 경로를 위한 것이고, MAC 주소는 각 구간의 직접적 통신을 위한 주소다.

  1. 출발지에서 목적지 IP를 확인
    • 다른 네트워크라면 라우터로 우선 보내야한다.
    • ARP를 통해 라우터의 MAC 주소를 찾는다.
    • 전송할 프레임을 생성한다. (목적지 MAC = 라우터 MAC, 목적지 IP = 최종 목적지 IP)
    • 라우터는 출발지와 같은 네트워크에 있으므로 MAC 주소를 알면 통신이 가능하다.
  2. 라우터에서의 처리
    • 라우터가 프레임을 받으면 MAC 헤더를 제거한다.
    • IP 주소를 확인하고 다음 라우터를 결정한다.
    • 새로운 MAC 헤더를 추가한다. (다음 라우터의 MAC 주소를 사용)

데이터 링크 계층이 없다면?

  • 데이터 전송의 신뢰성 보장이 불가하다.
  • 네트워크 장치 간 식별이 불가능하다.
  • 데이터 충돌로 인한 통신 장애가 발생한다.
  • 효율적인 데이터 전송이 불가능하다.

주요 프로토콜

  • 이더넷(Ethernet)
    • 근거리 통신망에서의 데이터 전송을 담당한다.
    • MAC 주소를 이용한 통신을 관리한다.
  • ARP(주소 결정 프로토콜)
    • IP 주소를 MAC 주소로 변환하는 역할을 한다.
    • 실제 물리 주소를 찾아 통신을 가능하게 한다.

제1계층: 물리 계층(Physical Layer)

데이터를 전기 신호로 변환하여 전송하는 역할을 담당한다.

물리 계층의 주요 특성

  1. 전송 매체의 특성
    다양한 전송 매체를 사용할 수 있다.
    • 유선 매체: 트위스트 페어 케이블, 광섬유 케이블
    • 무선 매체: 전파(WiFi), 적외선, 마이크로파
  2. 신호 인코딩
    디지털 데이터를 아날로그 신호로 변환한다.
    • manchester 인코딩
    • NRZ(Non-Return to Zero)
  3. 물리 계층의 장비들
    • 네트워크 인터페이스 카드(NIC)
      • 디지털 데이터를 전기 신호로 변환
      • 전기 신호를 디지털 데이터로 변환
      • 매체와의 물리적 연결을 제공
    • 리피터와 허브
      • 리피터: 약해진 신호를 증폭시키고 신호의 왜곡을 보정
      • 허브: 여러 포트에 동일 신호를 전달하고 단순한 신호 복제 및 전달

물리 계층이 없다면?

  • 디지털 데이터를 전송할 수 있는 방법 자체가 없다.
  • 서로 다른 장치 간 물리적 연결이 불가능하다.
  • 신호의 품질 보장이 불가능하다.
  • 네트워크 확장이 제한된다.

주요 규격

물리 계층은 프로토콜보다는 전기적, 기계적 규격을 정의한다.

  • 이더넷 물리 규격
    • 전기 신호의 전송 규칙을 정의한다.
    • 케이블 종류, 핀 배열, 전압 레벨 등을 규정한다.
  • 무선 통신 규격
    • 전파를 이용한 데이터 전송을 정의한다.
    • 주파수, 변조 방식 등을 규정한다.

A에서 B로 데이터를 전송하는 과정

각 계층 별로 공부하고 나서 어려웠던 건 전체적인 흐름이었다. 서로 다른 네트워크 A에서 B로 데이터를 전송할 때 각 계층 간 데이터를 어떻게 전달하는지가 이해가 되지 않아 공부해보았다.

1. A에서 데이터 캡슐화하기

  1. 응용 계층에서 사용자가 데이터를 생성한다.

    • "Hello"라는 메시지를 생성한다.
    • 응용 계층 프로토콜의 형식에 맞춰 데이터를 구성한다.
  2. 표현 계층에서 데이터를 인코딩하고 필요하다면 암호화를 한다.

    • "Hello" 텍스트를 UTF-8과 같은 표준 인코딩 방식으로 변환한다.
    • 필요한 경우 데이터를 압축해 전송 효율을 높인다.
    • 보안이 필요하면 지정된 알고리즘으로 데이터를 암호화한다.
    • 표현 계층 헤더가 추가된다. (데이터 형식, 문자 인코딩 방식, 압축 방식, 사용된 암호화 알고리즘)
  3. 세션 계층에서 세션 정보를 추가한다.

    • 통신 세션을 식별하기 위한 고유한 세션 ID를 생성한다.
    • 세션 계층 헤더가 추가된다. (세션 ID, 세션 활동 관리 정보, 세션 복구를 위한 정보 등)
  4. 전송 계층에서 TCP/UDP 정보를 추가한다.

    • 데이터를 전송하기 위한 적당한 크기의 세그먼트로 분할한다.
    • TCP/UDP 헤더가 추가된다. (TCP 헤더: 출발지 포트, 목적지 포트, 시퀀스 번호, 체크섬 등)
  5. 네트워크 계층에서 IP 주소 정보를 추가한다.

    • TCP/UDP 세그먼트를 패킷으로 변환한다.
    • IP 헤더가 추가된다. (버전, 출발지 IP, 목적지 IP, TTL 등)
  6. 데이터 링크 계층에서 MAC 주소 정보를 추가한다.

    • IP 패킷을 프레임으로 변환한다.
    • 물리적 주소 지정을 위한 정보를 추가한다.
    • MAC 헤더가 추가된다. (목적지 MAC, 출발지 MAC, 데이터 길이, 체크섬)
  7. 물리 계층에서 전기 신호로 변환하여 전송한다.

    • 프레임을 비트열로 변환한다.
    • 전송 매체에 적합한 신호로 변환한다.

네트워크의 캡슐화는 각 계층에서 필요한 정보를 하나씩 추가하며 진행된다. 이를 통해 각 계층은 자신의 역할만 수행하고 각 계층의 헤더에는 그 계층에서 필요한 제어 정보를 담는다.
캡슐화된 데이터는 수신 측에서 역캡슐화 과정을 거치며 각 계층에서 해당하는 헤더를 제거하고 처리하며 최종적으로 원본 데이터를 얻는다.


2. 다른 네트워크인 A에서 B로 데이터를 전송하기

1. A에서 라우터로 전달하기

A에서 B로 데이터를 보낼 때, 보내려고 하는 곳이 같은 네트워크에 있는지 다른 네트워크에 있는지 확인한다. 이는 목적지 IP 주소를 보고 자신의 서브넷 마스크와 비교해서 알 수 있다.

다른 네트워크로 가야한다면, A는 데이터를 B로 바로 전송할 수 없다.

  1. A에서 B로 데이터 전달 시 같은 네트워크인지 다른 네트워크인지 확인한다.
  2. 다른 네트워크라면 라우터로 전달한다.
    • 라우터의 MAC 주소를 알아야하기 때문에 ARP로 라우터의 MAC 주소를 알아낸다.
    • 데이터 프레임을 생성한다. 목적지 MAC 주소는 라우터의 MAC 주소로 IP 헤더에는 A의 IP, 목적지에는 B의 IP를 설정한다.

라우터는 서로 다른 네트워크를 연결해주는 장비다. 반면 스위치는 같은 네트워크 내 여러 장비들을 효율적으로 연결해준다.
따라서 컴퓨터 A가 라우터로 데이터를 전달하기 위해서 라우터의 MAC 주소를 알아야해서 ARP 요청을 하게 되고, ARP 요청을 모든 포트로 전달해서 라우터의 응답을 전달해주는게 스위치다. 즉, 스위치는 컴퓨터 A와 라우터 간의 통신을 관리해준다.

2. 라우터에서의 처리

  1. 라우터에서는 수신한 프레임을 분석한다.
    • MAC 헤더를 제거한다. (이전 구간의 MAC 주소는 더 이상 필요없다.)
    • IP 헤더를 확인한다. (목적지 IP 주소: B의 IP)
  2. 라우팅 테이블을 확인한다.
    • 목적지 IP가 속한 네트워크로 가기 위한 최적 경로를 설정한다.
    • 다음 라우터(홉)를 선택한다.
  3. 새로운 프레임을 생성한다.
    • 새로운 MAC 헤더를 추가한다. (다음 라우터의 MAC 주소)
    • IP 헤더는 그대로 유지한다. (출발지 A, 목적지 B)

3. B의 네트워크로 이동

여러 라우터를 거쳐 B의 네트워크로 이동한다.

  1. 마지막 라우터에 도달한다.
    • B의 MAC 주소를 알아내기 위해 ARP 요청을 전송한다.
    • 해당 네트워크의 스위치가 모든 포트로 전달한다.
  2. B가 ARP 응답을 한다.
    • B의 MAC 주소를 전달한다.
  3. 최종 프레임을 생성한다.
    • 목적지 MAC 주소를 B의 MAC 주소로 설정한다.
    • IP 헤더는 그대로 유지한다. (출발지 A, 목적지 B)
  4. 스위치를 통해 B로 전달된다.
    • 스위치가 MAC 주소 테이블을 참조하여 B가 연결된 포트로 프레임을 전달한다.

4. B에서 데이터 수신

  1. MAC 주소를 확인한다.
    • 자신의 MAC 주소와 일치하는지 확인한다.
  2. IP 헤더를 확인한다.
    • 목적지 IP가 자신의 IP와 일치하는지 확인한다.
  3. 데이터를 전달한다.
    • MAC 헤더와 IP 헤더를 제거한다.
    • 실제 데이터를 상위 계층으로 전달한다.

3. B에서 데이터 역캡슐화하기

  1. 물리 계층에서 전기 신호를 디지털 데이터로 변환한다.

    • 전기, 빛, 또는 전파 형태의 신호를 이진 데이터로 변환한다.
  2. 데이터 링크 계층에서 MAC 헤더를 처리하고 제거한다.

    • MAC 헤더를 확인한다. (목적지 MAC, 출발지 MAC, 데이터 길이, 체크섬)
    • 자신의 MAC 주소와 목적지 MAC 주소가 일치하는지 확인한다.
    • 체크섬으로 프레임의 무결성을 검증한다.
    • MAC 헤더를 제거하고 상위 계층으로 전달한다.
  3. 네트워크 계층에서 IP 헤더를 처리하고 제거한다.

    • IP 헤더를 확인한다. (버전, 출발지 IP, 목적지 IP, TTL 등)
    • 목적지 IP가 자신의 IP와 일치하는지 확인한다.
    • 패킷이 분할되었다면 재조립한다.
    • IP 헤더를 제거하고 상위 계층으로 전달한다.
  4. 전송 계층에서 TCP/UDP 헤더를 처리하고 제거한다.

    • TCP/UDP 헤더를 확인한다. (출발지 포트, 목적지 포트, 시퀀스 번호, 체크섬 등)
    • TCP의 경우 데이터가 올바른 순서로 도착했는지 확인한다.
    • 누락된 데이터가 있는지 확인하고 필요시 재전송을 요청한다.
    • TCP/UDP 헤더를 제거하고 상위 계층으로 전달한다.
  5. 세션 계층에서 세션 헤더를 처리하고 제거한다.

    • 세션 헤더를 확인한다. (세션 ID, 세션 활동 관리 정보, 세션 복구 정보 등).
    • 현재 세션이 유효한지 확인한다.
    • 필요한 경우 세션 복구 절차를 수행한다.
    • 세션 헤더를 제거하고 상위 계층으로 전달한다.
  6. 표현 계층에서 표현 계층 헤더를 처리하고 제거한다.

    • 표현 계층 헤더를 확인한다. (데이터 형식, 문자 인코딩 방식, 압축 방식, 암호화 알고리즘)
    • 필요한 경우 데이터를 복호화한다.
    • 압축을 해제한다.
    • 지정된 문자 인코딩 방식으로 데이터를 디코딩한다.
    • 표현 계층 헤더를 제거하고 상위 계층으로 전달한다.
  7. 응용 계층에서 최종 데이터를 처리한다.

    • 모든 헤더가 제거된 순수한 데이터("Hello")를 받는다.
    • 최종 사용자가 이해할 수 있는 형태로 데이터를 표시한다.
    • 애플리케이션에서 데이터를 사용할 수 있게 된다.

☑️ 요약 정리

OSI 7계층

  • 각 회사마다 독자적 네트워크 프로토콜을 생성해 서로 다른 시스템 간 통신이 불가능했고, 이를 해결하고자 OSI 7계층이 등장했다.
  • 복잡한 네트워크 통신을 7개의 계층으로 나누어 효율적으로 관리한다.

OSI 7계층의 각 계층의 핵심 역할

  • 응용 계층: 사용자와 네트워크를 연결해주는 역할로 응용 프로그램을 통해 사용자 의도를 네트워크가 이해할 수 있는 데이터로 변환한다.
  • 표현 계층: 데이터 형식을 관리하여, 문자 인코딩, 데이터 압축, 암호화 등을 담당해 서로 다른 시스템 간에 데이터를 올바르게 해석할 수 있게 한다.
  • 세션 계층: 통신 세션을 관리하며, 연결 수립부터 종료까지 전체 세션을 제어하여 안정적인 통신을 보장한다.
  • 전송 계층: 신뢰성 있는 데이터 전송을 담당하며, 포트 번호를 통해 여러 프로그램의 통신을 관리한다.
  • 네트워크 계층: 데이터 패킷의 경로를 결정하고 전달하며, IP 주소를 사용하여 최적의 경로를 찾아 패킷을 라우팅한다.
  • 데이터 링크 계층: 물리적으로 연결된 두 장치 간의 신뢰성 있는 통신을 제공하며, MAC 주소를 사용해 장치를 식별하고 오류 검출 및 흐름 제어를 수행한다.
  • 물리 계층: 실제 데이터를 전기 신호로 변환해 전송하며, 케이블, 리피터, 허브와 같은 물리적 통신 매체와 장비를 통해 비트 단위 데이터를 전송한다.

데이터의 전송 과정

  1. 캡슐화: 데이터가 상위에서 하위 계층으로 전달될 때마다 필요한 정보(헤더)를 추가한다.
  2. 네트워크 간 데이터 전송: 서로 다른 네트워크 간 통신은 라우터를 통해 이루어지고, IP, MAC 주소를 이용해 목적지를 찾는다.
  3. 역캡슐화: 수신 측에서는 하위 계층에서 상위 계층으로 올라가며 각 계층 헤더를 제거하고 처리하여 최종적으로 원본 데이터를 얻는다.

참고 자료

15개의 댓글

comment-user-thumbnail
2025년 1월 7일

최근에 네트워크 공부할 일이 있어 들렀어요! 잘 읽고 갑니다 ㅎㅎ 정리 진짜 잘하셨네요 👍 감사합니다!!

1개의 답글
comment-user-thumbnail
2025년 1월 8일

당신을 정리왕으로 인정합니다

1개의 답글
comment-user-thumbnail
2025년 1월 9일

진짜 대박이에요 ㅠㅠ 이거 지우지 말아주세요퓨ㅠㅍㅍ퓨

1개의 답글
comment-user-thumbnail
2025년 1월 9일

정리 미쳤네요 ..

1개의 답글
comment-user-thumbnail
2025년 1월 9일

드뮴 최고로삼

1개의 답글
comment-user-thumbnail
4일 전

이런 OSI 7계층 내용은 진짜 대학교 수업, 자격증 시험, 면접에서 모두 유용하죠! 📚🎓
특히, 네트워크 관리사, 정보처리기사, CCNA 같은 자격증 준비할 때나, 네트워크 관련 직무 면접에서 질문 나오면 큰 도움이 될 것 같아요! 👍

이렇게 잘 정리된 자료가 있으면 이해도 빠르고, 외우기도 편해서 좋네요! 감사합니다! 🙌👏

1개의 답글
comment-user-thumbnail
4일 전

좋은 글 감사합니다.

1개의 답글
comment-user-thumbnail
2일 전

Thank you for share this information.....https://marioncountypropertyappraiser.site

답글 달기