Link Layer: Introduction

용어 정의(Terminology)

  1. 호스트와 라우터(Hosts and Routers): 노드(Nodes)
    • 네트워크에서 데이터를 송수신하는 장치들
    • e.g. 컴퓨터, 서버, 라우터 등
  2. 통신 채널(Communication Channels): 링크(Links)
    • 인접한 노드들을 연결하여 통신 경로를 형성하는 채널
    • 유형
      • 유선(Wired) : 물리적인 케이블을 통해 연결되는 링크
      • 무선(Wireless) : 무선 주파수를 통해 연결되는 링크
      • LANs(로컬 에어리어 네트워크) : 근거리 통신망으로 제한된 범위 내에서 노드들을 연결한다.
  3. 계층-2 패킷(Layer-2 Packet): 프레임(Frame)
    • 데이터그램을 캡슐화하는 역할
    • 링크 계층에서 전송되는 데이터 단위

링크 계층의 책임

  • 데이터그램 전송(Transferring Datagram)
    • 한 노드에서 물리적으로 인접한 노드로 데이터그램을 링크를 통해 전송하는 책임이 있다.
    • 이는 네트워크 계층에서의 논리적 경로 설정과는 다르게, 물리적으로 인접한 노드 간의 실제 데이터 전송을 담당한다.

Link layer: context

데이터그램 전송(Datagram Transfer)

  • 다양한 링크 프로토콜을 통한 데이터그램 전송

    • 데이터그램은 통신 경로를 따라 다양한 링크 프로토콜을 통해 전송된다.
    • e.g. 첫 번째 링크에서는 WiFi를 사용하고, 다음 링크에서는 Ethernet을 사용할 수 있다.
  • 각 링크 프로토콜의 서비스

    • 각 링크 프로토콜은 서로 다른 서비스를 제공한다.
    • 예를 들어, 일부 프로토콜은 링크를 통해 신뢰성 있는 데이터 전송을 제공할 수 있고, 다른 프로토콜은 그렇지 않을 수 있다.

교통 비유

  • 여행경로

    • 프린스턴에서 로잔까지의 여행을 예로 들 수 있다.
    • 리무진: 프린스턴에서 JFK공항까지 이동
    • 비행기: JFK 공항에서 제네바까지 이동
    • 기차: 제네바에서 로잔까지 이동
  • 비유의 요소들

    • 관광객 = 데이터그램
      • 전송되는 데이터그램을 여행하는 관광객에 비유할 수 있다.
    • 운송 구간 = 통신 링크
      • 각각의 링크는 관광객이 이동하는 운송 구간과 같다.
    • 운송 수단 = 링크 계층 프로토콜
      • 각 링크에서 사용하는 프로토콜은 관광객이 이용하는 다양한 운송 수단에 비유할 수 있다.
      • WiFi, Ethernet
    • 여행사 = 라우팅 알고리즘
      • 데이터그램이 전송되는 경로를 결정하는 라우팅 알고리즘은 여행사가 여행 경로를 계획하는 것과 유사하다.

Link Layer: Services

프레이밍, 링크 접근(Framing, Link Access)

  • 데이터그램을 프레임에 캡슐화하고 헤더와 트레일러 추가

    • 링크 계층은 데이터 그램을 프레임이라는 단위로 캡슐화하고, 데이터의 시작과 끝을 나타내는 헤더와 트레일러를 추가한다.
  • 공유 매체일 경우 채널 접근

    • 여러 장치가 동일한 통신 매체를 공유하는 경우, 링크 계층은 각 장치가 언제나 통신 할 수 있는지 관리한다.
  • 프레임 헤더의 'MAC" 주소

    • 프레임의 헤더는 출발지와 목적지를 식별하기 위핸 MAC 주소가 포함된다.
    • MAC 주소는 IP 주소와는 다르며, 물리적인 네트워크 인터페이스를 식별한다.

인접 노드 간의 신뢰성 있는 전송

  • 이미 이 방법을 알고 있음
    • 인접 노드 간의 신뢰성 있는 데이터 전송은 잘 알려진 기술이다.
  • 비트 오류율이 낮은 링크에서는 거의 사용되지 않음
    • 비트 오류율이 낮은 유선 링크에서는 신뢰성 있는 전송이 거의 필요하지 않다.
  • 무선 링크: 높은 오류율
    • 무선 링크는 높은 오류율을 가지고 있어, 신뢰성 있는 전송이 중요하다.
  • 질문: 왜 링크 수준과 종단 간의 신뢰성을 모두 사용하는가?
    • 이 질문은 링크 계층과 전송 계층 간의 역할 분담에 대한 이해를 요구한다.
    • 링크 계층은 인접 노드 간의 데이터 전송을 신뢰성 있께 보장하며, 전송 계층은 종단 간의 신뢰성 있는 전송을 보장한다.

흐름제어(Flow Control)

  • 인접 송신 및 수신 노드 간의 페이싱
    • 링크 계층은 데이터 전송 속도를 조절하여 송신 노드와 수신 노드 간의 데이터 전송을 조화롭게 유지한다.
    • 이를 통해 데이터가 너무 빠르게 전송되어 수신 노드가 처리하지 못하는 상황을 방지한다.

오류 검출

  • 신호 감쇠, 잡음에 의해 발생하는 오류
    • 링크 계층은 신호 감쇠나 잡음으로 인해 발생하는 오류를 검출
  • 수신자가 오류를 검출하고, 재전송을 신호하거나 프레임을 폐기함
    • 수신 노드는 데이터 프레임의 오류를 검출하고, 송신 노드에게 재전송을 요청하거나 오류가 있는 프레임을 폐기한다.

오류 수정

  • 수신자가 비트 오류를 식별하고 수정함
    • 링크 계층은 수신 노드가 비트 오류를 식별하고 재전송 없이 오류를 수정할 수 있도록 한다.

반이중 및 전이중

  • 반이중 모드(Half-Duplex)
    • 링크 양쪽 끝의 노드가 데이터를 전송할 수 있지만, 동시에 전송할 수는 없다.
    • 한 번에 하나의 방향으로만 통신이 가능하다.
  • 전이중 모드(Full-Duplex)
    • 링크 양쪽 끝의 노드가 동시에 데이터를 전송할 수 있다.
    • 양방향으로 동시에 통신이 가능

링크 계층은 어디에 구현되는가?

각 호스트에 구현

  • 링크 계층은 네트워크에 연결된 모든 호스트에 구현
  • 네트워크 인터페이스 카드(NIC) 또는 칩에 구현*
  • 이더넷, WIFI 카드 또는 칩
  • 링크 계층 및 물리 계층 구현
  • 호스트 시스템 버스에 연결*
  • NIC는 호스트의 시스템 버스(PCI)를 통해 시스템에 연결
  • 하드웨어, 소프트웨어, 펌웨어의 조합*
  • 링크 계층 기능은 하드웨어, 소프트웨어, 펌웨어의 조합으로 구현

Interfaces communicating

송신 측(Sending Side)

  • 데이터그램을 프레임에 캡슐화
    • 송신 측에서 데이터그램은 프레임이라는 형식으로 캡슐화된다. 이는 링크 계층에서 이루어진다.
  • 오류 검사 비트, 신뢰성 있는 데이터 전송, 흐름 제어 추가
    • 송신 측은 프레임에 오류 검사 비트, 신뢰성 있는 데이터 전송을 위한 정보, 흐름 제어 정보를 추가한다.
    • 이를 통해 데이터 전송의 정확성과 신뢰성을 높인다.
  • 송신 측(Receiving Side)*
  • 오류 검사, 신뢰성 있는 데이터 전송, 흐름 제어 확인
    • 수신 측에서는 프레임을 수신한 후 오류가 있는지 확인하고, 신뢰성있는 데이터 전송과 흐름 제어를 수행한다.
  • 데이터그램을 추출하여 상위 계층으로 전달
    • 프레임에서 데이터그램을 추출하여 수신 측의 상위 계층으로 전달
    • 이는 주로 네트워크 계층으로 전달

Error Detection

EDC(Error Detection and Correction Bits): 오류 검출 및 수정 비트

  • e.g. 중복성(e.g. Redundancy)
    • EDC는 데이터그램에 추가되는 비트로, 주로 데이터의 중복성을 이용해 오류를 검출하고 수정한다.

D: 오류 검사를 통해 보호된 데이터

  • 헤더 필드를 포함할 수 있음
    • D는 오류 검사를 통해 보호되는 데이터로, 데이터그램의 본문뿐만 아니라 헤더 필드를 포함할 수 있다.

