데이터 링크 계층? (Data Link Layer?)

정종화·2021년 12월 22일
0
post-thumbnail
  • 우리가 우체국 시스템을 통해 편지를 주고받을 수 있는 것처럼, 컴퓨터무언가를 주고 받기 위해 IP주소를 사용하고 있다.

  • 그런데 생각해보면 데이터를 보내는 컴퓨터가 전 세계의 모든 IP주소를 다 외우고 있는것도 아닌데 어떻게 딱 내가 원하는 IP주소데이터를 전송할 수 있을까?라는 궁금증이 생길 수 있는데, 차근차근 하나씩 알아보자.

  • 우선 IP는 데이터 링크 계층보다 한단계 위에 있는 네트워크 계층이다. 우리가 한 컴퓨터에서 다른 컴퓨터로 데이터를 보낸다고 했을때 IP주소를 활용해 데이터를 보낸다고 했는데 이때 우리가 원하는 IP주소로 보내주는 과정을 가지는곳이 네트워크 계층이다.

  • 그렇다면 1계층인 물리 계층과 3계층인 네트워크 계층 사이에 있는 데이터 링크 계층은 과연 무엇을 하는곳인가?라는 궁금증이 생길 수 있는데,

  • 우리가 우체국을 통해 편지나 우편을 보낼때에도 받는곳 주소를 안다고 해서 보내려는 물건이 바로 그 주소로 한번에 이동 할 수 있는게 아닌것처럼, 데이터도 마찬가지다. 우리가 보낼 물건을 들고 우체국을 방문해서 접수를 하고, 우체국 직원분께서 배달원분께 물건을 전달하고, 배달하시는분께서 물건이 가야하는 하는 배달지역의 우체국으로 물건을 전달하고, 해당 지역의 또 다른 배달원분께서 마침내 물건을 받는 정확한 주소로 배달을 해주듯이 데이터도 (순간이동을 하는게 아니니까) 그러한 일련의 하나하나 이동하는 과정이 필요한데 그러한 과정을 가능하게 해주는게 데이터 링크 계층이다.

좀 더 자세히 설명해줘.

  • 데이터 링크 계층에서 데이터가 이동할 때각 노드들을 타고 데이터가 전달이 되는데, 이때 일단 연결된 바로 이웃 컴퓨터와의 통신만을 생각한다. 이렇게 바로 이웃간의 데이터 전송이 우선 보장 되어야 더 나아가 훨씬 멀리 있는 곳까지도 데이터 전송이 가능해지기 때문에 데이터 링크 계층에선 이처럼 바로 연결된 이웃 컴퓨터와의 데이터 통신만을 우선 신경쓰게 된다.

  • 심플하게 말하자면 직접 연결된 서로 다른 2개의 네트워킹 장치 간의 데이터 전송을 담당하는 계층 이라고 생각하면 쉽고, 여기서 중요한 키워드"직접 연결된"이다.

  • 수 많은 점들있고, 그 점들이 모두 각각 하나의 IP라고 한다면, 데이터를 보낼 때 특정 점에서 우리가 원하는 점으로 보내고 싶다면, 우선 처음 시작하는 특정 점에서 직접 연결된 다른 점으로 우선 이동해야 하는것처럼, 데이터 링크 단계에서는 이 "직접 연결된"이라는 키워드가 중요하다.

  • 근데 그런식으로 보내면 데이터를 우리가 원하는곳으로 잘 보내는게 맞는지, 효율적인 방법으로 보내는지 그런것들을 어떻게 보장해? 라는 궁금증이 생길 수 있는데, 이러한 과정들은 데이터 링크 계층에서 하는것이 아니라, IP라는 프로토콜이 담긴 네트워크 계층그 이상의 계층들에서 하는것이다.

  • 데이터 링크 계층에서는 정말 말 그대로 직접 연결된 장치하고만 통신한다는 생각, 그것만 하게 된다. 그 외의 통신 관련된 문제는 해당 계층에서 생각하지 않는다.

  • 정리하자면 데이터 링크 계층한 구간 내에서의 통신만 담당하는 계층이라고 볼 수 있다.

  • 이 계층에선 전송되는 데이터를 프레임이라 한다.

그 외에 더 알아야 할거는?

  • 한 구간 내의 데이터 통신만을 신경쓴다고 해서 엄청 간단할거라고 생각하지만 사실 그렇지 않다. 그렇게 간단해 보이는 데이터 통신도 한 구간에서 다른 구간으로 이동 시 안전하게 잘 도착할 수 있도록 해당 계층에선 기타 여러가지 역할들을 같이 수행하게 되는데, 데이터 링크 계층의 주요 역할들을 살펴보면 아래와 같다.

    • 프레이밍 (Framing): 물리 계층을 통해 수신한 신호를 조합하여 프레임 단위의 정해진 크기의 데이터 유닛으로 만들어 처리한다.
    • 흐름제어 (Flow Control): 송신 측과 수신 측 간에 데이터를 주고 받을 때, 너무 많거나 너무 적게 데이터를 송수신하지 않도록 데이터 흐름을 적절히 제어해준다.
    • 오류 제어 (Error Control): 프레임 전송 시 발생한 오류를 복원하거나 재전송한다.
    • 접근 제어 (Access Control): 매체 상의 통신 주체(장치)가 여럿이 존재할 때, 데이터 전송 여부를 결정한다. (한 회사에서 여러 부서하나의 회선을 같이 사용한다고 했을때 충돌이 일어나지 않게 어떤 통신을 먼저 보낼지 이러한 것들을 정하는것을 의미한다)
    • 동기화 (Synchronization): 프레임 구분자(특별한 비트 패턴)
  • 데이터 링크 계층에선 데이터를 보낼 때 한 노드에서 직접 연결된 바로 옆 노드로 이동하고, 이러한 과정을 거쳐 데이터 통신이 이뤄진다고 했는데, 그렇다고 해서 아무 규칙도 없이 마구잡이로 데이터들을 보내는것이 아니다. 이런 간단해 보이는 작업을 하기 위해서도 신경써야 할것들이 참 많은데 어쨌든 이러한 통신이 가능하게 해주는곳이 데이터 링크 계층이 되겠다 라고 생각하면 좋다.

한마디로 정리하자면?

  • 물리 계층에서 사용되는 전송 매체를 이용하여 통신기기 사이의 연결 및 데이터 전송 기능관리규정한다. 쉽게 말하자면 물리적으로 연결되어 있는 호스트끼리의 통신을 담당한다.

또 다른 중요한 키워드가 있다면?

  • MAC 주소 (Media Access Control Address)

    • 컴퓨터간 데이터 전송을 위해 존재하는 컴퓨터의 물리적 주소이다.

    • 데이터 통신은 IP 주소를 통해 통신하는거 아니었어? 라고 생각할 수 있지만, 사실 IP 주소간의 통신MAC 주소와 MAC 주소간의 통신의 연속적인 과정이므로, IP 주소를 통해 통신을 한다는것은 곧 MAC 주소를 가지고 통신을 한다는것과 같은 의미이다.

    • 좀 더 쉽게 설명하자면, IP 주소는 데이터의 통신이 일어날 때의 그 시작점과 끝점이라고 한다면, MAC 주소직접적으로 연결된 바로 옆노드와 통신을 할 때에 사용되는 주소라고 생각하면 쉽다.

profile
Hello?

0개의 댓글