ABOUT ME

삶을 코딩하는 개발자의 사소한 이야기

Today
Yesterday
Total
  • [안딱딱한 네트워크 시리즈] OSI 7계층 - 네트워크 계층(Network Layer)
    안딱딱한 시리즈/안딱딱한 네트워크 2022. 6. 15. 09:15
    반응형

    지난 포스팅에서는 데이터 링크 계층에 대해 살펴봤습니다.

    이번 포스팅에서는 OSI 7계층 중 3계층인 네트워크 계층에 대해 공부해보겠습니다:)

     

    지난 시간까지는 네트워크에 대한 지식이 없었다면

    조금은 생소한 내용이었을 수도 있습니다.

    하지만 네트워크 계층은 여러분에게도 꽤 익숙한 개념입니다.

    일단 '네트워크'라는 말이 물리나 데이터 링크보다는 훨씬 익숙하시죠?

     

    여기서 나오는 네트워크는 여러분이 알고 계시는 네트워크와 동일한 의미입니다.

    우리에게 익숙한 개념인 IP를 활용하여 통신을 주도하는 계층이죠.

    네트워크 계층은 중간 라우터를 통한 라우팅을 포함하여 패킷 포워딩을 담당합니다.

    음... 이게 무슨 말인지 이해가 어려우시죠?

     

    쉽게 설명하면 

    • 라우팅은 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능

     

    이라고 생각하시면 될 것 같습니다.

    우리가 사용하고 있는 인터넷을 가능하게 하는 주요 계층이라고 볼 수 있습니다.

    물리 계층에서는 바로 옆에 있는 컴퓨터와 데이터 통신을 해봤고,

    데이터 링크 계층에서는 같은 네트워크 상에 있는 컴퓨터들과의 데이터 통신을 해봤습니다.

    네트워크 계층에선는 다른 네트워크에 있는 여러 대의 컴퓨터들과 데이터 통신을 하게됩니다.

    여기서 다른 네트워크와의 연결은 인터넷 상의 모든 컴퓨터를 의미합니다.

     

    다른 네트워크와의 연결

     

    네트워크 계층의 주요 역할은 (1). 경로를 선택하여 (2). 주소를 정하고 (3). 경로에 따라 패킷을 전달하는 것입니다.

    자, 이제 (1), (2), (3)의 절차를 이해하기 위해서 IP라는 개념이 필요합니다.

     

    위에서 패킷 포워딩, 패킷을 전달한다 라는 말이 나왔는데 패킷은 무엇일까요? 바로 IP주소 + 데이터를 의미합니다.

    해당 계층에서는 하위 계층의 하드웨어적인 특성과 다르게 독립적인 역할을 수행합니다.

    IP 패킷의 전달 및 라우팅을 담당하며 이를 위해 주로 사용하는 프로토콜은

    • 패킷의 전달을 담당하는 IP
    • 패킷 전달의 에러보고 및 진단을 담당하는 ICMP
    • 네트워킹을 통하여 경로를 찾아주는 역할을 담당하는 Routing Protocol 등이 있습니다.

     

    IP는 TCP/IP 기반의 인터넷 망을 활용하여 데이터를 전달하는 프로토콜입니다.

    신뢰성과 흐름 제어 기능이 전혀 없기 때문에 신뢰성 확보를 위해 TCP와 같은 상위 Transport 계층에 의존합니다.

    IP의 주요특성으로는

    • 비연결성 데이터그램 방식으로 전달
    • 패킷의 완전한 전달을 보장하지 않음
    • IP 패킷 헤더 내 수신 및 발신 주소를 포함
    • 최상위 바이트(MSB)를 먼저 보내는 순서로 IP 헤더 내 바이트가 전달

     

    자! 여기서 의문점이 생길 수 있습니다(안 생겨도 됩니다 ㅎㅎ).

    MAC 주소가 있는데 IP 주소는 왜 필요할까요?

    또는 IP 주소가 있는데 MAC 주소는 왜 필요할까요?

     

    일단 MAC 주소가 필요한 이유를 먼저 살펴보겠습니다.

    데이터 통신에서 MAC 주소를 물리적 주소, IP 주소를 논리적 주소라고 합니다.

    우리가 미국에 살고 있는 철수의 컴퓨터와 통신을 하려고 하는 상황을 가정해봅시다.

    이 때 철수가 통신을 위해 우리에게 IP 주소를 보내줬는데 해당 IP 주소로는 철수의 컴퓨터와의 연결이 보장되지 않습니다.

    왜 그럴까요?

     

    일반적인 가정에서는 사설 IP를 이용하는데 이는 컴퓨터가 네트워크에 접속할 때마다 서버에 IP 주소 할당을 요청하고

    서버는 IP 주소 등의 네트워크 정보를 다시 전달해 최종적으로 컴퓨터가 IP를 등록하는 과정을 거치게 됩니다.

    쉽게 요약하자면 네트워크에 접속할 때마다 IP 주소가 변경될 수 있다는 겁니다.

    이를 IP 주소의 유동성 또는 유동 IP 주소라고 합니다.

    (고정IP 주소에 대해서는 여기서 살펴보지 않겠습니다 ㅎㅎ)

     

    다시 철수와의 통신으로 돌아가면,  IP 주소의 유동성 때문에 절대 변하지 않는 고유의 주소가 필요한데

    이게 바로 컴퓨터가 가지고 있는 물리적 주소인 MAC 주소입니다.

     

    어!? 잠깐만? 나는 이메일 보낼 때 상대방의 MAC 주소를 모르는데도 잘 보내지는데...?

    이게 가능한 이유는 우리가 보통 메일을 보낼 때 abc@naver.com과 같이 도메인 주소를 사용하는데

     

    이 도메인 주소는 전송 될 때 DNS를 통해 IP로 변경되며 네트워크 단에서 이 IP 주소로 MAC 주소를 알아오는

    ARP 프로토콜을 사용하고 이 과정을 거쳐서 데이터 통신에 필요한 IP와 MAC 주소를 모두 얻을 수 있게됩니다.

     

    아 ~ 근데 그러면 MAC 주소만 알면 IP는 필요없는 거 아닌가요?

    전 세계에는 데이터 통신이 가능한 장비가 매우 많고 각 장비는 모두 MAC 주소를 가지고 있습니다.

    만약 통신을 원하는 상대방이 나와 가까운 장소에 있다면 문제가 없겠지만

    한국에 있는 A컴퓨터에서 미국에 있는 B컴퓨터에게 데이터를 송신하려고 할 때

    A와 연결된 수많은 컴퓨터 중 어떤 컴퓨터가 B컴퓨터인지 MAC 주소만으로 판단하기는 어렵습니다.

     

    이를 해결하기 위해 필요한 것이 IP 주소입니다.

    뭐랄까 IP 주소는 '어떤 방향으로 가서 통신을 원하는 MAC주소를 찾으면 된다'와 같은 신호입니다.

    간단하게 편지를 보내는 경우로 비교하면

    • IP 주소: 경기도 성남시 수정구로 가서
    • MAC 주소: 레인스톤이 살고 있는 주소(xx번지 xxxx동 xxxx호)로 편지를 전달한다.
    • 물론 이 경우 이사를 해도 레인스톤의 주소는 변하지 않는다 라고 가정해야 합니다 :)

     

    이렇게 이해할 수 있을 거 같네요:)

     

    반응형

    댓글

Designed by Tistory.