6. 링크 계층: 링크, 접속망, 랜

ㄱㅇㅁ·2024년 4월 28일

네트워크

목록 보기
16/20

1. 링크 계층 소개

  • 노드: 링크 계층 프로토콜을 실행하는 장치
    • ex) 호스트, 라우터, 스위치, wifi AP
  • 링크: 통신 경로상의 인접한 노드들을 연결하는 통신 채널
  • 한 링크에서 전송 노드는 데이터그램을 링크 계층 프레임으로 캡슐화해서 링크로 전송함

1.1 링크 계층이 제공하는 서비스

링크 계층 프로토콜이 제공할 수 있는 서비스

프레임화

  • 거의 모든 링크 계층 프로토콜은 네트워크 계층 데이터그램을 링크상으로 전송하기 전에 링크 계층 프레임에 캡슐화함
    • 프레임: 네트워크 계층 데이터그램이 들어있는 데이터 필드와 여러개의 헤더 필드로 구성

링크 접속

  • MAC 프로토콜은 링크상으로 프레임을 전송하는 규칙에 대해서 명시

신뢰적 전달

  • 링크 계층 프로토콜이 신뢰적 전달 서비스를 제공하는 경우 네트워크 계층 데이터그램은 링크상에서 오류 없이 전달됨
    • TCP와 같은 일부 트랜스포트 계층 프로토콜에서는 신뢰적 전달 서비스를 제공

오류 검출과 정정

  • 오류가 있는 데이터그램은 전달할 필요가 없으므로 대부분의 링크 계층 프로토콜은 오류를 검출하는 방법을 제공함
  • 오류 검출은 송신 노드에서 프레임에 오류 검출 비트를 설정하게 하고 수신 노드에서 오류 검사를 수행하게 함으로써 가능

1.2 링크 계층이 구현되는 위치

  • 링크 계층은 네트워크 인터페이스 카드(network interface card, NIC)로 알려진 네트워크 어댑터(net-work adapter)에 구현됨

3. 다중 접속 링크와 프로토콜

두 종류의 네트워크 링크

  1. 점대점 링크
  • 링크의 한쪽 끝에 한 송신자와 링크의 다른 쪽 끝에 한 수신자가 있음
  • PPP, HDLC
  1. 브로드캐스트 링크
  • 동일한 하나의 공유된 브로드캐스트 채널에 다수의 송신 노드 및 수신 노드들이 연결됨
  • 브로드캐스트: 임의의 한 노드가 프레임을 전송하면 그 채널이 그 프레임을 broadcast해서 다른 모든 노드들이 그 프레임의 복사본을 수신하는 것
  • 이더넷, 무선 랜

다중 접속 문제

  • 다수의 송수신 노드들의 공유되는 브로드캐스트 채널로의 접속을 조정하는 문제
  • 2개 이상의 노드가 동시에 프레임을 전송하면 모든 노드는 동시에 여러 개의 프레임을 받게 되고 충돌이 발생
  • 충돌에 관련된 모든 프레임은 손실되며 브로드캐스트 채널은 충돌 기간만큼 낭비됨

다중 접속 프로토콜

  • 공유되는 브로드캐스트 채널로 보내는 노드들의 전송을 조정하기 위한 프로토콜
  • 즉, 다수의 노드가 활성화되어 있을 때 브로드캐스트 채널이 제대로 동작하도록 보장하기 위해 활성 노드들의 전송을 조정
  1. 채널 분할 프로토콜
  2. 랜덤 접속 프로토콜
  3. 순번 프로토콜

3.1 채널 분할 프로토콜

1. 시분할 다중화 (TDM)

  • 시간을 시간 프레임으로 나누고 각 시간 프레임을 N개의 시간 슬롯으로 나눔
  • 각 시간 슬롯은 N개의 노드에게 각각 할당되고, 노드는 전송할 패킷이 있을 때마다 TDM 프레임에서 자신에게 할당된 시간 슬롯 동안 패킷 비트들을 전송함

장점

  • 충돌을 제거할 수 있고 아주 공정함

단점

  1. 전송할 패킷이 있는 노드가 단 하나인 경우에도 노드 전송률이 평균 R/N으로 제한됨
  2. 노드가 전송 순서상 자신의 차례를 항상 기다려야함

2. 주파수분할 다중화 (FDM)

  • R bps의 채널을 다른 주파수로 나눠서 각 주파수를 N개 노드 중 하나에게 할당함

