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

2024. 11. 29. 17:23Linux*security/Network

반응형

 

데이터 링크 계층은 OSI 7 계층 모델의 2계층으로, 데이터 전송의 신뢰성을 보장하며 물리 계층(1계층)과 네트워크 계층(3계층) 사이에서 데이터를 효율적으로 전달한다.
데이터 링크 계층은 MAC(Media Access Control)과 LLC(Logical Link Control)라는 두 개의 하위 계층으로 구성된다.


1. 데이터 링크 계층의 주요 기능

  1. 프레임 생성 (Framing)
    • 상위 계층의 데이터를 프레임(Frame)으로 캡슐화하여 전송.
    • 프레임에는 데이터와 함께 오류 탐지 정보가 포함.
  2. 오류 제어 (Error Control)
    • 데이터를 전송하는 동안 발생할 수 있는 에러를 감지 및 수정.
    • 오류 발생 시 데이터 재전송 요청(ARQ: Automatic Repeat Request) 수행.
  3. 흐름 제어 (Flow Control)
    • 데이터 송수신 속도를 조정하여 송신자와 수신자 간 버퍼 오버플로우 방지.
  4. 매체 접근 제어 (Media Access Control)
    • 네트워크 매체(유선, 무선 등)에 다수의 장치가 연결될 때, 데이터 충돌을 방지.
  5. 주소 지정 (Addressing)
    • 물리적 주소(예: MAC 주소)를 사용하여 데이터의 송수신 대상 식별.

2. 데이터 링크 계층의 하위 계층

1) MAC (Media Access Control)

  • 물리 계층과 연결되는 물리적인 부분을 담당.
  • 네트워크 매체 접근 방식을 결정하고, 충돌 방지를 위해 매체를 제어.
  • 예: CSMA/CD (이더넷), CSMA/CA (Wi-Fi).
  • 역할:
    • 프레임을 물리적 매체(1계층)에 전달.
    • MAC 주소를 사용하여 장치 간 데이터 전송.

2) LLC (Logical Link Control)

  • 논리 계층으로, 상위 계층(네트워크 계층, 3계층)과의 인터페이스를 제공.
  • 데이터 링크 계층에서 프레임을 생성하고, 프로토콜을 식별.
  • 역할:
    • 오류 탐지 및 복구.
    • 데이터 흐름 관리.
    • 네트워크 계층(3계층)과 데이터 링크 계층 간 인터페이스 제공.

3. 데이터 흐름 구조

  1. 패킷 (Packet)
    • 네트워크 계층(3계층)의 데이터 단위.
  2. 프레임 (Frame)
    • 패킷을 기반으로 LLC와 MAC 계층에서 헤더 및 트레일러를 추가한 데이터 단위.
    • 프레임 구조:
      • LLC 헤더
      • 데이터(상위 계층 정보 포함)
      • MAC 헤더 및 트레일러

4. 데이터 흐름 과정

  1. 네트워크 계층 (3계층)에서 패킷 생성.
  2. LLC 계층이 패킷을 받아 프레임 생성.
  3. MAC 계층이 프레임을 받아 물리 계층으로 전달.
  4. 물리 계층 (1계층)에서 신호로 변환되어 전송.

5. 데이터 링크 계층의 중요성

데이터 링크 계층은 네트워크 통신에서 신뢰성 있는 데이터 전송을 보장하며, MAC 주소를 기반으로 기기 간의 연결을 관리하여 네트워크 환경에서 효율적이고 안전한 데이터 흐름을 유지하는 데 핵심적인 역할을 한다.

 

 

 

데이터 링크 계층의 주요 기능: Framing

데이터 링크 계층은 프레임(Fame)을 생성하여 데이터를 신뢰성 있게 전송하는 중요한 역할을 한다. 이 계층에서 데이터그램을 처리하는 방식은 다음과 같다:


1. Framing(프레이밍) 정의

  • 네트워크 계층(3계층)에서 전달받은 데이터그램(Datagram)을 프레임(Frame)이라는 데이터 단위로 캡슐화.
  • 헤더(Header)와 트레일러(Trailer)를 추가하여 데이터의 목적지와 에러 검출 기능을 포함.

2. Framing의 구성 요소