오류 검출의 한계

  • 100% 신뢰할 수 없음
    • 프로토콜이 일부 오류를 놓칠 수 있지만. 이는 매우 드물다.
  • 더 큰 EDC 필드는 더 나은 검출 및 수정 제공
    • EDC 필드가 클수록 더 효과적으로 오류를 검출하고 수정할 수 있다.

Parity Checking

단일 비트 패리티(Single Bit Parity)

  • 단일 비트 오류 검출
    • 패리티 비트를 사용하여 데이터 전송 중 발생할 수 있는 단일 비트 오류를 검출한다.
  • 짝수 패리티
    • 데이터 비트에서 1의 개수가 짝수가 되도록 패리티 비트를 설정한다.
    • 예를 들어, 데이터 비트가 '0111 0001 1010 1011' 이라면, 1의 개수가 9개로 홀수이므로 패리티 비트는 1으로 설정된다.
  • e.g.
    • 0111 0001 1010 1011: (데이터 비트) + '1' (패리티 비트)
    • 데이터 비트의 1의 개수가 짝수여야 하므로, 패리티 비트가 1로 설정된다.

2차원 비트 패리티(Two-Dimensional Bit Parity)

  • 단일 비트 오류 검출 및 수정
    • 2차원 패리티는 행과 열 모두에 패리티 비트를 추가하여 단일 비트 오류를 검출하고 수정할 수 있다.
  • 행 패리터와 열 패리티
    • 각 행과 열에 대해 별도의 패리티 비트를 계산한다.
    • e.g. 데이터 비트가 2차원 배열로 표현될 때, 각 행과 열의 1의 개수가 짝수가 되도록 패리티 비트를 설정

Internet Checksum

전송된 세그먼트에서 오류(e.g. 플립된 비트) 검출

송신 측(Sender)

  • UDP 세그먼트의 내용을 16비트 정수 시퀀스로 취급

    • UDP 헤더 필드와 IP 주소를 포함한 UDP 세그먼트의 내용을 16비트 정수 시퀀스로 변환
  • 체크섬: 세그먼트 내용의 합

    • 세그먼트 내용의 1의 보수 합을 계산하여 체크섬을 생성
  • 체크섬 값을 UDP 체크섬 필드에 삽입

    • 계산된 체크섬 값을 UDP 헤더의 체크섬 필드에 삽입

수신 측(Recevier)

  • 수신된 세그먼트의 체크섬 계산

  • 계산된 체크섬이 체크섬 필드 값과 일치하는지 확인

    • 계산된 체크섬이 수신된 세그먼트의 체크섬 필드 값과 일치하는지 확인
    • 일치하지 않으면(Not Equal): 오류가 검출되었음을 의미한다.
    • 일치(Equal): 오류가 검출되지 않았음을 의미하지만, 여전히 오류가 있을 가능성이 있다.

CRC(순환 중복 검사, Cyclic Redundancy Check)

  • CRC는 더 강력한 오류 검출 코딩 방식으로, 데이터 전송 시 발생할 수 있는 오류를 검출하는 데 사용

주요 요소

  • D: 데이터 비트(Data Bits)

    • 주어진 데이터 비트로, 이 비트들은 이진수로 생각
  • G: 비트 패턴(생성기)(Bit Pattern, Generator)

    • r+1 비트로 구성된 주어진 비트 패턴
  • R: CRC 비트

    • r개의 CRC 비트로, 데이터 비트에 추가되는 오류 검출 비트

과정

  1. 데이터 비트와 생성기 비트 패턴

    • 데이터 비트 D에 생성기 G를 사용하여 CRC 비트 R을 계산한다.
    • D의 끝에 r개의 0을 추가한 후, 이를 G로 나눈다. 여기서 나머지가 CRC 비트 R이 된다.
  2. CRC 비트 추가

    • 데이터 비트 D에 CRC 비트 R을 추가하여 <D,R>을 만든다.
    • 이렇게 만들어진 <D,R>은 G로 나누어 떨어져야 한다.
  3. 수신 측

    • 수신 측에서는 <D,R>을 수신하고, 이를 생성기 G로 나눈다.
    • 나머지가 0이 아니면 오류가 검출된다.

목표

  • r개의 CRC 비트 R을 선택하여 <D,R>이 G로 정확히 나누어지도록 한다(mod2)
  • 수신 측에서 G를 사용하여 <D,R>을 나눌 때, 나머지가 0이 아니면 오류가 발생했음을 의미한다.
  • CRC는 r + 1 비트 미만의 모든 버스트 오류를 검출할 수 있다.

CRC: example

multiple access protocols

다중 링크 프로토콜

  1. point-to-point 링크
    • 정의: 단일 송신자와 단일 수신자 사이의 직접 연결
    • 예시:
      • 이더넷 스위치와 호스트 간의 포인트 투 포인트 링크
      • 전화 접속 액세스를 위한 PPP(Point-to-Point Protocol)
  1. broadcast 링크(공유된 와이어 또는 매체)
    • 정의: 여러 장치가 동일한 통신 매체를 공유하여 데이터를 주고받음
    • 예시:
      • 구형 이더넷: 여러 장치가 동일한 케이블을 통해 데이터를 주고받음
      • 케이블 기반 액세스 네트워크의 업스트림 HFC: 여러 사용자가 케이블을 공유하여 인터넷에 액세스
      • 802.11 무선 LAN, 4G/5G, 위성: 여러 장치가 동일한 무선 주파수를 공유하여 데이터를 송수신

Multiple Access Protocols

  1. 단일 공유 브로드캐스트 채널

    • 여러 노드가 하나의 브로드캐스트 채널을 통해 데이터를 송수신한다.
    • 모든 노드가 동일한 채널을 공유하므로 동시에 전송을 시도할 때 충돌이 발생할 수 있다.
  2. 충돌(Collision)

    • 두 개 이상의 노드가 동시에 데이터를 전송하면 충돌이 발생한다.
    • 충돌이 발생하면 수신 노드는 두 개 이상의 신호를 동시에 수신하여 데이터를 제대로 인식할 수 없다.

다중 접속 프로토콜(Multiple Access Protocol)

  • 분산 알고리즘(Distributed Algorithm)

    • 노드가 채널을 어떻게 공유할지 결정하는 알고리즘이다.
    • 각 노드가 언제 데이터를 전송할 수 있는지 결정한다.
  • 채널 공유에 대한 통신

    • 채널 공유에 대한 통신은 채널 자체를 사용해야 한다.
    • 채널 공유를 조정하기 위한 별도의 채널(out-of-band 채널)은 없다.

An ideal multiple access protocol

주어진 조건
다중 접속 채널(Multiple Access Channel, MAC)

  • 전송 속도가 R bps(bits per second)인 채널

요구 조건(Desiderata)

  1. 단일 노드 전송
    • 하나의 노드가 전송을 원할 때, 해당 노드는 R의 속도로 전송할 수 있어야 한다.
  2. 다중 노드 전송
    • M개의 노드가 동시에 전송을 원할 때, 각 노드는 평균적으로 R/M의 속도로 전송할 수 있어야 한다.
  3. 완전 분산화(Fully Decentralized)
    • 특별한 노드가 필요없음
      • 전송을 조정하는 특별한 노드가 없어야 한다.
    • 시계나 슬롯의 동기화가 필요없음
      • 노드 간의 시계 동기화나 시간 슬롯의 동기화가 필요 없어야 한다.
  4. 단순성(Simple)
    • 프로토콜이 단순해야 한다.

MAC protocols: taxonomy

  1. 채널 분할(Channel Partitioning)

    • 채널을 더 작은 "조각"으로 나눔(시간 슬롯, 주파수, 코드)
    • 각 노드에게 고유하게 사용할 수 있도록 조각을 할당
  2. 랜덤 액세스(Random Access)

    • 채널을 나누지 않음, 충돌을 허용
    • 충돌에서 "복구"할 수 있는 메커니즘을 제공
  3. 차례로 전송(Taking Turns)

    • 노드가 차례로 전송을 함, 전송할 데이터가 많은 노드는 더 긴 시간 동안 전송할 수 있음

Channel Partitioning MAC protocols: TDMA

