[네트워크] 네트워크 계층 프로토콜 ARP 및 IP 프로토콜 전달 프로세스

목차

1. IP 개요

1.1 IP 소개

1.2 IP 프로토콜

2. IP 주소 및 하드웨어 주소

3. 주소 확인 프로토콜 ARP

3.1 ARP 프로토콜 소개

3.2 ARP 워크플로

3.3 ARP의 네 가지 일반적인 상황

4. IP 프로토콜의 전달 흐름


1. IP 개요


1.1 IP 소개


IP 주소(인터넷 프로토콜 주소)는 인터넷 프로토콜 주소를 나타내며 인터넷 프로토콜 주소라고도 합니다.

IP 주소는 IP 프로토콜에서 제공하는 통일된 주소 형식으로, 물리적 주소의 차이를 보호하기 위해 인터넷상의 각 네트워크와 각 호스트에 논리적 주소를 할당합니다.

1.2 IP 프로토콜


IP 프로토콜은 컴퓨터 네트워크가 서로 통신할 수 있도록 설계된 프로토콜입니다. 인터넷에서는 인터넷으로 연결된 모든 컴퓨터 네트워크가 서로 통신할 수 있도록 하는 일련의 규칙을 말하며, 인터넷 상에서 통신할 때 컴퓨터가 준수해야 할 규칙을 규정합니다. 모든 제조업체에서 생산한 컴퓨터 시스템은 IP 프로토콜을 준수하는 한 인터넷과 상호 연결할 수 있습니다. IP 프로토콜은 실제로 소프트웨어 프로그램으로 구성된 프로토콜 소프트웨어 세트입니다. 다양한 "프레임"을 "IP 데이터그램" 형식으로 균일하게 변환합니다. 이 변환은 인터넷의 가장 중요한 기능 중 하나이며 모든 종류의 컴퓨터를 모든 컴퓨터에서 사용할 수 있도록 합니다. 즉, "개방성"(Baidu Encyclopedia)의 특성을 갖습니다.


2. IP 주소 및 하드웨어 주소


IP 주소를 배울 때 호스트의 IP 주소와 하드웨어 주소의 차이점을 이해하는 것이 중요합니다.

위의 이미지는 두 가지 주소 유형의 차이점을 보여줍니다. 계층적인 관점에서 보면 물리주소는 데이터링크계층과 물리계층에서 사용하는 주소이고, IP주소는 네트워크계층과 그 상위계층에서 사용하는 주소를 논리주소(IP주소라고 한다)이다. IP 주소는 소프트웨어를 사용하여 구현되므로 논리적 주소입니다.

데이터를 보낼 때 데이터는 상위 계층에서 하위 계층으로 흐른 후 통신 링크를 통해 전송됩니다. IP 주소를 사용하는 IP 데이터그램이 데이터 링크 계층으로 전달되면 MAC 프레임으로 캡슐화됩니다. MAC 프레임을 전송할 때 사용되는 소스 주소와 대상 주소는 모두 하드웨어 주소이며, 두 하드웨어 주소는 모두 MAC 프레임의 헤더에 기록됩니다.

통신 링크에 연결된 장치(호스트 또는 라우터)는 MAC 프레임을 수신하면 MAC 프레임 헤더의 하드웨어 주소를 기반으로 이를 수락할지 아니면 폐기할지 결정합니다. MAC 프레임의 헤더와 트레일러를 제거하고 MAC 계층 데이터를 네트워크 계층으로 전달한 후에만 네트워크 계층은 IP 데이터그램의 헤더에서 소스 IP 주소와 대상 IP 주소를 찾을 수 있습니다. 즉, IP 주소는 IP 데이터그램의 헤더에 위치하고, 하드웨어 주소는 MAC 프레임의 헤더에 위치합니다. IP 주소는 네트워크 계층 이상에서 사용되고, 하드웨어 주소는 데이터링크 계층 이하에서 사용됩니다. 위 그림에서 IP 데이터그램을 데이터링크 계층의 MAC 프레임에 넣으면 IP 데이터그램 전체가 MAC 프레임의 데이터가 되므로 데이터링크 계층에서는 해당 데이터그램의 IP 주소가 보이지 않습니다.

