본문 바로가기
Network/네트워크 이해

[Network] 네트워크 계층(OSPF, NAT, ARP, ICMP), 전송 계층 개요

by 8희 2022. 10. 10.

OSPF

- OSPF(Open Shortest Path First)

- 가장 많이 사용하는 IGP(AS '내에서' 라우팅을 수행하는 내부 게이트웨이 프로토콜)

- 링크 상태 알고리즘 및 광고 기법 사용

- Dijkstra 알고리즘으로 최적의 경로 계산

: 특정 노드에서 다른 모든 노드로 가는 최단 경로를 알려준다.

- 신속한 경로 갱신

 

- 라우팅을 효율적으로 수행하기 위해 네트워크를 영역 단위로 나누어서 관리

- AS(Autonomous System)내에 여러 개의영역으로 나눈 다음, 내부의 라우터들끼리 각 영역에서 라우팅 정보를 교환하는 계층적 구조를 가진다.

- 여러 영역 중 백본 영역은 그림과 같이 다른 AS와 연결을 담당한다.

- AS 안에 존재하는 라우터에는 경계 라우터, 백본 라우터, 영역 경계 라우터가 있다.

- 경계 라우터: 한 AS의 최전방에 위치, 다른 AS와 라우팅 정보를 교환하는 역할

- 백본 라우터: 백본 영역에 존재하는 라우터, 다른 영역 경계 라우터와 연결

- 영역 경계 라우터: 영역의 경계에 위치한 라우터, 라우팅 정보를 요약하여 연결된 백본 라우터로 전달하는 역할

 

- OSPF 프로토콜은 캡슐화를 통해 메시지를 전송하며 동작한다.

- 캡슐화되는 데이터들은 IP 헤더, OSPF 공통 헤더, 특정 타입 OSPF 헤더로 나눌 수 있다.

- 전송되는 메시지들은 IP 헤더로 캡슐화된다.

- OSPF 메시지는 공통 헤더에 포함되며, 각 메시지 종류 및 설명은 그림과 같다.

-  Hello 메시지는 이웃 라우터의 정보를 수립하는 역할

- Database Description으로 각 링크의 요약 정보를 담아서 전송하는 역할

- 링크 상태 요청을 하면 그에 대한 응답으로

링크 상태 업데이트로 변경된 경로 정보를 전송한다. 이를, 링크 상태 광고 기법(Link state Advertisement)이라고 한다.

- 변경된 경로 정보를 받았다면 이에 대한 응답으로 LSAck를 보낸다.

 

- OSPF는 LSA, 링크 상태 광고 기법을 이용하여 라우팅 정보를 생성

- 그리고 이웃 라우터로부터 전달받은 링크 상태 광고를 통해 자신의 링크 상태 데이터베이스에 저장하여 관리

- 이를 Dijkstra 알고리즘을 통해 라우팅 테이블을 생성

- 이와 같은 매커니즘으로 OSPF메시지를 주고받으며 링크 상태를 전송하고 확인하며 OSPF는 동작

 


NAT

- NAT(Network address Tranlation)

- 사설 네트워크에서 인터넷(공용 네트워크)으로 통신이 가능하게 해 주는 프로토콜

- 요청 시 IP 헤더의 출발지 사설 IP 주소를 출발지 공인 IP 주소로!

 

* NAT 프로토콜을 사용하지 않고 웹서버에 접속하는 상황을 가정

1) 사설 IP 주소를 지닌 노트북 혹은 PC가 웹서버에 접속하기 위해 요청

2) 웹서버는 공인 IP 주소를 부여받았을 것이므로 웹서버로 보내고자 하는 패킷의 목적지 IP 주소는 공인 IP 주소가 된다.

3) 그러나 출발지 IP 주소는 사설 IP 주소를 부여 받았으므로 사설 IP 주소가 된다. 

4) 이렇게 출발지 IP 주소가 사설 IP 주소일 경우, 웹서버까지 요청 전송이 문제 없이 가능하지만 응답이 제대로 도착하지 않는다.

 

* NAT를 통해 사설 네트워크에서 인터넷을 접속하는 상황의 경우

1) 인터넷으로 요청을 보내는 출발지 IP 주소를 변환

2) 사설 IP 주소로 출발하는 출발지 IP 주소를 공인 IP 주소로 변환

3) 변환한 주소의 정보를 NAT 테이블에 보존

4) 이로써 출발지 IP 주소가 공인 IP 주소로 변환된 요청 데이터는 웹서버로 문제없이 전송

5) 그리고 웹서버에서는 요청에 대한 응답을 보낸다.

- 이 응답 데이터의 IP 헤더 속 목적지 IP 주소는 라우터로, 공인 IP 주소다.

6) 응답이 라우터로 돌아오면 NAT 테이블에 저장했던 대응 주소를 통해 목적지 IP 주소를 다시 사설 IP 주소로 변환

 

-> 이와 같은 매커니즘으로 NAT 프로토콜이 작용!

 


ARP

- ARP (Address Resolution Protocol)

- 목적지 IP 주소를 통해 목적지 MAC 주소를 알아내는 주소 획득 프로토콜

- 보내는 측의 입장에서는 목적지 IP 주소는 알수 있더라도 목적지 MAC 주소는 알 수 없다. 그래서 IP 주소를 통해서 MAC주소를 알아내고자 한 방법으로 주소 결정 프로토콜(ARP)이 사용된다. 

 

- ARP 프로토콜을 통해 목적지 IP 주소를 이용하여 목적지 MAC 주소를 알아낼 수 있다.

