Computer Science/Network

[Network] OSI 7 계층

dbssk 2023. 6. 23. 19:25

OSI 7 계층

  • 국제 표준화 기구(ISO)에서 정의한 네트워크 표준 모델
  • 네트워크 통신이 일어나는 과정을 7단계로 나눈 것
  • 통신이 일어나는 과정을 단계별로 알 수 있고, 이상이 생긴 단계만 수정하면 된다.

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

  • 비트(bit)를 프로토콜 단위로 사용
  • 데이터 전송에 필요한 물리적 매체를 다루는 계층
  • 케이블, 광섬유, 무선 신호 등과 같은 물리적인 매체를 통해 데이터를 전송하는 과정에서 신호의 송수신 방법, 전송 속도, 전기 신호의 강도와 주파수 등과 같은 물리적인 특성을 다룬다.
  • 데이터의 전송 방식에 따라서 전송되는 신호의 크기, 샘플링 속도, 채널 대역폭 등도 결정되는 경우가 있다.
  • 물리 계층에서 사용되는 장비와 기술
    1. 리피터 (Repeater) : 데이터 신호를 증폭하여 전송 거리를 연장시키는 장비

    2. 허브 (Hub): 여러 개의 컴퓨터나 네트워크 장비를 연결하여 데이터를 중계하는 장비

    3. 브리지 (Bridge): 두 개의 네트워크를 연결하여 데이터를 전송하는 장비로 MAC 주소를 이용하여 프레임을 필터링하여 전송

    4. 스위치 (Switch): 여러 개의 포트를 가지고 있는 네트워크 장비로, MAC 주소를 이용하여 패킷을 전달하는데 사용

    5. 케이블 (Cable): 데이터를 전송하는 물리적인 매체이다. 다양한 종류의 케이블이 존재하며, 각각의 케이블은 전송 거리, 대역폭, 데이터 전송 속도 등에 따라 다른 특성을 가진다.

    6. 무선 신호 (Wireless Signal): 전자파를 이용하여 데이터를 전송하는 방식이다. 무선 기술은 적은 전력으로 다수의 장치를 동시에 연결할 수 있어, 모바일 기기나 IoT기기와 같이 유연하게 연결이 필요한 환경에서 널리 사용된다.