아래 그림과 같이 3개의 LAN은 2개의 라우터 R1, R2를 사용하여 상호 연결됩니다. 이제 호스트 H1은 호스트 H2와 통신하려고 합니다. 이 두 호스트의 IP 주소는 각각 IP1과 IP2이고 하드웨어 주소는 각각 HA1과 HA2입니다(HA는 Hardware Address를 나타냄). 통신 경로는 H1 → R1에 의해 전달 → R2에 의해 전달 → H2입니다. 라우터 R1은 동시에 두 개의 LAN에 연결되므로 HA3과 HA4라는 두 개의 하드웨어 주소를 갖습니다. 마찬가지로 라우터 R2에도 두 개의 하드웨어 주소 HA5와 HA6이 있습니다.

아래 그림에서 다양한 수준과 간격의 소스 주소와 대상 주소

-

네트워크 계층에서

IP 데이터그램 헤더에 기록된 주소

데이터링크 계층에서

IP 데이터그램 헤더에 기록된 주소

소스 주소

목적지 주소

소스 주소

목적지 주소

H1에서 R1까지

IP1

IP2

HA1

HA3

R1에서 R2로

IP1

IP2

HA4

HA5

R2에서 H2로

IP1

IP2

HA6

HA2

여기서는 다음 사항을 강조해야 합니다.

(1) IP 계층이 추상화된 인터넷에서는 IP 데이터그램만 볼 수 있습니다. IP 데이터그램은 라우터 R1과 R2에 의해 두 번 전달되어야 하지만 헤더의 소스 주소와 대상 주소는 항상 각각 IP1과 IP2입니다. 그림의 데이터그램에 적힌 "From IP1 to IP2"는 전자가 소스 주소이고 후자가 목적지 주소임을 의미합니다. 데이터그램이 통과하는 두 라우터의 IP 주소는 IP 데이터그램의 헤더에 나타나지 않습니다.

(2) IP 데이터그램 헤더에 출발지 IP 주소가 있더라도 라우터는 목적지 IP 주소의 네트워크 번호만을 기준으로 라우팅 선택을 수행합니다.

(3) LAN의 링크 계층에서는 MAC 프레임만 볼 수 있습니다. IP 데이터그램은 MAC 프레임에 캡슐화됩니다. MAC 프레임이 다른 네트워크에서 전송되면 위 표에 표시된 것처럼 MAC 프레임 헤더의 소스 주소와 대상 주소가 변경됩니다. H1과 R1 사이에서 전송이 시작되면 하드웨어 주소 HA1에서 하드웨어 주소 HA3으로 전송되도록 MAC 프레임 헤더가 기록되며, 라우터 R1은 이 MAC 프레임을 수신한 후 데이터 링크 계층에서 헤더와 원래 MAC 프레임을 폐기합니다. 꼬리. 전달할 때 데이터 링크 계층에서 MAC 프레임의 헤더와 트레일러를 다시 추가해야 합니다. 이때 헤더의 소스 주소와 대상 주소는 각각 HA4와 HA5가 됩니다. 이 프레임을 수신한 후 라우터 R2는 MAC 프레임의 헤더와 트레일러를 다시 변경하고 헤더의 소스 주소와 대상 주소는 각각 HA6과 HA2가 됩니다. MAC 프레임 헤더의 이러한 변경 사항은 위의 IP 계층에서는 보이지 않습니다.

(4) 상호 연결된 네트워크의 하드웨어 주소 시스템은 다르지만 IP 계층의 추상 인터넷은 하위 계층의 매우 복잡한 세부 사항을 보호합니다. 네트워크 계층에서 문제를 논의하는 한, 균일하고 추상적인 IP 주소를 사용하는 호스트와 호스트 또는 라우터 간의 통신을 연구할 수 있습니다.


3. 주소 확인 프로토콜 ARP


3.1 ARP 프로토콜 소개