- 이렇게 IP주소와 MAC 주소를 대응시키는 것을 ‘주소 해석’이라고 한다.

 

* ARP의 주소 해석 동작의 과정

1)  ARP 요청을 보내어 IP 주소에 대응하는 MAC 주소를 질의한다.

- 이때 ARP는 브로드캐스트 방식으로 전송하기에 다수의 호스트에게 요청하며,

이때 브로드캐스트 주소는 48비트가 모두 ‘1’이기에 FF:FF:FF:FF:FF이다.

2) 그렇다면 질의를 받은 IP주소를 가진 호스트와 가지지 않은 호스트가 있는데, 그중 질의를 받은 IP 주소를 가진 호스트가 ARP응답으로 MAC 주소를 알려준다.

3) 이렇게 ARP응답은 유니캐스트 방식으로 전송한다.

4) 주소 해석을 했다면 해당 IP 주소와 MAC 주소의 대응 정보를 ARP 캐시에 저장한다.

 

-> ARP 주소 해석의 과정은 묻고 답하는 형식을 사용하며, 묻는 방법은 브로드캐스트 방식으로 응답 받는 과정은 유니캐스트 방식으로 전송한다.

-> 다수에게 물은 다음 해당되는 호스트가 1:1로 응답하고, 그 주소의 대응 정보를 ARP 캐시에 저장하는 방식이다.

 

- ARP 캐시는 주소 해석을 했을 시 해당 IP 주소와 MAC 주소의 대응 정보를 담아두는 캐시

- 획득한 목적지 정보는 일반적으로 20분 동안 저장하게 되고, 저장 후 또 다시 MAC 주소 요청이 들어오면 캐시에 저장된 정보를 사용

 


ICMP

- IP는 TCP와 달리 신뢰성 있는 전송 서비스를 제공하지 못한다.

- IP는 데이터를 전송한 후 제대로 도착했는지에 대한 확인을 하지 못한다. 

-> 이러한 이유로 별도로 IP에 의한 통신이 정상적으로 이루어졌는지 확인하는 ICMP 프로토콜(Internet Control Message Protocol)이 개발!

 

- ICMP는 목적지 IP로의 데이터 전송 여부를 확인할 수 있게 해 주는 역할

- ICMP의 주요 기능은 에러 리포팅과 진단(질의) 기능

- ICMP는 보내는 측에게 네트워크 내에서 일어나는 에러 상황을 통보하거나 네트워크 상태를 진단하는 기능을 제공

 

- ICMP는 네트워크 계층 프로토콜이지만 IP헤더로 캡슐화되는 것이 특징

- ICMP 헤더에는 타입(에러, 질의), 코드, 체크섬, ICMP 데이터(타입과 코드에 따라 가변적) 등과 같은 필드가 있다.

- 타입은 ICMP 메시지 유형, 코드는 타입 값의 내용, 체크섬은 에러 검사의 역할, ICMP 데이터는 타입과 코드에 따라 데이터가 달라지는 부분. 

- 해당 정보들이 캡슐화되어 전달하고자 하는 에러 혹은 질의의 내용이 전달

 

- Ping: 지정한 IP 주소와 통신할 수 있는지 확인하는 명령어 

- ping 명령어를 입력하면 ICMP Echo 요청 / 응답 메시지를 보내서 특정 IP 주소와 통신할 수 있는지 확인할 수 있다.

- 원격지 호스트 및 라우터의 동작 여부, 원격 호스트까지 왕복 시간, 중간에 손실되는 메시지의 크기 등을 알 수 있다.

 

자주 이용되며 중요도가 높은 타입

- ICMP 헤더에는 타입이라는 필드가 있다. 

- 타입과 코드에 따라서 ICMP 데이터가 변한다.

 


전송 계층 개요

- 네트워크 환경은 기본적으로 비신뢰성 환경

- 전송 계층은 '목적지에 신뢰할 수 있는 데이터를 전송할 수 있는가?'에 초점을 맞춘다.

- 데이터를 그냥 보낸다고 되는 것이 아니라, 신뢰할 수 있도록 보내는 것이 중요!

- 전송 계층은 목적지까지 신뢰할 수 있는 데이터를 전송하는 역할

- 전송계층의 주요 프로토콜은 TCP, UDP

- TCP는 데이터를 신뢰성 있게 전송하는데 중요한 역할을 하는 프로토콜

 

- 전송 계층의 특징은 신뢰성과 정확성에 초점을 두어서 전송을 하느냐

혹은 효율적으로 데이터를 전송하느냐에 따라서 통신 방식이 갈라진다.

 

- 신뢰성과 정확성에 초점을 두는 전송 방식은 연결을 필요로 한다.

- 연결을 해서 여러번 확인하는 절차가 필요. / TCP 프로토콜이 이러한 형식의 통신

 

- 효율성에 초점을 준 통신 방식은 연결을 해서 확인하는 절차보다는 효율적으로 빠르게, 일방적으로 통신을 한다.

- UDP 프로토콜이 이러한 형식의 통신 / 대표적인 예로 동영상 스트리밍 서비스

 

- 전송 계층의 주요 프로토콜인 TCP는 프로세스간 전송을 담당하며, 연결형 서비스를 제공하고, 전이중 방식의 전송 서비스이다. 이외에도 재전송, 에러제어, 흐름제어 등의 기능이 있다.

- TCP는 신뢰성 있는 데이터 전송을 위해 다양한 서비스를 제공

 

- 전송 계층에서는 TCP 헤더의 캡슐화, 역캡슐화가 일어나는 곳

- 해당 데이터 단위가 세그먼트