Araina’s Blog

5. 네트워크 계층 (IP) 본문

Develop Study/Network

5. 네트워크 계층 (IP)

Araina 2023. 5. 17. 00:39


 

 

1. 프로토콜의 이해

프로토콜은 서로 다른 시스템에 있는 개체 간에 성공적으로 데이터를 전송하는 통신 규약이다.

여기서 개체는 DBMS, 이메일, 응용 프로그램 등을 의미한다.

시스템은 1개 이상의 개체를 포함한 컴퓨터이다.

프로토콜은 계층적 구조로 정의되며, 각 계층의 역할을 구분한다.

이 계층은 우편을 작성해 우체국에 전달하는 단계, 우편을 수거하는 단계, 지역별로 구분해 운송하는 단계 등으로 나누어지는 것과 유사하다.

이러한 분류 과정은 각 사용자가 통신하는 HW, SW에 임의로 적용하면 매우 비효율적이다.

사용자에게 유용한 네트워크 기능을 단계별로 세분화, 모듈화 하여 공통적으로 쓸 수 있게 하는 표준화가 이루어진다면 보다 쉽고 효율적일 것이다.

프로토콜은 시스템 간의 통신과 관련된 복잡한 상호 작용을 세분하여 계층화한 것이기 때문에 이해가 쉽고, 표준 인터페이스가 잘 정립되어 있다.

이 덕분에 다른 기업이 제작한 시스템과도 호환성이 보장된다.

흔히 접한 용어들인 HTTP, SMTP, POP3 등이 모두 프로토콜을 의미한다.

즉, TCP/IP 프로토콜을 기본으로 하여 인터넷을 사용하고, 그 위에 용도에 따라 적합한 프로토콜을 하나 더 사용하는 것이다.

 


 

2. 인터넷 표준 프로토콜

인터넷에서 컴퓨터 간의 통신이 가능하도록 표준화하여 채택한 프로토콜이 TCP/IP이다.

네트워크와 네트워크를 연결하는 데 사용하는 TCP/IP 프로토콜은 전송 제어 프로토콜(TCP), 인터넷 프로토콜(IP)을 합친 것이다.

일반적으로 TCP/IP를 말하면 SMTP, FTP, Telnet 등 상위 계층의 프로토콜도 함께 포함한다.

이러한 상위 계층 프로토콜들은 모두 TCP/IP 위에서 동작하는 형식이다.

인터넷에 컴퓨터가 연결되면 '호스트'라는 이름으로 불린다.

이 호스트는 패킷 단위로 데이터를 송수신한다.

IP는 패킷을 전달하는 역할을 수행하며, TCP는 패킷 흐름을 제어하거나, 패킷의 무결성을 검사하는 역할을 수행한다.

 

2.1) TCP/IP 프로토콜 구조

TCP/IP 프로토콜은 OSI 7 계층 구조보다 더 단순하다.

응용 계층, 전송 계층, 네트워크 계층, 네트워크 접속 계층까지 총 4 계층으로 이루어져 있다.

 

- 응용 계층

TCP/IP 프로토콜 범위는 응용 계층의 프로토콜까지 포함된다.

FTP, SMTP, SNMP 등의 프로토콜을 사용한다.

컴퓨터를 사용하는 사람이 직접 다루는 여러 응용 프로그램들이 이 계층에서 가동된다.

TCP/IP 프로토콜을 지원하려면 서버 컴퓨터에 프로토콜을 서버 형태로 서비스하는 데몬이라는 프로그램이 존재해야 한다.

서버와 연동되어 작업을 수행하는 원격 프로그램을 클라이언트라고 부르며, 서버와 클라이언트의 관계를 '클라이언트/서버 시스템'이라고 칭한다.

 

- 전송 계층

전송 계층은 호스트 간의 데이터 전송을 담당하는 계층이다.

전송 계층은 TCP, UDP 프로토콜을 사용하며, 네트워크 양단의 송수신 호스트 간에 신뢰할 수 있는 전송 기능을 전달하는 역할을 수행한다.

TCP/IP에는 시스템의 논리 주소와 포트가 있어서 각 상위 계층의 프로세스를 연결하여 통신한다.

TCP는 패킷의 무결성을 검사하고, 보낸 순서대로 수신할 수 있도록 하는 프로토콜이다.

송신 측 컴퓨터는 상위 계층에서 전달된 데이터를 효율적으로 전송하기 위해 패킷 단위로 분할한다.