1) Header (헤더)

  • 프레임의 시작 부분에 위치.
  • 목적지 주소와 출발지 주소, 데이터의 형식을 포함.
  • 주요 역할:
    • 데이터를 어느 장치로 보내야 하는지어디에서 왔는지를 식별.
    • 데이터가 정확히 전달될 수 있도록 제어 정보 제공.

2) Data (데이터)

  • 네트워크 계층(3계층)에서 전달받은 데이터그램.
  • 데이터의 실제 내용(예: 웹 요청, 파일 전송 정보 등)을 포함.

3) Trailer (트레일러)

  • 프레임의 끝 부분에 위치.
  • 주요 역할:
    • 비트 에러 검출 기능을 수행.
    • 프레임이 전송 과정에서 손상되었는지 확인하기 위해 CRC(Cyclic Redundancy Check) 값을 포함.

3. 데이터 흐름 과정

  1. 네트워크 계층(3계층)에서 데이터그램 생성.
  2. 데이터 링크 계층(2계층)에서:
    • 헤더와 트레일러를 추가하여 프레임으로 캡슐화.
  3. 물리 계층(1계층)으로 프레임 전달 후, 신호로 변환하여 전송.
  4. 수신 측 데이터 링크 계층에서 헤더와 트레일러를 제거하여 데이터그램을 상위 계층으로 전달.

4. 주요 개념 정리

  • Network Datagram: 네트워크 계층에서 처리되는 데이터 단위.
  • Frame: 데이터 링크 계층에서 생성된 데이터 단위.
  • Header: 주소 정보와 제어 정보 제공.
  • Trailer: 에러 검출을 위해 사용.

5. 데이터 링크 계층의 신뢰성 확보

프레임은 데이터를 목적지까지 정확히 전달하기 위한 기본 단위이다.

  • 헤더: 데이터의 경로를 제어.
  • 트레일러: 데이터 무결성을 확인.
    이 과정을 통해 데이터 링크 계층은 물리 계층의 신호 처리 한계를 보완하고, 네트워크 계층에 신뢰성 있는 데이터 전송을 제공한다.

 

흐름 제어(Flow Control)

흐름 제어는 데이터 링크 계층에서 송신자와 수신자 간의 데이터 전송 속도를 조절하여 버퍼 오버플로우과부하를 방지하는 기능이다. 하지만 흐름 제어와 관련된 문제 중 하나는 중복 프레임(Duplicate Frame) 발생다.

중복 프레임(Duplicate Frame) 문제

  • 데이터 전송 중 프레임이 손실되거나 오류가 발생하면 송신자는 해당 프레임을 다시 전송할 수 있다. 이로 인해 중복 프레임이 발생할 수 있다.
  • 중복된 프레임이 수신 측으로 전달되면, 데이터의 일관성을 잃을 수 있기 때문에 이를 구분하고 처리해야 한다.

1. Sequence Number (시퀀스 번호) 사용

  • 중복 프레임 문제를 해결하기 위해 시퀀스 번호(Sequence Number)를 사용하여 프레임을 구분한다.
  • 시퀀스 번호는 각 프레임에 고유하게 할당되며, 이를 통해 수신 측에서 동일한 프레임인지 구분할 수 있다.

2. 흐름 제어의 동작

  • 송신자는 프레임 0을 전송하고, 수신자는 이를 받으면 응답(ACK)을 보낸다.
  • 만약 수신자가 응답을 보내지 않거나, 프레임이 손실되었을 경우 송신자는 프레임 0을 다시 전송한다.
  • 이때 시퀀스 번호가 포함되면, 수신자는 이 프레임이 새로운 프레임인지, 이미 받은 프레임인지 쉽게 구분할 수 있다.
  • , Frame 0, Frame 1 등의 시퀀스 번호가 포함된 프레임은 순차적으로 구분되어 수신 측에서 중복된 프레임을 무시할 수 있게 된다.

3. 흐름 제어의 기본 동작 예시

송신자(Sender) → 수신자(Receiver)

  1. Frame 0 전송
    송신자가 Frame 0을 수신자에게 전송.
  2. 응답 대기 (Wait for ACK)
    송신자는 수신자가 ACK(응답)을 보내기를 기다림.
  3. 응답 없을 경우 재전송
    만약 응답을 받지 못하면 Frame 0을 다시 전송.
  4. 시퀀스 번호 확인
    수신자는 각 프레임의 시퀀스 번호를 확인하여 중복 프레임인지 아닌지 판단.
    • Frame 0을 이미 받은 경우, 수신자는 중복 프레임을 무시하고 새로운 프레임을 기다림.

