OSI 7 Layer와 TCP/IP Layer

Bitnara Lee·2021년 12월 6일
1

HTTP네트워크에 대해 공부하던 중 OSI 7 Layer와 TCP/IP Layer에 대해 이해해보고자 정리해본다.
네트워크 프로토콜을 들어가기 전에 IP와 IP 패킷의 단점에 대해 알아보자.

IP(인터넷 프로토콜)

인터넷 통신의 기본

IP주소 :

각 컴퓨터들이 갖는 고유한 주소(ex: 55.10.54.75)

패킷 :

IP에 데이터를 전달하기 위해 이용하는 통신 단위
-> pack + bucket이 합쳐진 단어로, 소포로 비유할 수 있다.
데이터를 무사히 전송하기 위해 출발지 IP,목적지 IP, 등의 정보(IPv4 헤더, IPv6 헤더, IP 주소)가 포함되어 있다.
-> 우체국 송장과 비슷!

단점 :

  • 비연결성
    • 패킷을 받을 대상이 없거나 서비스 불능 상태여도 클라이언트는 서버의 상태를 파악할 방법이 없기 때문에 패킷을 그대로 전송
  • 비신뢰성
    • 중간에 있는 서버가 데이터를 전달하던 중 장애가 생겨 패킷이 중간에 소실되더라도 클라이언트는 이를 파악할 방법이 없다.
    • 전달 데이터의 용량이 클 경우 이를 패킷 단위로 나눠 데이터를 전달하게 되는데 패킷들은 중간에 서로 다른 노드를 통해 전달될 수 있다.
      -> 클라이언트가 의도하지 않은 순서로 서버에 패킷이 도착할 수 있다.

이와 같은 IP 패킷의 한계를 어떻게 보완하는지 네트워크 프로토콜 계층을 통해 알아보자.

네트워크 프로토콜 계층에는 OSI 7 Layer와 TCP/IP Layer이 있다.
우선 OSI 7 Layer와 TCP/IP Layer가 무엇인지 알아보고, 각 단계별로 하는 역활에 대해 알아보고자 한다.

✨ OSI 7 Layer

OSI 모델(Open Systems Interconnection Reference Model):

국제표준화기구(ISO)에서 개발한 모델로, 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 것이다. 일반적으로 OSI 7 계층이라고 한다.

목적: 이 모델은 프로토콜을 기능별로 나눈 것이다. 각 계층은 하위 계층의 기능만을 이용하고, 상위 계층에게 기능을 제공한다. '프로토콜 스택' 혹은 '스택'은 이러한 계층들로 구성되는 프로토콜 시스템이 구현된 시스템을 가리키는데, 프로토콜 스택은 하드웨어나 소프트웨어 혹은 둘의 혼합으로 구현될 수 있다. 일반적으로 하위 계층들은 하드웨어로, 상위 계층들은 소프트웨어로 구현된다.
위키백과

  • 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 말한다.
    • 1계층인 Physical Layer는 하드웨어, 2계층인 Data Link Layer는 하드웨어와 소프트웨어의 혼합, 나머지는 모두 소프트웨어로 구현된다.
  • 계층을 나눈 이유:
    • 통신이 일어나는 과정을 단계별로 파악할 수 있다.

    • 계층을 분리함으로서 각 계층은 독립적인 역할을 할 수 있다.

    • 7단계 중 특정한 곳에 이상이 생기면 다른 단계의 장비 및 소프트웨어를 건들이지 않고도 이상이 생긴 단계만 고칠 수 있다.

✨ TCP/IP 5 Layer

TCP/IP 모델

현대 TCP/IP 5 Layer(model)이 산업계의 표준이다.

OSI 7 Layer은 이질적인 시스템간 상호 접속을 위해 공통적인 기반을 제공한다. 개념적으로 우수하기 때문에 Network 설계 기반은 OSI 7 Layer을 참조한다.(Reference로의 가치)
그러나 TCP/IP Model이 OSI 7 Layer보다 빨리 발표되었기 때문에 TCP/IP Layer가 표준이 되었다.
-> TCP/IP 모델은 4 Layer 버전도 있지만 현재는 Updated 된 5 Layer를 사용한다.

따라서 현재 쓰이고 있는 TCP/IP Updated Model을 기준으로 단계를 정리해보았다.

1. Physical Layer(물리 계층)

두 대의 컴퓨터가 통신할 때

모든 파일과 프로그램은 0과 1의 나열 -> 데이터 주고 받을 시 0과 1을 주고 받는다
encoding : 0과 1의 나열을 아날로그 신호로 바꾸어서 전선으로 흘려보낸다
decoding : 아날로그 신호를 받으면 0과 1로 해석해서 읽는다.

-> Physical Layer란 물리적으로 연결된 두 대의 컴퓨터가 0과 1의 나열을 주고받게 해주는 계층
(input을 받아 output을 만든다 - 함수와 같음)

  • 주로 전기적, 기계적, 기능적인 특성을 이용해 데이터를 전송한다(0,1의 비트열, 즉 On, Off의 전기적 신호 상태)
  • 이 계층은 단지 데이터를 전달하기만 한다.
  • 케이블, 리피터, 허브를 통해 데이터를 전송한다.

Physical Layer 기술이 구현되어 있는 곳

  • PHY 칩
    (1계층 모듈은 하드웨어적으로 구현되어 있다.)

(!같은 네트워크에 있는) 여러대의 컴퓨터가 동시에 데이터를 보낼 때

01010111.. 여러 컴퓨터로 부터 받은 이어진 데이터를 어떻게 끊어읽느냐에 따라서 데이터가 제대로 전달된다.
하나의 네트워크 안에 스위치가 있어 전송한 데이터의 목적지를 찾아 목적지에만 데이터를 보내준다.

