본문 바로가기
카테고리 없음

[네트워크] OSI 7계층이란 무엇인가

by hbIncoding 2025. 1. 17.

0. OSI 7계층이 등장하게 된 배경

  • 컴퓨터 네트워크가 발전하면서 각 회사마다 자신들만의 독자적인 네트워크 프로토콜을 개발했다. 이로 인해서 서로 다른 시스템 간 통신이 불가능한 문제가 발생했다.
  • 이런 문제 해결을 위해 국제표준화기구(ISO)에서 1984년에 개방형 시스템 간 상호 연결(Open Systems Interconnection, OSI) 모델을 제안했다.
  • 계층을 나눈 이유
    • 복잡성 관리 : 각 계층은 자신의 역할에만 집중할 수 있다.
    • 유지보수 : 한 계층의 기술 업데이트가 다른 계층에 영향을 주지 않는다.
  • 계층마다 데이터에 설명, 포장(보안) 혹은 변환이 되어 전달된다.

  • 사용자가 데이터를 보내면 총 14계층을 거친다. 즉 하나의 계측은 일방적이지 않고 양방향이다.

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

  • 사용자가 네트워크와 직접 상호작용 할 수 있게 해주는 인터페이스를 제공한다.
  • 사용자의 의도를 네트워크가 이해할 수 있는 데이터로 변환, 혹은 네트워크로 받은 데이터를 사용자가 이해할 수 있는 형태로 변환
  • 주요 프로토콜
    • HTTP/HTTPS(웹 통신)
      • 웹 브라우저와 웹 서버 간의 통신을 담당
      • 요청과 응답 구조로 동작하고, [GET, POST, PUT, DELETE] 등 메소드를 이용한다.
    • FTP(파일 전송)
      • 클라이언트와 서버 간의 파일 전송을 위한 프로토콜
      • 제어 연결(21번 포트)과 데이터 연결(20번 포트)를 분리하여 사용
    • SMTP/POP3/IMAP(이메일)
      • SMTP는 메일 발송을 담당
      • POP3는 메일 수신을 담당
      • IMAP은 더 발전된 형태의 메일 수신 프로토콜로 서버와 동기화를 유지
    • DNS(도메인 이름 시스템)
      • 도메인 이름을 IP 주수로 변환하는 역할
      • 계층적 구조로 이루어진 분산 데이터베이스 시스템이다.
    • DHCP(동적 호스트 설정)
      • 네트워크 장치에 자동으로 IP 주소를 할당
      • DORA(Discover, Offer, Request, Acknowledge) 프로세스를 통해 동작
  • 대표적인 응용 계층의 예시
    • 웹 사이트 접속 시 www.google.com을 google에 접속하겠다는 의도로 받아들인다. 동시에 네트워크로 부터 HTML 코드를 받고, 이 HTML 코드를 해석해서 웹페이지로 변환해서 보여준다.
    • 이메일 전송 시 사용자가 작성한 내용을 SMTP 프로토콜이 이해할 수 있는 형식으로 변환

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

  • 서로 다른 시스템 간 데이터를 주고 받을 때 양쪽 모두가 이해할 수 있는 공통의 형식으로 변환
  • 데이터 변환과 처리를 담당
  • 주요 프로토콜
    • SSL/TSL(보안) : 데이터 암호화와 보안 통신을 담당하며, 인증서를 통한 신원 확인과 데이터 암호화를 제공
    • JPEG, MPEG(데이터 압축) : 이미지와 영상의 압축을 담당해서 데이터 크기를 줄여 효율적인 전송을 가능하게 한다.
  • 표현 계층의 주요 기능
    • 문자 인코딩 변환
      • 한글을 UTF-8 인코딩 해준다.
    • 데이터의 압축과 해제
      • 원본 이미지를 압축하여 네트워크 사용량을 줄이고, 수신 시 압축을 해제한다.
    • 암호화 및 복호화
      • 금융 데이터와 같이 중요한 데이터를 송수신 때 암호화와 복호화를 진행한다.
    • 데이터 포맷 변환
      • JSON 데이터를 XML 형식으로 변환
  • 실제 표현 계층 응용 사례
    • 웹 브라우저에서 의 예시
      • 다양한 이미지, 비디오 포맷을 화면에 표시 가능한 형태로 변환
      • 웹 폰트 : 다양한 폰트 파일을 브라우저에서 표시 가능한 형태로 변환
    • 국제 메신저 서비스
      • 다양한 언어의 문자셋 지원
      • 이모지 처리
      • 파일 첨부 기능

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

  • 응용 프로세스가 통신을 관리하기 위한 방법을 제공
  • 통신 세션을 수립하고 유지하는 역할을 담당한다. 신뢰성 있는 통신을 보장하고 효율적인 데이터 전송을 가능하게 해준다.
  • 주요 프로토콜
    • NetBIOS(네트워크 기본 입출력)
      • 컴퓨터 간 세션 연결을 담당
      • 네트워크 상에서 컴퓨터의 이름을 관리
    • SSH(Secure Shell)
      • 보안 세션 연결 담당
      • 원격 로그인과 명령 실행을 위한 안전한 세션 제공
    • PPTP(Point-to-Point Tunneling Protocol)
      • 가상 사설망(VPN) 세션을 담당
      • 두 지점 간의 보안 연결을 유지
  • 세션 계층의 주요 기능
    • 세션 수립과 유지
      • A와 B 사이의 통신에서 고유한 세션과 ID를 생성해서 관리한다.
    • 동기화
      • 연결이 끊겨도 다시 연결하면 이전 기록에 이어서 전송을 시작
      • 100MB 파일 전송중 65MB 전송에서 끊긴 경우 이어서 시작
    • 대화 제어
      • 양방향 통신에서 누가 데이터를 전송할 차례인지 관리하여, 데이터가 충돌 없이 순차적으로 전송될 수 있도록 보장
    • 세션 복구
      • 네트워크 오류로 연결이 끊어졌을 때, 이전 상태를 복구하고 통신을 재개한다.
  • 실제 세션 계층의 응용 사례
    • 온라인 뱅킹
      • 로그인 세션 관리
      • 보안을 위한 세션 타임아웃
      • 동시 접속 제안
    • 온라인 게임
      • 게임 세션 유지
      • 플레이어 간 실시간 상호작용 관리
      • 게임 상태 동기화
    • 스트리밍 서비스
      • 재생 위치 기억
      • 화질 자동 조정
      • 일시정지/재개 기능

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

  • 데이터를 안전하고 효율적으로 전달
  • 보내고자 하는 데이터의 용량과 속도, 목적지를 처리
  • 주요 프로토콜
    • TCP(Transmission Control Protocol)
      • 안전하고 신뢰성 있는 전송을 보장
      • 주요 특징
        • 연결 지향성 : 3-way handshake를 통해 통신을 시작한다. 통신 시작을 요청 > 상대방의 준비완료 연락 수신 > 통신 시작 알림
        • 신뢰성 보장 : 데이터 조각을 보낼 때 마다 수신 확인을 하고, 누락된 것에 발견되면 재전송 요청을 한다.
        • 순서 보장 : 데이터 조각 마다 번호를 부여해서 수신 측에서 올바른 순서로 재조립
    • UTP(User Datagram Protocol)
      • 빠른 전송을 택하지만, 신뢰성은 TCP 보다 낮다.
      • 주요 특징
        • 비연결성 : 사전 연결 설정 없이 바로 전송
        • 빠른 전송 속도 : 확인 응답 없고, 순서 보장도 없음
        • 실시간성 중시 : 영상 스트리밍, 온라인 게임에 적합
  • 전송 계층의 중요한 기능
    • 포트 번호 관리 : 포트번호는 하나의 컴퓨터(IP 주소)에서 여러 프로그램이 동시에 통신할 수 있도록 구분해준다. 전송 계층에서 포트번호를 관리해서 들어오는 데이터를 어떤 포트로 전달할지 관리
    • 흐름 제어 : 스신 측에서 처리할 수 있는 데이터 양을 확인하고, 그 속도에 맞춰 전송
    • 혼잡 제어 : 패킷 손실이 발생하면 전송 속도 감소, 정상적으로 전송되면 점진적으로 증가
  • 실제 전송 계층의 응용 사례
    • 웹 브라우징(TCP)
      • 사용자가 특정 사이트에 접속 요청
      • TCP
        • 웹 서버와 연결 수립
        • 페이지 데이터를 작은 조각으로 분할
        • 순서대로 전송하며 각 조각들이 도착했는지 확인
        • 누락된 데이터 재전송
        • 모든 데이터가 전달하면 브라우저에 전달
    • 실시간 게임
      • 사용자가 캐릭터 이동 명령
      • UDP
        • 즉시 서버로 위치 정보 전송
        • 일부 데이터가 손실되어도 계속 진행
        • 새로운 위치로 정보 업데이트

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

  • 데이터 패킷이 출발지에서 목적지까지 최적의 경로로 전달되도록 관리
  • 네트워크에서 데이터가 효율적으로 전달될 수 있는 핵심 역할을 수행
  • 주요 프로토콜
    • IP(인터넷 프로토콜)
      • 패킷의 라우팅과 전달을 담당
      • 출발지에서 목적지까지 경로 설정을 담당
    • ICMP(인터넷 젱어 메시지)
      • 네트워크 상태와 오류 보고를 담당
      • 네트워크 문제 진단에 사용
  • 네트워크 계층의 주요 기능
    • 라우팅
      • 데이터 패킷의 최적 경로를 설정
      • 가능한 경로들 중 현재 경로의 트래픽 상황, 각 경로의 거리, 네트워크 상태를 고려하여 최적의 경로를 선택
    • 논리적 주소 지정(IP Addressing)
      • IP 주소는 논리적으로 네트워크 관리자가 할당하는 주소
      • 다른 네트워크와 통신할 때 사용되는 주소
    • 패킷 포워딩
      • 데이터를 작은 패킷으로 나누어 전송
      • 큰 데이터가 있다면 여러 패킷으로 나누고, 각 패킷의 헤더에 순서 번호를 넣어 전송