4. 흐름 제어의 중요성

  • 중복 프레임 방지: 시퀀스 번호를 통해 수신자는 프레임의 순서를 정확하게 추적하고, 중복된 프레임을 처리할 수 있다.
  • 전송의 효율성: 흐름 제어는 송신자가 과도하게 데이터를 전송하지 않도록 하여 네트워크의 혼잡을 방지하고, 수신자는 처리할 수 있는 속도에 맞게 데이터를 받을 수 있다.
  • 에러 복구: 재전송 시 중복 프레임을 구분하여 정확한 데이터 전송을 보장한다.

 

  • 흐름 제어는 송신자와 수신자 간의 데이터 전송 속도를 조절하여 과부하 방지중복 프레임 문제를 해결하는 중요한 기술이다.
  • 시퀀스 번호를 사용하면 중복된 프레임을 구분할 수 있어 데이터의 일관성을 유지하며, 송수신 간의 효율적인 데이터 전송이 가능하다.

 

 

 

흐름 제어 (Flow Control) - Sliding Window

슬라이딩 윈도우(Sliding Window)는 데이터 링크 계층에서 흔히 사용되는 흐름 제어 기법으로, 송신자가 ACK 응답 없이 여러 개의 프레임을 연속적으로 전송할 수 있도록 한다. 이 방식은 송신자와 수신자 간의 버퍼 크기와 효율성을 고려하여 데이터를 효율적으로 전송할 수 있게 도와준다.


슬라이딩 윈도우의 동작 방식

  1. 윈도우 크기(Window Size)
    • 윈도우 크기는 송신자와 수신자의 데이터 버퍼 크기에 해당한다.
    • 이 크기는 동시에 전송할 수 있는 프레임의 개수를 정의하며, 전송 가능한 프레임의 수가 윈도우 크기로 제한된다.
    • , 윈도우 크기가 3이면, 송신자는 3개의 프레임을 동시에 보낼 수 있다.
  2. 슬라이딩 윈도우
    • 슬라이딩은 전송한 프레임에 대해 ACK 응답을 받을 때마다 송신 창(window)이 이동하는 과정을 의미한다.
    • ACK 응답을 받기 전까지는 송신자는 윈도우 크기 만큼만 프레임을 보낼 수 있고, ACK를 받으면 윈도우가 앞으로 슬라이딩 되어 그 다음 프레임을 전송할 수 있게 된다.

슬라이딩 윈도우 예시

송신자와 수신자가 다음과 같은 상태에서 시작한다고 가정하면 보겠다:

송신자 (Sender)

[0] [1] [2] [3] [4] [5] [6]
  • 윈도우 크기가 4라면 송신자는 4개의 프레임을 한 번에 전송할 수 있다.

수신자 (Receiver)

[0] [1] [2] [3] [4] [5] [6]
  • 수신자는 수신한 프레임에 대해 ACK를 보내며, 송신자는 ACK를 받을 때마다 윈도우슬라이딩하여 다음 프레임을 전송할 수 있다.

슬라이딩 윈도우의 동작

  1. 윈도우 크기 설정
    송신자는 윈도우 크기를 기준으로 여러 프레임을 동시에 전송한다. , 윈도우 크기 4일 때, 프레임 0, 1, 2, 3을 전송한다.
  2. ACK 응답 없이 전송
    송신자는 ACK 없이 여러 프레임을 연속적으로 전송할 수 있다. 이때, 수신자는 각 프레임을 수신하여 ACK를 보낸다.
  3. ACK 응답을 받을 때마다 윈도우 슬라이딩
    송신자는 ACK 응답을 받을 때마다 윈도우슬라이딩하여 다음 프레임을 전송한다. , 송신자가 프레임 0에 대한 ACK를 받으면, 윈도우는 프레임 1, 2, 3, 4로 이동하여 프레임 4를 전송한다.