수신 측 컴퓨터는 하위 계층에서 전달된 패킷을 데이터로 변환한다.

TCP는 속도가 느리지만, 패킷을 정확히 전달하기 위해 패킷 헤더 부분에 일렬 번호를 비롯한 추가 정보가 포함된다.

UDP는 속도가 빨지만, 패킷의 무결성을 검사할 수 있는 추가 정보가 따로 없다.

 

- 네트워크 계층

인터넷 계층이라고도 불리는 네트워크 계층은 네트워크의 패킷 전송을 제어한다.

네트워크 계층은 데이터그램을 정확한 수신지로 전송하는 역할을 한다.

데이터그램은 IP 프로토콜이 다루는 패킷 데이터를 말하며, 송신지 주소, 수신지 주소, 데이터, 제어 필드 등을 포함한다.

네트워크 계층 프로토콜은 IP, ARP, ICMP, IGMP가 있다.

여기서 IP는 네트워크 주소 체계를 관리하고 데이터그램을 정의, 전송에 필요한 경로를 결정한다.

송신 측 컴퓨터는 IP 주소를 포함한 IP 헤더를 부착하여 하위 계층인 네트워크 접속 계층으로 전달한다.

수신 측 컴퓨터는 프레임의 헤더 정보를 확인한 후 송신 측 컴퓨터의 네트워크 계층에서 추가한 헤더를 제거, 상위 계층인 전송 계층에 전달한다.

 

- 네트워크 접속 계층

TCP/IP는 하위 계층인 물리 계층, 데이터 링크 계층을 특별히 정의하지 않는다.

그 대신 모든 표준 및 임의 네트워크를 지원할 수 있도록 되어 있다.

네트워크 접속 계층은 OS의 네트워크 카드, 디바이스 드라이버 등 HW 요소와 관련된 모든 것을 지원한다.

송신 측 컴퓨터는 상위 계층에서 전달받은 패킷에 물리 주소(MAC 주소)가 있는 헤더를 추가, 프레임을 만들어서 물리 계층에 전달한다.

수신 측 컴퓨터는 데이터 링크 계층에서 추가한 헤더를 제거, 상위 계층인 네트워크 계층에 전달한다.

 

2.2) TCP/IP 주소의 구조

TCP/IP에서 사용되는 주소는 물리 주소(MAC), 인터넷 주소(IP), 포트 주소로 나눠진다.

 

- 물리 주소

MAC 주소라고도 불리는 물리 주소는 링크 주소 또는 통신망에 정의된 노드의 주소, 이더넷 네트워크 인터페이스 카드, 6바이트 주소 등을 의미한다.

이더넷에서 호스트를 구별하기 위해 쓰이는 주소인데, 이더넷 카드마다 1개씩 부여된다.

즉, HW 단위로 부여되기 때문에 세계에서 유일하며 이를 변경하거나 임의로 조작할 수 없다.

물리 주소는 네트워크 접속 계층의 논리적 구성단위(프레임)에서 사용된다.

 

- 인터넷 주소

인터넷에서는 물리 주소와 별도로 호스트를 식별할 수 있는 고유 주소를 지정한다.

이러한 주소를 IP 주소라고 부른다.

IP 주소 또한 중복 사용이 불가능하지만, MAC 주소와 달리 임의로 변경 및 지정이 가능하다.

 

- 포트 주소

인터넷 통신은 한 프로세스가 다른 프로세스와 통신하기 위해 사용된다.

A 컴퓨터가 B 컴퓨터에게 파일을 전송한다면 FTP 프로토콜을 사용할 것이다.

그런데 A 컴퓨터가 B 컴퓨터에게 파일을 전송함과 동시에 C 컴퓨터와 TELNET을 이용해 접속하다면 동시에 2가지 이상의 프로세스가 공존하게 된다.

이 경우, 두 프로세스를 구분하기 위해 포트 주소가 사용된다.

즉, 포트 주소는 프로세스를 식별하는 주소이다.

포트 번호는 해당 호스트에서 접근하려는 서비스가 무엇인지를 구별할 수 있게 해 주기 때문에, 특정 호스트와 통신하기 위해서는 통신에 사용할 IP 주소와 함께 포트 번호가 요구된다.

 


 

3. 네트워크 계층

데이터 링크 계층은 이더넷 규칙을 기반으로 데이터 전송을 담당한다.

