데이터 통신 - 연결 (Connectivity)

Jiwan Ahn·2023년 9월 23일

서론

이 글은 데이터 통신 (우리 학교에서는 컴퓨터 통신이라고 불린다.) 과목을 수강하면서 내 언어로 이해하기 쉽게 정리한 글이다. 내용 그대로 쓰기 보다는 내 수준에 맞춰 쉽게 작성했으니, 편하게 읽어보기 바란다.

통신의 첫 단계

: 단말기(Terminal)와 단말기, 즉 통신 주체들을 연결(Connect)하는 것.

통신 주체는 왜 단말기라고 불리는가?

: 단말기의 영문은 Terminal, 즉 끝 부분을 의미한다. 네트워크 상에서 가장 처음이자 마지막으로 이루어지는 입력과 출력을 담당하므로, Terminal 이라고 불리는 것.

그리고 연결의 중간을 담당하여 중계하는 역할을 노드 (Node)라고 호칭했다. 단말기와 단말기의 연결 중간에 위치하여, 신호를 스위칭하여 연결을 중계하는 등의 역할을 했었다.

네트워크라는 개념이 약했던 유선 시절에서는 단말기와 노드의 구분이 명확했다 (단말기는 연결의 말단 부분, 노드는 단말기 사이에 통신을 중계하는 역할). 그러나, 현대 시대에 들어와서 네트워크라는 개념이 생기고, 모든 컴퓨터가 통신의 주체이자 중계자가 될 수 있어서, 단말기도 노드의 일종으로 취급하기 시작했다.

예를 들면, 우리가 늘 가지고 다니는 스마트폰은 평소에는 단말기이지만, 우리가 핫스팟을 키는 순간, 스마트폰은 중계자가 된다. 즉, 오늘날은 단말기가 노드가 될 수 있으므로, 둘을 구분짓지는 않는다.

  • 네트워크 상에서 처음 입력과 최종 출력이 일어나는 곳은 단말기, 즉, Terminal이다.
  • 단말기와 단말기를 연결하는 것이 통신의 가장 첫 단계

연결의 종류

  • 점대점 연결 (point-to-point) : 단말기와 단말기간 유선 연결을 함으로써 직접 연결을 구축하는 방법
  • 다중 접근 (multiple access) : 복수의 단말기들을 하나의 선, 즉 Bus를 통해 연결을 구축하는 방법 ⇒ BUT 하나의 선을 통해 다수의 단말기들이 신호를 송신하므로 서로 간섭될 수 있다.

cf) Media Access Control Protocol (MAC Protocol)

: 위에서 말한 단말기들이 (공식 문서에서는 Node라고 표기) 송신한 데이터간 간섭/충돌을 방지하기 위한 프로토콜. 단, 이를 관리하는 주체는 중앙이 아닌 개별 노드가 판단한다.

  • Random-access protocol (임의 접근 프로토콜) : 충돌을 감안하고 송신하는 프로토콜. 송신 과정에서 충돌이 발생하면 다시 송신한다.
  • Controlled-access protocol : 돌아가면서 송신할 수 있도록 하는 프로토콜이며, 송신의 양이 많을 경우 시간을 더 할당받을 수 있다.
  • Channelization-access protocol : 채널을 분할하여 (time slot, frequency code) 각 노드들이 배타적으로 송신할 수 있도록 한다.
  • 회선 스위칭 (Circuit Switching)
    • 사전에 미리 전용 회선을 구축한 후, 통신을 실시한다.
    • 유선으로 통신을 하므로 데이터가 끊김 없이 전달됨
  • 패킷 스위칭 (Packet Switching)
    • 회선 스위칭과 달리, 사전 작업없이 데이터를 묶음 단위(Packet)으로 보내며, 패킷마다 Store-and-Forward 원칙을 따른다.
    • 패킷을 무작위로 삽입해도 되며, 대신 패킷들을 제어할 어떤 장치가 필요하다.

