[네트워크] OSI 7계층 vs. TCP/IP 계층

2022. 5. 18. 12:13TIL💡/Network

등장 배경

과거에는 통신용 규약이 표준화되지 않았고 각 벤더에서 별도로 개발했기 때문에 호환되지 않는 시스템이나 애플리케이션이 많았고 통신이 불가능했다. 이를 하나의 규약으로 통합하려는 노력이 현재의 OSI 7계층으로 남아 있다.

OSI 7계층이 네트워크 동작을 나누어 이해하고 개발하는 데 많은 도움이 되므로 네트워크의 주요 레퍼런스 모델로 활용되고 있지만 현재는 대부분의 프로토콜이 TCP/IP 프로토콜 스택 기반으로 되어 있다.

OSI 레퍼런스 모델

복잡한 데이터 전송 과정을 OSI 7계층으로 나누어 보면 이해하기 쉽다.

또한 계층별로 표준화된 프로토콜 템플릿을 통해 네트워크 프로토콜을 전부 개발하는 대신 계층별로 프로토콜을 개발해 네트워크 구성 요소들을 모듈화할 수 있다. 모듈화된 요소는 기존에 개발된 프로토콜과 연동해 사용할 수 있다.

 

OSI 7계층은 다시 두 가지 계층으로 나눌 수 있다.

✔︎ 1 ~ 4계층: 데이터 플로 계층 / 하위 계층 - 데이터를 상대방에게 잘 전달하는 역할

✔︎ 5 ~ 7계층: 애플리케이션 계층 / 상위 계층

 

 

OSI 레퍼런스 모델은 7계층으로 이루어진 반면, TCP/IP 모델은 4계층으로 구분한다.

OSI 7계층은 데이터 플로 계층과 애플리케이션 계층으로구분할 수 있다.

이 두 계층의 구분은 데이터를 만드는 애플리케이션 부분과 이 데이터를 잘 전달하는 데 집중하는 하부 계층으로 구분하는 것이 목적이었다.

그러다보니 자연스럽게 애플리케이션 개발자가 고려해야할 부분과 서버 엔지니어나 네트워크 엔지니어가 고려해야 할 부분이 구분되었는데 TCP/IP계층은 그 구분이 더 확연히 드러난다.

 

상위 3개 계층을 하나의 애플리케이션 계층으로 묶고, 1,2 계층 즉 물리 계층과 데이터 링크 계층을 하나의 네트워크 계층으로 구분한다.

 

✨ 계층별 이해하기

📌 1계층(피지컬 계층)

전기신호를 잘 전달하자

 

📌 2계층(데이터 링크 계층)

전기신호를 잘 모아 우리가 알아볼 수 있는 데이터 형태로 목적지 주소로 전달

MAC 주소 체계 활용

장치: 네트워크 인터페이스 카드, 스위치

 

📌 3계층(네트워크 계층)

IP 주소와 같은 논리적인 주소 활용

IP 주소는 네트워크 주소 부분 + 호스트 주소 부분

장치: 라우터 - IP주소를 활용해 최적의 경로를 찾아주고 해당 경로로 패킷을 전송하는 역할 수행

 

📌 4계층(트랜스포트 계층)

실제로 해당 데이터들이 정상적으로 잘 보내지는지 확인하는 역할

패킷이 유실되거나 순서가 바뀌었을 때 바로잡아주는 역할

✔︎ 패킷에 보내는 순서를 명시한 것이 시퀀스 번호(seq)

✔︎ 받는 순서를 나타낸 것이 ACK 번호

포트 번호를 사용해 상위 애플리케이션 구분

장치: 로드 밸런서, 방화벽 - 4계층에서 볼 수 있는 구분자(포트 번호)와 시퀀스, ACK 번호 정보를 이용해 부하를 분산시키거나 보안 정책을 수립해 패킷을 통과, 차단하는 기능 수행

 

✨ 로드 밸런서

4계층 포트 주소를 확인하는 동시에 IP 주소를 변경할 수 있다.

로드 밸런서가 가장 많이 사용되는 서비스는 웹이다.