TDMA(Time Division Multiple Access)는 시간 분할 다중 접근 방식을 사용하여 채널에 접근

  1. 라운드 단위 접근

    • 모든 스테이션은 순서대로 라운드별로 채널에 접근
  2. 고정 길이 슬롯

    • 각 스테이션은 라운드 내에서 고정된 길이의 슬롯을 받는다.
    • 슬롯 길이는 패킷 전송 시간과 동일
  3. 미사용 슬롯

    • 사용되지 않은 슬롯은 비활성 상태가 된다.
  4. e.g.

  • 6개의 스테이션으로 구성된 LAN에서 1,3,4번 스테이션이 패킷을 전송하려고 한다.
  • 2,5,6은 비활성 상태로 남아있다.
  • 그림에서는 6개의 슬롯으로 구성된 프레임이 반복되며, 각각의 라운드에서 스테이션 1,3,4가 데이터를 전송하는 모습이 나타나 있다.

채널 분할 MAC 프로토콜: FDMA(Frequency Division Multiple Access)

FDMA는 주파수 분할 다중 접근 방식을 사용하여 채널에 접근

주요 특징

  1. 주파수 대역으로 분할된 채널 스펙트림

    • 채널 스펙트럼을 여러 개의 주파수 대역으로 나눈다.
  2. 고정 주파수 대역 할당

    • 각 스테이션에 구정된 주파수 대역이 할당된다.
  3. 미사용 전송 시간

    • 주파수 대역 내의 미사용 전송 시간은 비활성 상태로 남아 있다.
  4. e.g.

    • 6개의 스테이션으로 구성된 LAN에서 1,3,4번 스테이션이 패킷을 전송하려고 한다.
    • 주파수 대역 2,5,6은 비활성 상태로 남아 있다.

Random access protocols

random access protocol은 네트워크의 각 노드가 데이터를 전송할 때 사전에 조율하지 않고 임의로 채널에 접근할 수 있다.

  1. 전송 시점

    • 노드에 데이터 패킷이 있을 때, 채널 데이터 전송률 R을 최대한 활용하여 전송
    • 노드 간 사전 조율이 없다(no a priori coordination)
  2. 충돌(Collision)

    • 두 개 이상의 노드가 동시에 데이터를 전송할 때 충돌이 발생한다.
  3. 랜덤 접근 MAC 프로토콜이 지정하는 것

    • 충돌을 감지하는 방법
    • 충돌로부터 회복하는 방법(e.g. 지연된 재전송)
  4. 랜덤 접근 MAC 프로토콜의 예

    • ALOHA, slotted ALOHA, CSMA, CSMA/CD, CSMA/CA

Slotted ALOHA

가정 assumptions

  1. 프레임 크기 동일: 모든 데이터 프레임이 같은 크기를 가진다.
  2. 시간 슬롯: 시간이 동일한 크기의 슬롯으로 나뉜다. 각 슬롯의 길이는 한 프레임을 전송하는 데 걸리는 시간과 같다.
  3. 슬롯 시작 시점에 전송: 노드는 슬롯의 시작 시점에서만 전송을 시작할 수 있다.
  4. 노드 동기화: 모든 노드가 동일한 슬롯 타이밍에 동기화되어 있다.
  5. 충돌 감지: 두 개 이상의 노드가 동일한 슬롯에서 전송을 시도하면 모든 노드가 충돌을 감지할 수 있다.

운영 operation

  1. 프레임 전송: 노드가 새로운 프레임을 얻으면, 다음 슬롯에서 전송을 시도한다
  2. 충돌 없음: 충돌이 발생하지 않으면 노드는 다음 슬롯에서 새로운 프레임을 전송할 수 있다.
  3. 충돌 발생: 충돌이 발생하면 노드는 다음 슬롯에서 프레임을 재전송한다. 재전송은 성공할 때까지 각 슬롯마다 확률 p로 이루어진다.

장점

  1. 단일 활성 노드 전송

    • 단일 활성 노드는 채널의 전체 속도로 연속적으로 전송할 수 있다.
  2. 높은 분산화

    • 노드 간의 슬롯만 동기화되면 되므로 분산화되어 있다.
  3. 단순함

    • 구현이 간단하다

단점

  1. 충돌 및 슬롯 낭비

    • 충돌이 발생하여 슬롯이 낭비될 수 있다.
  2. 유휴 슬롯

    • 전송이 없는 유휴 슬롯이 발생할 수 있다.
  3. 충돌 감지 시간 문제

    • 노드가 패킷 전송 시간보다 짧은 시간 내에 충돌을 감지할 수 있다.
  4. 시계 동기화 필요

    • 슬롯 동기화를 위해 노드 간의 시계 동기화가 필요하다.

Slotted ALOHA: efficiency

Slotted ALOHA의 효율성은 많은 노드가 많은 프레임을 보내야 할 때, 성공적인 슬롯의 비율을 나타낸다.

기본 가정

  • N개의 노드가 있으며, 각 노드는 슬롯에서 확률 p로 전송을 시도한다.

성공 확률

  • 주어진 노드가 슬롯에서 성공할 확률: p(1-p)N-1
  • 어떤 노드라도 슬롯에서 성공할 확률: Np(1-p)N-1

최대 효율성

  • 최대 효율성을 찾기 위해, Np(1-p)N-1을 최대화하는 p값을 찾는다.
  • 많은 노드가 있는 경우, Np(1-p)N-1의 극한을 N이 무한대로 갈때마다 구한다.

max efficiency = 1/e ≈ 0.37

최대 효율성(max efficiency): 채널이 유용한 전송에 사용되는 비율이 최대 37프로이다.

Pure ALOHA

기본 개념

  • Unslotted ALOHA
    • 단순하고 동기화가 필요없다.
    • 프레임이 도착하면 즉시 전송한다.
  • 충돌 확률
    • 충돌 확률 증가
      • 동기화가 없기에 충돌 확률이 높아진다.
      • 프레임이 t0 시점에 전송될 때, 다른 프레임들이 [t0-1, t0+1] 구간에 전송되면 충돌이 발생할 수 있다.
      • t0 시점에서 전송된 프레임은 t0-1 시점에 시작된 프레임의 끝부분과 충돌하거나, t0+1 시점에 시작된 프레임의 시작부분과 충돌할 수 있다.
  • 효율성
    • Pure ALOHA 효율성
      • 최대 효율성은 18%이다.
      • 이는 Pure ALOHA에서 채널이 유용한 전송에 사용되는 비율이 최대 18%라는 의미이다.
      • Slotted ALOHA와 비교하여 효율성이 낮다. 이는 동기화가 없기에 충돌이 더 자주 발생하기 때문이다.

CSMA(Carrier Sense Multiple Access)

CSMA 기본 개념

  • 기본 CSMA
    • 전송 전에 채널을 청취한다.
    • 채널이 비어있으면: 전체 프레임을 전송
    • 채널이 사용 중이면: 전송을 연기한다.
    • 사람에 비유: 다른 사람을 방해하지 마세요

CSMA/CD(Collision Detection) 개념

  • CSMA/CD
    • 충돌이 발생했을 때 이를 감지한다.
    • 충돌 감지
      • 충돌이 발생하면 짧은 시간 안에 이를 감지한다.
      • 충돌한 전송은 중단되어 채널 낭비를 줄인다.
      • 유선에서는 충돌 감지가 쉽지만, 무선에서는 어렵다.
    • 사람의 비유: 예의 바른 대화자처럼 행동하세요.

CSMA: collisions

충돌 발생 가능성

  • 충돌 가능성
    • 캐리어 센싱이 있어도 충돌이 발생할 수 있다.
    • 캐리어 센싱: 네트워크 통신에서 노드가 데이터를 전송하기 전에 현재 통신 채널이 사용중인지 아닌지를 감지하는 과정
    • 전파 지연(propagation delay)
      • 두 노드가 동시에 전송을 시작할 때, 서로의 전송을 듣지 못할 수 있다.
      • 이로 인해 두 노드가 동시에 데이터를 전송하여 충돌이 발생할 수 있다.

충돌의 영향

  • 충돌 시
    • 패킷 전송 시간이 모두 낭비된다.
    • 거리 및 전파 지연
      • 충돌 확률을 결정하는 데 중요한 역할을 한다.
        • 노드 간의 거리와 신호가 이동하는 데 걸리는 시간이 충돌 가능성에 영향을 미친다.

예시 그림 설명

  • 공간 레이아웃
    • 여러 노드가 일렬로 배치되어 있다.
    • 각 노드는 t0 시점에 전송을 시작할 수 있으며, 전파 지연으로 인해 서로의 전송을 즉시 감지하지 못할 수 있다.
    • t1 시점에 이르러서야 충돌 여부를 알 수 있다.