슬라이딩 윈도우의 장점

  • 효율적인 데이터 전송: 여러 프레임을 한 번에 전송할 수 있기 때문에 네트워크의 효율성을 높일 수 있다.
  • 네트워크 혼잡 방지: 송신자와 수신자 간의 윈도우 크기 조정으로 네트워크의 과부하를 방지할 수 있다.
  • ACK 응답 대기 시간 절감: ACK를 기다리지 않고 여러 프레임을 전송할 수 있어 시간 지연을 최소화한다.

슬라이딩 윈도우의 동작 예시

  1. 윈도우 크기 4일 때 송신자와 수신자 상태
    송신자 (0, 1, 2, 3)
    
    수신자는 받은 프레임에 대해 ACK를 보낸다:
  2. 수신자 (0, 1, 2, 3)
  3. 송신자4개의 프레임을 전송할 수 있다:
  4. ACK 응답을 받으면 송신자 윈도우 슬라이딩
    • 송신자는 ACK 0을 받은 후 윈도우를 슬라이딩하여 프레임 4를 전송한다:
    송신자 (1, 2, 3, 4)
    
    • 이 후 ACK 1을 받으면 윈도우가 다시 슬라이딩하여 프레임 5를 전송한다.

요약

  • 슬라이딩 윈도우(Sliding Window)는 데이터 링크 계층에서 효율적인 흐름 제어를 위한 기법으로, 송신자가 ACK 없이 여러 프레임을 동시에 전송하고, 수신자로부터의 ACK 응답에 따라 윈도우슬라이딩하며 다음 프레임을 전송하는 방식이다.
  • 이 기법은 데이터 전송의 효율성을 높이고, 네트워크의 혼잡을 방지하며, 응답 시간을 줄여 전송 성능을 향상시킨다.

 

오류 제어 (Error Control) - ARQ (Automatic Repeat Request)

ARQ (Automatic Repeat Request)는 전송 중 발생할 수 있는 오류나 손실을 처리하기 위한 기법으로, 송신자가 전송한 프레임에 오류가 있을 경우, 수신자가 이를 탐지하고 재전송 요청하는 방식이다. 이 방법은 네트워크의 신뢰성을 높이고, 오류가 발생한 데이터를 다시 전송하여 정확한 데이터 전송을 보장한다.


Stop-and-Wait ARQ (정지 및 대기 ARQ)

Stop-and-Wait ARQ는 가장 간단한 오류 제어 방식 중 하나로, 송신자는 하나의 프레임을 전송하고, 그에 대한 ACK(응답)를 받을 때까지 대기한다. 이 방식은 프레임 손상이나 손실이 발생할 경우 송신자가 재전송을 수행할 수 있도록 한다.


Stop-and-Wait ARQ의 동작 방식

  1. 송신자
    • 송신자는 하나의 프레임을 전송하고, 그 프레임에 대한 ACK(응답)를 기다린다.
    • ACK가 수신되면, 송신자는 다음 프레임을 전송한다.
    • 만약 ACK가 일정 시간 내에 오지 않거나 오류가 발생한 경우, 송신자는 해당 프레임을 재전송한다.
  2. 수신자
    • 수신자는 전송된 프레임에 대해 오류를 검사한다.
    • 오류가 없는 경우 ACK를 송신자에게 보낸다.
    • 만약 프레임에 오류가 발생하면, 오류를 탐지하고 해당 프레임을 재전송 요청한다.

Stop-and-Wait ARQ 흐름

  1. 송신자Frame 0을 전송한다.
  2. 수신자는 전송된 프레임을 수신하고, 오류를 검사한다.
    • 오류가 없다면 ACK(응답)를 송신자에게 보낸다.
    • 오류가 있으면 해당 프레임을 재전송 요청한다.
  3. 송신자ACK를 받기 전에 다른 프레임을 전송할 수 없다.
    • ACK를 수신한 후, 송신자는 Frame 1을 전송할 수 있다.

Stop-and-Wait ARQ 예시

  • 송신자 (Sender)가 Frame 0을 전송한다.
  • 수신자 (Receiver)가 Frame 0을 수신하고 오류를 검사한다.
    • 오류가 없다면 ACK 0을 송신자에게 보낸다.
  • 송신자 (Sender)는 ACK 0을 받으면 Frame 1을 전송한다.
  • 만약 Frame 0에 오류가 있으면, 수신자는 해당 프레임을 재전송 요청한다.