이 규칙은 동일한 네트워크 내에서의 통신은 보장하지만, 다른 네트워크와의 통신을 보장하지 않는다.

수많은 네트워크가 연결된 환경에서는 데이터 링크 계층과 함께 네트워크 계층이 요구된다.

이처럼 서로 다른 네트워크 간의 통신을 가능하게 해주는 장비들을 네트워크 접속 장치, 라우터라고 부른다.

라우터는 데이터를 전송할 수신지가 정해지면 수신지 컴퓨터까지 어떤 경로가 최적의 경로인지를 알려주는 역할을 한다.

네트워크로 데이터를 전송하려면 수신지 주소를 알아야 한다.

동일한 네트워크 내부에서는 MAC 주소만 있으면 되지만, 네트워크가 달라지면 IP 주소가 요구된다.

IP 주소는 어떤 네트워크의 어떤 컴퓨터인지를 구분할 수 있게 해주는 인터넷 주소이다.

수신지 컴퓨터가 지정되면 데이터를 어떤 경로로 전송할지를 결정해야 한다.

수신지 컴퓨터의 IP 주소까지 어떤 경로로 데이터를 전달할 것인지를 결정하는 것을 라우팅이라고 부른다.

 데이터를 다른 네트워크 수신지 컴퓨터로 전송하려면 라우터와 함께 IP가 필요하다.

IP 프로토콜을 사용해 데이터를 캡슐화하면 IP 헤더가 추가되며, 이를 IP 패킷이라고 부른다.

 

3.1) 네트워크 계층의 역할

네트워크 계층은 데이터 전송, 경로 선택 기능을 제공하며, 라우팅 프로토콜을 통해 최적의 경로를 계산한다.

데이터를 전송할 수신 측의 주소를 찾고, 수신된 데이터의 주소를 확인하여 자신의 것일 경우 전송 계층으로 전송한다.

데이터 링크 계층은 인접한 두 노드 사이의 전송을 담당하지만, 네트워크 계층은 각 패킷이 송신지에서 수신지까지 정확하게 전송되도록 경로를 책임진다.

네트워크 계층에서는 논리 주소인 IP 헤더를 포함해 전송하기 때문에 데이터가 전달되는 동안 주소가 바뀌지 않는다.

스위칭은 데이터를 전송하기 위해 물리 링크를 임시로 연결하여 더 긴 링크를 만드는 것을 말한다.

스위치 연결의 대표적인 예시는 전화이다.

통화를 시도하면 두 전화기를 연결하는 전용 회선이 만들어지고, 수신지까지 같은 경로를 사용해 패킷을 보낸다.

송신지에서 수신지로 패킷을 보낼 때 여러 경로가 생길 수 있다.

라우팅은 이때 최적의 경로를 탐색하는 과정을 말한다.

라우팅, 스위칭은 데이터와 함께 송신지와 수신지 주소를 포함한 헤더를 추가한다.

이 주소는 데이터 링크 계층의 헤더와 다른 정보를 담고 있다.

데이터 링크 계층의 주소는 한 노드에서 다음 노드로 프레임이 이동함에 따라 변경되는 현재와 다음 노드의 물리 주소만 포함한다.

네트워크 계층의 주소는 송신지, 최종 수신지의 주소만 가지며, 이는 전송 도중에 바뀌지 않는다.

 


 

4. IPv4

IPv4는 IP 주소 체계의 2가지 버전 중 하나이다.

32비트로 이루어진 IPv4는 약 43억 개의 컴퓨터에 할당할 수 있다.

컴퓨터가 이해하는 실제 IP 주소는 2진수로 이루어져 있으며, 사람이 이해하기 쉽도록 10진수로 변환하여 사용한다.

0.0.0.0부터 255.255.255.255까지의 범위가 지정되며, 사전에 예약된 주소, IP 주소 규정 등이 있어서 실제로 저 범위 내의 모든 IP 주소를 사용할 수는 없다.

IP 주소는 숫자로만 이루어져 있어서 암기하기가 힘들다.

이 문제를 해결하기 위해 도메인 이름이라는 별칭을 사용한다.

도데인 이름은 숫자로만 이루어져 있는 IP 주소를 영문으로 구성된 이름으로 치환하는 것이다.

도메인 이름은 단순히 IP 주소를 쉽게 기억할 수 있도록 변환한 것에 불과하기 때문에 DNS 서버를 통해 도메인 이름을 IP 주소로 변환해 주는 작업이 요구된다.

 