CSMA/CD(Carrier Sense Multiple Access with Collision Detection)

  • CSMA/CD는 충돌을 감지하고 회피하여 네트워크에서 데이터를 효율적으로 전송하는 프로토콜

CSMA/CD의 동작 원리

  1. 채널 감지(Carrier Sensing)
    • 데이터를 전송하려는 노드는 먼저 채널이 비어있는지 확인
    • 채널이 비어 있으면 데이터를 전송하고, 사용 중이면 전송을 지연
  2. 충돌 감지(Collision Detection)
    • 데이터를 전송하는 동안 노드는 충돌이 발생했는지 감지
    • 충돌이 발생하면 즉시 전송을 중지한다.
  3. 전송 중단 및 재전송
    • 충돌이 감지되면, 노드는 전송을 중단하고 랜덤한 시간을 기다린 후 다시 전송을 시도한다. 이 랜덤한 대기 시간은 다른 노드와의 충돌 가능성을 줄이는 데 도움이 된다.

Ethernet CSMA/CD Algorithm 설명

Ethernet에서 CSMA/CD 알고리즘은 데이터 충돌을 감지하고 처리하는 방법을 정의한다. 알고리즘은 다음과 같은 단계로 구성된다.

  1. 프레임 생성: NIC는 네트워크 계층에서 데이터그램을 수신하고 프레임을 생성한다.
  2. 채널 감지
    • NIC는 채널이 비어 있는지 확인
      • 채널이 비어 있으면: 프레임 전송을 시작
      • 채널이 사용 중이면: 채널이 비어 있을 때까지 기다린 다음 전송을 시작한다.
  3. 충돌 없는 전송
    • NIC가 충돌 없이 전체 프레임을 전송하면, 해당 프레임 전송을 완료한다.
  4. 충돌 감지
    • NIC가 전송 중 다른 전송을 감지하면 전송을 중단하고, "잼 신호(jam signal)"를 보낸다.
  5. 이진 백오프(Binary Exponential Backoff)
    • 전송을 중단한 후, NIC는 이진 백오프 알고리즘을 적용
      • m번째 충돌 후, NIC는 {0,1,2, ... 2^m - 1} 범위에서 무작위로 K를 선택한다.
      • NIC는 K * 512 bit 시간 동안 대기한 후 다시 2단계로 돌아간다.
      • 충돌이 많을수록 대기 시간(백오프 간격)이 길어진다.

CSMA/CD efficiency

  • Tprop : 두 노드 간 최대 전파 시간(LAN에서의 최대 전파 지연)
  • ttrans: 최대 크기 프레임을 전송하는 데 걸리는 시간

효율성 공식

  • 효율성이 1로 수렴하는 경우
    • Tprop이 0으로 갈 때(즉, 전파 지연이 매우 작을 때)
    • Ttrans이 무한대로 갈 때(즉, 전송 시간이 매우 클 때)

추가 설명

  • 전파 지연이 작을 때: 데이터 전송이 빠르게 이루어지면서 충돌 감지 및 회복이 더 효율적이다.
  • 전송 시간이 클 때: 프레임을 전송하는 데 오랜 시간이 걸리므로 충돌이 발생할 가능성이 줄어들고, 충돌 발생 시 낭비되는 시간의 비율이 줄어든다.

"Taking Turns" MAC Protocols

channel partitioning MAC protocols

  • 효율적이고 공정한 채널 공유: 높은 부하에서 채널을 효율적이고 공정하게 나눈다.
  • 낮은 부하에서 비 효율적: 채널 접근의 지연과 1/N 대역폭 할당으로 인해 비효율적이다.
    e.g. 활성 노드가 하나뿐인 경우에도 모든 노드가 대기해야한다.

random access MAC protocols

  • 낮은 부하에서 효율적: 단일 노드가 채널을 완전히 활용할 수 있다.
  • 높은 부하에서 충돌 오버헤드: 여러 노드가 동시에 전송하려고 하면 충돌이 발생하면 오버헤드가 증가한다.

"taking turns" protocols

  • 두 가지 장점을 결합: 채널 파티셔닝과 랜덤 엑세스의 장점을 결합하여 낮은 부하와 높은 부하 모드에서 최적의 성능을 추구
  • 효율적이고 공정한 채널 공유: 활성 노드가 많을 때도 공정하게 채널을 나누며, 충돌을 최소화한다.
  • 낮은 부하에서 높은 효율성: 한 노드가 효율적을 채널을 사용할 수 있도록 한다.

**polling** - polling은 "taking turns" MAC 프로토콜 중 하나로, 마스터 노드가 다른 노드들에게 전송할 수 있는 기회를 순차적으로 부여하는 방식이다. 주로 단순한 장치와 함께 사용된다. 이 프로토콜의 주요 특징과 우려 사항은 다음과 같다. - 특징 1. 마스터 노드가 다른 노드를 초대 - 마스터 노드는 슬레이브 노드들을 순서대로 초대하여 데이터 전송을 하도록 한다. - 각 노드는 자신의 순서가 되었을 때만 데이터를 전송한다. 2. 주로 '덤프(dumb)' 장치와 함께 사용 - 단순한 장치들이 마스터 노드의 명령에 따라 순서대로 동작하기에 시스템이 복잡하지 않다. - 우려사항 1. Polling 오버헤드 - 마스터 노드는 각 노드를 초대하는 과정을 거쳐야 하므로 오버헤드가 발생 2. 지연(latency) - 각 노드가 자신의 순서를 기다려야 하므로 지연이 발생할 수 있다. 3. 단일 실패 지점(Single Point of Failure) - 마스터 노드가 고장 나면 전체 시스템이 동작하지 않게 된다.

**token passing** - "Taking Turn" MAC 프로토콜의 한 유형으로, 제어 토큰을 사용하여 순차적으로 노드 간에 전송 권한을 부여하는 방식이다. - 특징 1. 제어 토큰(Control Token) 사용 - 네트워크에서 데이터를 전송할 권한을 가진 특별한 메시지인 "토큰"을 사용한다. - 토큰은 노드 간에 순차적으로 전달되며, 전송이 끝나면 토큰을 다음 노드로 전달한다.

2. 토큰 메시지    
    - 토큰은 특별한 메시지로, 노드가 데이터를 전송할 수 있는 권한을 나타낸다.

- 우려사항 1. 토큰 오버헤드 - 토큰 자체가 네트워크를 통해 전달되므로 오버헤드가 발생한다. - 토큰을 전달하는 과정에서 네트워크 자원이 소모된다.

2. 지연(Latency)
    - 토큰이 각 노드를 순차적으로 지나가기에 지연이 발생할 수 있다.
    - 특정 노드가 토큰을 기다리는 동안 전송 지연이 발생할 수 있다.

<br>

3. 단일 실패 지점(Single Point of Failure)
    - 토큰이 손실되거나 고장 나면 네트워크 전체가 동작하지 않게 된다.
    - 토큰이 사라지면 네트워크는 데이터 전송 권한을 재설정해야한다.

Cable access networks: FDM, TDM and random access

  1. 다중 다운스트림 채널
    • FDM(Frequency Division Multiplexing)을 사용하여, 여러 개의 다운스트림(브로드캐스트) 채널을 통해 데이터를 전송
    • CMTS(Cable Modem Termination System)는 각 채널로 데이터를 전송하며, 각 채널은 최대 1.6 Gbps의 속도로 전송될 수 있다.

2. 다중 업스트림 채널 - 업스트림 채널에서는 여러 사용자가 동시에 데이터를 보낼 수 있다. 각 채널은 최대 1Gbps의 속도를 가질 수 있다. - 모든 사용자는 업스트림 채널 시간 슬롯을 위해 경쟁(random access)을 하거나, 특정 시간 슬롯에 할당(TDM)될 수 있다.

Cable access network

DOCSIS(Data Over Cable Service Interface Specification)는 케이블 TV 시스템을 통해 데이터 전송을 가능하게 하는 표준이다.