웹 서버를 증설하고 싶을 때 로드 밸런서를 웹 서버 앞에 두고 웹 서버를 여러 대로 늘려준다.

대표 IP는 로드 밸런서가 갖고, 로드 밸런서가 각 웹 서버로 패킷의 목적지 IP 주소를 변경해 보내준다.

이런 원리를 이용해 여러 대의 웹 서버가 동시에 동작해 서비스 성능을 높여주는 동시에 일부 웹 서버에 문제가 발생하더라도 빠른 시간 안에 서비스가 복구되도록 도와준다.

이런 기능을 위해 로드 밸런서는 IP 변환 외에도 서비스 헬스 체크 기능이나 대용량 세션 처리 기능이 있다.

 

📌 5계층(세션 계층)

말그대로 세션 관리

- 양 끝단의 응용 프로세스가 연결을 성립하도록 도움

- 연결이 안정적으로 유지되도록 관리

- 작업 완료 후에는 이 연결을 끊는 역할

 

📌 6계층(프레젠테이션 계층)

표현 방식이 다른 애플리케이션이나 시스템 간의 통신을 돕기 위해 하나의 통일된 구문 형식으로 변환시키는 기능 수행

MIME 인코딩, 암호화, 압축, 코드 변환과 같은 동작을 수행하면서 사용자 시스템의 응용 계층에서 데이터의 형식상 차이를 다루는 부담을 덜어줌

 

📌 7계층(애플리케이션 계층)

네트워크 소프트웨어 UI 부분이나 사용자 입출력 부분을 정의하는 것

애플리케이션 계층의 프로토콜은 엄청나게 많은 종류가 있음

대표적인 프로토콜: FTP, SMTP, HTTP, TELNET

✨ 실무 용어 알아보기: 네트워크 인터페이스 카드를 부르는 방법

네트워크 인터페이스 카드를 부르는 용어는 매우 많습니다. 각 용어가 생긴 이유는 다양하지만 결국 PC나 서버에서 네트워크를 연결해주는 카드나 인터페이스를 지칭하는데 다음은 네트워크 인터페이스 카드를 지칭하는 다양한 예이다.

1. 네트워크 인터페이스 카드 / 컨트롤러 = NIC

2. 네트워크 카드

3. 랜 카드

과거에 이더넷은 LAN에서만 사용되다 보니 네트워크 인터페이스 카드를 랜 카드라고 부르게 되었다.

4. 물리 네트워크 인터페이스

물리적으로 컴퓨터의 내부와 외부를 연결해주는 중간 지점이라는 의미가 강하다. 여기서 헷갈리지 말자. 네트워크 인터페이스 카드는 2계층 구성요소다.

5. 이더넷 카드

대부분의 네트워크가 이더넷으로 이루어져 있어 일반적인 네트워크 연결 시 이더넷을 연결하는 네트워크 인터페이스 카드가 사용되었고 이더넷 카드라는 명칭을 사용하기도 한다.

6. 네트워크 어댑터

 

✨ 네트워크 인터페이스 카드 동작 방식

1. 전기 신호를 데이터 형식으로 만든다.

2. 목적지 MAC 주소, 출발지 MAC 주소 확인한다.

3. 네트워크 인터페이스 카드의 MAC 주소를 확인한다.

4. 목적지 MAC 주소와 네트워크 인터페이스 카드가 갖고 있는 MAC 주소가 맞으면 데이터를 처리하고(상위 계층에서 처리가능하도록 메모리에 적재) 다르면 데이터를 폐기한다.

 

✨ 스위치 동작 방식

MAC 주소 테이블을 이용해 단말이 어떤 MAC 주소인지, 연결된 포트는 어느 것인지 주소를 습득한다.

이 데이터를 기반으로 단말들이 통신할 때 포트를 적절히 필터링하고 정확한 포트로 포워딩한다.

 

스위치의 적절한 필터링과 포워딩 기능으로 통신이 필요한 포트만 사용하고 네트워크 전체에 불필요한 처리가 감소하면서 이더넷 네트워크 효율성이 크게 향상되었고 이더넷 기반 네트워크가 급증하는 계기가 되었다.