본문 바로가기

DevOps & SRE 엔지니어 부트캠프/공부

[CAB TA 3기] 네트워크(2) - 데이터링크 계층

데이터 링크 계층 개요

  • 물리계층에서 받은 정보를 잘못된 정보 없이 안전하게 전달하는 역활
  • 디지털 신호를 프레임 단위로 상위계층에 전달한다.
  • 다음 계층인 3계층에서 사용하는 IP주소를 알지 못한다.
  • 데이터의 프레임화 - 프레이밍(Framing)
    • 데이터의 경계를 식별하기 위해 시작과 끝을 알 수 있게 해준다.
    • 컴퓨터는 0과 1밖에 몰라서 어디서부터가 헤더이고 어디가 끝인지 알 수 없다. 그래서 표시(프레임호)가 필요하다.
  • 주소지정(Addressing)
    • 프레임에 물리적주소, 즉 MAC 주소를 부여
    • MAC 주소를 토해 데이터가 올바른 목적지로 전송될 수 있게 해준다.
  • 오류검출
    • ㅇ데이터 전송과정에서 발생할 수 있는 오류를 검출하는 기능
  • 흐름제어(Flow Control)
    • 송신측과 수신측 사이에 데이터 처리 속도 차이를 조절하여, 수신측이 처리할 수 있는 범위 내에서 데이터를 전송함
  • 매체접근 제어(Media Access Control)
    • 여러 장치가 같은 통신 매체를 공유할 때 충돌 없이 효율적으로 매체에 접근 할 수 있게 제어한다.

통신방법

  • 단방향 통신
    • 송신측과 수신측이 정해져 있고, 데이터는 한 방향으로만 전송된다.
    • 송신측과 수신측을 연결하는 전송로 필요
    • 무선호출기, 라디오, 아날로그 TV, 키보드 등이 있다.
  • 양방향 통신
    • 반이중 통신
      1. 양방향 통신이지만 동시에 데이터를 송/수신 할 수 없다.
      2. 무전기, 리모컨
    • 전이중 통신
      1. 동시에 데이터를 송/수신할 수 있다.
      2. 전화, 이더넷, 와이파이 등
  • CSMA/CD
    • 충돌감지를 통해 여러 장치가 동시에 데이터를 전송하지 않도록 제어한다.
      1. CS : 채널 감지, 데이터를 전송하려는 컴퓨터 케이블에 신호가 흐르는지 확인
      2. MA : 다중 접근
      3. CD : 충돌 감지, 충돌이 발생하고 있는지 확인함
    • 데이터 전송 시 충돌 감지를 먼저 진행하고 충돌이 발생하면 브로드캐스팅을 해서 모든 노드에게 충돌 사실을 알린다. 이 후 임의의 시간이 지난 후 다시 데이터 전송을 하고 있는지 확인하여 충돌을 감지하고 충돌이 없으면 데이터 전송
    • 초기 이더넷에서 많이 활용한 매체 접근 방식
    • 현재는 스위치를 거의 모든 곳에서 사용하기에 잘 사용하지 않는 방식
  • CSMA/CD
    • CA : 무선 네트워크에서 사용되는 프로토콜(와이파이)
    • 무선 네트워크는 보안이 매우 중요하다.
    • 네트워크 충돌을 방지 -> 무선네트워크에선 충돌 감지가 매우 어려워 방지에  초점을 맞춤

MAC 주소

  • 네트워크 장비가 네트워크 상에서 고유하게 식별되기 위해 사용되는 식별자 
  • 랜 카드에 할당되어 있으며, 이 주소를 통해 네트워크에서 데이터를 주고 받을 수 있다.

  • 16진수로 표현된다.
  • 앞 3바이트는 제조사를 나타내고, 뒤 3바잍는 해당 제조사에서 할당한 고유번호이다.
  • D6-25-8B-67-15-3D
    • 하이픈으로 구분된 D6 하나를 옥텟이라고 부른다.
  • 터미널에서 확인이 가능하다.
    • window  터미널 : ipconfig/all
    • linux : ifconifg
    • MAC 주소를 조회할 수 있는 사이트로 찾아볼 수 있다.

브릿지

  • 리피터와 비슷
  • 두 개의 근거리 통신망 랜을 연결해준다. - 랜 확장 장치
  • 리피터와 다르게 MAC 주소를 읽어서 처리할 수 있다.
  • 스위치로 발전하여 더이상 쓰지 않는다.