4.1) 공인 IP, 사설 IP

공인 IP 주소는 ISP가 제공하는 IP로, 라우터에게 1개의 주소가 제공된다.

IP 주소 고갈 문제를 해결하기 위해 가정마다 사용하는 라우터에 1개의 공인 IP 주소를 할당한 뒤, 그 라우터에 연결된 여러 장비들은 사설 IP 주소를 사용하는 형태이다.

사설 IP 주소는 공인 IP 주소와 분리되기 때문에 사설 IP 주소를 공인 IP 주소로써 사용할 수는 없다.

 

4.2) IPv4 클래스 구조

IP 주소는 비트로 구분하지만, 네트워크 ID를 크게 만들거나 호스트 ID를 크게 만드는 등의 작업으로 네트워크 크기를 조정할 수 있다.

IP 주소는 네트워크 규모에 따라 A, B, C, D, E 클래스로 나눠진다.

소규모 네트워크에서는 C 클래스를 주로 사용하며, A, B 클래스는 중형~대형급 기업에서 주로 사용한다.

나머지 D, E 클래스는 연구 및 특수 목적으로 사용하는 클래스이다.

 

4.3) 네트워크 주소, 브로드캐스트 주소

네트워크 주소, 브로드캐스트 주소는 컴퓨터에 할당할 수 없는 특별한 주소이다.

이는 컴퓨터, 라우터 등이 자신의 IP 주소로 사용할 수 없음을 의미한다.

네트워크 주소는 전체 네트워크에서 작은 네트워크를 구별하는 데 사용한다.

즉, 전체 네트워크 상에서 하나의 네트워크를 표시하는 대표 주소라고 생각하면 된다.

브로드캐스트 주소는 해당 주소로 데이터가 전달될 경우, 네트워크 내부에 있는 모든 컴퓨터들이 동일한 데이터를 전달받는다.

 

4.4) 서브넷의 구조

A 클래스 네트워크는 1000만 개가 넘는 IP 주소를 사용할 수 있는 네트워크이다.

그렇기 때문에 수많은 컴퓨터들이 브로드캐스트 패킷을 전송하게 된다면 엄청난 과부하가 일어날 수 있다.

이러한 문제를 해결하기 위해 A 클래스의 대규모 네트워크를 소규모 네트워크로 분할하여 브로드캐스트가 전송되는 범위를 축소시킬 수 있는데, 이를 통해 만들어진 네트워크를 서브넷이라고 부른다.

서브넷팅을 통해 서브넷을 구성하면 네트워크 ID + 서브넷 ID + 호스트 ID 형태로 A 클래스가 변경된다.

 

4.5) 서브넷 마스크

서브넷 마스크는 IP 주소를 서브넷팅하는 경우, 어디까지가 네트워크 ID인지, 어디까지가 호스트 ID인지를 구분하기 위해 사용한다.

서브넷 마스크를 표시할 때는 프리픽스 표기법을 사용할 수 있다.

IP 주소 뒤에 슬래시와 비트 수를 기록하여 어디서부터 어디까지가 서브넷 마스크에 해당하는지 표기해 주는 것이다.

예를 들어 255.255.0.0을 프리픽스 표기법으로 표현한다면 /16이 된다.

 

4.6) IP

IP는 컴퓨터 간에 통신할 때 사용하는 TCP/IP 프로토콜의 네트워크 계층에서 쓰이는 프로토콜이다.

IP는 레이어 3 스위치, 라우터 등의 중계 장치를 사용해 라우팅 하는 기능을 가지고 있다.

TCP는 오류가 발생하면 데이터를 재전송할 수 있지만, IP는 이러한 기능이 없어서 신뢰성이 떨어진다.

IP와 같은 비연결형 프로토콜은 각 데이터그램을 독립적으로 처리하고 수신지까지 다른 경로로 전송할 수 있다.

여러 송신지에 데이터그램을 전송한다면 순서가 바뀌기도 하고, 데이터그램이 전송 도중 분실 또는 손상되기도 한다.

이러한 문제를 검사하는 역할은 상위 계층인 TCP가 담당한다.

 

- 연결형 서비스

연결형 서비스는 송수신자 간에 논리적 연결 확립 후에 데이터를 전송한다.

신뢰성이 보장되며, TCP가 연결형 서비스에 해당한다.

 

- 비연결형 서비스

