OSI 7계층

표준화된 통신용 규약으로, 네트워크 동작을 나누어 이해하고 개발하는데 필수적인 개념이다.

  • OSI 7계층을 한눈에 그림으로 나타내면 아래와 같다.

  • 각 레이어의 프로토콜은 하위 레이어의 프로토콜이 제공하는 기능을 사용해 동작한다.

  • 데이터의 앞쪽에 붙는 것은 헤더이고, 뒤쪽에 붙는 것은 트레일러이다.

1계층: 물리계층

  • bit 단위의 사용자 데이터를 전송하는 계층

  • 물리적으로 연결된 장비를 이용해 전기 신호를 전달한다.

  • 주요 장비로는 네트워크 통신을 중재하는 Hub, Repeater와 케이블 장치인 Cable, Connector와 컴퓨터의 랜 카드와 케이블을 연결하는 장치인 Tranceiver, 네트워크 모니터링과 패킷 분석을 위해 전기 신호를 다른 장비로 복제해주는 TAP이 있다.

  • 전기 신호가 들어오면 이 전기 신호를 재생성해 다른 모든 포트에 전송한다.

  • UTP 케이블을 사용하면 설치가 용이하지만 간섭에 약하다는 점이 있다. (Direct: 서로 다른 계층의 장치 연결, Cross: 동일 계층 장치 연결)

2계층: 데이터 링크 계층

  • 전기 신호를 모아 알아볼 수 있는 데이터 형태로 처리하는 계층

  • 주소 정보를 정의하고 정확한 주소로 통신이 되도록 직접 연결된 네트워크 장치 간의 데이터 전송을 담당한다.

  • ARP 프로토콜로 IP 주소를 MAC주소로 변환해, MAC 주소 기반으로 통신한다.

  • 프레이밍(Framing), 흐름 제어, 오류 제어, 접근 제어, 동기화

  • 프레임

    • 2계층에서 전송되는 데이터

    • 프레임의 헤더에는 송신 및 수신 장치의 주소가 포함

      • 트레일러에는 오류 검출을 위한 오류 검출 코드 포함

  • MAC주소(Media Access Control)

    • 스위치가 프레임을 주고받을 때 사용하는 주소

    • 48bit 의 16 진수로 표현됨

    • 소프트웨어적으로만 주소 변경 가능

  • NIC (Network Interface Card)

    • PC나 서버에서 네트워크를 연결해주는 카드나 인터페이스를 지칭한다.

    • 고유 MAC 주소를 가지며 목적지 MAC 주소가 NIC의 MAC 주소와 동일하면 올바르게 도착한 데이터이므로 상위 계층에서 처리할 수 있도록 메모리에 적재한다.

    • 동작 방식은 다음과 같다.

      • 전기 신호를 데이터 형태로 만든다.

      • 목적지 MAC 주소와 출발지 MAC 주소, 네트워크 인터페이스 카드의 MAC 주소를 확인한다.

      • 목적지 MAC 주소와 네트워크 인터페이스가 가진 MAC 주소가 맞으면 데이터를 처리하고, 아니면 데이터를 폐기한다.

  • 스위치

    • 단말의 MAC 주소와 연결된 포트 데이터를 기반으로 통신 시 포트를 적절히 필터링하고 포워딩해준다.

    • 스위치의 적절한 필터링과 포워딩 덕분에 통신이 필요한 포트만 사용하고 네트워크 전체에 불필요한 처리가 감소하여 이더넷 기반 네트워크가 급증하는 계기가 되었다.

3계층: 네트워크 계층

  • 호스트 간의 통신을 담당하여 IP 주소를 기반으로 패킷을 전달하는 계층

  • 패킷: 네트워크 계층의 데이터

  • 네트워크 간의 최적의 경로를 결정한다.

  • LAN 구간(라우터와 PC 의 연결구간)과 WAN 구간(라우터와 라우터 연결 구간) 연결

  • 라우터

    • IP 주소를 사용해 최적의 경로를 찾아 패킷을 전송하는 역할을 하는 장비이다.

    • 최적의 경로는 라우터 프로토콜에 따라 정해진다.

    • 라우터는 LAN 구간의 통신을 위해 MAC 주소를 보유한다.

    • 논리적 링크와 물리적 링크를 함께 사용한다.

  • 네트워크 계층의 프로토콜

    • IP: v4, v6 보유

    • ARP: IP 주소를 기반으로 MAC 주소 찾을 때 사용

    • RARP: MAC 주소 기반으로 IP 주소 찾을 때 사용

4계층: 전송 계층

  • 애플리케이션 간 통신을 담당하여 실제 데이터가 잘 보내지는지 확인하고, 목적지 애플리케이션으로 데이터를 어떤 방식으로 전송할 지 담당한다.

  • 세그먼트: 전송 계층의 데이터 헤더에는 포트/소켓 주소가 포함된다.

  • 종단간 (End to End) 데이터 통신 보장, 흐름 제어와 오류 제어 등을 통해 데이터 통신 보장

  • 지연에 따른 왜곡 및 대역폭 부족 문제 해결

  • 동시에 여러 개의 논리적 연결 지원

  • 사용자 데이터 분할과 재조립을 통해 과부하를 예방

  • TCP, UDP

  • 로드 밸런서, 방화벽

    • 애플리케이션 구분자인 포트 번호와 패킷의 시퀀스 번호, ACK 번호를 이용해 부하를 분산하거나 보안 정책을 수립해 패킷의 통과/차단 기능을 수행한다.

5계층: 세션 계층

  • 애플리케이션 간 통신에서 세션을 관리한다.

    세션: 데이터가 실질적으로 이동하는 통로

  • 양 끝단의 응용 프로세스의 연결 성립, 연결 유지, 연결 종료를 관리한다.

  • 에러로 중단된 통신에 대한 에러 복구와 재전송도 수행한다.

  • 메시지: 세션 계층 데이터

  • RPC

6계층: 표현 계층

  • 애플리케이션 간 통신에서 메시지 포맷 관리

  • 데이터를 어떻게 표현하는지 정의한다.

  • 응용 계층에서 생성된 데이터를 다른 컴퓨터가 이해할 수 있는 형태로 변환해준다.

  • MIME 인코딩이나 암호화, 데이터 압축, 코드 변환 등이 수행될 수 있다.

7계층: 응용 계층

  • 응용 프로그램과 통신 프로그램 사이를 연결

  • 애플리케이션 목적에 맞는 통신 방법 제공

  • HTTP, DNS, SMTP, FTP가 대표적인 프로토콜이다.

  • 어떻게 데이터가 오고가는지는 관여하지 않는다.

전체적인 통신 과정

  1. 데이터를 전송하고자 할 때 실제 메시지에 7계층부터 1계층까지 헤더를 점차 붙인다. (캡슐화)

  2. 라우터에서는 전송받은 데이터를 데이터 링크 레이어를 거쳐 네트워크 레이어까지 올려 목적지의 IP 주소를 확인한 후 다시 물리 계층까지 내려준다.

  3. 목적지까지 데이터가 전송되었으면, 각 계층의 헤더를 분리해내면서 레이어 계층을 올린다.(역캡슐화) 최종적으로 목적지 애플리케이션은 순수한 메시지만 받게 된다.

출처

https://www.youtube.com/watch?v=6l7xP7AnB64&t=382s

https://www.geeksforgeeks.org/layers-of-osi-model/

Last updated