실제 응용 프로그램에서 우리는 종종 이러한 문제에 직면합니다. 우리는 이미 시스템(호스트 또는 라우터)의 IP 주소를 알고 있으며 해당 하드웨어 주소를 찾아야 합니다. 이러한 문제를 해결하기 위해 주소 확인 프로토콜 ARP가 사용됩니다. 아래 그림은 ARP 프로토콜의 역할을 보여줍니다.

ARP(Address Resolution Protocol)는 주소 해석 프로토콜(Address Resolution Protocol)로 , IP 프로토콜은 ARP 프로토콜을 사용하므로 일반적으로 ARP 프로토콜은 네트워크 계층으로 분류됩니다. ARP 프로토콜의 목적은 네트워크 계층에서 사용되는 IP 주소로부터 데이터 링크 계층에서 사용되는 하드웨어 주소를 확인하는 것입니다.

주소 확인 프로토콜 ARP는 IP 주소에서 호스트 ARP 캐시의 하드웨어 주소로의 매핑 테이블을 저장하며, 이 매핑 테이블은 종종 동적으로 업데이트(시간이 지남에 따라 추가 또는 삭제)됩니다. 각 호스트에는 ARP 캐시(ARP 캐시)가 장착되어 있는데, 이는 LAN상의 각 호스트와 라우터의 IP 주소를 하드웨어 주소로 매핑하는 테이블을 담고 있는데, 이는 현재 호스트가 알고 있는 주소 중 일부입니다. 그렇다면 호스트는 이러한 주소를 어떻게 알 수 있습니까? 다음 예를 통해 설명할 수 있습니다.

3.2 ARP 워크플로


호스트 A가 LAN상의 특정 호스트 B에게 IP 데이터그램을 보내려고 할 때 먼저 호스트 B의 IP 주소가 ARP 캐시에 있는지 확인합니다. 그렇다면 ARP 캐시에서 해당 하드웨어 주소를 찾아 이 하드웨어 주소를 MAC 프레임에 쓴 다음 LAN을 통해 MAC 프레임을 이 하드웨어 주소로 보냅니다. 호스트 B의 IP 주소를 찾을 수 없는 경우도 있습니다. 이는 호스트 B가 방금 네트워크에 연결되었기 때문일 수도 있고, 호스트 A의 전원이 방금 켜졌는데 캐시가 여전히 비어 있기 때문일 수도 있습니다. 이 경우 호스트 A는 자동으로 ARP를 실행한 후 다음 단계에 따라 호스트 B의 하드웨어 주소를 찾습니다.

(1) ARP 프로세스는 LAN에 ARP 요청 패킷을 브로드캐스트합니다 . 다음 그림 (a)는 호스트 A가 ARP 요청 패킷을 브로드캐스팅하고 보내는 개략도입니다. ARP 요청 패킷의 주요 내용은 다음과 같습니다. "내 IP 주소는 209.0.0.5이고 하드웨어 주소는 00-00-C0-15-AD-18입니다. IP 주소가 209.0인 호스트의 하드웨어 주소를 알고 싶습니다. 0.6."

(2) 이 LAN의 모든 호스트에서 실행 중인 ARP 프로세스는 이 ARP 요청 패킷을 수신합니다.

(3) 호스트 B의 IP 주소가 ARP 요청 패킷에서 쿼리할 IP 주소와 일치하므로 ARP 요청 패킷을 수락하고 호스트 A로 ARP 응답 패킷을 보낸 후 ARP에 자신의 하드웨어 주소를 씁니다. 응답 패킷.. 다른 모든 호스트의 IP 주소는 ARP 요청 그룹에서 쿼리할 IP 주소와 일치하지 않으므로 위의 (b)와 같이 이 ARP 요청 그룹을 무시합니다. ARP 응답 패킷의 주요 내용은 다음과 같습니다. " 내 IP 주소는 209.0.0.6이고 내 하드웨어 주소는 08-00-2B-00-EE-0A입니다. " 참고: ARP 요청 패킷은 브로드캐스트로 전송되지만, ARP 응답 패킷은 일반 유니캐스트입니다. 즉, 소스 주소에서 대상 주소로 전송됩니다.