비연결형 서비스는 송수신자 간에 논리적 연결을 확립하지 않고 데이터를 전송한다.

오류 발생 여부와 상관없이 데이터를 전송하며, 재전송 절차가 없기 때문에 신뢰성이 보장되지 않는다.

그 대신에 전송 속도가 연결형 서비스보다 더 빠르다.

UDP가 비연결형 서비스에 해당한다.

 

4.7) 데이터그램의 구조

IP 계층의 패킷을 데이터그램이라고 부른다.

가변 길이이며, 헤더와 데이터로 구성된다.

IPv4는 가변 길이 헤더를 가지고 있지만, 실제로 인터넷에서 쓰이는 IP 패킷에는 통상적으로 IP 옵션 등의 헤더가 사용되지 않는다.

 


 

5. 라우터

스위치만 있는 네트워크에서는 모든 컴퓨터와 스위치가 동일한 네트워크에 속해 있다.

n대의 컴퓨터는 스위치 1개에 연결되며, 서로 연결된 스위치와 n대의 컴퓨터는 1개의 네트워크를 이루는 형태이다.

라우터는 이렇게 형성된 n개의 네트워크를 연결 및 분할할 수 있다.

분할된 다른 네트워크에 있는 컴퓨터에 데이터를 전송하기 위해서는 라우터의 IP 주소를 알아야 한다.

라우터의 IP 주소는 네트워크의 출입구 주소를 설정하는 것으로, 이를 '기본 게이트웨이'라고 부른다.

A 네트워크에 있는 1번 컴퓨터가 B 네트워크에 있는 5번 컴퓨터에 데이터를 전송하기 위해서는 다음과 같은 절차를 따라야 한다.

  • A 네트워크에 있는 1번 컴퓨터가 기본 게이트웨이를 설정한다.
  • 기본 게이트웨이가 설정되면 1번 컴퓨터는 스위치를 거쳐 라우터에 접근할 수 있다.
  • 라우터는 어떤 네트워크에 연결되어 있는 컴퓨터로 데이터를 전송하기 위해서는 데이터를 수신할 네트워크의 주소를 알아야 한다.
  • B 네트워크에 있는 5번 컴퓨터 또한 기본 게이트웨이를 설정해 둔 상태이다. 이 기본 게이트웨이의 주소는 A 네트워크와 동일하다.
  • 라우터는 연결되어 있는 스위치의 주소 중 B 네트워크를 찾아 데이터를 전달한다.
  • B 네트워크를 이루는 스위치는 연결된 5번 컴퓨터로 데이터를 전달한다.

라우터끼리 정보를 교환하기 위해서는 라우팅 프로토콜이 요구된다.

RIP, OSPF 등이 대표적인 라우팅 프로토콜이다.

 

5.1) 라우팅 테이블

라우터는 현재 네트워크에서 다른 네트워크로 데이터를 전송할 때 라우팅 경로 정보를 바탕으로 최적의 경로를 찾아 데이터를 전송한다.

이 최적의 경로를 찾기 위해서는 라우팅 테이블이 요구된다.

라우터가 가지고 있는 라우팅 테이블은 경로 정보가 등록되어 있으며, 이 정보를 기반으로 하여 최적의 경로를 탐색한다.

라우팅 테이블은 기본적으로 자동으로 경로가 등록되는 방식으로 동작한다.

네트워크 관리자가 필요에 따라 수동으로 등록할 수도 있으며, 대규모 네트워크에서는 자동으로 등록하는 방법이 적합하다.

 

5.2) 라우팅 과정

  • 패킷을 수신하면 라우터는 IP 헤더의 수신지 IP 주소를 확인한다.
  • 확인된 IP 주소와 서브넷 마스크의 논리합(AND)을 계산하여 네트워크 주소를 확인한다.
  • 수신지 네트워크 주소를 바탕으로 라우터의 라우팅 테이블을 검색한다.
  • 수신 경로를 확인한 후, 데이터 링크 계층의 헤더를 바꾼다.
  • 각 라우터, 레이어 3 스위치가 경유하는 네트워크들을 중계한다.

 


 

6. IPv6

IPv4는 이론적으로는 주소를 43억 개나 할당할 수 있지만, 클래스별로 주소를 분류하는 방식 때문에 사용하지 않는 주소가 많다.

기술이 발전하면서 네트워크에 연결되는 기기들의 수가 기하급수적으로 늘어나면서 IPv4로는 IP 주소의 요구량을 감당할 수가 없게 되었다.

