[기초CS/네트워크] OSI 7계층

이나영·2022년 3월 4일
0

Basic CS - 네트워크

목록 보기
2/2

네트워크 기본 OSI(Open Systems Interconnection) 7계층

  • 통신을 수행할 때 처리되어야 할 작업을 순차적으로 7단계로 정의한 국제 통신 표준 규약이다.
  • 실제 인터넷에서 사용되는 TCP/IP는 OSI 참조모델을 기반으로 상업적이고 실무적으로 이용될 수 있도록 단순화한 것이다.
  • 회사의 장비마다 호환이 되지 않으며 복잡했기 때문에 => 모든 시스템들의 상호 연결에 있어 문제가 없도록 표준을 정의한 것이다.
  • 통신의 오류가 발생 시 해당 오류의 원인을 찾아서 원인의 계층만 고친다.
  • 실제로는 TCP/IP 프로토콜 계층을 많이 이용한다.

🔰TCP/IP모델

  • 독립적인 모듈을 구성할 때, 모듈들이 서로 강하게 의존하면 결합도가 높고, 너무 작은 단위로 나뉘면 응집도가 낮고 한다. => 소프트웨어 가치를 하락시키는 요인이 된다.
  • OSI 7계층에서 응용, 표현, 세션 계층은 결합도가 높고, 응집도가 낮은 모듈로 TCP/IP모델에서는 하나로 통합되어 사용되고 있다.

1️⃣ 물리 계층(Physical Layer)

  • 7계층 중 최하위계층
  • 주로 전기적, 기계적, 기능적인 특성을 이용하여 데이터 전송
  • 아날로그 신호(주파수)를 디지털 신호로 변경해주는 역할을 함, NIC(Network Interface Controller)란 하드웨어가 수행(네트워크 카드, 랜카드로 불림)
  • 데이터는 0과 1의 비트열(on, off)의 전기적 신호 상태로 이루어져 해당 계층은 단지 데이터를 전달한다. ⇒ 알고리즘, 오류 제어 기능이 없다.
  • 장비 : 케이블, 리피터(신호를 세게 해줌), 허브
  • 리피터는 신호를 세게하지만 특정지점에 전달하기보다 무분별하게 전파하기 때문에 효율이 떨어진다.

  • 들어온 데이터를 식별하기 위한 라벨링 작업을 진행한다. => 프레임화
  • 물리적인 연결을 통해 인접한 두 장치간의 신뢰성 있는 정보 전송을 담당(Point-to-Point)
  • 상위 or 하위계층으로 프레임 전달, 안전한 정보의 전달 ⇒ 오류나 재전송하는 기능 존재, 오류제어, 흐름제어
  • MAC주소를 통해 통신
    • MAC주소 : 컴퓨터의 고유한 주소
  • 데이터 단위는 프레임(Frame)
  • NIC라는 하드웨어가 수행
  • 장비 : 브리지, 스위치

3️⃣ 네트워크 계층(Network Layer)

  • 중계노드를 통해 전송하는 경우, 어떻게 중계할 것인가 규정
  • 라우팅 기능을 맡고있는 계층, 목적지까지 가장 안전하고 빠르게 데이터를 보냄(최적 경로 설정 가능)
  • 포워딩 : N개의 라우터가 지속적으로 정보를 전달하면서 최종 목적지까지 전달하는 방법이다.
  • IP주소 (네트워크 계층 헤더)
  • 데이터 단위는 패킷(Packet) : 전달 해야하는 데이터는 출발지 정보, 목적지 정보가 부가적으로 필요하며 해당 정보는 IP로 처리하고, IP정보를 붙인 데이터를 패킷이라고 한다.
  • 장비 : 라우터(공유기), L3스위치
  • 라우터 : 리퍼터의 단점을 해결하기 위해 사용되는 장비로 내장된 알고리즘을 통해 전달할 수 있는 가장 가까운 라우터까지의 경로를 결정하고 이를 테이블로 저장(라우팅)한다.

✔️수행역할

  1. 2계층에서 넘어온 데이터를 패킷으로 만들거나, 수신된 패킷 데이터를 해석
  2. 다음 라우터의 경로를 찾기 위한 라우팅 진행
  3. 패킷 전달의 역할을 다음 라우터에게 위임하는 포워딩 진행

👉 OSI 1~3계층은 하드웨어 영역으로, 각 층마다 매칭되는 하드웨어 장치가 존재한다.(하드웨어가 실질적으로 수행하는 역할)



4️⃣ 전송 계층(Transport Layer)

  • 종단 간 신뢰성 있고 정확한 데이터 전송을 담당
  • end to end를 담당하는 최하층 계층
  • 송신자와 수신자 간 신뢰성 있고 효율적인 데이터를 전송하기 위해 오류 검출 및 복구, 흐름 제어와 중복 검사 등을 수행
  • 데이터 전송을 위해 데이터를 식별할 수 있는 포트번호 사용(대표적인 프로토콜로 TCP/UDP가 있음)
  • 데이터 단위는 세그먼트(Segment)

✔️수행역할

  1. 포트번호를 통한 데이터 식별 작업
  2. 데이터 통신 프로토콜에 따른 알고리즘 수행

5️⃣ 세션 계층(Session Layer)

  • 통신 장치 간 상호작용 및 동기화 제공
  • 연결 세션에서 데이터 교환과 에러 발생 시의 복구를 관리
  • 데이터 단위 : 데이터 또는 메세지

6️⃣ 표현 계층(Presentation Layer)

  • 데이터를 어떻게 표현할 지정하는 역할을 하는 계층
  • 하위 계층이 전달한 데이터를 어플리케이션이 해석할 수 있도록 데이터를 디코딩하거나, 하위계층으로 효율적으로 데이터를 전달하기 위해 인코딩한다.

✔️수행역할

  1. 송신자에서 온 데이터를 해석하기 위한 응용계층의 데이터 부호화, 변화
  2. 수신자에서 데이터의 압축을 풀 수 있는 방식으로 된 데이터 압축
  3. 데이터의 암호화, 복호화

7️⃣ 응용 계층(Application Layer)

  • 사용자와 가장 밀접한 계층으로 인터페이스 역할
  • 응용 프로세스 간의 정보 교환을 담당
  • 전자메일, 인터넷, 동영상 플레이어 등
  • 소켓 API : 전송계층에서 제공하는 API로 네트워크 통신을 가능하게 하는 API이다. 응용계층에서는 소켓 프로그래밍을 통해 데이터를 송수신한다.
  • 각 프로그램이 개벽적으로 데이터 규격을 만들어 통신할 수 있다. => 데이터의 인코딩 및 디코딩을 각 프로그램이 자체적으로 수행할 수 있기 때문
  • 대표적 데이터 규격 : HTTP 프로토콜 방식, 작은 단위로는 JSON, XML 등이 있다.

👉 OSI 4~7 계층은 소프트웨어 영역으로, 4~6계층은 OS7계층은 프로그램이 해당 계층의 역할을 수행



👀 이 블로그를 참고하여 작성했습니다 :)

profile
소통하는 백엔드 개발자로 성장하기

0개의 댓글