본문 바로가기
CS

[네트워크] OSI Model, TCP/IP Original & Updated

by memeseo 2022. 10. 31.

OSI (Open Systems Interconnection Reference Model) 모델 탄생 배경

초기 여러 정보 통신 업체 장비들은 자신의 업체 장비들끼리만 연결하면 되어 호환의 필요성이 없었음.

but, 여러대의 컴퓨터를 연결해야 할일이 생기기 시작.

그래서 모든 시스템들의 상호 연결에 있어 문제가 없도록 표준을 정함. =  OSI 7계층

 

 

OSI 모델 vs TCP/IP 모델

  • 현대의 인터넷은 OSI 모델이 아니라 TCP/IP 모델을 따르고 있음.
  • TCP/IP 모델도 OSI 모델과 마찬가지로 네트워크 시스템 모델임.
  • 현대의 인터넷이 TCP/IP 모델을 따르는 이유는 OSI 모델이 TCP/IP 모델과의 시장 점유 싸움에서 졌기 때문. * 오늘날에는 TCP/IP Updated 모델이 많이 사용되고 있음.

 

🤔 OSI 모델 vs TCP/IP Updated 모델 무엇이 달라 졌나?

OSI의 상위 계층 (application, presentation, session)이 application계층 하나로 통일 됐다.

 


*TCP/IP Updated

 

1 계층 - 물리 계층 (Physical Layer)

 

  • 실제 장치를 연결하기 위한 전기적 및 물리적 세부 사항을 정의한 계층.
  • 단지 데이터 전달의 역할을 할 뿐이라 알고리즘, 오류제어 기능은 없다.

 

결국 Physical Layer란,

0과 1의 나열을 '아날로그 신호'로 바꾸어 전선으로 흘려 보내고 (Encoding)

아날로그 신호가 들어오면 0과 1의 나열로 해석하여 (Decoding)

물리적으로 연결된 두 대의 컴퓨터가 0과 1의 나열을 주고받을 수 있게 해주는 모듈(Module).

 

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

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

 

 

 

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

 

  • 물리적인 연결을 통하여 두 장치 간의 신뢰성 있는 정보 전송을 담당 (Point-To-Point 전송)
  • 오류 찾는 기능 및 재전송하는 기능이 존재
  • MAC 주소를 통해서 통신
  • 데이터 링크 계층에서 데이터 단위는 프레임 (Frame)

 

Ex.

A : 1111
B : 0001
C : 0101 

A,B,C가 D에게 메시지를 동시에 보내면 (...010111111001...) 어떤 메시지인지 알 수 없어짐.
올바르게 끊어 읽는 기능 필요.

송신자가 데이터를 보낼 때 앞에는 1111, 뒤에는 0000을 붙인다고 가정.
1111 0101 0101 0000 -> 진짜 메시지는 0101 0101

시작과 끝을 알 수 있기때문에 올바르게 끊어 읽을 수 있게 됨.

 

결국 Data Link Layer란,

같은 네트워크에 있는 여러 대의 컴퓨터들 (하나의 스위치에 연결되어 있는 컴퓨터들을 지칭.)이 데이터를 주고 받기 위해서 필요한 모듈. Freming은 Data Link Layer에 속하는 작업 중 하나.

 

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

랜 카드, 브리지, 스위치

 

 

 

3 계층 - Network Layer

 

  • 중계 노드를 통하여 전송하는 경우 어떻게 중계할 것인가를 규정.
  • 라우팅 기능을 맡고 있는 계층으로 목적지까지 가장 안전하고 빠르게 데이터를 보내는 기능을 가지고 있다. (최적의 경로 설정 가능)
  • 컴퓨터에게 데이터를 전송할 수 있는 주소를 갖고 있어서 통신이 가능하다.
  • 네트워크 계층에서 데이터 단위는 패킷 (Packet)

 

Ex.

A : 55.10.54.75 (data) 

데이터앞에 IP 주소를 붙여서 (= 패킷으로 포장해서) 라우터에 전달.
(도메인을 알고 있으면 IP 주소도 알고 있는 것.)

라우터들을 타고 타고 가서 목적지인 B(55.10.54.75)에게 데이터가 전달 된다.

 

결국 Network Layer란,

수많은 네트워크들의 연결로 이루어지는 inter-network속에서

어딘가에 있는 목적지 컴퓨터로 데이터를 전송하기 위해

IP주소를 이용해 길을 찾고 (Routing)

자신 다음의 라우터에게 데이터를 넘겨주는 것. (Forwarding)

 

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

라우터, L3 스위치

 

 

 

4계층 - 전송 계층 (Transport Layer)

  • 종단 간 신뢰성 있고 정확한 데이터 전송을 담당
  • 송신자와 수신자 간의 신뢰성 있고 효율적인 데이터를 전송하기 위해 오류 검출 및 복구, 흐름제어와 중복 검사 등을 수행.
  • 데이터 전송을 위해서 Port 번호를 사용 함. (TCP와 UDP가 대표적)
  • 전송 계층에서 데이터 단위는 세그먼트 (Segment)

 

여러 프로그램이 실행되고 있을 때,
어떤 데이터를 무슨 프로세스에게 줘야 할지 컴퓨터는 어떻게 알 수 있을까?

> 먼저 데이터를 받고자하는 프로세스들은 포트 번호를 가져야 한다.

 

결국 Transport Layer란,

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

 

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

운영체제의 커널에 소프트웨어 적으로 구현되어 있음.

 

 

 

5계층 - 응용 계층 Application Layer

  • 사용자와 가장 밀접한 계층으로 인터페이스 역할
  • 응용 프로세스 간의 정보 교환을 담당

 

Ex.

메시지 : 뭐해 - HTTP encoder - Status code : 500 (뭐해) -
 Transport Layer - Port : 9000 [Status code : 500 (뭐해)]  

 

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

전자메일, 인터넷, 동영상 플레이어 등

 

 

 


 

그러니까, 네트워크 시스템은 하나의 커다란 소프트웨어라고 볼 수 있음.

네트워크 시스템 모델은 거대한 네트워크 소프트웨어의 구조를 설명하는 것.