DOCSIS의 주요 특징

  1. FDM(Frequency Division Multiplexing)
    • 업스트림 및 다운스트림 주파수 채널을 사용하여 데이터를 전송한다. 이는 주파수 대역을 여러 개의 작은 채널로 나누어 각 채널을 통해 동시에 데이터를 전송할 수 있도록 한다.
  2. TDM(Time Division Multiplexing)
    • 업스트림에서는 시간 슬롯을 사용하여 데이터를 전송한다. 일부 슬롯은 곶정적으로 할당되고, 일부 슬롯은 경쟁을 통해 할당된다.
  3. 다운스트림 MAP 프레임
    • MAP 프레임은 특정 시간 구간 동안 업스트림 슬롯을 할당하는 데 사용된다. 예를 들어 t1에서 t2까지의 시간 구간 동안 어떤 슬롯이 할당되었는지에 대한 정보를 제공한다.
  4. 업스트림 슬롯 요청 및 데이터 전송
    • 케이블 모뎀이 업스트림 슬롯을 요청할 때는 미니 슬롯을 사용하여 요청 프레임을 전송한다. 그런 다음, 할당된 미니 슬롯을 사용하여 업스트림 데이터 프레임을 전송한다.
    • 데이터 전송 중 충돌이 발생할 경우, 랜덤 액세스(binary backoff) 방식을 사용하여 다시 전송을 시도한다.

그림 설명

  1. 케이블 헤드엔드(CMTS)
    • 케이블 네트워크의 중심 장치로, 모든 데이터 전송이 이곳을 통해 이루어진다.
  2. 다운스트림 채널
    • CMTS에서 각 가정으로 데이터가 전송되는 경로
  3. 업스트림 채널
    • 각 가정에서 CMTS로 데이터가 전송되는 경로
  4. 미니 슬롯
    • 업스트림 데이터 전송을 위한 작은 시간 단위. 이 시간 단위는 데이터 전송 요청을 포함하며, 이후 데이터 프레임 전송을 위해 할당된다.

Summary of MAC protocols

채널 분할(Channel Partitioning)

  1. 시간 분할(Time Division)
    • 각 장치가 고정된 시간 슬롯을 할당받아 데이터 전송
  2. 주파수 분할(Frequency Division)
    • 각 장치가 고정된 주파수 대역을 할당받아 데이터 전송

랜덤 액세스(Random Access)

  • ALOHA, Slotted ALOHA, CSMA, CSMA/CD, CSMA/CA

교대 방식(Taking Turns)

  1. 폴링(Pollings)
    • 중앙 노드가 다른 노드들에게 순서대로 전송을 초대
  2. 토큰 전달(Token Passing)
    • 토큰이라는 제어 메시지를 순차적으로 전달하여 데이터 전송 권한을 가짐
    • e.g. 블루투스, FDDI, 토큰 링

MAC addresses

IP 주소

  • 32-bit IP 주소: e.g. 128.119.40.136와 같은 형태
  • 네트워크 계층 주소: 네트워크 계층에서 인터페이스의 주소로 사용된다.
  • 레이어 3 포워딩: IP주소는 네트워크 계층(Layer 3)에서 패킷을 전달하는 데 사용됩니다.

MAC 주소

  • MAC(Media Access Control) 주소: LAN 주소, 물리 주소 또는 이더넷 주소로도 불린다.
  • 기능: 같은 서브넷 내에서 물리적으로 연결된 인터페이스 사이에서 프레임을 전달하는 데 "로컬"로 사용된다.
  • 48-bit MAC 주소: 대부분의 LAN에서 사용되며, 네트워크 인터페이스 카드(NIC) ROM에 저장되어 있다. 소프트웨어로도 설정 가능할 때가 있다.
  • 예시: 1A-2F-BB-76-09-AD와 같은 형태이다. 이는 16진수 표기법으로 사용하며, 각 숫자는 4비트를 나타낸다.

MAC addresses

  1. 고유한 48비트 MAC 주소
    • LAN의 각 인터페이스는 고유한 48비트 MAC 주소를 가지고 있다.
    • MAC 주소는 장치 간 데이터 프레임 전달을 위해 사용된다.
    • e.g. 1A-2F-BB-76-09-AD, 71-65-F7-2B-08-53
  2. 로컬 고유 32비트 IP 주소
    • 각 인터페이스는 로컬 네트워크에서 고유한 32비트 IP주소도 가지고 있다.
    • IP주소는 네트워크 계층에서 데이터 패킷을 전달하는 데 사용된다.
    • e.g. 137.196.7.78, 137.196.7.23
  3. LAN 환경
    • 슬라이드에서는 LAN 환경(유선 또는 무선)을 묘사하고 있으며, 여러 장치들이 고유한 MAC 주소와 IP 주소를 가지고 연결되어 있는 못브을 보여준다.

MAC addresses

  1. MAC 주소 할당 및 관리

    • IEEE가 관리: MAC 주소의 할당은 IEEE(Institute of Electrical and Electronics Engineers)에서 관리
    • 제조사가 MAC 주소 공간을 구매: 고유성을 보장하기 위해 제조사가 MAC 주소 공간의 일부를 구매
  2. 유추

    • MAC 주소: 사회 보장 번호(Social Security Number)와 유사하다. 고유한 식별자로서 장치에 할당된다.
    • IP 주소: 우편 주소와 유사하다. 네트워크 내에서 장치의 위치를 나타낸다.
  3. MAC 평탄 주소: 이동성

    • LAN 간 이동 가능: 한 LAN에서 다른 LAN으로 인터페이스를 이동할 수 있다.
    • IP 주소의 비이동성: IP주소는 이동할 수 없으며, 장치가 연결된 IP 서브넷에 의존한다.





ARP: address resolution protocol

Q. IP 주소를 알고 있을 때, 인터페이스의 MAC 주소를 어떻게 확인할 수 있을까?

ARP 테이블

  • 각 IP 노드의 테이블: LAN 내의 모든 IP 노드(호스트, 라우터)는 ARP 테이블을 가지고 있다.
  • IP/MAC 주소 매핑: ARP 테이블에는 일부 LAN 노드의 IP 주소와 MAC 주소 간의 매핑 정보가 저장된다.
    • 형식: <IP address; MAC address; TTL>



TTL(Time To Live)

  • TTL 정의: 주소 매핑이 기억되는 시간
  • 일반적인 TTL 값: 보통 20분 동안 유지된다.



ARP의 동작 방식

  1. IP 주소를 통한 MAC 주소 확인
    • IP 주소를 이용하여 해당 IP 주소에 대한 MAC 주소를 확인하기 위해 ARP 요청을 보낸다.

  1. ARP 요청 패킷
    • 네트워크에 브로드 캐스트 된다.
    • 대상 IP 주소를 가진 노드는 자신의 MAC 주소를 응답으로 보낸다.

  1. ARP 응답
    • 요청을 보낸 노드는 응답을 받고, 해당 IP 주소와 MAC 주소를 ARP 테이블에 저장

  1. TTL 이후
    • TTL 시간이 지나면, 매핑 정보는 삭제되며 다시 ARP 요청을 통해 갱신해야 한다.





ARP protocol in action

시나리오

  • 목적: 호스트 A가 호스트 B로 데이터그램을 보내고자한다.
  • 문제: 호스트 A가 ARP 테이블에 호스트 B의 MAC 주소가 없다

단계

  1. ARP 쿼리 브로드캐스트

    • 호스트 A가 LAN에 ARP 쿼리를 브로드캐스트한다.
    • ARP 쿼리에는 호스트 B의 IP 주소가 포함되어 있다.
    • 목적지 MAC 주소: FF-FF-FF-FF-FF-FF(브로드캐스트 주소로, LAN의 모든 노드가 이 쿼리를 받는다.)
    • 호스트 A의 ARP 테이블: 처음에는 호스트 A의 ARP 테이블에 호스트 B의 항목이 없다.

  2. ARP 쿼리 수신

    • LAN의 모든 노드가 ARP 쿼리를 수신한다.
    • 각 노드는 ARP 쿼리의 IP 주소가 자신의 IP 주소와 일치하는지 확인한다.

  3. 이더넷 프레임 세부 사항

    • 출발지 MAC 주소: 71-65-F7-2B-08-53 (호스트 A의 MAC 주소).
    • 출발지 IP 주소: 137.196.7.23 (호스트 A의 IP 주소).
    • 목적지 IP 주소: 137.196.7.14 (호스트 B의 IP 주소).








Routing to another subnet: addressing

시나리오:

  • 목적: 호스트 A가 호스트 B로 데이터그램을 라우터 R을 통해 보내고자 한다.
  • 포커스: IP(데이터그램)와 MAC(프레임) 계층에서의 주소 지정


가정:

  1. A는 B의 IP 주소를 알고 있다.
  2. A는 첫 번째 홉 라우터 R의 IP 주소를 알고 있다.
  3. A는 R의 MAC 주소를 알고 있다.