(4) 호스트 A는 호스트 B로부터 ARP 응답 패킷을 수신한 후 호스트 B의 IP 주소를 ARP 캐시의 하드웨어 주소에 매핑합니다.

호스트 A가 B에게 데이터그램을 보내면 호스트 B가 곧 A에게 데이터그램을 보낼 가능성이 매우 높기 때문에 호스트 B도 A에게 ARP 요청 패킷을 보낼 수 있습니다. 네트워크의 트래픽을 줄이기 위해 호스트 A는 ARP 요청 패킷을 보낼 때 IP 주소와 하드웨어 주소의 매핑을 ARP 요청 패킷에 기록합니다. 호스트 B는 A로부터 ARP 요청 패킷을 수신하면 호스트 A의 주소 매핑을 호스트 B의 자체 ARP 캐시에 씁니다. 앞으로 호스트 B가 A에게 데이터그램을 보내는 것은 매우 편리할 것입니다.

ARP는 캐시에 저장된 각 매핑된 주소 항목에 대해 생존 시간(예: 10~20분)을 설정합니다. 생존 시간을 초과하는 모든 항목은 캐시에서 삭제되고, 만료된 캐시된 하드웨어 장치 주소는 적시에 지워집니다.

3.3 ARP의 네 가지 일반적인 상황


ARP는 IP 주소와 동일한 LAN에 있는 호스트 또는 라우터의 하드웨어 주소 간의 매핑 문제를 해결합니다. IP 주소에서 하드웨어 주소로의 확인은 자동으로 수행되며 호스트 사용자는 이 주소 확인 프로세스를 인식하지 못합니다. 호스트나 라우터가 네트워크에서 알려진 IP 주소를 사용하여 다른 호스트나 라우터와 통신하려는 경우 ARP 프로토콜은 이 IP 주소를 링크 계층에 필요한 하드웨어 주소로 자동으로 확인합니다.

아래에서는 ARP가 사용되는 네 가지 일반적인 상황을 요약합니다.

(1) 발신자는 호스트(예: H1) 이고 동일한 네트워크에 있는 다른 호스트(예: H2)로 IP 데이터그램을 보내려고 합니다. 이때 H1은 목적지 호스트 H2의 하드웨어 주소를 찾기 위해 ARP 요청 패킷(네트워크 1로 브로드캐스트)을 보낸다.

(2) 발신자는 호스트(예: H1) 이고 IP 데이터그램을 다른 네트워크(예: H3 또는 H4)의 호스트로 보내려고 합니다. 이때 H1은 네트워크 1의 라우터 R1의 하드웨어 주소를 찾기 위해 ARP 요청 패킷(네트워크 1에 브로드캐스트)을 보냅니다. 라우터 R1이 나머지 작업을 수행합니다. R1이 해야 할 일은 아래 (3) 또는 (4)입니다.

(3) 송신자는 R1과 동일한 네트워크(Network 2)에 연결된 호스트(예: H3)에 IP 데이터그램을 전달하려는 라우터(예: R1)입니다 . 이때 R1은 목적지 호스트 H3의 하드웨어 주소를 찾기 위해 ARP 요청 패킷(네트워크 2로 브로드캐스트)을 보낸다.

(4) 송신자는 IP 데이터그램을 네트워크 3(예: H4)의 호스트로 전달하려는 라우터(예: R1)입니다. H4와 R1은 동일한 네트워크에 연결되어 있지 않습니다. 이때 R1은 네트워크 2에 연결된 라우터 R2의 하드웨어 주소를 찾기 위해 ARP 요청 패킷(네트워크 2에 브로드캐스트)을 보냅니다. 나머지 작업은 이 라우터 R2에 의해 수행됩니다.

ARP를 여러 번 사용해야 하는 상황이 많이 있습니다. 그러나 이는 위의 상황을 반복적으로 사용한 것일 뿐입니다.