장점과 단점

장점

  • 단순성: Stop-and-Wait ARQ는 구현이 매우 간단하고 직관적이다.
  • 오류 검출: 프레임에 오류가 있으면 즉시 재전송되므로 신뢰성 있는 데이터 전송을 보장한다.

단점

  • 비효율성: 하나의 프레임만 전송하고 ACK를 기다리기 때문에 대역폭이 낮을 경우 매우 비효율적이다.
  • 대기 시간: 송신자는 ACK를 받기 전까지 대기해야 하므로 전송 시간이 길어질 수 있다.

Stop-and-Wait ARQ 흐름도

송신자 (Sender)                  수신자 (Receiver)
      |                                   |
   Frame 0 →                            → 수신 후 오류 검출
      |                                   |
   ACK 0 ←                             ← 오류 없으면 ACK
      |                                   |
      |                                   |  
   Frame 1 →                            → 수신 후 오류 검출

요약

  • ARQ (Automatic Repeat Request)는 오류 제어 기법으로, 오류가 발생한 프레임을 재전송하는 방식이다.
  • Stop-and-Wait ARQ는 송신자가 프레임을 하나씩 전송하고 ACK 응답을 기다리며, 오류가 발생한 경우 재전송 요청을 하는 방식이다.
  • Stop-and-Wait ARQ는 간단하지만 대역폭이 제한된 환경에서 비효율적일 수 있으며, 큰 데이터 전송에서는 성능이 떨어질 수 있다.

 

 

 

Go-Back-N ARQ (Automatic Repeat Request)

Go-Back-N ARQStop-and-Wait ARQ보다 더 효율적인 오류 제어 기법으로, 송신자가 여러 프레임을 동시에 전송할 수 있게 해 준다. 이 방식에서는 송신자가 Window size(창 크기)만큼 여러 프레임을 전송하고, 그 중 하나라도 오류가 발생하면 모든 이후의 프레임을 재전송한다. 이 방식은 프레임을 연속적으로 전송하고, 각 프레임에 대한 ACK 또는 NAK를 사용하여 오류를 처리한다.


Go-Back-N ARQ 동작 방식

  1. 송신자는 여러 개의 프레임을 연속적으로 전송한다.
    • , 프레임 0, 1, 2, 3, 4, 5를 전송할 수 있다.
    • 송신자는 각 프레임에 대해 ACK를 기다리지 않고, Window size 내에서 여러 프레임을 동시에 전송한다.
  2. 수신자는 받은 프레임에 대한 오류를 검사한다.
    • 오류가 없으면 ACK를 송신자에게 보낸다.
    • 오류가 발생하면 해당 프레임을 NAK로 응답하고, 송신자에게 재전송을 요청한다.
  3. 만약 수신자가 Frame 3에 오류를 발견하고 NAK 3을 보낸다면, 송신자는 Frame 3 이후의 모든 프레임을 재전송한다. Frame 3, 4, 5를 재전송한다.

Go-Back-N ARQ 흐름

  1. 송신자 (Sender)가 Frame 0, 1, 2, 3, 4, 5를 연속적으로 전송한다.
  2. 수신자 (Receiver)는 각 프레임에 대해 오류를 검사한다.
    • , Frame 3에 오류가 있을 경우 NAK 3을 송신자에게 보낸다.
  3. 송신자 (Sender)는 NAK 3을 수신하면, Frame 3부터 Frame 5까지 모두 재전송한다.
  4. 수신자 (Receiver)는 Frame 3, 4, 5를 재수신하고, ACK 3을 송신자에게 보낸다.

Go-Back-N ARQ 예시

  1. 송신자Frame 0, 1, 2, 3, 4, 5를 전송한다.
  2. 수신자Frame 3에 오류가 있음을 감지하고 NAK 3을 송신자에게 보낸다.
  3. 송신자Frame 3 이후의 모든 프레임(3, 4, 5)을 재전송한다.
  4. 수신자Frame 3, 4, 5를 정상적으로 수신하고 ACK 3을 송신자에게 보낸다.
  5. 송신자는 ACK 3을 수신하여 Frame 3까지 성공적으로 전송되었음을 확인한다.

Go-Back-N ARQ 흐름도