6. 제 2계층 : 데이터 링크 계층(Data Link Layer)

  • 2개의 인접한 네트워크 노드 간의 데이터 전송을 담당
  • 신뢰성 있는 데이터 통신의 기반을 제공
  • 근거리 통신망에서 중요한 역할을 수행
  • 주요 프로토콜
    • 이더넷(Ethernet)
      • 근거리 통신망에서의 데이터 전송을 담당
      • MAC 주소를 이용한 통신 관리
    • ARP(주소 결정 프로토콜)
      • IP 주소를 MAC 주소로 변환하는 역할
      • 실제 물리 주소를 찾아 통신을 가능하게 함
  • 데이터 링크 계층의 주요 기능
    • 프레임화 : 네트워크 계층에서 받은 데이터를 프레임이라는 단위로 분할하고 관리
    • MAC 주소 관리 : 물리적 주소(MAC)를 사용하여 장치를 식별한다.
      • MAC 주소는 하드웨어 주소로 네트워크 카드마다 고유하게 부여된 물리적 주소
      • 같은 네트워크 안에서 통신할 때 사용
    • 오류 제어 : 데이터 전송 중 발생할 수 있는 오류를 검출하고 수정
    • 흐름 제어 : 송신자와 수신자 간의 데이터 전송 속도를 조절
  • 실제 동작 예시
    • 근거리 통신망(LAN)에서의 데이터 전송 과정
      • 컴퓨터 A가 컴퓨터 B로 데이터 전송 시도
        • A의 데이터 링크 계층
          • 데이터를 프레임으로 변환
          • B의 MAC 주소 추가
          • 오류 검출 코드 생성
          • 프레임 전송
        • 스위치의 역할
          • MAC 주소 테이블 참조
          • 목적지 포트로 프레임 전달
        • 컴퓨터 B의 데이터 링크 계층
          • 프레임 수신
          • MAC 주소 확인
          • 오류 검사
          • 데이터 추출 및 상위 계층으로 전달
