OSI 7계층 시리즈 #2 데이터링크 계층

Jake Seo·2021년 6월 14일
3

네트워크

목록 보기
12/16

데이터 링크 계층에서는?

물리 계층 챕터와 같이 컴퓨터끼리 1:1로 통신하는 것을 예시로 고려하지 않고 N대의 컴퓨터가 서로 통신하는 것을 고려하게 된다. 네트워크 기기 간 데이터를 전송하고 물리 주소를 결정하는 계층이다.

물리 계층 챕터에서 허브라는 장치에 대해 배웠다. 허브는 더미허브라고도 불리며, 여러 대의 컴퓨터 모두에 내가 보냈던 신호를 그대로 보낸다고 했다. 그런데 이러한 방식으로 N대의 컴퓨터와 연결했을 때는 N-1 대 분량의 쓸모없는 전송이 함께 이루어진다. 연결된 컴퓨터가 많을수록 이러한 비효율은 극대화되며, 더 심각한 보안 문제가 된다.

그래서 우리는 이러한 문제를 해결할 필요가 있다.

여러 컴퓨터를 연결하는 방법

모든 컴퓨터에 전선 연결

N개의 컴퓨터가 있을 때, N-1 + N-2 + ... + N-(N-1) = 1+...+N-1 개 만큼의 전선이 필요하게 된다. 한마디로 너무 많은 전선이 필요하게 된다.

더미 허브를 이용

허브로 연결하면 전선은 N개만큼 들기 때문에 전선이 너무 많이 드는 문제는 해결했다. 하지만, 원치 않는 브로드캐스팅이 발생하여 모든 컴퓨터에 신호를 주게 된다. 신호에서도 비효율이고, 보안적으로도 문제가 있을 수 있다.

또한 단방향 전송의 특성 상 충돌이 발생할 수 있다. 한 컴퓨터가 전송 신호를 보내면 신호를 보내는 컴퓨터가 잠시동안 허브의 전송 경로를 점령하고 있기 때문에 동시에 다른 컴퓨터들에서도 전송 신호를 보내면 신호와 신호가 충돌한다.

이러한 문제를 해결해보자.

이더넷의 등장

이더넷이란 랜에서 데이터를 정상적으로 주고받기 위해 적용하는 규칙을 말한다.

이더넷은 네트워크에 연결된 각 기기들이 48비트 길이의 고유의 MAC 주소를 가지고 이 주소를 이용해 상호간에 데이터를 주고 받을 수 있도록 만들어졌다. 전송 매체로는 BNC, UTP, STP 케이블을 사용하며, 각 기기들을 상호 연결시키는 데에는 허브, 네트워크 스위치, 리피터 등의 장치를 이용한다 From Wikipedia

허브에서 일어나는 충돌(Collision)의 해결

충돌을 해결하기 위해 이더넷에서는 CSMA/CD(Carrier Sense Multiple Access with Collision Detection) 라는 방법을 이용한다.

알파벳을 2개씩 나눠서 보자면

  • CS: 컴퓨터가 케이블에 신호가 흐르는지 확인.
  • MA: 신호가 흐르지 않는다면, 데이터를 보낸다.
  • CD: 충돌이 발생하는지 확인.

케이블에 신호가 흐른다면 신호를 보내는 컴퓨터가 잠시 대기하는 방식으로 충돌을 해결했다.

그런데, 현재 현실에서는 이러한 방식은 비효율적이어서 거의 쓰이지 않고, 대신에 스위치를 도입시킨다.

MAC 주소란?

이더넷을 더 공부하려면 MAC주소라는 개념을 알아야 한다. MAC주소란 물리 주소로 불리며, 전 세계에서 유일한 번호이다.

1A-F2-3A-05-7D-FF 라는 MAC 주소가 존재할 때,

  • 앞의 32비트(1A-F2-3A)는 제조사 번호를 뜻한다.
  • 뒤의 32비트(05-7D-FF)는 제조사의 일련번호를 뜻한다.

이더넷 헤더와 트레일러 (=프레임)

이더넷 헤더목적지 MAC 주소, 출발지 MAC 주소, 이더넷 유형을 가진 헤더를 말한다. 전송하는 데이터의 가장 앞쪽에 붙게 되는 데이터로 헤더라는 용어를 쓴다. 데이터의 해석을 돕는다.

이더넷 유형(Ethernet Type)은 0800:IPv4, 0806:ARP, 8035:RARP, 814C:SNMP over Ethernet, 86DD:IPv6 등이 있다.

트레일러란 전송하는 데이터의 맨 뒤에 붙어서 데이터 전송 중 오류가 발생하는지 확인하는 역할로 FCS(Frame Check Sequence)라고도 한다.