과정:

  1. IP 데이터 그램 생성
    • 호스트 A는 IP 소스 주소가 자신의 IP 주소(111.111.111.111)이고, 목적지 IP 주소가 B의 IP 주소(222.222.222.222)인 IP 데이터그램을 생성한다.

  1. 링크 계층 프레임 생성
    • 호스트 A는 A에서 B로 가는 IP 데이터그램을 포함하는 링크 계층 프레임을 생성한다.
    • 이 프레임의 목적지 MAC 주소는 라우터의 R MAC 주소(E6-E9-00-17-BB-4B) 이다.


  1. 프레임이 A에서 R로 전송됨
    • A가 생성한 프레임
      • 소스 MAC 주소: 74-29-9C-E8-F5-55 (A의 MAC 주소)
      • 목적지 MAC 주소: E6-E9-00-17-BB-4B (R의 MAC 주소)
      • IP 데이터그램
        • 소스 IP 주소: 111.111.111.111 (A의 IP 주소)
        • 목적지 IP 주소: 222.222.222.222 (B의 IP 주소)

  1. 프레임이 R에서 수신됨
    • 라우터 R은 프레임을 수신한다.
    • 프레임에서 데이터그램을 추출
      • 라우터 R은 프레임에서 IP 데이터그램을 제거하고, 이를 IP 계층으로 전달한다.


  1. R이 출발 인터페이스를 결정함
    • 라우터 R은 IP 데이터그램을 수신하고, 이 데이터그램의 소스 IP는 A, 목적지 IP는 B이다.
    • R은 이 데이터그램을 어느 인터페이스로 보낼지 결정한다.

  1. 데이터그램을 링크 계층으로 전달
    • 라우터 R은 A에서 B로 가는 IP 데이터그램을 링크 계층으로 전달한다.
    • 이를 위해 새로운 링크 계층 프레임을 생성한다.

  1. 프레임 생성
    • 소스 MAC 주소: 1A-23-F9-CD-06-9B (R의 MAC 주소)
    • 목적지 MAC 주소: 49-BD-D2-C7-56-2A (B의 MAC 주소)
    • IP 데이터그램:
      • 소스 IP 주소: 111.111.111.111 (A의 IP 주소)
      • 목적지 IP 주소: 222.222.222.222 (B의 IP 주소)

  1. 프레임 전송:
    • 라우터 R은 생성한 프레임을 B로 전송
    • 이 프레임은 B의 MAC 주소를 목적지로 하고, IP 데이터그램을 포함한다.


  1. 프레임 수신 및 처리
    • B는 수신된 프레임의 목적지 MAC 주소가 자신의 MAC 주소와 일치하는지 확인한다.
    • 일치할 경우, B는 프레임을 수신하고 IP 데이터그램을 추출하여 상위 계층으로 전달





Ethernet

지배적인 유선 LAN 기술

  • 첫 번째로 널리 사용된 LAN 기술
    • Ethernet은 최초로 널리 사용된 로컬 네트워크(LAN) 기술로, 많은 네트워크 환경에서 표준으로 자리 잡았다

  • 간단하고 저렴
    • Ethernet은 상대적으로 간단한 구조와 저렴한 비용으로 인해 인기를 끌었다.

  • 속도 경쟁에 대응
    • 초기 속도는 10 Mbps였지만, 현재는 최대 400 Gbps까지 지원할 수 있다.

  • 단일 칩, 여러 속도 지원
    • 예를 들어 Broadcom BCM5761과 같은 칩은 여러 속도를 지원할 수 있어 다양한 네트워크 요구를 충족한다.





Ethernet: physical topology

  • 버스(bus)
    • 90대 인기 방식
      • 모든 노드가 동일한 충돌 도메인에 포함되어 있으며, 따라서 서로 충돌할 수 있다.

- **스위치(swtiched)** - 오늘날 널리 사용되는 토폴로지로, 중앙에 활성화된 **2 계층 스위치**를 배치한다. - 특징 - 스위치 중심: 중앙 스위치가 각 노드를 연결한다. - 충돌 도메인 분리: 각 노드는 별도의 Ethernet 프로토콜을 사용하며, 따라서 노드 간 충돌이 발생하지 않는다.






Ethernet frame structure

Ethernet 프레임은 네트워크 통신에서 데이터 전송을 위한 기본 단위. 프레임은 IP 데이터그램을 Ethernet 프레임에 캡슐화한다.


프레임 구성 요소

  1. Preamble
    • 역할: 수신기와 송신기의 클록 레이트를 동기화하는 데 사용
    • 구성: 7 바이트의 '10101010' 시퀀스와 1 바이트의 '10101011'로 구성된다.
    • 기능: 데이터 전송 전에 수신기와 송신기가 동일한 타이밍을 맞추도록 한다.

  1. Destiniation Address
    • Ethernet 프레임이 도달해야 하는 장치의 MAC 주소를 나타낸다.
    • 일반적으로 48비트(6바이트) 주소이다.
    • 어댑터는 프레임을 수신하면, 목적지 주소가 자신의 MAC 주소와 일치하거나 브로드캐스트 주소인 경우(e.g. ARP 패킷) 프레임의 데이터를 네트워크 계층 프로토콜로 전달한다. 그렇지 않으면 프레임을 폐기한다.

  1. Source Address

    • Ethernet 프레임을 보내는 장치의 MAC 주소
    • 일반적으로 48비트(6바이트) 주소이다.
  2. Type

    • 상위 계층 프로토콜(e.g. IP, ARP)을 식별하는 필드. 이는 수신자가 어떤 프로토콜을 사용할지 결정하는 데 도움을 준다.
    • 수신기에서 여러 프로토콜 중에서 올바른 프로토콜을 선택하는 데 사용된다.(디멀티플렉싱)
  3. Data(Payload)

    • 실제 전송되는 데이터(Payload)이다.
    • 최대 1500 바이트의 데이터를 포함할 수 있다.
    • 데이터가 46바이트 미만인 경우, 최소 프레임 크기(64바이트)를 충족하기 위해 패딩이 추가된다

  1. CRC(Cyclic Redundancy Check)
    • 전송된 데이터의 무결설을 확인하기 위한 오류 검출 필드이다.
    • 4바이트로 구성되며, 프레임의 마지막에 위치하여 프레임 전체에 대한 체크섬을 제공





Ethernet: unreliable, connectionless

Connectionless(비연결형)

  • 특징: 데이터 프레임을 전송할 때, 송신 NIC와 수신 NIC 사이에 핸드셰이킹(handshaking)이 없다.
    • 핸드셰이킹 없음: 데이터 전송 전에 송신자와 수신자가 통신을 설정하는 과정이 없다
    • 결과: 데이터가 전송되지만, 수신자가 그것을 받을 준비가 되었는지 확인하지 않는다.


Unreliable(신뢰성 없음)

  • 특징: 수신 NIC는 송신 NIC에게 ACK(인정) 또는 NAK(부인) 신호를 보내지 않는다.
    • ACK/NAK 없음: 수신자가 프레임을 제대로 받았는지 송신자에게 알리지 않는다.
    • 데이터 손실: 프레임이 손실되면, 상위 계층 프로토콜(e.g. TCP)이 재전송 요청을 하지 않은한 데이터가 영구적으로 손실된다.
    • 복구: 상위 계층의 신뢰성 있는 데이터 전송 프로토콜(rdt)이 손실된 데이터를 복구할 수 있다. 그렇지 않으면 손실된 데이터는 복구되지 않는다.


Ethernet의 MAC 프로토콜

  • 프로토콜: 비슬롯(slotted) CSMA/CD와 이진 백오프(binary backoff) 알고리즘을 사용한다.
    • CSMA/CD: 충돌이 감지되면 전송을 중단하고, 이진 백오프 알고리즘을 사용하여 충돌 회피를 시도한다.
    • 이진 백오프: 충돌 후 재전송하기 전에 랜덤한 시간 동안 기다린 후 다시 전송을 시도한다.





802.3 Ethernet Standards: link & physical layers

다양한 Ethernet 표준

  • 공통 MAC 프로토콜 및 프레임 포맷: 모든 Ethernet 표준은 공통의 MAC 프로토콜과 프레임 형식을 사용한다.
  • 다양한 속도: 2, 10, 100 Mbps, 1, 10, 40 Gbps

물리 계층 매체

  • 다양한 물리 계층 매체: Ethernet은 다양한 물리 계층 매체를 사용하여 데이터를 전송한다. 주요 매체는 다음과 같다.
    • 광섬유(fiber)
    • 케이블(copper)