송신자 (Sender)                            수신자 (Receiver)
    |                                           |
Frame 0 → Frame 1 → Frame 2 → Frame 3 → Frame 4 → Frame 5
    |                                           |
    |------------------------------------------->| (오류 검사)
    |                                           |
    |                                       NAK 3 (오류 발생)
    |                                           |
    |<------------------------------------------|
    |                                           |
Frame 3 → Frame 4 → Frame 5                    |
    |                                           |
    |------------------------------------------->| (정상 수신)
    |                                           |
    |<------------------------------------------|
    |                                           |
    ACK 3 ←                                  ← ACK 3 (정상 응답)

장점과 단점

장점

  • 효율성: 여러 프레임을 동시에 전송하고, 오류가 발생한 프레임만 재전송하므로 Stop-and-Wait ARQ보다 효율적이다.
  • 연속 전송: 송신자는 Window size 내에서 여러 프레임을 연속적으로 전송할 수 있어 데이터 전송 속도가 빨라진다.

단점

  • 재전송 비용: 오류가 발생한 프레임 이후의 모든 프레임을 재전송해야 하므로, 오류 발생 시 불필요한 데이터 전송이 발생할 수 있다.
  • 버퍼 관리: 송신자와 수신자 모두 Window size에 맞게 버퍼를 관리해야 하므로, 큰 창 크기를 사용할 경우 메모리 관리가 복잡해질 수 있다.

요약

  • Go-Back-N ARQ는 송신자가 여러 프레임을 동시에 전송하고, 오류가 발생한 경우 그 이후의 모든 프레임을 재전송하는 방식이다.
  • 이 방식은 효율적이지만, 오류 발생 시 재전송되는 데이터의 양이 많다는 단점이 있다.
  • NAK는 오류가 발생한 프레임에 대해 재전송을 요청하며, 수신자는 오류가 없는 프레임에 대해서는 ACK를 보내서 송신자에게 전송이 완료되었음을 알린다.

 

 

스위치(Switch)는 데이터 링크 계층에서 동작하는 네트워크 장비로, MAC 주소를 기반으로 데이터를 전달한다. 스위치의 동작 방식은 학습, 브로드캐스트, 전달, 필터링, Aging 과정을 통해 효율적으로 데이터를 전달하며, 이를 통해 충돌 도메인을 분리하고 네트워크 효율성을 높다.

스위치의 동작 방식

  1. Learning (학습)
    • 스위치는 출발지 MAC 주소MAC 주소 테이블에 저장한다.
    • 데이터를 수신할 때 출발지 MAC 주소를 확인하고, 그 주소가 연결된 포트를 MAC 주소 테이블에 기록한다.
    • 이 과정은 출발지 주소를 기반으로 MAC 주소 테이블을 동적으로 갱신하는 과정이다.
  2. Flooding (브로드캐스트)
    • 스위치가 목적지 MAC 주소를 알 수 없으면, 해당 프레임을 네트워크에 연결된 모든 포트로 전달한다.
    • 이를 Flooding이라고 하며, 목적지 주소가 MAC 주소 테이블에 없을 때 발생한다.
    • 일반적으로 브로드캐스트 통신에서 발생하는 방식이다.
  3. Forwarding (전달)
    • 스위치가 목적지 MAC 주소MAC 주소 테이블에서 찾을 수 있으면, 해당 목적지 주소가 연결된 포트로만 프레임을 전달한다.
    • 이렇게 하면 불필요한 네트워크 트래픽을 줄이고, 효율적으로 데이터를 전달할 수 있다.
  4. Filtering (필터링) / Collision Domain
    • 스위치는 출발지와 목적지가 동일한 네트워크에 있으면, 해당 데이터를 다른 네트워크로 전달하지 않는다.
    • 이 과정은 Collision Domain을 분리하여, 네트워크 성능을 개선하는 데 도움을 준다.
    • , 두 컴퓨터가 같은 포트에 연결되어 있으면, 그들 간의 데이터는 스위치 내부에서 직접 처리된다.
  5. Aging (에이징)
    • 스위치의 MAC 주소 테이블에 저장된 각 주소는 일정 시간이 지나면 자동으로 삭제된다.
    • 이 기능은 동적 MAC 주소 테이블을 관리하는 데 유용하며, 오래된 주소가 자동으로 제거되어, 새로운 주소를 저장할 수 있게 한다.
    • 이를 통해 스위치는 MAC 주소 테이블의 효율적인 관리를 보장한다.

