우리가 우체국 시스템을 통해 편지를 주고받을 수 있는 것처럼, 컴퓨터도 무언가를 주고 받기 위해 IP주소를 사용하고 있다.
그런데 생각해보면 데이터를 보내는 컴퓨터가 전 세계의 모든 IP주소를 다 외우고 있는것도 아닌데 어떻게 딱 내가 원하는 IP주소로 데이터를 전송할 수 있을까?라는 궁금증이 생길 수 있는데, 차근차근 하나씩 알아보자.
우선 IP는 데이터 링크 계층보다 한단계 위에 있는 네트워크 계층이다. 우리가 한 컴퓨터에서 다른 컴퓨터로 데이터를 보낸다고 했을때 IP주소를 활용해 데이터를 보낸다고 했는데 이때 우리가 원하는 IP주소로 보내주는 과정을 가지는곳이 네트워크 계층이다.
그렇다면 1계층인 물리 계층과 3계층인 네트워크 계층 사이에 있는 데이터 링크 계층은 과연 무엇을 하는곳인가?라는 궁금증이 생길 수 있는데,
우리가 우체국을 통해 편지나 우편을 보낼때에도 받는곳 주소를 안다고 해서 보내려는 물건이 바로 그 주소로 한번에 이동 할 수 있는게 아닌것처럼, 데이터도 마찬가지다. 우리가 보낼 물건을 들고 우체국을 방문해서 접수를 하고, 우체국 직원분께서 배달원분께 물건을 전달하고, 배달하시는분께서 물건이 가야하는 하는 배달지역의 우체국으로 물건을 전달하고, 해당 지역의 또 다른 배달원분께서 마침내 물건을 받는 정확한 주소로 배달을 해주듯이 데이터도 (순간이동을 하는게 아니니까) 그러한 일련의 하나하나 이동하는 과정이 필요한데 그러한 과정을 가능하게 해주는게 데이터 링크 계층이다.
데이터 링크 계층에서 데이터가 이동할 때에 각 노드들을 타고 데이터가 전달이 되는데, 이때 일단 연결된 바로 이웃 컴퓨터와의 통신만을 생각한다. 이렇게 바로 이웃간의 데이터 전송이 우선 보장 되어야 더 나아가 훨씬 멀리 있는 곳까지도 데이터 전송이 가능해지기 때문에 데이터 링크 계층에선 이처럼 바로 연결된 이웃 컴퓨터와의 데이터 통신만을 우선 신경쓰게 된다.
심플하게 말하자면 직접 연결된 서로 다른 2개의 네트워킹 장치 간의 데이터 전송을 담당하는 계층 이라고 생각하면 쉽고, 여기서 중요한 키워드는 "직접 연결된"이다.
수 많은 점들있고, 그 점들이 모두 각각 하나의 IP라고 한다면, 데이터를 보낼 때 특정 점에서 우리가 원하는 점으로 보내고 싶다면, 우선 처음 시작하는 특정 점에서 직접 연결된 다른 점으로 우선 이동해야 하는것처럼, 데이터 링크 단계에서는 이 "직접 연결된"이라는 키워드가 중요하다.
근데 그런식으로 보내면 데이터를 우리가 원하는곳으로 잘 보내는게 맞는지, 효율적인 방법으로 보내는지 그런것들을 어떻게 보장해? 라는 궁금증이 생길 수 있는데, 이러한 과정들은 데이터 링크 계층에서 하는것이 아니라, IP라는 프로토콜이 담긴 네트워크 계층 및 그 이상의 계층들에서 하는것이다.
데이터 링크 계층에서는 정말 말 그대로 직접 연결된 장치하고만 통신한다는 생각, 그것만 하게 된다. 그 외의 통신 관련된 문제는 해당 계층에서 생각하지 않는다.
정리하자면 데이터 링크 계층은 한 구간 내에서의 통신만 담당하는 계층이라고 볼 수 있다.
이 계층에선 전송되는 데이터를 프레임이라 한다.
한 구간 내의 데이터 통신만을 신경쓴다고 해서 엄청 간단할거라고 생각하지만 사실 그렇지 않다. 그렇게 간단해 보이는 데이터 통신도 한 구간에서 다른 구간으로 이동 시 안전하게 잘 도착할 수 있도록 해당 계층에선 기타 여러가지 역할들을 같이 수행하게 되는데, 데이터 링크 계층의 주요 역할들을 살펴보면 아래와 같다.
데이터 링크 계층에선 데이터를 보낼 때 한 노드에서 직접 연결된 바로 옆 노드로 이동하고, 이러한 과정을 거쳐 데이터 통신이 이뤄진다고 했는데, 그렇다고 해서 아무 규칙도 없이 마구잡이로 데이터들을 보내는것이 아니다. 이런 간단해 보이는 작업을 하기 위해서도 신경써야 할것들이 참 많은데 어쨌든 이러한 통신이 가능하게 해주는곳이 데이터 링크 계층이 되겠다 라고 생각하면 좋다.
MAC 주소 (Media Access Control Address)
컴퓨터간 데이터 전송을 위해 존재하는 컴퓨터의 물리적 주소이다.
데이터 통신은 IP 주소를 통해 통신하는거 아니었어? 라고 생각할 수 있지만, 사실 IP 주소간의 통신은 MAC 주소와 MAC 주소간의 통신의 연속적인 과정이므로, IP 주소를 통해 통신을 한다는것은 곧 MAC 주소를 가지고 통신을 한다는것과 같은 의미이다.
좀 더 쉽게 설명하자면, IP 주소는 데이터의 통신이 일어날 때의 그 시작점과 끝점이라고 한다면, MAC 주소는 직접적으로 연결된 바로 옆의 노드와 통신을 할 때에 사용되는 주소라고 생각하면 쉽다.