<추천티비>OSI 7계층을 기반으로 네트워크 흐름 이해하기

2022. 4. 17. 01:43[ Basic ]/# 네트워크

이번 포스팅의 목적은 네트워크 흐름의 overview를 그려보고는 것이다. 대략적인 흐름을 이해하는 것에 중점을 두었고 너무 자세한 내용은 생략했다.

 

1 계층 Physical Layer

컴퓨터가 다루는 / 주고받는 모든 데이터는 0과 1의 나열이다. Physical Layer에서는 0과 1의 나열로 구성된 데이터를 지정된 주파수에 맞게 흘려보내고 수신자는 이를 받아 디지털 신호로 디코딩한다. 주로 신호를 주고받는 역할을 담당하기 때문에 하드웨어 레벨에서 처리된다.

 

 

 

2 계층 Data-Link Layer

같은 네트워크 상에 존재하는 다양한 단말 중에 목적지로 보내기 위한 역할을 담당한다.(목적지를 연산한다는 것은 아님) 주로 Framing 작업을 수행하는데, 원본 데이터를 frame이라는 단위로 묶어 다음 장치로 전송한다. L2 스위치나 브릿지, 랜카드 등이 이에 해당하며 1 계층과 마찬가지로 하드웨어 레벨에서 대부분이 처리된다.

 

Data-Link Layer의 핵심은 물리적인 연결 담당이며 이와 유사하게 Transport Layer는 논리적인 연결을 담당한다. 핵심적인 프로토콜로 ARP가 있으며 이는 3계층에 해당하는 IP주소와 2 계층에 해당하는 MAC 주소 사이에 변환(매핑)을 담당한다. MAC 주소를 통해 단말 간 물리적인 통신이 가능해진다.

 

참고) ARP 프로토콜은 기본적으로 '같은 네트워크 상에서' 다음으로 보내야 할 라우터, 스위치, 단말 등의 MAC 주소를 알기 위해 브로드캐스트 하며 유니케스트 기반으로 응답한다. 2 계층에서는 ARP 프로토콜을 통해 알아낸 포워딩할 장비의 MAC 주소로 패킷을 전송한다. 즉, 2 계층은 MAC 주소를 통해 '물리적인 연결을 담당'한다는 점이 주요 역할이다. 

 

참고) 2 계층의 장비들은 IP주소가 존재하지 않는다.

 

 

 

3 계층 Network Layer

IP 개념이 도입되는 Layer라는 점이 가장 중요하다. IP주소를 통해 데이터를 목적지까지 전송하기 위해 현재 시점에서 다음 라우터로 포워딩한다. 

 

라우팅 프로토콜 분류

 

 

네트워크 계층은 대체로 운영체제 커널에 소프트웨어적으로 구현되어 있다.

 

 

라우팅 예시

 

 

 

라우터는 3계층 장비로, 논리적 주소인 IP를 가지고 있다. 이와 다르게 L2 스위치는 2 계층 장비이므로 물리적인 MAC 주소만을 가진다. 위 그림과 같은 상황에서 IP주소를 기반으로 서로 다른 AS 간 라우팅에는 게이트웨이(라우터의 일종) 간에 BGP 프로토콜이 사용되고, 같은 AS 내에서는 OSPF 프로토콜이 사용된다. 

 

 

 

4 계층 Transport Layer

3 계층(네트워크 계층)이 특정 단말을 알아내기 위한 역할을 담당했다면 4 계층은 해당 단말 안에서 송신자와 통신할 프로세스를 구분하기 위해 사용된다. 하나의 단말 안에서 실행 중인 모든 프로세스들은 포트번호를 가지며 송신자는 4계층 패킷의 header에 수신자의 포트번호를 기입함으로써 송신자와 통신할 프로세스를 구분한다. Transport Layer의 기술은 운영체제 커널에 구현되어 있다.

 

 

 

 

[Session Layer, Presentation Layer 제외]

현대 인터넷은 OSI 모델이 아닌 TCP/IP 4 계층 모델을 따르고 있다. 

 

 

 

 

 

 

 

Application Layer

운영체제의 Transport Layer에서 제공하는 API를 활용해서 통신 가능한 프로그램을 만드는 것을 TCP/IP 소켓 프로그래밍이라고 한다. Application Layer에서는 실질적으로 들어오는 0과 1로 이루어진 데이터를 이해할 수 있는 데이터로 디코딩한다. 이렇듯 송신자와 수신자 간 인코딩/디코딩 규약만 있다면 Application Layer 프로토콜은 누구나 만들 수 있다.

 

예를 들어, 클라이언트와 서버 간 HTTP 통신을 하는 것은 HTTP에서 정의한 데이터 인코딩/디코딩 규약에 맞게 데이터를 해석하는 것이다. 이러한 역할은 대부분 WAS를 비롯한 미들웨어가 OS에서 제공하는 API(시스템 콜)을 통해 인코딩/디코딩한다.

 

 


 

 

정리

 

Reference:&nbsp;TCP/IP Protocol Suite 4th Edition (Behrouz A. Forouzan 저, McGraw-Hill, 2010)

- 1 계층 : 0과 1로 구성된 데이터를 주파수에 맞게 흘려보냄

- 2 계층 : 스위치(물리적 주소인 MAC 주소를 기반으로 다음 장비(next hop)로 포워딩)

- 3 계층 : 라우터(논리적 주소인 IP주소를 기반으로 라우팅을 통해 next hop으로 라우팅)

- Transport Layer : 3 계층에 특정 단말이 정해졌고, Port번호를 통해 특정 단말 안에서 통신할 프로세스(SW) 결정(OS가 담당)

- Application Layer : 프로토콜 규약에 맞게 페이로드를 인코딩/디코딩하여 의미 있는 데이터로 전환(WAS와 같은 미들웨어가 담당하거나 사용자가 직접 OS의 기능을 활용해 TCP/IP 소켓 프로그래밍 구현)

 

 

 

 

 

 

Reference

- https://dad-rock.tistory.com/193