OSI 7계층 중 3계층에 대해 정리하자!
2계층인 데이터 링크 계층에서는 브리지 또는 스위치로 연결된 장치들이 이더넷 환경에서 프레임을 주고 받는다.
그러나 이러한 방법으로는 같은 스위치에 연결된 바로 옆의 장치끼리만 통신할 수 있다. 즉, 다른 네트워크에 존재하는 장치들과는 통신할 수 없다.
쉽게 말하면 데이터 링크 계층의 통신 장비인 브리지나 스위치는 자신에게 직접적으로 연결된 장치들에게 브로드캐스트 해서 목적지 주소를 얻어 통신하는 장치이니까 내가 저 멀리 바다 건너의 컴퓨터와 데이터를 전송하는 것은 도와줄 수 없다.
따라서 상위 계층의 통신 장비에게 도움을 청해야 한다!
1) 라우팅
3계층은 네트워크 계층으로 논리적 주소를 기반으로 목적지까지 가장 빠르고 안전하게 데이터를 전달해준다.
이 기능을 라우팅이라고 하며, 3계층은 라우팅을 해주는 계층이라고 할 수 있다.
2) 패킷 전달
2계층이 노드 간 통신을 지원한다면 3계층은 출발지와 목적지 간의 데이터 전송, 즉 종단 간(End-to-End) 패킷 전달을 지원한다.
3) 논리적인 주소 사용
3계층의 대표적인 프로토콜은 IP 프로토콜로, 패킷을 전달할 때 출발지와 목적지의 주소는 IP 주소를 사용한다.
인터넷에서는 논리 주소인 IP 주소를 사용하며, 네트워크 계층의 데이터 단위인 패킷에는 출발지 IP 주소, 목적지 IP 주소, 전송 데이터가 담긴다.
특징
- 라우팅 : IP 주소를 기반으로 네트워크를 통해 패킷을 전달
- 비연결성 : 패킷을 받을 수 없는 상태 또는 패킷을 받을 대상이 없는 상태여도 패킷을 전송
- 비신뢰성 : 중간에 패킷이 손상되거나 전달되지 않아도 패킷 전달 여부를 신경쓰지 않고, 패킷의 순서를 보장하지 않음
IP의 비연결성으로 인해 패킷이 정상적으로 도착하지 못하는 상황(패킷을 받을 대상이 없거나 받을 수 없는 상태)이 발생할 경우 IP 헤더에 기록되어 있는 출발지 IP 주소로 에러에 대한 정보를 보내준다.
특징
- IP 프로토콜을 이용해 ICMP 메시지를 전달
- 네트워크 관리 프로토콜의 역할 수행(종단간 데이터 통신 역할 X)
- Ping, Tracert 사용
목적지 IP 주소(논리 주소)에 대한 MAC 주소(물리 주소)를 알아내 가져온다.
동작원리
송신 호스트는 수신 호스트의 논리 주소만 알고 있다. 통신을 위해서 목적지의 물리 주소가 필요하기 때문에 ARP 요청 패킷을 브로드캐스트로 전송한다. 이때 목적지 물리 주소에는 자신의 물리 주소를 기입하여 보낸다.
모든 호스트와 라우터는 송신자가 보낸 ARP 요청 패킷을 수신하게 되고, 목적지 IP 주소를 확인하여 자신의 논리 주소와 일치하면 응답 패킷에 자신의 물리 주소를 기입하여 유니캐스트로 송신자에게 전송한다.
특징
- 송신자의 전송에서는 브로드캐스트, 수신자의 전송에서는 유니캐스트 방식으로 패킷을 전송한다.
- ARP를 통해 획득한 MAC 주소는 ARP cache table에 일정 시간 저장
인터넷 환경에서 통신하기 위해, 서로 다른 네트워크 간 통신을 위해, 브로드캐스트 영역을 나누어주기 위해 사용되는 3계층 네트워크 장비
3계층의 주요 기능은 라우팅이다!
라우팅이란 패킷을 목적지까지 가장 빠르고 효율적인 길을 찾아주는 기능으로, 이 기능을 라우터가 수행한다.
1) Path Determination (경로 설정)
라우터는 데이터 패킷이 목적지까지 갈 수 있는 길을 검사하고, 어떤 길로 가는 것이 가장 적절한지 결정한다.
2) Switching (스위칭)
경로 설정이 완료되면 해당 경로로 데이터 패킷을 스위칭 해준다.
이 스위칭은 L2 계층의 스위칭과 다른 개념이다.
L2 계층의 스위칭은 물리 주소를 보고 프레임을 보내주는 것이다.
라우터의 스위칭은 패킷의 전송이다. 만약 들어온 패킷의 IP 주소와 일라우팅 테이블의 경로 정보를 보고 넥스트 홉으로 전송하는데, 이때 주소와 일치하는 경로 정보가 라우팅 테이블에 없으면 가장 가까운 경로를 선택한다.
라우터는 라우팅 프로토콜을 사용하여 최적 경로를 알아낸다. 그리고 라우팅 프로토콜에는 라우팅 테이블이 사용된다.
라우터가 패킷을 라우팅 할 때 목적지까지 한 번에 이동시키는 것이 아니라 인접한 라우터까지의 경로를 지정하여 전송한다.
이처럼 네트워크를 한 단계씩 이동하는 것을 홉 바이 홉(Hop-by-Hop) 라우팅이라 하고, 인접한 라우터를 넥스트 홉(Next hop)이라고 부른다.
라우팅 프로토콜을 통해 얻은 최적 경로를 기록하는 메모리 공간으로, 라우팅 프로토콜의 종류에 따라 라우팅 테이블에 저장되는 내용이 달라진다.
라우팅 테이블에는 주로 목적지와 그 목적지까지의 거리, 어떻게 가야하는가(다음 라우터 정보) 등이 저장된다. 또한 라우팅 테이블은 계속 업데이트 되어 변한다.
라우터에 일일이 경로를 입력하는 것으로, 라우터는 수동으로 입력된 라우팅 테이블을 참고하여 라우팅을 수행한다.
장점
단점
라우터가 최적 경로를 찾아 라우팅 테이블에 기록하고 라우팅을 수행한다.
장점
단점
하나의 네트워크 관리자에 의해서 관리되는 라우터들의 집단이다. 쉽게 말하면 KT 등의 ISP 업체들이 관리하는 라우터 집단이라고 생각하면 된다.
AS를 통해 라우터가 가지는 정보를 효율적으로 관리하고 인터넷 서비스를 더 간편하게 제공할 수 있다.
AS 안의 라우터들은 자신의 AS에 속한 라우터에 대한 정보만 알고 있으면 된다. AS 밖으로 나갈 때에는 AS의 문지기 라우터(ASBR, Autonoumous System Boundary Router)를 통한다.
ASBR은 자신의 AS와 인접한 다른 AS에 대한 정보를 가지고 있어 AS 외부로 나가거나 외부에서 AS로 들어오는 패킷의 라우팅을 수행한다.
예. RIP, IGRP, EIGRP, OSPF 등
거리 벡터 라우팅(Distance Vector Routing) 알고리즘에 기반을 둔 내부 게이트웨이 라우팅 프로토콜로, 라우팅 테이블을 구성할 때 홉(hop) 수를 메트릭으로 사용한다.
홉(Hop)
인접 라우터 사이에 연결된 링크
RIP는 패킷 전송 시 가장 적은 수의 라우터를 통과하는 경로를 최적 경로로 선택하여 전송한다.
RIP 라우팅 프로토콜을 사용하는 AS 내의 인접 라우터들 간에는 주기적으로 라우팅 정보를 교환하여 라우팅 테이블을 구성한다.
단점
OSPF 라우팅 프로토콜은 현재 가장 많이 사용되고 있는 내부 게이트웨이 라우팅 프로토콜로, 링크 상태 라우팅(Link State Routing) 알고리즘을 사용한다.
지역 내의 모든 라우터들이 라우터 정보의 변화가 있을 때에만 브로드캐스팅하여 정보를 공유한다. 따라서 AS 내의 라우터들은 동일한 라우팅 정보를 가지고 라우팅 테이블을 갱신한다.
특징
예. EGP, BGP 등
현재 대부분의 인터넷에서 사용되고 있는 외부 게이트웨이 라우팅 프로토콜로, TCP 연결을 통해 다른 AS의 라우터와 라우팅 정보를 교환한다.
BGP를 통해 라우팅 정보를 교환하는 두 라우터를 인접 라우터라고 한다.
BGP는 인접 라우터 관계를 유지하고 라우팅 정보를 교환하기 위해 4가지 종류의 메시지를 사용한다.
- OPEN: 인접 라우터들끼리의 관계를 설정하기 위해 사용된다.
- KEEPALIVE: 주기적으로 인접 라우터의 존재를 확인하기 위해 사용한다.
- UPDATE: 라우팅 정보 전송에 사용한다.
- NOTIFICATION: 에러 발생을 인접 라우터에 알릴 때 사용한다.
BGP 동작 원리
1) 인접 라우터 획득(Neighbor acquisition)
서로 다른 AS에 속하는 라우터 간에 인접 라우터 관계를 설정하는 과정
2) 인접 라우터 동작 확인(Neighbor Reachability)
인접 라우터들은 주기적으로 KEEPALIVE 메시지를 교환하여 상대의 존재 확인
3) 네트워크 정보 교환(Network Reachability)
각 라우터는 자신이 알고 있는 네트워크 번호와 그 네트워크에 이르는 경로에 관한 데이터베이스를 유지하는데 만약 데이터베이스 내용이 변경되면 그 내용을 UPDATE 메시지를 이용해 인접 라우터에 전파
이 메시지를 수신한 라우터는 그 내용을 자신의 데이터베이스에 반영하고 다시 인접 라우터에 전파함으로써 네트워크 경로 변경은 결국 인터넷 내의 모든 라우터에 전파된다.
라우팅 프로토콜은 라우팅 경로를 설정하는데 사용하는 프로토콜인데, 라우티드 프로토콜은 또 무엇일까?
라우티드 프로토콜(Routed Protocol)은 라우팅을 당하는 대상 프로토콜을 의미한다. 무슨 뜻인지 모르겠죠? 저도 모르겠어요!
라우티드 프로토콜은 라우팅을 받는 프로토콜을 의미한다고 합니다.... 나중에 다시 공부해야겠어요😁