개요
여태 정말 많이 보기는 봤지만 아직도 헷갈리는 네트워크 계층에 대해 정리해보려 한다. 너무 자세히는 말고 이 계층의 역할과 사용되는 대표적 장비정도만 정리해보자.
TCP/IP 4계층
OSI 모델을 실제 인터넷 환경에 맞춰 4개의 계층(네트워크 인터페이스, 인터넷, 전송, 애플리케이션)으로 단순화한 모델. 현대 인터넷 통신의 핵심으로, 백엔드 개발자는 특히 애플리케이션 계층(HTTP, FTP 등)과 전송 계층(TCP, UDP)에 대한 깊은 이해가 필요하다.

OSI 7계층
이론적인 표준 모델.
위 그림은 OSI 7계층을 표현한다.
위 그림은 계층별 지원하는 프로토콜에 대한 것이다.
Layer 7. 응용 계층
HTTP, FTP, SMTP, POP3 등이 있는 계층이다.
Layer 6. 표현 계층
Layer 5. 세션 계층
Layer 4. 전송 계층
TCP, UDP 가 지원되는 계층이다. 사실 물리, 데이터 링크, 네트워크 계층들만 있어도 목적지에 데이터는 보낼 수는 있다. 하지만 데이터가 손상되거나 유실이 안된다고 보장이 안되는 문제가 있다. 이 계층의 데이터는 세그먼트라 지징
전송 계층은 목적지에 신뢰할 수 있는 데이터를 전달 할 수 있기에 필요하다. 오류를 점검하고, 오류가 발생했다면 이를 알아채고 재요청을 한다. 네트워크 계층은 전달만 하고, 전송 계층은 검증을 한다.
각 프로토콜 별 특징을 간략히 소개하면
- TCP
- 신뢰성 및 정확성
- 연결형 통신
- 데이터를 목적지에 온전히 전달을 보장
- 상대와 확인해 가며 통신함
- HTTP, FTP, SSH 등
- UDP
- 빠름 및 효율적
- 비연결형 통신
- 상대편 확인하지 않고 일방적으로 통신
- DNS, VoIP, 실시간 스트리밍 등
Layer 3.네트워크 계층
네트워크 계층은 서로 다른 네트워크 상의 단말들을 연결시켜 데이터를 주고받을 수 있게 하기위한 계층이다. 2계층인 데이터 링크 계층은 이더넷 규칙 기반으로 데이터를 전송하는데, 같은 네트워크에 있는 단말끼리는 통신이 되지만 외부의 인터넷과 같은 다른 네트워크와는 통신이 불가하다. 이 계층의 패킷은 데이터그램 이라 지칭
이 계층에서 라우터가 이용되는데 데이터의 목적지가 정해지면 해당 목적지 까지 어떤 경로로 가는것이 좋은지 제시해주는 장비다. 라우팅 테이블에 경로 정보를 등록하고 관리하며 네트워크를 분리 할 수 있다. 라우터는 네트워크끼리 연결해주고 스위치나 허브는 랜끼리 연결해준다.
컴퓨터가 다른 네트워크로 데이터를 보내는 과정
- 컴퓨터는 다른 네트워크로 보낼 때 어디로 전송해야 될지 길을 모른다.
- 그래서 네트워크 출입구를 지정하고 거기로 보낸다. 그 출입구가 바로 라우터. ‘자동으로 IP 주소 받기’가 기본 게이트웨이를 지정해주는 기능이다.
- 라우팅 테이블을 참고해서 최적의 경로로 전송이 된다.
- 라우터간 라우팅 정보를 교환하기 위한 프로토콜을 라우팅 프로토콜이라한다. RIP, OSPF, BGP 등
MAC주소는 랜에서는 단말간 식별을 해주고 IP 주소는 서로 다른 네트워크간의 식별을 위한 식별자이다.
Layer 2. 데이터 링크 계층
2계층은 랜에서 데이터를 주고 받기 위한 계층이다. 또한 네트워크 장비 간 신호를 주고 받는 규칙을 정하는 계층이기도 하다.
CSMA/CD 는 이더넷(Ethernet, 랜에서 데이터를 주고받는 규칙)에서 시점을 늦추는 방법?이다. 충돌 방지를 위함임. 이 덕분에 여러 컴퓨터가 동시에 데이터를 전송해도 충돌이 발생하지 않는다. 최근에는 효율이 좋지않아 쓰이지 않고 대신 스위치를 사용하고 있다.
데이터 링크 계층에서 이더넷 헤더, 트레일러를 붙인다.
- 이더넷 헤더: 목적지의 MAC 주소(6바이트), 출발지의 MAC 주소(6바이트), 유형(2바이트)
- 트레일러: FCS(frame check sequence)라고도 하는데, 데이터 전송 도중 오류 바생 여부 확인 용도다. 이렇게 이더넷 헤더와 트레일러가 붙은 데이터를 프레임이라 지칭한다. 데이터 링크에서 프레임을 만들고 물리 계층에서 프레임 비트열을 전기 신호로 변환하여 전송한다.
스위치 장비
스위치는 허브와 달리 충돌이 발생 않는다. 레이어2 스위치 또는 스위칭 허브라고도 불리는 장비. 내부에 MAC address table 이 있고 스위치 포트와 해당 포트에 매핑된 컴퓨터의 MAC 주소가 매핑되어있다.
MAC 주소 학습 기능이 내장되어있다.
- 처음에는 빈 테이블
- 처음 프레임을 받고 보낼때 출발지 MAC 확인하고 포트와 주소 매핑
- 목표 MAC이 프레임에 있지만 아직 테이블에 없다.
- 송신 포트 이외에 데이터(프레임) 모두 전송. 이를 플러딩(flooding)이라 한다.
- 이렇게 해서 찾으면 매핑을 해놓는다.
케이블에 데이터가 아무리 많아도 충돌하지 않는 구조
- 전이중 통신 방식
- 반이중 통신 방식
Layer 1. 물리 계층
0, 1로 이루어진 비트열을 전기 신호로 변환하기 위한 계층. 컴퓨터와 네트워크 장비를 연결하고, 랜카드가 컴퓨터의 0, 1을 전기신호로 변환해준다.
전송 매체
- 유선: 트위스트 페어 케이블, 광 케이블 등
- 무선: 라디오파, 마이크로파, 적외선 등
리피터(repeater)
전기 신호를 정형(일그러진 전기 신호 복원), 증폭해주는 네트워크 장비. 최근에는 다른 장비로 대체되어 보기 힘들다.
허브
포트를 여러개 가지는 장비. 컴퓨터를 여러대 연결해주는데, 더미 허브(허브는 스스로 판단할 수 없어서 이리 불린다.)의 경우는 특정 포트로 데이터를 받으면 그 데이터를 연결된 모든 컴퓨터로 보낸다. 이렇게 데이터를 뿌리는것을 방지하는것을 개선한 장비가 스위치다.
리피터와 마찬가지로 전기 신호 증폭, 정형 기능이 제공된다.
리피터와 허브는 받은 데이터를 보내는 대상 뿐만 아니라 모든 포트에 전송한다.