TIL 67 | 네트워크 - OSI 7계층, TCP/IP 모델

Gom·2021년 4월 27일
0

Web & CS

목록 보기
8/14

이전에 공부한 HTTP 프로토콜에서 네트워크 통신 4개층에 대해 접했다.
공부를 하다보니 통신 과정을 더욱 세분화한 OSI 7계층 모델이 존재한다는 것을 알게 되었다.
OSI 7계층과 TCP/IP 프로토콜은 아래 그림과 같이 대응된다.
이들은 모두 네트워크에서 데이터를 전송하는 과정을 나타낸 것이며 OSI 모델은 7계층으로, TCP/IP모델(인터넷 모델)은 4개 계층으로 단순화시킨 모델이다.
OSI 7계층은 무엇이고 통신 과정에 계층을 나누어둔 이유에 대해 알아보자.
이 글에서는 각 계층에 대한 설명은 키워드 위주로 요약하고 필요한 경우 심도있게 알아보도록 하자.

OSI 7 layers ?

네트워크 통신 과정을 7단계로 나눈 것이다!

왜 계층을 나누었을까?

유지관리 용이
역할을 세분화해두면 문제가 발생했을 때 문제 원인을 파악하기 쉽다.
(통신 과정에 대입하면 데이터 흐름을 파악하기 쉽다.)
계층을 나누어 각자 역할을 분리해두었기 때문에 어떤 계층에 문제가 생겼는 지 빠르게 파악하여 해당 부분에 조치를 취할 수 있다.

시스템 간 상호연결성 부여
또한 네트워크 구성 요소를 표준화하여 상호 이질적인 네트워크 간에도 호환이 가능해진다.

어떻게 나누었나?

일단 계층이란 모듈과 다르게 상하구조를 가진다. 상위 계층 프로토콜이 동작하기 위해서는 모든 하위 계층에 문제가 없어야 한다는 의미이다.
계층을 1단계부터 정리해보자.

1. 물리 계층(Physical Layer)

데이터를 전기 신호로 변환하기

하드웨어 전송 기술이다. 전기적인, 기계적인 신호를 주고받으며 데이터의 종류나 오류를 제어하지 않는다. 전기 신호로 변환해서 주고받는 기능만을 수행한다. 이 계층에 속하는 대표적인 장비는 통신 케이블, 리피터, 허브등이 있다.
전송 단위는 Bit이다.

LAN 또는 WAN에서 데이터 전송하기

물리계층을 통해 송수신되는 정보의 오류와 흐름을 관리
정보전달 신뢰성 보장을 위한 계층으로 CRC 기반 오류 제어와 흐름 제어가 필요
데이터 전송 단위는 Frame

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

목적지에 데이터 전달하기

여러개의 노드를 거칠때마다 경로를 찾아주는 역할의 계층
라우팅, 인터네트워킹(Internetworking) 등을 수행
주소부여(IP), 경로설정(Route)
데이터 전송 단위는 Datagram(Packet)

4. 전송 계층(Transport Layer)

신뢰할 수 있는 데이터 전송하기

패킷 손실, 중복, 순서바뀜 등이 없도록 보장함으로써 양 끝단(End to end)의 사용자들이 신뢰성있는 데이터를 주고 받을 수 있도록 하는 역할
상위 계층들이 데이터 전달의 유효성이나 효율성을 생각하지 않도록 함.
일부 프로토콜은 상태 개념이 있고(stateful), 연결 기반(connection oriented)이어서 패킷들의 전송이 유효한 지 확인하고 전송 실패한 패킷을 다시 전송할 수 있다.
잘 알려진 TCP프로토콜이 바로 이 계층에 해당

  • TCP프로토콜?

    TCP 하위계층인 IP 계층의 신뢰성 없는 서비스를 보완하는 역할
    연결지향적 (Connection-oriented)

  • UDP프로토콜?

    UDP 프로토콜의 경우 비연결형, 신뢰성 낮음, 순서없음.
    단 데이터를 전달이 빠르고 다수 지점으로 전송도 가능.
    신뢰성있는 데이터 전송보다 연속적인 특성의 서비스에 적합(ex 스트리밍)

5. 세션 계층(Session Layer)

양 끝단의 응용 프로세스가 통신을 관리하기 위한 방법을 제공
TCP/IP 세션을 만들고 없애는 책임
동시 송수신 방식(duplex), 반이중 방식(half-duplex), 전이중 방식(Full Duplex)의 통신과 함께, 체크 포인팅과 유휴, 종료, 다시 시작 과정 등을 수행

6. 표현 계층(Presentation Layer)

코드 간의 번역을 담당, 데이터 형식을 분류하여 Application Layer의 부담을 덜어줌.
MIME 인코딩이나 암호화 등의 동작이 이 계층에서 이루어진다.

7. 응용 계층(Application Layer)

애플리케이션에 데이터 전송하기

HTTP, FTP 등의 프로토콜이 응용 계층에 속한다.


계층이름설명
7계층응용 계층 (Application Layer)이메일, 파일 전송, 웹 사이트 조회 등 어플리케이션에 대한 서비스를 제공
6계층표현 계층 (Presentation Layer)문자 코드, 압축, 암호화 등의 데이터 변환
5계층세션 계층 (Session Layer)세션 체결, 통신 방식 결정
4계층전송 계층 (Transport Layer)신뢰할 수 있는 통신 구현
3계층네트워크 계층 (Network Layer)다른 네트워크와 통신하기 위한 경로 설정 및 논리 주소를 결정
2계층데이터 링크 계층 (Data Link Layer)네트워크 기기 간 데이터 전송 및 물리 주소를 결정
1계층물리 계층 (Physical Layer)시스템 간의 물리적인 연결과 전기 신호를 변환 및 제어

어떻게 통신하나?

통신할 때 데이터는 맨 위의 응용 계층에서 순차적으로 아래 계층으로 전달된다.
데이터를 전송하는 쪽(송신 측)은 데이터를 보내기 위해서 상위 계층에서 하위 계층으로 데이터를 전달한다. 각 계층은 독립적이므로 데이터가 전달되는 동안에 다른 계층의 영향을 받지 않는다. 데이터를 받는 쪽(수신 측)은 하위 계층에서 상위 계층으로 각 계층을 통해 전달된 데이터를 받게 된다.

유용한 참고자료 :
https://jhnyang.tistory.com/194
https://shlee0882.tistory.com/110
https://ko.wikipedia.org/wiki/OSI_%EB%AA%A8%ED%98%95

  • MIME : 전자 우편을 위한 인터넷 표준 포맷
  • 동시 송수신 방식(duplex) : 송신과 수신을 동시에 할 수 있는 방식
    (비교 : Simplex 송신/수신 하나씩만 할 수 있는 통신 방식)
  • 반이중 방식(half-duplex) : 양방향 통신을 할 수는 있지만 한 번에 한쪽 방향으로만 통신 가능한 방식
  • 전이중 방식(Full Duplex) : 두 개의 통신장치가 동시에 통신 가능한 통신 방식
profile
안 되는 이유보다 가능한 방법을 찾을래요

0개의 댓글