이미 32비트로 이루어진 IPv4 주소 공간(약 40억 개)은 고갈된 상태이다.

IPv6는 이러한 문제를 해결하기 위해 도입되었으며, 전 세계 인구를 60억 명으로 가정해도 1인당 5천만 개가 넘는 주소를 할당할 수 있다.

IPv6는 128비트로 구성되어 있으며, 16비트씩 콜론(:)으로 나누어 16진수 형태로 표현한다.

IPv4로 이루어진 기존의 주소도 상위 비트를 0으로 채우는 방식으로 변환이 가능하다.

 

6.1) IPv6의 특징

IPv6의 가장 큰 특징은 128비트로 이루어져 IPv4보다 표현할 수 있는 주소의 수가 4배 늘어났다는 것이다.

또한 옵션을 기본 헤더에서 분리하여 필요할 때마다 새로운 확장 헤더를 삽입해 사용할 수 있다.

옵션은 라우터가 검사하지 않기 때문에 라우팅 속도가 더 빠르다.

새로운 기술, 응용 분야에서 새로운 프로토콜을 개발해 적용할 경우를 대비하여 보다 유연하게 프로토콜을 확장할 수 있도록 설계되어 있다.

서비스 유형 필드를 삭제하고 플로우 레이블 항목을 추가하여 송신자가 패킷에 특별한 처리를 요청할 수 있으며, 암호화 및 인증 옵션과 같이 IPv4보다 더 안전한 보안 환경을 제공하고 있다.

 

6.2) IPv6의 주소 체계

IPv4와 IPv6는 주소 체계가 다르다.

2바이트 영역 8개로 구성되어 총 16진수 32개로 표현된다.

앞에 있는 64비트는 네트워크 주소를, 뒤에 있는 64비트는 네트워크에 연결된 통신 장비 등에 할당되는 인터페이스 주소를 나타낸다.

 

6.3) IPv6 헤더

IPv6의 각 패킷은 기본 헤더와 페이로드로 구성되며, IPv6의 헤더는 구조가 간결하다.

IPv4의 기본적인 형식을 계승하긴 하지만 사용 빈도가 떨어지는 요소들은 일부 제거 되었다.

IPv6의 헤더는 옵션을 이용한 가변 길이 헤더를 사용하지 않는다.

그 대신 추가 기능을 다음 헤더 필드를 사용해 확장 헤더로 캡슐화한다.

즉, IPv6의 헤더는 40바이트 고정 길이를 사용한다.

  • 버전(4비트): IP 버전을 나타내며 값은 6이다.
  • 트래픽 클래스(8비트): IPv4의 TOS 필드 명칭을 바꾼 것으로, QoS용 필드로 일반적으로 0이 들어간다.
  • 플로 레이블(20비트): 미사용 필드이다. 일반적으로 0이 들어간다.
  • 페이로드 길이(16비트): IPv4의 전체 길이 필드 명칭이 바뀐 것이다. 기본 헤더를 제외한 IP 데이터그램의 전체 길이를 규정한다.
  • 다음 헤더(8비트): IPv4의 프로토콜 필드 명칭이 바뀐 것이다. 데이터그램에서 기본 헤더의 다음 헤더를 정의한다.
  • 홉 제한(8비트): IPv4의 라이프 타임 필드 명칭이 바뀐 것이다. 중계 가능한 라우터의 수를 나타내며, 중계할 때마다 값이 줄어들고 0이 되면 패킷을 폐기한다.
  • 송신지 IP 주소(128비트): 송신지의 IPv6 주소를 지정한다.
  • 수신지 IP 주소(128비트): 수신지의 IPv6 주소를 지정한다.

 

6.4) IPv6 주소의 장점

주소의 길이가 128비트로 증가하여 더 많은 주소를 생성할 수 있다.

헤더 포맷이 단순하여 보다 빠른 처리가 가능하다.

주소 자동 설정 기능을 통해 Plug and Play 설치가 가능하다.

보다 강화된 보안 기능을 제공한다.

IPv6 헤더에서 이동성을 지원하여 모바일 IP 지원이 개선되었다.

 

6.5) IPv4에서 IPv6로의 전환 기술

IPv4에서 IPv6로 변환하는 데는 많은 시간이 소요된다.

이 전환 기술은 IPv4 네트워크망과 IPv6 네트워크망 간에 주소 변환기를 사용하여 IP를 연동하고, 게이트웨이를 통해 주소 체계를 호환하는 기술이다.