Framing : 물리 계층을 통해 수신한 신호를 조합하여 프레임(Frame) 단위의 정해진 데이터 유닛으로 만들어 처리하는 작업

-> 즉, 데이터의 앞뒤에 특정한 비트열을 붙이는 것이고,그 전송 단위가 Frame이다.
-> 직접 연결된, 즉 같은 네트워크에 있는 여러대의 컴퓨터들이 데이터를 주고 받기 위해 필요한 계층

  • 네트워크계층에서 정보를 받아 주소와 제어정보를 헤더와 트레일러에 추가한다.
  • 물리계층에서 발생한 오류검출, 재전송, 흐름제어 등을 한다.
  • 물리 주소인 MAC주소로 통신
  • 전송 단위는 Frame, 대표적인 장비로는 브리지,스위치 등이 있다.


Data Link Layer 기술이 구현되어 있는 곳

  • LAN 카드
    (2계층 모듈 또한 하드웨어적으로 구현되어 있다.)

3. Network Layer

(처음 시작 시 설명한 IP 패킷이 만들어지는 계층이다.)
더 많은 컴퓨터들이 통신할 때

상대방의 IP 주소를 알고 있어야 데이터를 보낼 수 있다.
데이터에 IP주소를 붙여서 패킷을 만든다
라우터가 패킷을 받아서 ip확인 후, 연결된 컴퓨터에 해당 주소가 없으면 다음 라우터에 넘긴다

-> 수많은 네트워크들의 연결로 이루어지는 inter-network 속에서
IP 주소(Addressing)를 이용해서 목적지 컴퓨터로의 길을 찾고(routing)
자신 다음의 라우터에게 데이터를 넘겨주는 것(forwarding)

  • 가장 중요한 기능은 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능(routing)
  • 트래픽 제어, 네트워크 연결 관리, 체증 제어 등
  • 대표적인 장비는 라우터,(+L3 Switch, IP 공유기 등) 전송 단위는 packet이다
라우터: 데이터의 목적지까지 어떤 경로로 가는 것이 효율적인지 파악
라우팅 : 목적지의 주소 정보인 IP 주소를 확인하고 목적지 IP 주소까지 어떤 경로를 거쳐 데이터를 보낼지 결정하는 것

Network Layer 기술이 구현되어 있는 곳
운영체제 커널에 구현되어있다.

4. Transport Layer

컴퓨터가 데이터를 최종 도착지로 전달할 때(해당 프로세스)

컴퓨터에서 실행되고 있는 여러 개의 프로그램, 즉 프로세스들은 포트 번호(Port Number)를 가진다.
포트 번호(Port Number): 하나의 컴퓨터에서 동시에 실행되고 있는 프로세스들이 서로 겹치지 않게 가져야하는 정수 값 -> 프로세스를 식별하기 위한 숫자. (ex: https://www.naver.com:80 에서 80부분)

송신자는 데이터를 보낼 때 데이터를 받을 수신자 컴퓨터에 있는 프로세스의 포트번호를 붙여서 보낸다.

-> Port 번호를 사용하여 도착지 컴퓨터의 최종 도착지인 프로세스에 까지 데이터가 도달하게 하는 계층

  • 대표적 프로토콜 TCP, UDP
    TCP/UCP에 대해 잘 설명된 블로그
  • 전송 단위는 Segment 를 사용하며 주소는 Port 를 사용(ex: TCP Segment - TCP를 이용해서 이용해서 전송하는 데이터 단위)
  • 양 끝단(End to end) 통신 활성화(송신 컴퓨터의 응용 프로그램(프로세스) - 수신 컴퓨터의 응용 프로그램(프로세스))
  • 신뢰성있고 효율적인 데이터를 전송하기 위해 오류검출 및 복구, 흐름제어와 중복검사 등을 관리

Transport Layer 기술이 구현되어 있는 곳
운영체제(OS)의 커널에 소프트웨어적으로 구현되어있다.

5. Application Layer

유저가 어플리케이션을 사용할 때

사용자는 어떠한 웹 사이트에 접속하고, 정보를 검색하거나 메일을 확인하는 등의 서비스를 이용한다.
(서버에)데이터를 요청하고 (클라이언트가)제공 받는다.

-> 통신 서비스를 실현하는 계층

  • OSI 7 Layer에서 Session, Presentation, Application Layer 에 해당
  • TCP / UDP 기반의 응용 프로그램을 구현할 때 사용 ( 소켓프로그래밍 )
  • 사용자 응용 프로그램 인터페이스를 담당
  • 서버와 클라이언트간 교류를 위한 다양한 어플리케이션 프로토콜들 존재
    • HTTP (HTML 데이터 요청)
    • SMTP (메일 전송)
    • FTP (파일을 전송)
    • 기타
 < OSI 7 Layer >
Session Layer 
  -  데이터가 서로 만나는 환경을 조성해주는 단계로 
  이 계층에서는 통신 시스템 사용자간의 연결을 유지하거나 설정합니다. TLS, SSH등이 이 계층에 속합니다.
  
Presentation Layer
  -  데이터를 더 빠르고 안전하게 전송하기 위한 압축, 
  그리고 더 안전하게 전송하기 위한 암호화/복호화 작업을 하는 계층입니다.
  이를 통해 위의 세션 계층 간의 주고받는 인터페이스를 일관성 있게 제공할 수 있습니다.
 (해당 데이터가 **TEXT인지, 그림인지, GIF인지, JPG인지의 구분/ 코드 간의 번역을 담당)
  
Application Layer
  -  도착한 데이터를 최종 사용자가 확인하는 마지막 단계라고 할 수 있습니다. 
  HTTP 프로토콜이 이 계층에 속합니다.

profile
Creative Developer

0개의 댓글