Ethernet switch

  • Ethernet Switch의 역할과 기능
    • Link-Layer Device
      • Ethernet 스위치는 링크 계층 장치이다. 즉, 데이터 링크 계층에서 작동한다.
      • Active Role: 스위치는 능동적인 역할을 한다. 이는 데이터 프레임을 저장하고 전달하는 기능을 수행하는 것을 의미한다.
    • 기능
      • Store and Forward: 들어오는 Ethernet 프레임을 저장한 후 적절한 포트로 전달
      • MAC Address Examination: 들어오는 프레임의 MAC 주소를 검사하여, 프레임을 한 개 이상의 아웃고잉 링크로 선택적으로 전달한다.
      • CSMA/CD: 세그먼트에 접근할 때 CSMA/CD 메커니즘을 사용한다.


  • 특징
    • Transparent
      • 스위치는 네트워크의 호스트들이 스위치의 존재를 인식하지 못하도록 투명하게 작동한다.
      • 즉, 스위치는 네트워크 트래픽을 관리하지만, 호스트 장치들은 스위치의 존재를 알 필요가 없다.
    • Plug-and-Play, Self-learning
      • 설정 불필요: 스위치는 플러그 앤 플레이 방식으로 동작하며, 설치 후 별도의 설정이 필요하지 않다
      • self-learning: 스위치는 자동 학습 기능을 통해 네트워크의 MAC 주소를 학습하고 기억하여, 효율적으로 데이터 프레임을 전달한다.





Switch: multiple simultaneous transmission

  1. Dedicated, Direct Connections
    • 각 호스트는 스위치에 전용, 직접 연결되어 있다.



  1. Buffer Packets
    • 스위치는 패킷을 버퍼링한다. 이는 일시적인 저장소 역할을 하여 데이터 충돌을 방지하고 효율적인 전송을 보장한다.



  1. Ethernet Protocol on Each Incoming Link
    • 각 들어오는 링크에서 이더넷 프로토콜이 사용되므로
      • No Collisions: 충돌이 발생하지 않는다.
      • Full Duplex: 전이중 통신이 가능하다. 즉, 동시에 송신과 수신이 가능하다.
      • Own Collision Domain: 각 링크는 고유한 충돌 도메인을 갖는다. 이는 다른 링크의 충돌로부터 영향을 받지 않음을 의미한다.


4. **Switching** - A-to-A, B-to-B의 데이터 전송은 **동시에** 가능하며, **충돌 없이** 이루어진다. - 하지만 A-to-A', C-to-A'는 **동시에 일어날 수 없다** -> **동일한 목적지로 불가.** - 스위치에는 여섯 개의 인터페이스가 있다.(1,2,3,4,5,6)






Switch: multiple simultaneous transmissions

Q. 스위치는 A'가 인터페이스 4를 통해 도달 가능하고 B'가 인터페이스 5를 통해 도달 가능하다는 것을 어떻게 아는가?
A. 스위치 테이블

  • 스위치 테이블
    • 각 스위치는 스위치 테이블을 유지하며, 이는 라우팅 테이블과 비슷하게 구성된다. 각 항목은 다음을 포함한다.
      • 호스트의 MAC 주소: 네트워크 내 특정 장치를 식별
      • 호스트에 도달하기 위한 인터페이스: 스위치가 해당 호스트에 도달할 수 있는 인터페이스(포트)를 지정
      • 타임스탬프(항목이 추가되거나 마지막으로 업데이트된 시간)


Q. 스위치 테이블의 항목은 어떻게 생성되고 유지되는가? 라우팅 프로토콜 같은 것이 있는가?











Switch: self-learning

스위치는 네트워크에서 어떤 호스트가 어느 인터페이스를 통해 도달 가능한지 자동으로 학습한다 이 과정은 프레임을 수신할 때마다 이루어진다.






작동 방식

  1. 프레임 수신 시 학습
    • 스위치가 프레임을 수신하면, 해당 프레임이 어느 LAN 세그먼트(인터페이스)에서 들어온 것인지를 확인한다.
    • 이로써 스위치는 송신자의 위치를 "학습"한다.



  1. 스위치 테이블에 기록
    • 스위치는 송신자의 MAC 주소와 해당 위치(인터페이스)를 스위치 테이블에 기록한다.
    • e.g. 호스트 A가 인터페이스 1을 통해 스위치에 연결되어 있다고 학습한다.



  1. e.g.
    • 호스트 A가 A'에게 프레임을 보낼 때, 스위치는 프레임을 수신하고 A의 위치 정보를 스위치 테이블에 기록한다.
      • 송신자(MAC 주소):A
      • 인터페이스: 1
      • TTL: 60(테이블에서 항목이 유지되는 시간)
    • 스위치 테이블 초기 상태
      • 초기에는 스위치 테이블이 비어 있다.
      • 프레임이 수신될 때마다 스위치는 테이블을 채워나간다.









Switch: frame filtering/forwarding

스위치가 프레임을 수신하면, 다음과 같은 절차를 통해 프레임을 필터링하고 전달한다.

  1. 송신 호스트의 MAC 주소와 수신 인터페이스 기록
    • 프레임이 스위치에 도착하면, 스위치는 프레임이 들어온 인터페이스의 송신 호스트의 MAC 주소를 기록한다.



  1. 목적지 주소로 스위치 테이블 인덱싱
    • 프레임의 목적지 MAC 주소를 사용하여 스위치 테이블을 참조한다.



  1. 목적지 항목 확인
    • 목적지 항목이 스위치 테이블에 존재하는지 확인한다.
    • 목적지 항목이 존재하는 경우
      • 프레임이 도착한 세그먼트에 목적지가 있는 경우: 프레임을 드롭한다.
      • 프레임이 도착한 세그먼트에 목적지가 없는 경우: 스위치 테이블에 지정된 인터페이스로 프레임을 전달(forward)한다.
    • 목적지 항목이 존재하지 않는 경우
      • 프레임을 모든 인터페이스로 플러딩(flooding)한다. 단, 프레임이 도착한 인터페이스는 제외한다.
      • 플러딩: 네트워크에서 데이터를 전송하는 방식 중 하나로, 특정 목적지로 지정하지 않고 네트워크에 연결된 모든 장치로 데이터를 보내는 것을 의미한다.









Self-learning, forwarding: example


1. 프레임 목적지 'A''의 위치를 모를 때: **Flood** - 플러딩: 스위치는 목적지 'A''의 MAC 주소를 모르면, 플러딩을 수행하여 모든 포트로 프레임을 전송한다. - 이 과정을 통해 스위치는 목적지 A'가 어느 포트에 연결되어 있는지 알게 된다.

  1. 목적지 A의 위치를 알 때: Selectively send on just one link
    • 선택적 전송: 스위치는 목적지 A의 MAC 주소와 연결된 포트를 알고 있으면, 해당 포트로만 프레임을 전송한다.
    • 이렇게 하면 네트워크의 효율성을 높이고, 불필요한 트래픽을 줄일 수 있다.







interconnecting switches





  • 여러 개의 스위치가 연결되어 하나의 큰 네트워크를 형성할 수 있다.
  • self-learning 기능을 갖춘 스위치들은 서로 연결되어도 문제없이 작동한다.

Q. A에서 G로 데이터를 전송할 때, S1은 어떻게 S4와 S3를 통해 G로 프레임을 전달해야 하는지 알 수 있을까요?
A. Self-Learning(단일 스위치의 경우 동일하게 작동한다)







Self-Learning multi-switch example



Q. S1, S2, S3, S4의 스위칭 테이블과 패킷 전달 과정을 보여라
A.

  1. initial frame transmission(C to I)
    • C는 I에게 프레임을 보낸다.
    • S1은 처음에 I의 위치를 모르기에 모든 포트로 프레임을 플러딩한다.
    • 프레임은 S4, S3을 거쳐 I에게 도달한다.

  1. Switch Table Update After Initial Frame
    • S1: C가 연결된 포트를 학습(C의 MAC 주소와 포트 기록)
    • S4: C의 프레임을 받으면서 C의 위치 학습
    • S3: C의 프레임을 받으면서 C의 위치 학습

  1. Response from I to C
    • I는 C에게 응답 프레임을 보냅니다.
    • S3는 C의 위치를 알고 있으므로, S4로 프레임을 전달합니다.
    • S4는 C의 위치를 알고 있으므로, S1로 프레임을 전달합니다.
    • S1은 C의 위치를 알고 있으므로, C에게 프레임을 전달합니다.

  1. Final Switch Table Entries