스위치

  • 허브와 달리 데이터 충돌이 발생하지 않는다.
  • 이는 스위치가 각 포트를 독립적인 충돌 도메인으로 관리하기 때문이다.(MAC 주소를 구별할 수 있기 때문에 가능함)
    • 충돌 도메인 : 데이터 패킷이 충돌할 수 있는 영역
    • 허브는 연결된 모든 장치로 데이터를 송신하기 때문에 모든 노드에서 충돌이 발생할 수 있다.
  • 한번에 여러 통신을 동시에 처리할 수 있다.
  • 24포트 스위치가 기본
  • 스위치 동작 방식
    • 학습 : 데이터를 수신할 때마다 송신 장치의 MAC 주소를 기억하고 해당 주소와 연결된 포트를 MAC 주소 테이블에 저장한다.
    • 전송 : MAC 주소 테이블을 참고하여 목적지 MAC 주소가 연결된 포트를 찾아서 데이터를 전송
    • 필터링 : MAC 주소 테이블에 없는 목적지로 전송되는 데이터를 걸러낸다.

MAC  주소 테이블

  • 스위치는 연결된 장치들의 MAC 주소를 MAC 주소 테이블에 저장한다.
  • 프레임을 더 빠르고 효율적으로 전송할 수 있다.
  • 스위치를 껏다가 키면 MAC 주소가 날아가는 것이 디폴트이다.
  • 출발지 노드의 MAC 주소만 저장한다.(도착지는 X)

  • MAC 주소 테이블은 3계층에서도 활용한다.
  • 라우터는 MAC 주소 테이블을 이용해 올바른 목적지로 패킷을 전송한다.

이더넷

  • 랜에서 가장 널리 사용되는 데이터 링크 프로토콜
  • 네트워크를 연결하려면 하드웨어적으로 연결되어 있어야 하고, 소프트웨어적으로도 프로토콜이 정해져 있다.
  • 데이터 전달을 위한 네트워크 프로토콜
  • MAC 주소를 사용하여 네트워크 상의 장치들을 식별하낟.
  • CSMA/CD 방식(현재는 스위치를 이용)을 사용하여 충돌을 감지하고 해결한다.

이더넷 프레임

  • 데이터가 전송될 때 이런 모양으로 전송된다.
  • 물리계층 헤더
    • Preamble : 프레임의 시작을 알리는 신호, 7바이트로 구성되며 수신 장치가 동기화를 맞추는 목적
    • SFD : 프레임의 시작을 표시하는 1바이트 필드
  • MAC 프레임
    • MAC 헤더(14바이트)
      1. MAC Destination : 도착지 MAC 주소(6바이트)
      2. MAC Source : 송신자 MAC 주소(6바이트)
      3. Len/Type : 이 뒤 내용이 어떤 데이터 타입이고, 길이는 어떤지 알려줌
    • Data/Payload : 상위 계층의 프로토콜로부터 캡슐화된 데이터
      1. 크기가 46bye보다 작을 경우, 끝에 0을 붙여서 전송한다.
    • FCS : 4바이트일 때도 있다..
      1. 2계층에서만 존재한다.
      2. 오류 검출

MTU

  • 상위계층에서 데이터(페이로드)가 내려온다.
  • 이 데이터의 크기는 46-1500바이트 사이이다.
  • MTU보다 큰 데이터는 MTU단위로 잘라서 전송한다.
  • MTU는 네트워크에서 한 번에 전송 가능한 데이터 패킷의 최대 크기를 나타낸다.
    • 바이트 단위로 측정
    • 라우터, 스위치, 네트워크 인터페이스 등에 관련이 있다.
    • MTU가 계속 커진다면, 한번에 엄청 많은 양의 데이터를 전송할 수 있다.
    • 하지만 패킷을 전송하는 동안 오버헤드도 같이 증가한다. + 데이터의 품질이 떨어질 수 있다.(다시 보내야하는 것 -> 네트워크 부하)
    • 오버헤드 : 어떤 작업을 수행하는데 필요한 부가적인 비용
    • 오버헤드가 계속 커지기 때문에 MTU를 너무 크게하지 않고 크기를 1500바이트 안쪽으로 정함(이더넷 네트워크 기준)
    • 이더넷 프레임보다 더 큰 MTU를 가진 프레임도 있음(이더넷 점보프레임 같은) -> 모든 장치가 점보프레임이어야지 특정부분만 점보프레임이면 최소 MTU 기준으로 패킷이 쪼개진다.
    • 4000바이트로 보내면 1500 / 1500 / 1000으로 나뉘어져서 보내진다.
    • 0 ~ 1500, 0 ~ 3000, 0 ~ 4000(offset 기준)
    • offset : 특정 기준점으로부터 얼만큼 떨어져 있는가