전환 기술은 어떤 계층을 거치는지에 따라서 응용 계층 게이트웨이 방식, 전송 계층 릴레이 방식, 헤더 변환 방식으로 구분된다.

 

- 응용 계층 게이트웨이 방식 (응용 계층)

응용 계층 게이트웨이 방식은 변환(트랜잭션) 서비스를 위한 ALG(응용 수준 게이트웨이)이다.

웹 사이트 정보를 숨기고 캐시 메커니즘으로 서비스 성능을 향상하는 데 사용한다.

이름에서 알 수 있듯이 응용 계층에서 변환이 이루어진다.

각 서비스는 IPv4, IPv6에 밀폐되어 있어서 FTP, DNS, 텔넷 서비스 등 응용 프로토콜에 내장된 주소를 변환하기에 용이하다.

단, 각 서비스를 위한 ALG는 IPv4, IPv6에서 모두 실행되어야 한다.

관련 기술로는 SQUID가 있다.

 

- 전송 계층 릴레이 방식 (전송 계층)

TCP/UDP의 IPv4 세션과 IPv6 세션을 중간에서 릴레이 한다.

TCP 릴레이 서버는 다음과 같은 과정을 거쳐서 전송 계층에서 전환된다.

  • TCP 요청이 릴레이 서버에 도착한다. 네트워크 계층은 수신지 서버 주소가 아니어도 TCP 계층으로 전송한다.
  • 서버는 TCP 패킷을 받아서 송신지 호스트와 TCP를 연결한다.
  • 서버는 실제 수신지로 TCP 연결을 하나 더 생성한다. 연결이 구축되면 두 연결 중 하나에서 데이터를 읽어 다른 하나에 데이터를 기록한다.

전송 계층 릴레이 방식에서는 IPv4, IPv6가 각 세션에 밀폐되어 있기 때문에 헤더 변환 방식처럼 ICMP 변환 문제가 발생하지 않는다.

단, 응용 프로토콜에 내장된 IP 주소가 변환되지 않는다.

관련 기술로는 TRT, SOCKS 게이트웨이 기술이 있다.

 

- 헤더 변환 방식 (네트워크 계층)

헤더 변환 방식은 네트워크 계층(IP)에서 IPv6 패킷 헤더를 IPv4 패킷 헤더로 변환하거나, 그 반대로 변환하는 것이다.

인터넷은 대부분 IPv6를 사용하기 때문에 헤더 변환이 불필요하지만, IPv4를 쓸 때는 변환이 필요하다.

헤더 변환은 IP 계층에서 이루어지며, IPv4에서 IPv6로 변환하거나 그 반대로 변환하는 것은 SITT에서 정의한다.

SITT 방식에 기반을 둔 헤더 변환의 예시로는 NAT-PT가 있다.

헤더 변환은 IP 계층에서만 이루어지기 때문에 상대적으로 속도가 빠르다.

하지만 NAT처럼 IP 계층 변환에 어려움이 있다.

이는 헤더를 변환할 때 IPv4 패킷을 IPv6 패킷 여러 개로 분할해야 하는데, IPv6 헤더 길이가 IPv4보다 20바이트 더 길기 때문이다.

 


 

7. 네트워크 계층 프로토콜

TCP/IP에서 네트워크 계층 프로토콜은 IP, ARP, ICMP, IGMP로 구성되는데, 이 중에서 IP가 가장 인지도가 높다.

전송 계층의 패킷은 세그먼트 형태로 네트워크 계층에 전달되고, 네트워크 계층의 데이터는 IP 헤더가 추가된 IP 데이터그램으로 동작한다.

송신 측 시스템이 수신 측 시스템으로 패킷을 전송하면, 패킷은 물리적인 네트워크를 통과한다.

즉, 패킷이 수신 측에 제대로 도착하려면 논리 주소와 함께 물리 주소도 요구된다.

ARP는 IP 주소를 MAC 주소로 변환하는 프로토콜이다.

RARP는 MAC 주소를 IP 주소로 역변환하는 프로토콜이다.

패킷을 전달할 때는 IP 주소를 사용하지만, 최종적으로 수신지의 네트워크 카드로 전달할 때는 MAC 주소를 사용한다.

 

7.1) ARP 프로토콜

IP 프로세스는 MAC 주소를 모른다.