Switch MAC Address Interface
S1 C 1
S1 I 2
S3 C 2
S3 I 1
S4 C 1
S4 I 2





Small institutional network






Switches vs routers

공통점

  1. Store-and-Forward 방식 사용
    1. 라우터(Routers): 네트워크 계층 장치로, 네트워크 계층 헤더를 검사한다.
    2. 스위치(Switches): 링크 계층 장치로, 링크 계층 헤더를 검사한다.

  1. 포워딩 테이블(Forwarding Tables) 사용
    1. 라우터(Routers): 라우팅 알고리즘과 IP 주소를 사용하여 포워딩 테이블을 계산한다.
    2. 스위치(Switches): 플러딩, 학습, MAC 주소를 사용하여 포워딩 테이블을 학습한다.






Virtual LANs(VLANs): motivation


Q. LAN의 크기가 확장되고 사용자가 접속 지점을 변경하면 어떻 일이 발생할까?



배경 설명

  • Single Broadcast Domains: 현재 네트워크는 단일 브로드캐스트 도메인으로 구성되어 있다.


    - **Scaling 문제** - 모든 계층-2 브로드캐스트 트래픽(e.g. ARP, DHCP, 알 수 없는 MAC 주소 탐색)이 전체 LAN을 가로질러 전파된다.
    • 효율성, 보안, 프라이버시 문제
      • 네트워크의 크기가 커질수록 브로드캐스트 트래픽이 증가하여 네트워크 효율성이 저하된다.
      • 모든 브로드캐스트 트래픽이 전체 네트워크를 가로질러 전파되므로 보안과 프라이버시 문제가 발생할 수 있다.
    • 관리상의 문제
      • e.g. 컴퓨터 과학 사용자가 사무실을 전기 공학 부서로 옮길 때
        • 사용자는 물리적으로 전기 공학 스위치에 연결되지만 논리적으로는 여전히 컴퓨터 과학 네트워크에 속하고 싶어 한다.
        • 이는 네트워크 관리에 있어 복잡성을 증가시킨다.






Port-Based VLANs

Virtual Local Area Network(VLAN)

  • VLAN의 개념: VLAN은 물리적으로 하나의 LAN infreastructure에서 여러 개의 가장 LAN을 정의할 수 있게 하는 기술이다. 이는 네트워크 스위치가 VLAN 기능을 지원할 때 가능하다.


Port-based VLAN(포트 기반 VLAN)

  • 포트 기반 VLAN 정의: 포트 기반 VLAN에서는 스위치 관리 소프트웨어를 통해 스위치 포트를 그룹화하여 단일 물리적 스위치여러 개의 가상 스위치처럼 운영할 수 있게 한다.







Port-based VLANs

  1. 트래픽 격리(Traffic Isolation)
    • 특정 포트 그룹(e.g. 포트 1-8)으로의 프레임은 오직 해당 포트 그룹 내에서만 도달할 수 있다.
    • 예를 들어, 포트 1-8에서 전송된 데이터는 포트 1-8로만 전송되고, 다른 포트(e.g. 9-15)로는 전송되지 않는다.
    • VLAN을 스위치 포트가 아닌 단말기의 MAC 주소를 기반으로 정의할 수도 있다.


  1. 동적 멤버십(Dynamic Membership)
    • 포트는 VLAN 간에 동적으로 할당될 수 있다.
    • 이는 네트워크 관리자가 필요에 따라 포트를 특정 VLAN에 할당하거나 해제할 수 있음을 의미한다.


  1. VLAN 간 포워딩(Forwarding between VLANs)
    • 서로 다른 VLAN 간의 데이터 전송은 라우팅을 통해 이루어진다. 이는 별도의 스위치를 사용하는 경우와 동일한 방식이다.
    • 실제로는 벤더들이 스위치와 라우터가 결합된 장비를 판매하여 이러한 기능을 제공한다.






VLANs spanning multiple switches

  1. 트렁크 포트(Trunk Port)
    • 트렁크 포트는 여러 물리적 스위치에 걸쳐 정의된 VLAN 간의 프레임을 전달하는 역할을 한다.
    • 트렁크 포트를 통해 전달되는 프레임은 단순한 802.1 프레임이 아니라 VLAN ID 정보를 포함해야 한다.
    • 이는 프레임이 정확한 VLAN으로 라우팅될 수 있도록 보장


  1. 802.1q 프로토콜
    • 802.1q 프로토콜은 트렁크 포트를 통해 전달되는 프레임에 추가적인 헤더 필드를 추가/제거한다.
    • 이 헤더 필드는 VLAN ID 정보를 포함하여, 프레임이 어떤 VLAN에 속하는지 식별할 수 있게 한다.





802.1Q VLAN frame format






MultiProtocol label switching(MPLS)

  • 목표: MPLS(Multiprotocol Label Switching)의 주요 목표는 MPLS를 지원하는 라우터 네트워크 내에서 고속 IP 포워딩을 제공하는 것이다. 이를 위해 고정 길이의 라벨(Label)을 사용하며, 이는 전통적인 IP 라우팅에서 사용되는 가장 짧은 접두사 매칭 방식 대신에 사용된다.

  • 주요 포인트
    • 빠른 조회: 고정 길이 식별자를 사용하여 라우팅 테이블 조회 시간을 단축한다.
    • 가상 회로(Virtual Circuit) 접근법 차용: MPLS는 가상 회로 방식에서 아이디어를 가져와 데이터를 전달한다.
    • IP 데이터그램 유지: MPLS로 IP 데이터그램을 전달할 때도 여전히 IP 주소를 유지한다.







MPLS capable routers

  • 별칭: 라벨 스위치 라우터(Label-Switched Router)라고도 한다.
  • 기능: 패킷을 전송할 때 라벨 값만을 기반으로 출력 인터페이스로 전달한다. IP주소를 검색하지 않는다.
    • MPLS 포워딩 테이블: IP 포워딩 테이블과 구별된다.


유연성

  • MPLS 포워딩 결정: IP와 다를 수 있다.
    • 목적지 및 소스 주소 사용: 트래픽 엔지니어링을 위한 동일한 목적지로 흐름을 다르게 라우팅할 수 있다.
    • 빠른 재라우팅: 링크가 실패할 경우 미리 계산된 백업 경로를 사용하여 흐름을 신속하게 재 라우팅한다.





MPLS vs IP path


IP routing

  • 경로결정: 목적지 주소만으로 경로가 결정된다.
  • 동작: 패킷이 목적지로 향하는 경로는 오직 패킷에 포함된 IP 주소를 기반으로 라우터가 결정한다.



MPLS 라우팅

  • 경로 결정: 경로는 소스 주소와 목적지 주소를 기반으로 결정될 수 있다.
  • 동작: MPLS 라우터는 고정 길이 라벨을 사용하여 패킷을 라우팅한다.
    • R4와 같은 IP/MPLS 라우터는 소스 주소 또는 다른 필드를 기반으로 다른 MPLS 경로를 사용할 수 있다.
  • 유연성
    • 일반화된 포워딩: 다양한 경로를 사용할 수 있으며, 트래픽 엔지니어링이 가능하다.
    • 빠른 재라우팅: 링크 장애 시 백업 경로를 미리 계산하여 빠르게 전환할 수 있다.





MPLS signaling

  • 링크 상태 플러딩 프로토콜 수정
    • OSPF,IS-IS 프로토콜 수정: MPLS 라우팅에서 사용되는 정보를 전달하기 위해 링크 상태 플러딩 프로토콜이 수정된다.
      • 전달되는 정보: 링크 대역폭, 예약된 링크 대역폭의 양 등


  • MPLS 라우터의 동작
    • RSVP-TE 신호 프로토콜 사용: MPLS 라우팅을 설정하기 위해 MPLS 엔트리 라우터는 RSVP-TE 신호 프로토콜을 사용한다
      • RSVP-TE (Resource Reservation Protocol - Traffic Engineering): MPLS 포워딩을 설정하고 트래픽 엔지니어링을 지원하는 프로토콜입니다.
    





MPLS forwarding tables

'학교수업 > 컴퓨터망' 카테고리의 다른 글

Chapter8: Security  (1) 2024.07.16
Chapter7: Wireless and Mobile Networks  (4) 2024.07.14
Chapter5 Network Layer: Control Plane  (0) 2024.07.09
Chapter4: Network Layer-Data Plane  (0) 2024.07.04
Chapter3: Transport Layer-2  (0) 2024.07.04

+ Recent posts