IP 주소와 MAC 주소는 각각 언제 사용될까?
IP주소는 전체 경로를 위한 것이고, MAC 주소는 각 구간의 직접적 통신을 위한 주소이다.

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

 

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

  • 데이터를 전기 신호로 변환하여 전송하는 역할을 담당
  • 물리 계층의 주요 특징
    • 전송 매체의 특성 : 다양한 전송 매체를 사용할 수 있다.
      • 유선 매체 : 트위스트 페어 케이블, 광섬유 케이블
      • 무선 매체 : 전파(Wifi), 적외선, 마이크로파
    • 신호 인코딩 : 디지털 데이터를 아날로그 신호로 변환
      • manchster 인코딩
      • NRZ(Non-Return to Zero)
    • 물리 계층의 장비들
      • 네트워크 인터페이스 카드(NIC)
        • 디지털 데이터를 전기 신호로 변환
        • 전기 신호를 디지털 데이터로 변환
        • 매체와의 물리적 연결을 제공
      • 리피터와 허브
        • 리피터 : 약해진 신호를 증폭시키고, 신호의 왜곡을 보정
        • 허브 : 여러 포트에 동일 신호를 전달하고 단순한 신호 복제 및 전달
  • 주요 규격 : 물리 계층은 프로토콜 보다는 전기적, 기계적 규격을 정의한다.
    • 이더넷 물리 규격
      • 전기 신호의 전송 규칙을 정의
      • 케이블 종류, 핀 배열, 전압 레벨 등의 규정
    • 무선 통신 규격
      • 전파를 이용한 데이터 전송을 정의
      • 주파수, 변조 방식등을 규정