장점

  • 충돌을 피하고 N개 노드에게 대역폭을 균등하게 분할함

단점

  • 전송할 패킷을 가진 노드가 단 하나일지라도 노드는 R/N의 대역폭으로 한정됨

3. 코드 분할 다중 접속 (CDMA)

  • 다른 코드를 각 노드에게 할당

3.2 랜덤 접속 프로토콜

  • 랜덤 접속 프로토콜에서 전송 노드는 항상 채널의 최대 전송률인 R bps로 전송함
  • 충돌이 생기면 충돌과 관련된 각 노드는 프레임이 충돌 없이 전송될 때까지 자신의 프레임을 계속해서 재전송함
  • 그러나, 프레임이 충돌했을 때 즉시 재전송하지 않고, 랜덤 지연 시간 동안 기다린 후 재전송 함
  • 충돌했던 노드 중 하나는 다른 노드가 선택한 지연 시간보다 충분히 작은 지연시간을 선택함으로써 충돌 없이 자신의 프레임을 채널로 전송할 수 있음

슬롯 알로하 (slotted ALOHA)

  • 노드는 전송할 새 프레임이 있으면 다음 슬롯이 시작할 때까지 기다렸다가 그 슬롯에 전체 프레임을 전송함
  • if 충돌 x -> 노드는 성공적으로 자신의 프레임을 전송한 것이므로 그 프레임을 재전송할 필요가 없음
  • if 충돌 o -> 노드는 그 슬롯이 끝나기 전에 충돌을 검출함 노드는 그 프레임이 충돌 없이 전송될 때까지 확률 p로 해당 프레임을 다음 슬롯들에서 재전송함
  • 최대 효율은 p = 1/e = 0.37

알로하

  • 프레임이 도착하면 노드는 즉시 프레임 전체를 브로드캐스트 채널로 전송함
  • if 충돌 -> 노드는 확률 p로 즉시 재전송
    • 즉시 재전송하지 않는 경우, 노드는 프레임 전송 시간 동안 기다림
    • 기다리고 나서 확률 p로 전송하거나 아니면 1-p 확률로 또 다른 프레임 시간 동안 기다림
  • 최대 효율은 1/(2e)

CSMA (Carrier Sense Multiple Access)

  • 위 두 프로토콜에서는 다른 노드의 활성 여부와 무관하게 전송 여부를 결정함

충돌시간을 줄이기 위한 규칙

  1. 캐리어 감지 (carrier sensing)
  • 만일 다른 노드가 프레임을 채널로 전송하고 있으면, 노드는 임의의 짧은 시간 동안 전송 중단을 감지하면 프레임을 전송하기 시작함
  1. 충돌 검출(collision detection)
  • 만일 다른 노드가 방해 프레임을 전송하고 있음을 검출하면, 자신의 전송을 중단하고 랜덤 시간 동안 기다린 후 유휴 시 감지 및 전송과정을 반복함

CSMA 충돌

  • 채널 전파 지연(channel propagation delay): 신호가 채널의 한쪽 끝에서 다른 쪽 끝으로 전파되는데 걸리는 시간이 CSMA의 성능을 결정하는데 중요한 역할을 함
  • 전파 지연이 길수록 네트워크의 다른 노드에서 이미 시작된 전송을 캐리어 감지 노드가 감지할 수 없는 경우가 더 증가함

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

  • CSMA/CD는 충돌을 검출한 뒤에 두 노드가 바로 자신의 전송을 취소(abort)함

동작 과정

  1. 어댑터는 네트워크 계층으로부터 데이터그램을 받아서 링크 계층 프레임을 만든 후에 그 프레임을 어댑터 버퍼에 저장함
  2. 어댑터는 채널이 유휴(idle) 상태임을 감지하면 프레임 전송을 시작함
    만일 어댑터가 채널이 바쁜(busy) 상태임을 감지하면, 어떤 신호 에너지도 감지되지 않을 때까지 더 기다렸다가 프레임을 전송하기 시작함
  3. 전송하는 동안 어댑터는 브로드캐스트 채널을 사용하는 다른 어댑터로부터의 신호 에너지가 있는지 감시함
  4. 프레임 전체를 전송하는 동안 다른 어댑터로부터의 신호 에너지가 감지되지 않으면, 프레임 전송을 완료함
    그러나, 전송 도중에 다른 어댑터로부터의 신호 에너지를 감지하면, 자신의 프레임 전송을 취소함
  5. 어댑터는 전송 취소 후 임의의 랜덤 시간만큼 기다린 후 (동일한 고정시간동안 기다리면 계속 충돌하므로) 2단계로 돌아감

