IP Packet의 기본흐름의 이해IP Packet의 기본흐름의 이해

Posted at 2007.01.17 15:04 | Posted in Computer/Network
5. IP Packet의 기본흐름의 이해

IP Packet이 라우터를 경유해서 어떻게 다른 네트워크로 흘러가는가? 이것을 이해하는 것은 TCP/IP통신을 이해하는 것에 있어서 아주 중요한 대목이다. TCP/IP Protocol은 LAN에서 혹은 WAN에서 매체나 통신방법을 가리지 않고 사용할 수 있는 범용의 산업표준 프로토콜이다. 이번 장을 통하여 IP Packet이 생성되어 라우터를 건너 목적지에 도착할 때까지 패킷의 변화를 살펴보고 흐름을 이해해 보고자 한다.

[그림1. IP Packet의 기본흐름 이해]

위의 예제에서 A호스트와 B호스트는 이더넷 환경에 있고, TCP/IP 통신을 하고자 한다. 예를 들면 A호스트가 “ping IP4”라고 명령을 내렸다고 가정해 보자. 우리는 각각의 시스템을 구분하는 방법으로 IP주소라는 논리적인 값을 사용하지만, 실제 네트워크에 데이터를 전송하기 위해서 데이터를 미디어에 실어 보내는 역할과, 데이터를 받아들이는 역할은 NIC(Network Interface Card)가 맡고 있다. 이들은 이더넷, AppleTalk등 각각의 매체에 접근하는 방법을 달리하는 네트워크에 맞는 프레임이라는 것을 가지고 통신을 하는데, 이 프레임에서 사용되게 될 주소는 NIC가 인식할 수 있는 물리적인 주소(MAC)을 사용하게 된다. 결국 우리가 사용하는 논리적인 주소인 IP address는 물리적인 통신을 위해 프레임에서 사용되는 물리적인 주소인 MAC address로 전환이 되어야만 한다. 이 역할을 담당하고 있는 것이 바로 TCP/IP의 ARP이다.

이 ARP는 브로드캐스트를 이용해서 MAC주소를 알아내게 되며, 여기서 알아낸 MAC주소를 근거로 이더넷 프레임이 생성되게 된다. 하지만, 이 프레임은 브로드캐스트 도메인을 분리시키는 역할을 하는 라우터에 의해 차단되기 때문에 라우터로 분리가 된 확장된 네트워크에서는 라우터 바깥의 네트워크, 즉 원격 네트워크의 호스트와 통신을 할때는 라우터의 도움이 없이는 통신을 할 수가 없는 것이다.
이러한 이유로 A호스트가 B와 통신을 위해서는 가장 먼저 수행되어야 할 작업이 바로 B호스트가 자신과 같은 로컬 네트워크에 있는지, 라우터 밖의 원격지 네트워크에 있는지를 판단하는 과정이다. 그 판단의 방법으로 로컬 서브넷 마스크를 이용해서 상대방의 IP주소중에서 네트워크 ID를 구별해 내고, 자신이 속해있는 네트워크 ID와 비교작업을 하게 된다. 판단결과, 로컬네트워크라는 결과가 나오면 직접 해당 호스트의 MAC주소를 찾기위한 ARP브로드캐스트를 사용하고, 원격지 네트워크라면 라우터에게 전송을 요청하기 위해 라우터의 NIC에 해당하는 MAC주소를 찾기 위한 ARP브로드캐스트를 전파하게 된다.

예제에서는 서로 다른 네트워크 ID라는 결과가 나왔기 때문에 원격지에 있다고 판별이 되었다. 그러면 A호스트는 라우터를 건너야만 목적지의 시스템에 접근할 수 있다는 판단을 하게 되고 라우터의 도움을 얻어서 전송을 하고자 한다. 결국 IP패킷 자체는 실제 통신의 상대방인 B호스트의 IP주소를 목적지로 사용하지만, 이더넷 프레임을 만들때의 목적지는 B호스트의 물리적 주소인 MAC4가 아닌 라우터의 로컬 인터페이스인 MAC2를 목적지로 삼아서 프레임을 생성하게 된다. 그 프레임은 라우터가 받아들이게 되고, 자신의 네트워크 인터페이스 카드가 가지는 MAC주소와 일치하기 때문에 CRC를 통해서 프레임의 무결성을 확인한 후, 헤더를 제거하고 데이터 부분에 해당하는 IP패킷을 네트워크 인터페이스 카드 드라이버를 통해서 상위 계층에 해당하는 IP에게 전달한다.

IP는 목적지IP주소를 확인하고, 그 패킷을 받아야 할 최종 목적지가 자신이 아니고 다른 호스트임을 알게 된다. 그때 라우터는 라우팅 테이블을 근거로 목적지로 가기 위한 최적의 경로를 판단하고, 해당 네트워크로 새로운 물리적인 프레임을 만들어서 전송하게 된다. 이때 라우터가 만드는 프레임의 목적지 MAC주소는 또 다른 라우터의 MAC주소일 수도 있고, 특별한 호스트의 MAC주소일 수도 있다. 예제에서는 직접 IP4의 MAC에 해당하는 MAC4 라는 주소를 목적지의 주소로 사용을 하였다.

여기서 한가지 알고 가야 할 것이 있다. 라우터를 통해서 다른 네트워크 패킷이 넘어가지만 IP주소의 변화는 전혀 없는 것을 알 수 있다. 단지 네트워크에 적합한 프레임만 변화가 있을 뿐이다. 이것은 큰 의미를 준다. 우리가 IP Packet을 사용하여 지구 반대편의 웹서버를 찾아갈 때 웹 브라우저에서 발생시킨 패킷은 크고 작은, 혹은 서로 다른 수많은 네트워크를 경유해서 전송되지만 IP 계층 위의 계층의 데이터는 변화가 없다. 단지 그때 그때 상황에 맞도록 IP 계층 하위 계층에서의 변화만으로 전송이 가능하다는 것이다.
신고

'Computer > Network' 카테고리의 다른 글

DHCP서버의 구현  (0) 2007.01.17
DHCP (Dynamic Host Configuration Protocol) Service  (0) 2007.01.17
IP Packet의 기본흐름의 이해  (0) 2007.01.17
Windows Size의 크기에 따른 영향  (0) 2007.01.17
TCP/IP Sliding Window  (0) 2007.01.17
TCP/IP Protocol Suite  (0) 2007.01.17

Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

티스토리 툴바