8. 데이터를 전송하는 과정

  • 네트워크의 캡슐화는 각 계층에서 필요한 정보를 하나씩 추가하며 진행
  • 수신측에서는 역 캡슐화 과정을 통해 각 계층에 해당하는 헤더를 제거한다.

  1. 응용 계층에서 사용자가 데이터를 생성
    • "Hello" 라는 메시지를 생성
    • 응용 계층 프로토콜의 형식에 맞춰 데이터를 구성
  2. 표현 계층에서 데이터를 인코딩하고 필요하면 암호화 진행
    • 텍스트를 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. 물리 계층에서 전기 신호로 변환하여 전송
    • 프레임 비트열로 변환
    • 전송 매체에 적합한 신호로 변환

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

 

 

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

  • A에서 B로 데이터를 보낼 때, 수신위치가 같은 네트워크에 있는지 다른 네트워크에 있는지 확인한다.
  • 다른 네트워크라면 라우터로 전달
    • 라우터의 MAC 주소를 알아야하기 때문에 ARP로 라우터의 MAC 주소를 알아낸다.
    • 데이터 프레임을 생성한다. 목적지의 MAC 주소는 라우터의 MAC 주소로 IP 헤더에는 A의 IP, 목적지에는 B의 IP를 설정
라우터는 서로 다른 네트워크를 연결해주는 장비이며,
스위치는 같은 네트워크 내 여러 장비들을 효율적으로 연결해준다.
스위치는 결국 컴퓨터 A와 라우터 간의 통신을 관리해준다.

 

2. 라우터에서의 처리

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

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

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

4. B에서 데이터 수신

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

 

 

10. 참고

1)OSI 7계층 이해할 때 까지 공부하기 : https://velog.io/@yiseungyun/OSI-7%EA%B3%84%EC%B8%B5-%EC%9D%B4%ED%95%B4%ED%95%A0-%EB%95%8C%EA%B9%8C%EC%A7%80-%EA%B3%B5%EB%B6%80%ED%95%98%EA%B8%B0