2계층 :  데이터 링크 계층 (DataLink Layer)

  • 프레임(frame)을 프로토콜 단위로 사용
  • 물리 계층에서 송수신되는 비트열을 프레임(Frame)이라는 작은 단위로 나누고, 이러한 프레임을 전송하는 계층이다.
  • 주로 노드 간의 직접적인 통신을 다루는데 사용되며, 프레임에 대한 흐름 제어, 오류 제어, 프레임 동기화 등을 수행한다.
  • MAC 주소를 사용하여 물리적인 주소를 식별한다.
  • 데이터 링크 계층에서 사용되는 주요 프로토콜
    1. 이더넷 (Ethernet): LAN 에서 가장 많이 사용되는 프로토콜 중 하나로, 비트열을 프레임으로 나누어 MAC 주소와 같은 헤더 정보를 추가하여 전송한다. 이더넷에서는 CSMA/CD (Carrier Sense Multiple Access with Collision Detection) 또는 CSMA/CA 라는 충돌 회피 방식을 사용하여 여러 노드가 동시에 데이터를 전송하는 것을 방지한다.

    2. PPP (Point-to-Point Protocol): 시리얼 접속을 통해 인터넷 서비스 제공자(ISP)와 연결할 때 사용되는 프로토콜이다. PPP 는 링크 계층과 네트워크 계층 간의 연결을 수행하는데 사용된다.

    3. HDLC (High-level Data Link Control): 시리얼 통신에서 사용되는 프로토콜이다. PPP와 같은 다른 프로토콜에서도 사용된다. HDLC는 프레임에 대한 동기화, 흐름 제어, 오류 제어 등을 수행한다.

    4. WI-FI (Wireless Fidenlity): 무선 네트워크에서 사용되는 프로토콜이다. WI-FI 에서는 물리 계층에서 무선 신호를 전송하고, 데이터 링크 계층에서는 프레임 전송을 위한 MAC 주소 할당, 충돌 회피 등을 수행한다.

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

  • 패킷(packet)을 프로토콜 단위로 사
  • 호스트 간의 통신을 제어하고 패킷을 생성하여 이를 목적지에 안정적으로 전송하는 계층이다.
  • 여러 개의 노드를 거칠 때마다 경로를 찾아주는 역할을 수행한다.
  • 라우터(Router)를 사용하여 다른 네트워크로 패킷을 전송하며, IP 주소를 사용하여 호스트나 네트워크를 식별한다.
  • 라우팅 (Routing): 라우터를 이용하여 패킷의 목적이 주소를 보고 패킷을 수신한 인터페이스를 제외한 다른 인터페이스로 패킷을 전송하는 것
  • 네트워크 계층에서 사용되는 주요 프로토콜
    1. IP (Internet Protocol)
      • IP 는 인터넷에서 사용되는 주요 프로토콜 중 하나로, 패킷을 생성하고 라우팅한다.
      • IP 주소를 사용하여 호스트나 네트워크를 식별하고, 데이터를 목적지까지 안정적으로 전송한다.
      • 또한, IP 는 다른 프로토콜을 위한 기반으로 사용된다. 예를 들어, TCP와 UDP 는 IP를 기반으로 동작하며, ICMP 는 IP 패킷의 오류를 감지하고 오류 메시지를 전송하는데 사용된다.
    2. 인터넷 제어 메시지 프로토콜 (ICMP) : 네트워크 장치 간에 제어 메시지를 교환하기 위해 사용되는 프로토콜이다. ICMP는 네트워크 상태, 오류 및 메시지 전달 등에 대한 정보를 제공합니다. 주로 네트워크 진단 및 에러 처리에 사용된다.

    3. 인터넷 그룹 관리 프로토콜 (IGMP) : 멀티캐스트 그룹 멤버십 관리를 위해 사용되는 프로토콜이다. IGMP는 호스트가 특정 멀티캐스트 그룹에 가입하고 떠날 수 있도록 한다.

    4. 인터넷 프로토콜 버전 6 (IPv6) : IPv4의 주소 부족 문제를 해결하기 위해 개발된 다음 세대의 IP 프로토콜이다. IPv6는 더 큰 주소 공간, 보안 기능, 향상된 QoS (Quality of Service) 등을 제공한다.

    5. 인터넷 프로토콜 세부사항 (IPSec) : IP 네트워크를 위한 보안과 인증을 제공하기 위해 사용되는 프로토콜 스위트이다. IPSec는 데이터의 기밀성, 무결성, 인증, 암호화 등을 보장하기 위해 사용된다.

    6. 라우팅 프로토콜 : 네트워크에서 경로 선택과 라우팅 테이블 업데이트를 담당하는 프로토콜이다. 예를 들어, 내부 게이트웨이 프로토콜 (IGP)인 OSPF (Open Shortest Path First)와 외부 게이트웨이 프로토콜 (EGP)인 BGP (Border Gateway Protocol)가 있다.
    7. ARP (Address Resolution Protocol) : IP 주소를 통해 MAC 주소를 알린다.
    8. RARP : MAC 주소는 알지만 IP를 모를 때 IP를 얻으려고 사용한다.
  • 다양한 라우팅 알고리즘을 사용하여 최적 경로를 찾아 패킷을 전송한다.
    • Dijkstra 알고리즘
    • Bellman-Ford 알고리즘
    • OSPF (Open Shortest Path First) 알고리즘

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

  • 호스트 간의 통신을 위해 TCP, UDP 같은 프로토콜을 사용하며, 포트 번호를 사용하여 애플리케이션 간의 연결을 제어하는 계층이다.
  • 전송 계층에서 사용되는 주요 프로토콜
    1. TCP : 프로토콜 단위 = 세그먼트(segment), 호스트 내 프로세스 간에 신뢰적인 연결지향성 서비스 제공
    2. UDP : 프로토콜 단위 = 데이터그램(datagram), 비연결성이며 신뢰성 없고, 순서화 되지 않은 데이터그램 서비스 제공
  • 전송 계층에서는 포트 번호를 사용하여 애플리케이션 간의 연결을 제어한다. TCP와 UDP는 모두 16비트 포트 번호를 사용하며, 이를 통해 수신 측에서 패킷을 올바른 애플리케이션에 전달할 수 있다. 예를 들어, 웹 서버에서는 일반적으로 80번 포트를 사용하며, FTP 서버에서는 20번과 21번 포트를 사용한다.

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

  • 메시지(message)를 프로토콜 단위로 사용
  • 호스트 간의 연결을 생성, 유지, 종료하여 애플리케이션 간의 대화를 관리하는 계층이다.
  • 세션을 복구하여 중단된 연결을 다시 시작할 수도 있다.
  • 세션 계층이 수행하는 기능들
    1. 연결 설정 (establishment): 세션 계층은 애플리케이션 간의 연결을 설정한다. 이를 위해 연결을 생성하고, 연결에 대한 정보를 주고받는다.

    2. 연결 유지 (maintenance): 애플리케이션 간의 연결을 유지한다. 이를 위해 세션 키(Session Key)를 사용하여 애플리케이션 간의 대화를 보호하고, 연결을 계속 유지한다.

    3. 연결 종료(teradown): 애플리케이션 간의 연결을 종료한다. 이를 위해 연결을 종료하고, 연결 종료에 대한 정보를 주고받는다.
  • 세션 계층에서 사용되는 주요 프로토콜
    1. Telnet 프로토콜: 원격 접속 프로토콜이며, 세션 계층에서 호스트 간의 연결을 설정하고 유지한다.
    2. FTP 프로토콜: 파일 전송 프로토콜이며, 세션 계층에서 파일 전송을 위한 연결을 설정하고 유지한다.

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

  • 메시지(message)를 프로토콜 단위로 사용
  • 데이터의 형식을 변환하고, 데이터의 구조를 정의하는 역할을 하는 계층이다.
  • 호스트 간의 상호 운용성을 보장하고, 데이터의 형식을 변환하며, 데이터의 구조를 정의하여 애플리케이션 간의 효율적인 데이터 전송을 가능하게 한다.
  • 표현 계층이 수행하는 기능들
    1. 데이터 형식 변환 (Encoding/Decoding): 데이터를 애플리케이션에서 사용 가능한 형식으로 변환한다. 이를 위해 데이터를 인코딩하고 디코딩한다. 예를 들어, 텍스트 데이터를 이진 데이터로 인코딩하거나, 암호화된 데이터를 복호화하여 원본 데이터로 변환하는 작업을 수행한다.

    2. 데이터 구조 정의: 데이터의 구조를 정의한다. 이를 위해 데이터의 표현 방식, 데이터 타입, 데이터 구조 등을 정의한다. 예를 들어, 이미지 데이터의 해상도, 색상 체계, 데이터 형식 등을 정의하는 작업을 수행한다.

    3. 데이터 압축 (Compression): 데이터를 압축하여 전송을 더 효율적으로 할 수 있도록 한다. 이를 위해 데이터를 압축하고, 전송 측에서는 압축된 데이터를 다시 복원하여 수신 측에서 사용 가능한 형식으로 변환한다.
  • 표현 계층에서 사용되는 주요 프로토콜
    1. SSL : 클라이언트와 서버 간 안전한 보안 채널 형성을 위한 프로토콜
    2. JPEG: 이미지 데티터의 압축과 전송을 위한 프로토콜
    3. MPEG: 비디오 데이터의 압축과 전송을 위한 프로토콜

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

  • 메시지(message)를 프로토콜 단위로 사용
  • 사용자와 네트워크 사이의 인터페이스 역할을 하는 계층이다.
  • 응용 계층이 수행하는 기능들
    1. 응용 프로그램 지원: HTTP, FTP, SMTP, POP3, IMAP 등의 프로토콜을 사용하여 다양한 응용 프로그램에 대한 지원을 제공한다.
    2. 데이터 형식 정의: 데이터의 구조, 표현 방식, 데이터 타입 등을 정의한다. 예를 들어 HTML, XML, JSON 등의 형식이 있다.
    3. 데이터 전송: TCP, UDP 등의 프로토콜을 사용하여 데이터를 전송하고 수신한다.
  • 응용 계층에서 사용되는 주요 프로토콜
    1. HTML: 웹 페이지 요청과 응답에 사용
    2. DNS : 도메인 이름 해석
    3. FTP: 파일 전송에 사용
    4. SMTP, POP3, IMAP: 이메일 전송과 수신에 사용
    5. SSH : TCP 보안 채널 형성에 사용