[CS] OSI 7계층(OSI 7 Layer) 이란?

GDORI·2024년 8월 25일
0

CS

목록 보기
2/10

네트워크

우리가 OSI 7계층에 대해서 알기 전, 네트워크란 무엇인가에 대하여 봅시다.
네트워크란 컴퓨터 또는 기타 기기들이 데이터를 주고 받기 위하여 유선 또는 무선으로 연결된 시스템입니다. 네트워크가 제대로 작동을 하려면 애플리케이션 목적에 맞는 통신 방법을 선택하고 신뢰할 수 있는 방법을 제공해야 합니다. 이 과정을 수행하기 위해서는 약속된 통신 방법이 필요한데, 이를 네트워크 프로토콜 이라고 합니다.

네트워크 프로토콜

네트워크 프로토콜은 형식, 절차, 규약을 정의한 것으로 데이터를 주고 받는 과정을 규정하고 있습니다. 하지만 데이터를 주고 받는 과정을 한 프로토콜에 담기에는 너무 크겠죠.
그래서 이 과정들을 모듈화하여 계층을 나눈 모델이 OSI(Open Systems Interconnection) 모델입니다.

택배

우리는 지인 또는 거래처에 택배를 보낼 경험을 한번씩은 가지고 있을거라고 생각이 듭니다. 이 과정속에서 박스 포장만 한다고 상대에게 보낼 수 있을까요 ?

택배를 보내는 과정을 한번 들여다 봅시다.

  1. 보내고자 하는 물건을 준비할거에요. 근데 이게 간단한 소포인지, 화물인지에 따라서 우리는 보낼 방법에 대해 강구하고 준비를 하겠지요?
    이는 OSI 7계층 중 Application 계층과 비슷합니다. 보내고자 하는 데이터를 목적에 맞게 통신하는 방법을 결정하여 준비합니다.

  1. 택배 보낼 방법에 대해서 결정을 했다면, 우리는 포장을 할거고 택배사에 맞는 송장 규격에 따라 내용을 적고, 전화번호도 가상번호로 적고 하는 과정을 거칠거에요. 이 과정은 OSI 7계층 중 Presentation 계층과 비슷하며 보내고자 하는 내용을 기계어로 번역, 압축, 암호화를 거치게 돼요!

  1. 택배를 보낼 때 상대방 정보에 대해서도 기입을 하겠지요? 근데 상대방의 정보가 정확한지 확인을 할거에요. 상대방의 주소는 맞는지, 전화번호는 맞는지, 이름은 맞는지..
    이 과정은 OSI 7계층 중 session 계층과 비슷하다고 볼 수 있지요.
    컴퓨터끼리 주고 받을 때 이 컴퓨터가 맞는지 인증하는 과정을 거치게 됩니다.

  1. 근데 택배가 너무 커요.. 보낼 수 있는 택배의 크기에 맞춰서 분할해서 담아야 할 것 같아요.
    그리고 나는 빨리 보낼 수 있는 특송, 천천히 보내는 일반 배송 등 상황에 따른 방식과 업체 선택을 할 예정이에요.
    transport 계층의 경우 데이터를 쪼개고, 헤더에 포트번호를 붙여서 전송하게 됩니다. 또한 양측 컴퓨터 속도 차이를 조정합니다. 이 과정속에서 에러도 컨트롤 할 수 있습니다.(1~3번을 보냈는데 2번이 안왔습니다. 2번만 따로 보내주세요.)

  1. 택배 기사님이 집을 찾아가는 방법에 대해서 구상을 합니다. 가장 최적의 방법으로 원하는 도착지에 가기 위해서 택배 허브들에 가져다 주고 또 이어 받아서 그 지역 담당 택배기사님들이 찾아서 맞는 주소에 가져다 주실겁니다.
    network 계층에는 컴퓨터와 컴퓨터 사이 수많은 라우터와 연결이 되어있는데 ip주소를 기준으로 최적의 라우팅을 거쳐 경로를 선택하고 패킷을 전송합니다.

  1. 택배기사님이 주소를 보고 가서 그냥 두고 가시지 않고 상대방을 부릅니다. 쥐도리씨~ 택배왔어요. A동 101호에 사는 사람이 혼자일수도 있지만, 대가족이 살고 있을수도 있으니까요.
    datalink 계층에서는 어떠한 컴퓨터에 전송할지 MAC주소를 체크하여 전달하고 동일한 네트워크 환경속에서 오류제어와 흐름제어를 수행합니다.

  1. 이러한 택배를 주고받기 위하여 수많은 택배기사님들이 움직이실겁니다. 그 택배기사님들은 트럭을 타고 움직이실거구요. 그 환경에 맞게 가지고 다닐 수 있게 해줘야겠죠.
    pysical 계층에서는 비트단위의 데이터를 전기신호로 변환하는 역할을 합니다.