패킷 (Packet): 데이터의 작은 세그먼트들로, 네트워크 상에서 전송할 때 패킷 단위로 전송한다. 패킷에는 데이터 뿐만 아니라 송신자와 수신자, 프로토콜 형식 등의 메타데이타가 담긴 헤더가 포함된다.

패킷을 쓰지 않고 데이터를 통째로 보낼 경우, 대역폭을 홀로 차지하므로 트래픽 과부하가 일어난다.

  • 어드레싱(Addressing): 이런 패킷 교환 방법은 보내고자 하는 상대방의 주소가 필요한데, 이 때 쓰이는 주소가 IP주소와 MAC주소이며, 주소를 지정하는 것을 어드레싱이라고 한다.
  • 라우팅(Routing): 목적지는 정해졌지만, 이 목적지로 향할 때의 과정을 결정하는 것을 라우팅이라고 한다. 즉, 목적지 노드를 향해 메시지를 어떻게 포워딩할지를 결정한다.

주소의 종류

  • 유니캐스트 (Unicast): 1대1로 특정 노드를 지정
  • 방송/브로드캐스트 (Broadcast): 1대다로, 노드를 지정하지 않고 같은 네트워크 내의 모든 노드를 대상으로 지정한다.
  • 멀티캐스트 (multicast): 네트워크 상의 일부 노드들을 그룹으로 지어 지정한다.

MAC 주소(Media Access Protocol Address)

: 물리적인 고유식별번호. 고유한 특성 때문에 물리 주소 (Physical Address)라고 불리기도 하며, 컴퓨터 (or Terminal, Node)의 주민등록번호라고 생각하면 된다.

처음 노드에 MAC 주소가 할당될 때는 Read-Only 성질을 지는 ROM에 기입되는데, 이런 이유로 Burned-in Address라고 불리기도 한다. 흔히 IP주소하고 헷갈리기도 하는데, IP주소는 OSI 7계층의 L3 레이어, MAC 주소는 L2 레이어에서 사용되는 주소다.

예를 들어 A 노드에서 D 노드로 패킷을 전송해야 할 때, 인터넷에서는 다이렉트로 패킷을 전송하는 것이 아닌, 중간 노드들을 거쳐 최종 목적지에 도달하게 된다. 허나, 상대방의 IP 주소는 알아도 MAC 주소는 물리적 주소이므로 A 노드와 직접적으로 연결된 중간 노드의 MAC 주소만 알지, 최종 목적지의 MAC 주소는 알 길이 없다.

어찌보면 당연한 소리인게, MAC 주소는 말 그대로 물리적인 주소지 네트워크 상의 주소가 아니기 때문에 나와 실제로 연결된 인접 노드만 알 수 있다. 따라서, MAC 주소를 알고 있는 내 옆의 노드에게 계속 전달하는 것이다.

즉, IP to IP 통신이란, MAC to MAC 통신의 연속적인 과정을 의미한다.

사실, 실질적인 통신을 하려면 상대방의 MAC 주소를 알아야 통신이 가능하다. IP는 가변적이어서 언제든지 변할 수 있지만, MAC 주소는 전세계 중 유일한 주소이기 때문에, MAC주소를 알아야 해당 대상과 통신을 할 수 있다. 그럼 IP주소는 버리고 MAC 주소로만 통신하면 안되는 것인가? 그렇지는 않다.

IP 주소는 찾는 대상이 존재하는 장소의 범위를 좁히는 역할을 한다. 우리가 B라는 사람에게 우편을 보낼 때, 그 사람의 주소를 대략 ‘서울특별시 ~~구 ~~동’으로 쓰면, 그 지역 내의 우체국으로 좁혀지지 않는가? 똑같은 원리로 IP주소도 범위를 축소 시켜 그 안에서 해당하는 MAC주소를 찾는 것이다.

IP 주소는 기본적으로 유니크한 값이긴 하지만, 우리가 스마트폰을 스타벅스 Wifi에 연결할 때 IP주소를 할당받는 것처럼, 유니크한 IP를 할당받는 대상이 계속 달라질 수 있다.

profile
Engineer, to be a Pioneer.

0개의 댓글