이렇게 전송할 데이터에 이더넷 헤더트레일러를 데이터에 붙이면 해당 데이터를 프레임이라고 한다.

이렇게 프레임을 만들고 이 프레임 비트열을 전기 신호로 변환하여 네트워크를 통해 전송한다.

이러한 프레임 덕분에 허브를 통해 내가 원하는 컴퓨터로 데이터를 보낼 수 있다.

이더넷의 규격

이더넷의 규격은 10BASE-T와 같은 형태로 표현되는데

  • 10은 통신 속도 Mbps
  • BASE는 전송 방식 BASEBAND
  • T는 케이블 종류 UTP Cable

위와 같이 표현된다.

스위치의 등장

스위치는 데이터 링크 계층에서 동작하여, L2 스위치 혹은 스위칭 허브라고도 불린다. 장비 외형 자체는 허브와 비슷하다.

스위치의 MAC 주소 테이블

스위치는 자신의 포트 번호와 해당 포트에 연결된 컴퓨터의 MAC 주소를 등록하는 데이터베이스를 갖고 있다. 이를 MAC 주소 테이블 혹은 브리지 테이블(bridge table)이라 부른다.

스위치를 켜자마자 MAC 주소가 이미 등록되어 있는 것이 아니라, 처음 목적지에 방문하는 순간 MAC 주소를 등록한다. 이를 MAC 주소 학습 기능이라고 한다.

스위치의 플러딩 (flooding)

스위치는 프레임의 목적지 MAC 주소가 등록되지 않은 상태에서 데이터를 보낼 때 플러딩(flooding) 이라는 현상을 일으키며, 연결된 모든 컴퓨터에 먼저 정보를 보낸다.

스위치의 포워딩 (forwarding)

프레임의 목적지 MAC 주소가 스위치의 MAC 주소 테이블에 들어있다면, 해당 목적지로 프레임을 전송한다.

MAC 주소를 기준으로 목적지를 선택하는 것을 MAC 주소 필터링이라고 한다.

전이중 통신과 반이중 통신

  • 전이중 통신: 데이터의 송수신을 동시에 함
  • 반이중 통신: 데이터의 송신과 수신을 번갈아가며 함

이전에 허브의 예처럼 반이중 통신에는 충돌이 발생한다. 그런데 전이중 통신의 경우 송신과 수신에 쓰이는 선이 나누어지기 때문에 충돌이 발생하지 않는다.

스위치는 허브와 다르게 충돌이 발생하지 않는 구조를 갖고 있다. 그래서 허브보다 스위치가 통신 효율이 좋으며, 요즘에는 허브는 거의 판매하지도 않는다.

충돌 도메인

충돌이 날 수 있는 영역을 충돌 도메인이라고 한다. 한 허브에 4대의 컴퓨터가 물려있다면, 충돌 도메인의 범위는 4대의 컴퓨터가 물린 허브 전체이다.

단, 스위치는 충돌 도메인이 각각의 컴퓨터 1대이다.

ARP

ARP는 목적지 컴퓨터의 IP 주소를 이용하여 MAC 주소를 찾기 위한 프로토콜을 말한다. 지정된 IP 주소를 네트워크에 브로드캐스트하여 ARP 요청을 만들어 보낸다. 지정된 IP 주소를 가진 컴퓨터가 ARP 응답을 주면, 이를 통해 ARP 테이블을 만들 수 있다.

램의 한 영역에서는 ARP 테이블이란 곳에 위 ARP로 얻은 IP대 하드웨어 주소를 보관한다. 이를 ARP 캐시(ARP cache) 라고 한다.

그래서 데이터링크 계층에서 하는 일은?

위와 같은 역할을 한다고 볼 수 있다. 디지털 데이터 신호를 받아서, 목적지, 출발지, 유형에 대한 정보(이더넷 헤더)를 넣고, 트레일러로 FCS를 넣어주어 프레임을 만들어준다.

데이터링크 계층 기술은 어디에 구현되어 있을까?

마찬가지로 랜카드에 구현되어 있다. 랜카드에서 송신할 데이터를 받아서 이더넷 헤더를 붙이고, FCS를 붙여 전기 신호로 만들어주는 것까지 한다.

레퍼런스

[10분 테코톡] 히히의 OSI 7 Layer
모두의 네트워크

profile
풀스택 웹개발자로 일하고 있는 Jake Seo입니다. 주로 Jake Seo라는 닉네임을 많이 씁니다. 프론트엔드: Javascript, React 백엔드: Spring Framework에 관심이 있습니다.

0개의 댓글