랜덤 백오프 시간 간격

  • 이진 지수적 백오프 알고리즘
  • 충돌을 n번 경험한 프레임을 전송할 때 노드는 {0,1,2,...,2^n-1} 중에서 랜덤하게 K값을 선택
  • 프레임이 충돌을 더 많이 경험할수록 K를 선택할 간격을 크게함

CSMA/CD의 효율

  • d_prop: 신호 에너지가 임의의 두 어댑터 사이에서 전파되는데 걸리는 최대 시간
  • d_trans: 최대 크기의 이더넷 프레임을 전송하는 데 걸리는 시간

효율=1/(1+5dprop/dtrans)1/(1+5d_{prop}/d_{trans})

3.3 순번 프로토콜

다중 접속 프로토콜에서 요구되는 두가지 특성

  1. 단 하나의 노드만이 활성이면 Rbps의 처리율을 가짐
  2. M개의 노드가 활성이면 각 노드가 거의 R/M bps의 처리율을 가짐
  • 알로하와 CSMA 프로토콜은 두 번째 특성이 없기 때문에 순번 프로토콜을 개발하게 됨

중요한 프로토콜 2가지

1. 폴링 프로토콜(polling protocol)

  • 노드 중 하나를 마스터 노드로 지정하고 마스터 노드를 라운드 로빈 방식으로 폴링함
  • 장점: 충돌뿐만 아니라 랜덤 접속 프로토콜의 단점인 빈 슬롯을 제거함으로써 훨씬 높은 효율을 제공
  • 단점: (1) 폴링 지연 (노드가 전송할 수 있음을 알리는 데 걸리는 시간), (2) 마스터 노드가 고장 나면 전체 채널이 동작하지 못함

2. 토큰 전달 프로토콜(token-passing protocol)

  • 마스터 노드가 없고, 토큰이라고 알려진 작은 특수 목적 프레임이 정해진 순서대로 노드 간에 전달됨
  • 장점: 분산 방식으로 효율이 매우 높다
  • 단점: 노드 하나가 실패하면 전체 채널이 동작하지 않음

3.4 DOCSIS: 케이블 인터넷 접속을 위한 링크 계층 프로토콜

  • DOCSIS는 하향 및 상향 망 세그먼트들을 다수의 주파수 채널로 나누기 위해 FDM을 사용함

하향 채널

  • 6 MHz 대역에 약 40 Mbps의 최대 처리율 제공
  • CMTS에 의해 하향 채널로 전송된 프레임은 그 채널을 통해 수신하는 모든 케이블 모뎀에 의해 수신됨

상향 채널

  • 6.4 MHz 대역에 약 30 Mbps의 최대 처리율 제공
  • 시간 간격으로 나뉘어져 있고, 각 시간 간격은 케이블 모뎀이 CMTS로 전송할 수 있는 일련의 미니 슬롯들로 구성되어 있음

4. 스위치 근거리 네트워크

  • 스위치는 링크 계층에서 작동하기 때문에 링크 계층 프레임을 교환하고, 네트워크 계층 주소를 인식하지 않으며, 라우팅 알고리즘을 사용하지 않음
    -> IP 주소가 아닌 링크 계층 주소를 사용

4.1 링크 계층 주소체계와 ARP

MAC 주소

  • 링크 계층 주소는 랜 주소(LAN address), 물리 주소(physical address), MAC 주소(MAC address)라고 부름
  • 실제로 링크 계층 주소를 가진 것은 호스트나 라우터의 어댑터(네트워크 인터페이스)임
  • 링크 계층 스위치는 인터페이스에 링크 계층 주소를 할당받지 않음

특징

  • 길이는 6바이트, 2^48개만큼의 사용가능한 랜 주소가 있음
  • 어떤 어댑터도 동일한 MAC 주소를 가지지 않음
    • IEEE가 MAC 주소 공간을 관리하기 때문
  • 어댑터의 MAC 주소는 평면 구조를 가지며 어댑터의 위치에 따라 변경되지 않음
    • <-> IP 주소는 계층 구조를 가지며 호스트가 이동하면 변경됨
  • 랜상의 다른 모든 어댑터가 자신이 전송한 프레임을 수신하고 처리하기를 원할 때 프레임의 목적지 주소 필드에 MAC 브로드캐스트 주소를 넣음