이 때문에 최종 수신지 호스트까지 신호를 전송하려면 기본 게이트웨이에서 수신지 IP 주소와 연관된 MAC 주소를 알아야 한다.

MAC 주소는 하드웨어 단위로 부여 및 관리된다.

즉, 하드웨어를 바꾸면 MAC 주소도 바뀌며, IP 주소와 달리 임의로 주소를 변경할 수 없다.

송신지에서 수신지로 신호를 전송할 때, 수신지 게이트웨이까지는 MAC 주소가 필요 없다.

수신지의 게이트웨이에서 수신지 호스트까지 신호가 전송되려면 ARP가 동작해야 하는데, 이는 수신지 호스트의 MAC 주소를 알아내거나, 해당 MAC 주소로 데이터를 전달하는 2가지 동작으로 완성된다.

 

- IP 주소, MAC 주소 매핑

A 호스트 컴퓨터에서 C 호스트 컴퓨터로 신호를 전송한다면, 각 호스트 컴퓨터의 IP 주소와 MAC 주소를 매핑해야 한다.

ARP 요청은 LAN에 연결된 모든 컴퓨터 중에 해당 IP 주소를 사용하는 컴퓨터가 있다면, 해당 컴퓨터의 MAC 주소를 알려달라고 요청하는 방식이다.

이러한 요청은 모든 컴퓨터에게 전달되는 브로드캐스트 방식이며, 요청을 받은 컴퓨터들 중에 해당되는 컴퓨터가 있다면, 요청한 컴퓨터 쪽에게 자신의 MAC 주소를 알려준다.

 

- MAC 주소로 데이터 전송

C 호스트 컴퓨터의 MAC 주소를 알아냈다면, A 호스트 컴퓨터는 작성한 메시지를 전달해야 한다.

ARP 요청을 보낸 컴퓨터, 응답을 받은 컴퓨터 모두 일시적으로 ARP 캐시 테이블에 IP 주소, MAC 주소 조합을 저장한다.

이렇게 하면 통신을 할 때마다 ARP 신호를 주고받지 않아도 되기 때문에 효율적이다.

이 전송 방식도 모든 호스트 컴퓨터가 신호를 받기 때문에 네트워크 분석기에 신호가 잡힌다.

 

7.2) 역주소 변환 프로토콜 (RARP)

호스트 컴퓨터의 MAC 주소를 알고 있다면 IP 주소도 알아낼 수 있다.

이때 RARP가 사용된다.

RARP는 컴퓨터를 네트워크에 처음 연결하거나 디스크가 없는 컴퓨터를 부팅할 때 사용하는 프로토콜이다.

이더넷, 토큰링, FDDI처럼 근거리 통신망에서 쓰인다.

 

7.3) 인터넷 제어 메시지 프로토콜 (ICMP)

네트워크 호스트, 라우터는 예상치 못한 상황이나 오류가 발생할 수 있다.

ICMP는 라우터에서 발생한 오류를 송신 측에 전송하는 데 쓰이는 프로토콜이다.

수신지 호스트, 라우터가 도달 가능한 상태인지를 결정하며, 잘못된 IP 데이터그램을 수신하고 있을 경우, 이를 통지하는 메시지를 전달한다.

ICMP 메시지는 네트워크 문제 진단에 쓰이는 질의 메시지, IP 패킷 처리 도중 발생한 문제 보고에 쓰이는 오류 메시지로 나눠진다.

 

7.4) 인터넷 그룹 메시지 프로토콜 (IGMP)

인터넷 그룹 메시지 프로토콜은 인터넷에 연결한 컴퓨터가 멀티캐스트 그룹을 주위의 라우터에 알리는데 쓰이는 프로토콜이다.

멀티캐스팅은 지정된 다수의 컴퓨터에 메시지를 보낼 수 있도록 해준다.

또한 하나의 라우터, 여러 호스트 컴퓨터들로 구성된 서브 네트워크에서 라우터와 호스트 컴퓨터가 어떤 그룹에 속해 있는지를 알려주기도 한다.

 


 


수고하셨습니다!


'Develop Study > Network' 카테고리의 다른 글

7. 응용 계층  (0) 2023.05.17
6. 전송 계층 (TCP)  (0) 2023.05.17
4. OSI 참조 모델  (0) 2023.05.16
3. 네트워크 통신  (0) 2023.05.09
2. 네트워크의 구성  (0) 2023.05.07
Comments