LLC

  • 데이터링크 계층은 물리계층으로부터 들어오는 디지털 신호를 변환해서 상위 계층으로 보내야한다. 이 기능을 LLC를 통해 나누어서 진행한다.
  • 상위 LLC 부계층 : 상위 계층에서 내려오는 네트워크 계층과 하위MAC 계층간의 접속을 담당
    • 데이터 프레임 처리 : 데이터를 패킷화하여 하위 MAC 부계층으로 전송하고, 하위 MAC 부계층에서 받은 데이터를 추출하여 상위 계층으로 전달한다. 
  • 하위 MAC 부계층 : 물리 계층 상의 토폴로지나 기타 특성에 맞추어 제어 담당
    • 네트워크 상에서 실제로 데이터를 처리하는 역활을 한다.
    • 주소 할당 : 각 네트워크 장치에 고유한 MAC 주소를 할당하여 통신에 참여한다.
    • 미디어 엑세스 제어 : 여러 장치가 동일한 링크를 공유할 때, 충돌을 방지하고, 효율적인 데이터 전송을 위한 엑세스 제어를 관리한다. 

  • LAN 환경에서 네트워크 자원을 효율적으로 활용하려고 데이터링크 계층의 기능을 LLC 계층과 MAC 계층으로 나누어서 처리한다.
  • 데이터링크 계층의 기본 기능은 주로 LLC에서 다루고, 물리적 전송 선로의 특징과 매체간의 연결방식에 따른 제어 부분은 MAC 계층에서 처리한다.
  • MAC 계층
    • 전송 선로의 물리적 특성을 반영하므로, LAN의 종류에 따라 특성이 구분된다.
    • 대표적인 공유버스 방식은 이더넷과 토큰링 방식이다.
    • 이더넷인 경우, 데이터를 전송하기 전 먼저 전송 선로가 사용중인지 확인하고 전송을 한다. 사용 중 다른 데이터 전송이 이루어지게 될 경우 충돌 문제가 발생할 수 있다. 충돌이 발생하면, 호스트는 이를 감지하고 일정 시점이 지난 후 재전송한다
    • 토큰 링 방식은 버스표를 주고 버스를 타는 것과 같이 데이터를 전송하려면 먼저 토큰을 확보해야 하고, 전송이 확보되면 토큰을 링 위에 내놓아야 한다.
  • LLC 계층
    • WAN 환경의 데이터링크 계층과 거의 유사하다.
    • 에러제어, 프레임 다중화, 필요시 흐름제어 기능이 있다.
  • MAC, LLC의 차이점 : MAC이 공유 매체를 통해서 신뢰성 없이 패킷에 대한 전송서비스를 제공하는 반면, LLC는 기본적으로 두 지점간에 신뢰성이 있는 패킷 링크로 전환한다.
  • LAN에서는 각 노드의 연결이 데이터 링크 프로토콜에 의해 직접 연결되는 방식을 취하지 않고, 두 개의 부계층으로 나뉘어 하위 MAC 부계층은 물리 계층 상의 토폴로지나 기타 특성에 맞추어 주는 제어를 담당하고, 상위의 LLC 부계층은 MAC 부계층과 네트워크 계층간의 접속을 담당한다.

Wi-Fi

  • 무선 네트워크 기술
  • 와이파이를 통해서 컴퓨터, 핸ㄷ폰, 기타 무선장치들이 인터넷에 연결되고 서로 통신할 수 있다.
  • 일반적으로  2.4GHz와 5GHz라는 두 개의 주파수 대역을 사용한다.
  • 2.4GHz는 비교적 느리지만 장애물의 영향을 덜 받고 상대적으로 전송범위가 넓다.
  • 5GHz는 빠르지만 장애물의 영향을 많이 받고 상대적으로 전송범위가 좁다.
  • 현재는 Wi-Fi 6E를 쓰는 중