ARP (Address Resolution Protocol)

  • 네트워크 계층 주소와 링크 계층 주소 사이의 변환을 해주는 프로토콜
  • ARP 모듈은 입력값으로서 동일한 랜상의 임의의 IP 주소에 대해 대응되는 MAC 주소를 돌려줌
  • 호스트와 라우터는 자신의 메모리에 ARP 테이블을 갖고 있음
    • IP 주소-MAC 주소 매핑 정보, 각 매핑이 언제 삭제되는지 나타내는 TTL 값을 포함
  • ARP는 플러그 앤 플레이= ARP 테이블은 자동으로 구축됨

4.2 이더넷

  • 오늘날 가장 우세한 랜 기술
  • 인터넷은 글로벌 네트워킹, 이더넷은 근거리 네트워킹

성공한 이유

  1. 처음으로 널리 사용된 고속랜
  2. 토큰링과 FDDI, ATM은 이더넷보다 복잡하고 비쌈
  3. 높은 데이터율로 경쟁
  4. 이더넷 하드웨어가 저렴

발전 과정

  • 1980년대
    • 버스 토폴로지의 이더넷은 브로드캐스트 랜을 전송되는 모든 프레임은 버스에 연결된 모든 어댑터를 거치며 이들에 의해 처리됨
  • 1990년대
    • 허브 기반의 스타 토폴로지
    • 허브는 프레임이 아닌 각각의 비트에 대한 처리를 하는 물리 계층 장치
  • 2000년대
    • 중앙 허브 -> 스위치로 대체

이더넷 프레임 구조

  • 송신 어댑터는 IP 데이터그램을 이더넷 프레임에 캡슐화하고 그 프레임을 물리 계층으로 전달
  1. 데이터 필드 (46~1500바이트)
    • IP 데이터 그램을 운반
  2. 목적지 주소 (6바이트)
    • 목적지 어댑터의 MAC 주소
  3. 출발지 주소 (6바이트)
    • 프레임을 랜으로 전송하는 어댑터의 MAC 주소
  4. 타입 필드 (2바이트)
    • 네트워크 계층 프로토콜을 이더넷으로 하여금 다중화하도록 허용
  5. 순환 중복 검사(CRC) (4바이트)
    • 수신 어댑터가 프레임에 오류가 생겼는지 검출할 수 있도록 함
  6. 프리앰블 (8바이트)
    • 프리앰블의 첫 7바이트는 10101010 값을 갖고 마지막 바이트는 10101011
    • 프리엠블의 첫 7바이트는 수신 어댑터를 깨우고, 수신자의 클록을 송신자의 클록과 동기화하는 역할을 함
    • 8번째 바이트의 마지막 두비트는 수신 어댑터에게 중요한 것이 오고 있음을 알려줌
  • 모든 이더넷 기술은 네트워크 계층에게 비연결형 서비스, 비신뢰적인 서비스를 제공함

이더넷 기술

  • 이더넷은 초기에는 동축케이블의 일부로 여겨졌는데 이는 브로드캐스트 매체로 간주하는 것과 일치
  • 한 인터페이스에서 전송된 모든 프레임이 다른 모든 인터페이스에 의해 수신되고, 이더넷의 CSMA/CD 프로토콜이 다중 접근 문제(프레임 충돌)를 해결
  • 하지만, 오늘날의 이더넷은 초기 이더넷과 상당히 많이 달라짐
  • 스위치 기반 이더넷 랜에는 충돌이 없으며 MAC 프로토콜이 필요 없음

4.3 링크 계층 스위치

  • 스위치의 역할은 들어오는 링크 계층 프레임을 수신해서 출력 링크로 전달하는 것
  • 스위치는 그 자체가 서브넷의 호스트와 라우터들에게 투명함
    • 즉, 호스트/라우터는 중간에 스위치가 프레임을 받아서 다른 노드에게 전달하는 것을 알지 못함
  • 스위치 출력 인터페이스는 버퍼를 갖고 있음

전달(forwarding) 및 여과(filtering)

  • filtering: 프레임을 인터페이스로 전달할지 또는 폐기(drop)할지 결정하는 스위치의 기능
  • forwarding: 프레임이 전송될 인터페이스를 결정하고 프레임을 해당 인터페이스로 내보내는 기능
  • filtering, forwarding에는 스위치 테이블을 사용함