요약

  • Learning: 출발지 MAC 주소를 MAC 주소 테이블에 저장
  • Flooding: 목적지 MAC 주소가 없으면 모든 포트로 프레임 전달
  • Forwarding: 목적지 MAC 주소를 알고 있으면 해당 포트로만 프레임 전달
  • Filtering: 출발지와 목적지가 동일한 네트워크에 있을 때 다른 네트워크로 전달하지 않음
  • Aging: MAC 주소 테이블의 주소는 일정 시간이 지나면 삭제됨

스위치는 이와 같은 동작 방식을 통해 네트워크 성능을 최적화하고 충돌 도메인을 분리하여 효율적인 데이터 통신을 지원한다.

 

 

 

 

 

 

ARP (Address Resolution Protocol) 동작 과정

ARP는 IP 주소MAC 주소로 변환하는 프로토콜이다. 네트워크에서 컴퓨터가 다른 컴퓨터와 통신할 때 IP 주소만 가지고는 실제 통신을 할 수 없으며, MAC 주소가 필요한다. ARP는 이를 해결하는 중요한 역할을 한다. 

ARP 동작 과정

  1. 목적지 IP 주소로 패킷 전송 시도
    • PC1이 동일 네트워크 대역에 있는 PC2(IP: 172.20.10.9)로 데이터를 전송하려고 할 때, PC1은 목적지 IP 주소(172.20.10.9)에 대한 MAC 주소를 알아야 한다.
    • PC1은 먼저 자신의 ARP Cache Table을 확인한다. 이 테이블에는 이미 알고 있는 IP와 해당하는 MAC 주소가 저장되어 있다.
  2. ARP Cache Table에 MAC 주소가 있는 경우
    • 만약 PC1의 ARP Cache Table에 목적지 IP(172.20.10.9)에 대응하는 MAC 주소가 이미 저장되어 있다면, PC1은 바로 그 MAC 주소로 패킷을 전송한다.
    • 이 경우 네트워크 내 다른 장치들과의 충돌 없이 정상적인 통신이 이루어진다.
  3. ARP Cache Table에 MAC 주소가 없는 경우 (ARP Request 전송)
    • PC1의 ARP Cache Table에 목적지 IP에 대한 MAC 주소가 없다면, ARP Request브로드캐스트 방식으로 네트워크에 전송한다.
    • 이 ARP Request는 네트워크 내 모든 장치에게 전달된다. 요청은 "IP 주소 172.20.10.9에 해당하는 MAC 주소를 알려주세요"라는 내용을 담고 있다.
    • ARP RequestPC1이 출발지로, 브로드캐스트로 보내므로 네트워크에 연결된 모든 장치가 이 메시지를 수신하게 된다.
  4. ARP Reply 전송
    • PC2는 자신이 IP 주소 172.20.10.9를 가지고 있다는 사실을 확인하고, MAC 주소 (aa:bb:cc:dd:ee:02)를 포함한 ARP Reply 메시지를 PC1에게 전송한다.
    • ARP Reply단일 목적지 MAC 주소로 전송되며, 요청에 응답하는 방식이다.
  5. ARP Cache에 MAC 주소 저장
    • PC1PC2의 MAC 주소를 ARP Cache Table에 저장한다. 이후 동일한 IP 주소로 다시 패킷을 전송할 때, ARP Request를 재전송하지 않고 MAC 주소를 직접 사용하여 빠르게 패킷을 전달할 수 있다.

요약

  • PC1이 목적지 IP(172.20.10.9)에 대해 MAC 주소를 확인하려고 시도.
  • PC1의 ARP Cache에 해당 MAC 주소가 없으면, ARP Request를 브로드캐스트로 전송.
  • PC2ARP Reply로 자신의 MAC 주소를 PC1에 전송.
  • PC1ARP Cache TableMAC 주소를 저장하고, 이후 빠르게 통신할 수 있게 됨.

이 과정을 통해 네트워크 내에서 IP 주소MAC 주소로 변환하여 통신이 원활히 이루어질 수 있도록 한다.

 

반응형