VLAN

  • Virtual : 논리적인 영역
  • 가상메모리 : 물리적 메모리 + Swap영역(하드디스크)
    • 메모리 크기 이상의 프로세스를 한번에 다 올릴 수 없으니 프로세스를 쪼개서 메모리에 올린다.
    • 이 때, 쪼개진 프로세스를 메모리에 올릭, 메모리가 꽉 차 있으 경우 기존에 있는 프로세스를 잠시 Swap 영역에 옮기는데 이 공간과 물리 메모리를 모두 합쳐서 가상메모리라고 한다.
  • 네트워크 장비 중 스위치는 VLAN이라는 가상화 기술을 사용하고 있다.

  • VLAN이란 물리적 배치와 상관없이 LAN을 논리적으로 분할, 구성하는 기술이다.
    • 예를 들어, 각 층별 스위치를 가지고 있는 A동 건물 13층에 여러 기업이 상주해 있다고 하자. 
    • 각 기업간의 네트워크 망은 분리되어 보안 유지가 되어야 한다. 이럴 때 VLAN을 사용하여 각 네트워크를 분리한다.
    • 각 기업은 스위치를 통해 네트워크와 연결한다. 스위치는 24포트가 기본이다.
    • 모든 기업이 따로 스위치를 각각 쓸 경우 낭비되는 포트가 많기 때문에 하나의 스위치만을 사용한다.
    • 하나의 스위치에서 포트별로 VLAN을 설정하여 네트워크를 분리한다.
      1. 포트번호 1=기업a
      2. 포트번호 2=기업b
      3. 포트번호 3=기업c 이런식으로 
    • 이런 경우, 각 기업끼리만 통신이 가능하고, 기업 a, b, c는 서로 통신이 불가능하다.(인터넷 연결이 안되어 있다고할 때)
    • VLAN을 나누면 하나의 스위치에서 다른 네트워크를 갖도록 논리적으로 분할한 것이기 때문에 브로드캐스트, 유니캐스트 통신이 불가능하다.
    • 만약 VLAN간의 통신이 필요하다면, 게이트웨이 역활을 해줄 OSI 계층 장비의 도움이 필요하다.   
  • 스위치에는 각 포트의 기본 VLAN 설정이 1번으로 다 되어 있다.
  • VLAN 할당 방식을 기준으로 Static VLAN과 Dynamic VLAN으로 구분할 수 있다.
    • Static VLAN
      1. 스위치 포트에 VLAN을 할당하여 포트 기반 VLAN이라고 부른다.
      2. 어떤 단말이 접속하든지 스위치의 특정 포트에 VLAN을 할당하면 할당된 VLAN에 속하게 된다.
      3. 일반적으로 우리가 언급하는 대부분의 VLAN이다.
    • Dynamic VLAN
      1. MAC 주소를 기반으로 VLAN을 할당한다.

  • 만약 VLAN이 존재하는 상황에서 스위치를 서로 연결해야 하는 경우, 각 VLAN끼리 통신하려면 위의 사진처럼 VLAN의 개수만큼 통신포트를 서로 연결해야 한다.
  • 하지만 VLAN을 많이 사용하는 중, 대형 네트워크인 경우 수백개의 VLAN이 있다면 수백개의 포트를 연결해야 하므로 포트 낭비 문제가 발생한다.
  • 이러한 문제를 해결하기 위해 VLAN 태그 기능이 나와 VLAN이 N개여도 하나의 통합 링크를 통해 패킷을 보낼 수 있게 되었고, 이 방식을 Trunking이라 한다.

  • VLAN 태그 기능은 하나의 포트에 여러 VLAN을 함께 전송할 수 있게 해주는 기능이다.
    • 한 포트로 여러 VLAN 데이터가이동하려면 패킷이 어느 VLAN에 속하는지 구분해야 하는데, 이 때 VLAN ID를 통해서 구분한다.
    •  태그 포트로 패킷을 보낼 때 VLAN ID를 붙이고, 수신측에서는 VLAN ID를 제거하는 방식이다.

VLAN 정리

  • VLAN은 물리적 위치와 상관없이 논리적으로 네트워크를 분리하는 기술이다.
  • VLAN은 각각 벼도의 네트워크 망으로 취급하기에 VLAN간의 통신은 3계층 장비의 도움이 필요하다.
  • VLAN을 이용해 다른 층에 있는 장비들을 하나의 네트워크 그룹으로 묶을 수 있다.
  • VLAN 종류는 대표적으로 Static(포트 기반 할당)과 Dynamic(MAC 기반 할당)이 존재한다.
  • Trunking 동작을 하나의 태그 포트로 여러 VLAN 전송이 가능하다(VLAN ID 필드 사용)
  • MAC 테이블에 VLAN ID가 추가된다.