자가학습

  • 스위치가 자신의 테이블을 자동으로, 동적으로, 자치적으로 구축하는 것
  • 스위치는 네트워크 관리자나 사용자의 개입을 요구하지 않으므로 플러그 앤 플레이 장치

과정

  1. 스위치 테이블은 초기에 비어있음
  2. 인터페이스로 수신한 각 프레임에 대해 스위치는 (1) 프레임의 출발지 주소 필드에 있는 MAC 주소, (2) 프레임이 도착한 인터페이스, (3)현재 시간을 테이블에 저장함
  3. 수명 시간(aging time)이 지난 후에도 스위치가 해당 주소를 출발지 주소로 하는 프레임을 수신하지 못하면 테이블에서 이 주소를 삭제함

링크 계층 스위치의 특성

  1. 충돌 제거
    • 스위치로 구축된 랜에는 충돌로 인해 낭비되는 대역폭이 없음
    • 브로드캐스트 링크를 사용하는 랜보다 성능이 월등히 향상
  2. 이질적인 링크들
    • 링크들을 별개로 분리하기 때문에 랜의 각 링크는 상이한 속도로 동작할 수 있으며 상이한 매체를 사용할 수 있음
  3. 관리
    • 스위치는 향상된 보안을 제공할 뿐만 아니라 네트워크 관리를 쉽게 할 수 있게 함

스위치 대 라우터

  • 일반적으로, 작은 네트워크는 트래픽이 지역적으로 제한되어 있고 IP 주소의 구성을 요구하지 않으면서도 총 처리율을 증가시키므로 스위치로도 충분함
  • 그러나 보통 수천 개의 호스트로 구성된 큰 네트워크에서는 라우터도 포함

스위치

  • 저장후 전달 패킷 스위치이지만 MAC 주소를 사용해서 패킷을 전달
  • 2계층 패킷 스위치

라우터

  • 네트워크 계층 주소를 사용해서 패킷을 전달하는 저장 후 전달(store-and-forward) 패킷 스위치
  • 3계층 패킷 스위치

공통점

  1. store-and-forward
  2. forwarding table을 가짐

4.4 가상 근거리 네트워크(VLAN)

  • 위 구조에서 스위치는 계층적으로 구성되어있음

위 구조의 3가지 단점

  1. 트래픽 격리의 부족
    계층 구조는 그룹 트래픽을 단일 스위치 내로 격리해주지만, 브로드캐스트 트래픽은 여전히 전체 네트워크로 전달되어야만 함
  2. 스위치의 비효율적인 사용
  3. 사용자 관리
    사원이 한 그룹에서 다른 그룹으로 이동하는 경우 이 사원을 다른 스위치에 연결하기 위해 물리적 케이블 연결을 변경해야만 함
  • 가상 근거리 네트워크를 지원하는 스위치(VLAN)를 사용해서 문제들을 해결할 수 있음

VLAN

  • VLAN을 지원하는 스위치는 하나의 물리적 근거리 네트워크 인프라스트럭처상에서 여러 개의 가상 근거리 네트워크들을 정의할 수 있음
  • 포트 기반 VLAN에서는 네트워크 관리자가 스위치 포트(인터페이스)를 그룹으로 나눔
    • 나뉜 각 그룹은 하나의 VLAN을 구성하며, 한 VLAN 포트들은 하나의 브로드캐스트 도메인을 형성함
    • 같은 그룹의 다른 포트에만 브로드캐스트 트래픽을 전달할 수 있음

EE학과와 CS학과 교수의 일부가 별도의 건물에 있을 때 스위치 어떻게 연결할 수 있을까?

  • VLAN의 스위치 포트를 외부 라우터에 연결학 이 포트를 EE VLAN과 CS VLAN에 모두 속하게 구성

VLAN 트렁킹

  • VLAN 스위치들을 연결하는 좀 더 확장 가능한 방법
  • 스위치 마다 하나의 특수 포트가 2개의 VLAN을 연결하는 트렁크 포트(trunk port)로 구성되어 있음
  • 그러나, 트렁크 포트로 온 프레임이 어떤 VLAN에 속하는지 알 수 없음
    -> VLAN 태그로 해결

VLAN 태그 (tag)

  • 프레임이 속한 VLAN을 식별해주는 4바이트 태그
  • VLAN 트렁크의 송신 측의 스위치에 의해 추가되고, 수신 측에 있는 스위치에 의해 파싱되고 제거됨

0개의 댓글