다음 그림은 arp -a 명령을 사용하여 로컬 ARP 캐시 테이블을 보는 윈도우 시스템을 보여줍니다.


4. IP 프로토콜의 전달 과정


아래 그림과 같이 컴퓨터 A는 여러 네트워크를 통해 컴퓨터 B로 데이터를 전송하는데, 데이터 전송 과정은 어떻게 되나요?

컴퓨터 A가 컴퓨터 B로 데이터를 보내는 전송 경로에는 여러 가지 선택 사항이 있습니다. 당분간 전송 경로를 무작위로 선택하여 아래와 같이 직선화합니다.

데이터는 네트워크 1을 통해 라우터로, 네트워크 2를 통해 라우터로, 네트워크 3을 통해 컴퓨터 B로 이동합니다. 이 전송 방법을 hop-by-hop이라고 하며, 추상적인 용어로 네트워크의 데이터 전송은 한 IP 주소에서 다른 IP 주소로 점프합니다.

컴퓨터와 라우터에는 모두 특정 네트워크 주소에 대한 경로를 저장하는 라우팅 테이블이 있습니다.

위의 그림이 컴퓨터 A의 라우팅 테이블이라고 가정하면, 데이터는 목적지 주소 IP1에 도달하기를 원하며, 다음 홉의 IP 주소는 IP4이고, 데이터는 목적지 주소 IP2에 도달하기를 원하며, 다음 홉의 IP 주소는 IP 주소입니다. 다음 홉은 IP5입니다.

네트워크 계층에서만 분석하면 A가 B로 데이터를 보내는 과정은 다음과 같습니다.

  1. A는 대상 IP B가 포함된 IP 데이터그램을 보내고 자신의 라우팅 테이블을 쿼리하여 다음 홉이 E임을 찾습니다.
  2. A는 E에게 데이터그램을 보낸다.
  3. E는 라우팅 테이블을 쿼리하여 다음 홉이 F임을 확인하고 데이터그램을 F로 보냅니다.
  4. F는 라우팅 테이블을 질의하여 목적지 IP 장치 B에 직접 연결되어 있음을 확인하고 B에게 데이터그램을 보냅니다.

네트워크 계층과 데이터 링크 계층을 결합하여 다음과 같이 데이터 전달 프로세스를 분석합니다.

  1. A는 대상 IP B가 포함된 IP 데이터그램을 보내고 라우팅 테이블을 쿼리하여 다음 홉이 E임을 확인합니다. A는 IP 데이터그램을 데이터 링크 계층에 전달하고 대상 MAC 주소가 E임을 알립니다. 데이터 링크 계층은 소스를 채웁니다. MAC 주소 A와 목적지 MAC 주소 E, 데이터 링크 계층은 물리 계층을 통해 데이터를 E로 보냅니다.
  2. E의 데이터 링크 계층은 데이터 프레임을 수신하고 프레임 데이터를 네트워크 계층에 전달합니다. E는 라우팅 테이블을 쿼리하여 다음 홉이 F임을 찾습니다. E의 네트워크 계층은 데이터 링크 계층에 데이터그램을 전달하고 대상 MAC에 알립니다. 주소가 F인 데이터 링크 계층, E는 데이터 프레임을 캡슐화하여 전송합니다.
  3. F의 데이터 링크 계층은 데이터 프레임을 수신하고 프레임 데이터를 네트워크 계층에 전달합니다. F는 라우팅 테이블을 쿼리하여 다음 홉이 B임을 찾습니다. F의 네트워크 계층은 데이터 링크 계층에 데이터그램을 전달하고 대상 MAC에 알립니다. 주소는 B이고 F의 데이터 링크 계층은 데이터 프레임을 캡슐화하여 보냅니다.

데이터 전달 프로세스 동안 데이터 프레임의 각 홉에 대한 MAC 주소는 변경되지만 IP 데이터그램의 각 홉에 대한 IP 주소는 변경되지 않습니다.

추천

출처blog.csdn.net/qq_35995514/article/details/135442708