네트워크 계층(Layer 3)
JeongSeulho
2024년 11월 24일
준비중...
클립보드로 복사
네트워크 계층
- LAN 사이의 통신을 위한 계층(라우터를 기준으로 각각의 LAN이 만들어짐) => - IP 주소를 사용
- 스위치를 사용한 통신에서 첫 통신은 브로드 캐스팅해야함 => 트래픽 부하를 줄이기 위해 브로드캐스팅 도메인을 분리가 필요
- 브로드캐스팅 도메인을 분리하면서 각 도메인 사이에 통신을 위해 라우터와 IP 주소 사용(네트워크 계층)
라우터를 사용한 통신 과정
- 송신에서 출발, 목적 IP와 MAC 주소 작성
- 라우터에서 출발, 목적 IP를 토대로(라우팅 테이블 활용) 목적지 MAC 주소로 수정, 출발지 MAC 주소는 현재 본인의 라우터 주소로 수정
- 이렇듯 IP주소는 유지하고, MAC 주소를 다음 목적지로 계속해서 수정하면서 라우터를 거쳐 목적지에 도착
IP 주소
- 모든 PC와 라우터에 할당
- IP 주소는 네트워크 주소(LAN 사이 공통)와 호스트 주소(LAN 내의 장치를 구분)로 이루어짐
IP 클래스
- IP 주소는 필요에 따라 네트워크, 호스트 주소를 몇 비트로 할당할지 결정
- 네트워크 주소를 몇 비트로 할당할지에 따라 클래스가 나뉨
- 호스트 주소가 0인 IP는 해당 네트워크 전체 또는 대표하는 IP
- 호스트 주소가 모두 1인(최대 숫자) IP는 브로드캐스트 주소로 즉, 해당 네트워크의 모든 장치를 지칭
서브넷 마스크
- 기존의 IP 클래스에서 낭비되는 IP 주소를 줄이기 위해 사용(300개의 호스트 주소가 필요하면 클래스B를 사용해야 하지만, 대부분 낭비됨)
- 각 비트의 값으로 호스트와 네트워크 주소를 더 세세하게 구분
- 1 비트인 부분은 네트워크 주소, 0 비트인 부분은 호스트 주소
IP 헤더
- 트랜스포트 계층에서 받은 데이터에 IP 헤더를 붙여 데이터 링크 계층으로 전달
라우터(공유기)
- 스위치를 사용한 통신 범위를 LAN이라고 하며 LAN 사이의 통신을 위한 장치
- LAN 외부(어느 노드 입장에서 LAN을 넘어간 범위는 모두 WAN)와 통신 시 라우팅 테이블을 활용하여 최적의 경로를 찾아 통신
라우팅 테이블
- 목적지 IP 주소와 포트 번호가 맵핑되어 있는 테이블
- 테이블을 만드는 방법으로 스태틱 라우팅과 다이나믹 라우팅이 있음
디폴트 라우터
- 테이블에 없는 IP 주소를 받으면 디폴트 라우터로 전달
- IP 헤더의 TTL이 0이 될때까지 라우팅 테이블을 찾아 통신(1TTL = 1홉 = 라우터 간의 1번 통신) => 존재하지 않는 IP를 목적지로 가진 데이터를 폐기
루프백 주소(로컬 호스트)
- 네트워크로 나가지 않고 자신이 다시 받도록 하는 주소
- 외부로 나가지 않고 OS에서 처리되어 다시 돌아옴
스태틱 라우팅
- 라우팅 테이블을 사람이 직접 설정
- CPU, 메모리 사용량이 적음
- 문제가 생겼을 때, 유연하지 못함
다이나믹 라우팅
- 라우팅 테이블을 자동으로 설정
- CPU, 메모리 사용량이 많음
- 문제가 생겼을 때, 유연하게 대처
- RIP, OSPF, BGP 등의 알고리즘으로 구현
ARP
- IP 주소를 토대로 MAC 주소를 찾기 위한 프로토콜
- 데이터링크 계층(PC 및 라우터 등)에서 IP 목적지를 유지하면서, 다음 MAC 주소를 수정하는데, 이때 ARP 프로토콜을 사용
NAT
- private IP와 public IP를 맵핑하는 프로토콜
- LAN 내부에서는 private를 사용하고 외부에서는 public을 사용하므로
- 요청에서 데이터가 나갈때 출발지의 private IP를 public IP로 변경
- 응답에서 데이터가 들어올때 목적지의 public IP를 private IP로 변경
- NAT 테이블을 맵핑하는 방법에따라 static NAT, dynamic NAT, static PAT, dynamic PAT이 있음
static NAT
- 출발지와 목적지의 private IP와 public IP를 1:1 맵핑
static PAT
- 포트를 사용하여(포트 포워딩) 출발지와 목적지의 private IP와 public IP를 다수:1 맵핑
- 수동으로 맵핑을 설정
dynamic PAT
- 자동으로 맵핑되지만, 한쪽에서만 먼저 통신 가능
- 클라이언트가 서버에 요청 시
- 서버가 정한 공인 IP와 포트 번호로 요청
- 서버는 그에 맞게 LAN 내부의 private IP와 포트 번호로 변경 가능(맵핑)
- 요청 과정에서 NAT 테이블이 만들어졌으므로 응답 가능
- 서버가 클라이언트에 요청 시
- NAT 테이블이 없으므로 통신 불가