OSI 7계층 모델

택배 예시가 이해가 안가신다구요? 그러면 OSI 모델에 대해서 자세히 알아보겠습니다. OSI 7 Layer는 컴퓨터 또는 기타 기기 간의 통신에 있어 전송하는 과정을 7개의 단계로 나눈 구조입니다. 각 계층은 특정 역할을 담당하며 상황에 따라 상호작용(데이터 링크,네트워크) 하여 데이터를 전송합니다.

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

  • 사용자가 네트워크에 접근할 수 있도록 지원하고, 응용프로그램 간의 데이터 교환을 담당합니다. 보내고자 하는 데이터를 전송 또는 수신하는 역할을 합니다.

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

  • 데이터를 응용 계층에서 사용할 수 있는 형식으로 변환 또는 암호화, 압축을 수행합니다. 데이터의 인코딩/디코딩, 암호화/복호화, 압축/압축해제를 담당합니다.

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

  • 두 장치 간 연결을 설정하고 유지하며, 데이터 전송 중 연결이 끊어졌을 경우 재연결을 지원합니다. 인증, 권한부여, 세션복구 등의 기능을 수행합니다.

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

  • 데이터를 비트 단위로 쪼개고, 포트번호를 부여하여 전송합니다. 전송 과정에서 오류 제어와 흐름 제어를 수행하며 TCP와 UDP가 대표적인 프로토콜 입니다.

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

  • 여러 네트워크를 거쳐 데이터를 전달하는 과정으로 IP주소를 이용하여 최적의 경로를 설정하고 목적지까지 라우팅(경로선택) 합니다.
    이 계층의 경우 2단계 데이터링크 기능을 이용하여 구현하고 있습니다.

2단계 : 데이터 링크 계층 (Data Link Layer)

  • 동일한 네트워크 내에서 데이터를 전송하고, 오류 제어와 흐름 제어를 수행합니다. 같은 환경 속 여러 컴퓨터가 있을 경우 누구에게 데이터를 보낼지 결정하는 역할을 합니다.

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

  • 데이터를 전기 신호나 광 신호로 변환하여 실제 전송을 담당합니다.

해체는... 조립의 역순...

보충

0개 국어라서 제대로 설명하지 못해 위의 과정이 이해가 되셨을지 모르겠습니다. 컴퓨터와 컴퓨터 사이 라우터가 많은데 이 라우터들도 7계층을 다 살펴볼까요 ?? 아닙니다. 택배 기사님들의 경우 쥐도리씨가 받고 쥐도리씨는 어디 사는지를 보고 다음 허브에 가져다줄지 판단하기 때문에 실질적 라우터의 경우 1,2,3단계까지만 살펴보고 다시 캡슐화하여 다음 목적지로 전송하게 됩니다.

마치며

그냥 익스플로러만 열면 연결되었던 홈페이지들이 이러한 과정을 거쳐 뜬다는 점이 놀랍다.
물론 요즘은 TCP/IP Stack 계층을 이용한다고 하나, 네트워크에 대해 알아보니 코딩에 있어
어떻게 처리를 해야 효율적인지 알 수 있을 것 같다.(?)는 아니고 공부를 더 열심히 해야겠다.

profile
하루 최소 1시간이라도 공부하자..

0개의 댓글