computer science

데이터링크 계층

woalsrh 2023. 1. 19. 17:46

데이터링크 계층의 서비스 이해

  • 오류 검출 및 정정 (error detection, correction)
  • 브로드캐스트 채널의 공유 (sharing a broadcast channel): 다중 접속(multiple access)
  • 링크 계층 주소 체계 (link layer addressing)
  • 근거리 네트워크 (local area networks): Ethernet

용어

  • Hosts and routers: 노드 (nodes)
  • 통신 경로상의 인접한 노드들(adjacent nodes)을 연결하는 채널: 링크 (links)
    • wired links (유선 링크)
    • Wireless links (무선 링크)
    • LANs
  • Layer-2 packet: 프레임 (frame), 네트워크 계층 데이터그램을 캡슐화

 데이터링크 계층은 링크를 통해 하나의 노드에서 물리적으로 인접한 노드로 데이터그램을 전송하는 역할을 한다.

 

  • 경로 상의 각 링크에서 서로 다른 링크 계층 프로토콜로 데이터 그램 전송:
    • 예: 첫 번째 링크의 이더넷, 중간 링크의 프레임 릴레이, 마지막 링크의 802.11
  • 각 링크 프로토콜은 서로 다른 서비스 제공
    • 예: 링크 상에서 신뢰적인 데이터 전달을 제공할 수도 안할수도 있음.

☆ transportation analogy (교통운송비유):

  • trip from Princeton to Lausanne
    • limo: Princeton to JFK 
    • plane: JFK to Geneva
    • train: Geneva to Lausanne
    • limo, plane, train과 같은 교통편들은 계층 프로토콜이라고 할 수 있다.
  • Tourist (여행객) = datagram (데이터그램)
  • Transport segment (교통편) = communication link (통신 링크)
  • Transportation mode (운송방식) = link layer protocol (링크 계층 프로토콜)
  • Travel agent (여행사직원) = routing algorithm (라우팅 프로토콜)
  • 라우터까지 host가 직접 전송해야하기 때문에 Link layer는 모든 host에 존재한다.
  • 라우터까지 데이터를 보낼 때 IP address를 사용할 수 없음 → MAC address가 필요하다.
    • 예: 편지를 쓸때, 받는 사람의 주소와 우체국의 주소는 다름 → 받는 사람의 주소 : host, 우체국의 위치 : router
  • 프리스턴에서 로잔까지의 여행으로 비유해보면
    • 프리스턴에서 JFK까지는 리무진을 타고
    • JFK에서 제네바까지는 비행기를
    • 제네바에서 로잔까지 기차를 타고 감
    • 관광객 = 데이터 그램
    • 교통편 = 커뮤니케이션 링크
    • 운송 방식 = 링크 계층 프로토콜
    • 여행사 = 라우팅 프로토콜

링크 계층 서비스 Link layer services 

프레임화 (framing), 링크 접속 (link access)
  • 헤더 필드를 추가하여 데이터그램을 프레임으로 캡슐화
  • 출발지, 목적지 구분을 위해 프레임 헤더에 MAC(medium access control) 주소 포함한다.
신뢰적 전달 (reliable delivery between adjacent nodes)
  • 비트오류가 낮은 링크에는 통상 적용하지 않는다. (예: 광섬유, twisted pair)
  • 무선 링크와 같이 높은 오류율을 갖는 링크에 적용한다.
    • Q: why both link-level and end-end reliability?
오류 검출 / 정정 (error detection / correction)
  • 신호약화나 잡음 (noise)에 기인한 오류
  • 수신 노드에서 오류 검사를 통하여 검출한다.

링크 계층의 구현 위치

  • 링크 계층은 호스트의 네트워크 인터페이스 카드(NIC: Network Interface Card) 또는 네트워크 어댑터(network adaptor)라고도 한다.
    • 이더넷 카드, 802.11 카드, 이더넷 칩셋
    • 링크, 물리계층 구현한다.
  • 호스트 시스템의 버스에 연결한다.
  • 하드웨어, 소프트웨어, 펌웨어의 결합으로 구성한다.

네트워크 어댑터(adaptor) 통신

송신측 (sending side)
  • 데이터그램을 프레임으로 캡슐화
  • 오류 검출 비트 등을 추가, rdt, 흐름 제어
수신측 (receiving side)
  • 오류, rdt, 흐름 제어 등을 조사
  • 데이터그램을 추출하여 상위 계층으로 전달

오류 검출 및 정정 (Error detection and correction)

EDC = 오류 검출 및 정정 비트 (부가된 비트)
D = 오류로부터 보호되는 데이터, 헤더 필드를 포함할 수도 있다.
100% 오류 검출은 아니지만 신뢰할만한 수준
  • 프로토콜이 일부 오류는 검출 못할 수 있지만, 대부분 검출
  • EDC 필드가 크면 클수록 검출 및 정정이 더 우수해짐

패리티검사 (Parity checking)

단일 비트 패리티

  • 단일 비트 오류 검출
  • 홀수 패리티 예

2차원 비트 패리티

  • 단일 비트 오류를 검출하고 정정
  • 짝수 패리티 예

인터넷 체크섬 (Internet checksum)

goal: 체크섬은 전송된 세그먼트의 오류를 검출 (트랜스포트 계층에서 사용)

 

sender

  • 세그먼트의 값을 16비트 정수의 열로 간주
  • 세그먼트 값들을 더한 값의 1의 보수
  • 송신자는 UDP의 체크섬 필드에 삽입

receiver

  • 수신된 세그먼트의 체크섬 계산
  • 계산된 체크섬 값과 체크 필드 값이 같은가를 비교
    • NO - error detected
    • YES - no error detected. But maybe errors nonetheless?

다중 접속 링크와 프로토콜 (Multiple access links, protocols)

두 종류의 네트워크 링크 (links)

  • 점대점 링크 (point-to-point)
    • 다이얼업 접속의 PPP (PPP for dial-up access)
    • 이더넷 스위치와 호스트 사이의 점대점 링크 (point-to-point link between Ethernet switch, host)
  • 브로드캐스트 (broadcast)
    • 공유 매체 (shared medium)
    • 이전의 이더넷 (old-fashioned Ethernet)
    • 802.11 무선랜 (802.11 wireless LAN)

다중 접속 프로토콜

  • 단일 공유 브로드캐스트 채널 (single shared broadcast chanel)을 통해 노드에 전송
  • 둘 이상의 노드가 동시에 전송
    • 노드가 동시에 둘 이상의 신호를 수신하면 충돌(collision) 발생
  • 다중 접속 프로토콜 (multiple access protocol)
    • 노드가 채널을 공유하는 방법 – 예를 들어 전송 시점 등 을 결정하는 분배 알고리즘
    • 채널 공유를 위한 통신에도 채널을 사용
      • 조정을 위한 별도의(out-of-band) 채널은 없음

이상적인(Ideal) 다중 접속 프로토콜

given: R bps의 전송률을 갖는 브로드캐스트 채널

desiderata:

  1. 단 하나의 노드가 전송을 할 때는 R bps의 처리율로 전송
  2. M개의 노드가 전송 시에는 평균 R/M bps전송률의 처리율로 전송
  3. 프로토콜은 분산(decentralized)되어 있음
    • 전송을 조정하는 특별한 노드 없음
    • 클럭, 슬롯 등의 동기화 없음
  4. 프로토콜은 단순

다중 접속 프로토콜 분류

크게 세 가지 부류의 프로토콜

  • 채널 분할 프로토콜 (channel partitioning)
    • divide channel into smaller “pieces” (time slots, frequency, code)
    • allocate piece to node for exclusive use
  • 랜덤 접속 프로토콜 (random access)
    • channel not divided, allow collisions
    • “recover” from collisions
  • 순번 프로토콜 (“taking turns”)
    • nodes take turns, but nodes with more to send can take longer turns

채널 분할 프로토콜: TDMA

TDMA: time division multiple access

  • 각 노드는 차례대로 고정된 길이의 시간 슬롯(time slot)을 획득하여 채널 접속
  • 시간 슬롯의 길이는 패킷 전송 시간
  • 사용되지 않는 슬롯은 쉬게 됨(idle)
  • 예: 6개 노드의 LAN
    • 1,3,4 슬롯은 패킷을 갖고, 2,5,6, 슬롯은 쉼

채널 분할 프로토콜: FDMA

FDMA: frequency division multiple access

  • 채널 스펙트럼이 주파수 밴드(frequency band)로 분할
  • 각 노드에 고정된 주파수 밴드 할당
  • 주파수 밴드를 사용하지 않는 시간은 쉬게 됨(idle)
  • 예: 6개 노드의 LAN
    • 1,3,4 슬롯은 패킷을 갖고, 2,5,6, 슬롯은 쉼

채널 분할 프로토콜 장단점

  • 장점: 시간이던지 주파수던지 n명의 사람들에게 1/n로 동등하게 나누어 준다.
  • 단점: 1, 3, 4는 사용하지만 2, 5, 6은 공평성때문에 쉬어서 자원을 낭비한다.

채널 분할 프로토콜: CDMA

  • 코드가지고 나눈다.

랜덤 접속 프로토콜

  • 랜덤 접속 프로토콜
    • 전송 노드는 항상 최대 전송률 R bps로 전송
    • 사전에 노드 간 조정 없음
    • 둘 이상의 노드들이 전송 → 충돌(collision)
  • 랜덤 접속 프로토콜은 다음 사항을 기술
    • 충돌을 감지하는 방법
    • 충돌 시 복구하는 방법
    • e.g., 지연 전송 등
  • 랜덤 접속 프로토콜 구현
    • 슬롯 알로하 (slotted ALOHA)
    • 알로하 (ALOHA)
    • CSMA, CSMA/CD, CSMA/CA

Slotted ALOHA

가정

  • 모든 프레임은 같은 크기를 가짐 (L 비트)
  • 시간은 같은 크기의 슬롯으로 분할 (L/R 초)
  • 노드는 슬롯의 시작점에서만 프레임을 전송
  • 각 노드는 슬롯의 시작을 알 수 있도록 동기화
  • 한 슬롯에서 둘 이상의 노드들이 충돌하면 모든 노드들이 충돌을 감지

동작

  • 노드는 전송할 새 프레임이 있으면 다음 슬롯에서 전송
  • 충돌이 없으면 노드는 다음 슬롯에서 새로운 프레임을 전송
  • 충돌이 발생하면 확률 p로 해당 프레임을 다음 슬롯에서 재전송

Pros (장점)

  • 하나의 활성 노드가 채널의 최대 속도로 R로 계속 전송한다.
  • 충돌 감지 및 재전송을 노드 각자가 결정하여 분산한다.
  • 노드들은 슬롯으로 동기화 필요하다.
  • 간단하다.

Cons (단점)

  • 활성 노드가 많으면 충돌로 인해 슬롯 낭비한다.
  • 확률적인 전송으로 전송을 억제하는 경우 빈 슬롯 발생한다.
  • 클럭 동기화

Slotted ALOHA: efficiency (효율성) 

효율성: 성공한 슬롯의 장기 실행 비율  (많은 노드, 보낼 프레임이 많은 노드)

  • N개 노드가 각 슬롯마다 확률 p로 많은 프레임들을 전송한다고 가정
  • 주어진 노드가 한 슬롯에서 전송에 성공할 확률 = p(1-p)^(N-1)
  • N-1개의 노드가 전송하지 않을 확률, (1-p)^(N-1)
  • 임의의 한 노드가 전송에 성공할 확률 = Np(1-p)^(N-1)
  • 최대 효율은 Np(1-p)^(N-1)을 최대화시키는 p*를 구하는 문제

Pure (unslotted) ALOHA

슬롯이 없이 완전히 분산된 프로토콜
  • 더 간단하고, 동기화 없음
프레임이 상위 계층에서 도착하면 바로 전송
충돌 확률 증가
  • t0 에 전송된 프레임은 [t0-1,t0+1]에서 다른 프레임과 충돌

심지어 슬롯 알로하보다 더 나쁘다.

Slotted ALOHA VS Unslotted ALOHA 비교

슬롯 알로하가 채널 효율성은 더 좋다.

슬롯 알로하는 퓨어 알로하보다 단점은 슬롯을 쓰는 것이다.

시간동기화가 필요하기 때문이다.

CSMA (carrier sense multiple access)

CSMA: listen before transmit

  • 전송 전에 채널 사용 여부 조사 (캐리어 감지, carrier sensing)
  • 채널이 쉬고 있으면 프레임 전송
  • 채널이 사용 중이면 전송을 연기 (백오프, back off)
  • 사람 대화 비유
    • 말하기 전에 듣고,
    • 다른 사람이 말하면 말을 중단

CSMA collisions

  • 충돌 발생
    • 채널의 전파 지연으로 두 노드가 다른 노드의 전송을 감지하지 못하는 경우 발생
  • 4개의 노드 A B C D ,B,C,D 공간시간 도표 예
    • t0에서 노드 B 전송 시작
    • 채널 전파 지연으로 시간 t1(t0<t1)에서 노드 D가 노드 B의 전송을 감지하지 못함
    • t1에서 노드 D 전송 시 충돌 발생

채널 효율성이 더 좋다고 볼 수 있지만 공평성은 더 안좋다고 할 수 있다.

CSMA/CD (collision detection)

CSMA/CD: carrier sensing, deferral as in CSMA

  • 캐리어 센싱되면 백오프
  • 짧은 시간 내에 충돌 검출
  • 충돌 시 전송을 중단하여 채널 낭비 줄임
  • 충돌 검출 (collision detection)
    • 유선LAN에서는 용이함 (easy in wired LANs): measure signal strengths, compare transmitted, received signals
    • 무선LAN에서는 어려움 (difficult in wireless LANs): received signal strength overwhelmed by local transmission strength
     

Ethernet CSMA/CD algorithm

  1. 어댑터(NIC)는 네트워크 계층 으로부터 데이터그램을 받아서 이더넷 프레임을 생성
  2. 채널이 유휴(idle)하면 프레임 전송을 시작, 채널이 바쁘면 (busy)채널이 유휴 (idle)할 때까지 기다림
  3. 어댑터가 전체 프레임을 전송하는 동안 다른 어댑터의 전송 신호가 감지되지 않았으면 프레임 전송 완료
  4. 전송 중 다른 어댑터의 전송 신호가 감지되면 프레임 전송을 중단하고 잼 신호(j am signal)를 전송
  5. 중단 후 어댑터는 이진 지수적 백오프(binary exponential backoff) 단계 진입
    • m번 충돌 후 어댑터는 {0,1,2,…,2^(m-1)} 중에서 임의의 K 값을 선택
    • m = min(m, 10)
    • 어댑터는 K·512 비트 시간을 기다렸다가 단계로 돌아감

“Taking turns” MAC protocols

채널 분할 다중 접속 프로토콜 (공정)

  • 높은 부하에서는 효율적이고 공정하게 채널 공유
  • 낮은 부하에서는 비효율적
    • 하나의 활성 노드에 대해서도 1/N 대역폭 할당
랜덤 접속 프로토콜 (효율)
  • 낮은 부하에서는 효율적
    • 단일 노드가 전체 채널 대역폭 사용
  • 높은 부하에서는 충돌 오버헤드

순번 프로토콜 (taking-turns protocol) (공정, 효율)

  • 두 가지의 장점을 취함
  • 폴링 프로토콜, 토큰 프로토콜

폴링 (polling)

  • 노드들 중 마스터 노드 지정
  • 마스터 노드는 차례대로(라운드 로빈 방식) 노드(슬레이브)들에게 전송하도록 폴링
    • 충돌과 빈 슬롯 없음
  • 단점
    • 폴링 오버헤드(overhead), Single point of failure
    • 지연(latency)
      • 다음 차례까지 기다림
    • 마스터 노드 고장 시 전체 채널
      • 동작 멈춤

토큰전달 (token passing)

  • 토큰(token)이 순서대로 노드들 간에 전달
    • 토큰은 작은 특수 목적 프레임
  • 전송할 프레임이 있을 때 노드는 토큰을 잡고, 아니면 다음노드로 전달
  • 단점
    • 토큰 오버헤드: 토큰이 왔다갔다하는 조금의 이동 시간
    • 지연
    • 노드 하나가 실패하면 전체 채널 동작 못함
     

다중 접속 프로토콜 요약

  • channel partitioning, by time, frequency or code
    • Time Division, Frequency Division
    • 채널 파티션이 더 적을 경우(?)
  • random access (dynamic),
    • ALOHA, S-ALOHA, CSMA, CSMA/CD
    • carrier sensing: easy in some technologies (wire), hard in others (wireless)
    • CSMA/CD used in Ethernet
    • CSMA/CA used in 802.11
    • 채널이 낮을 경우 더 좋다.
  • taking turns
    • polling from central site, token passing
    • Bluetooth, FDDI,  token ring

기관망 Institutional network

L2(Datalink Layer)에서는 라우터가 개입하지 않고도 메시지가 전달된다.

MAC (Media Access Control) 주소

IP 주소
  • 네트워크 계층 주소
  • 계층 3(네트워크 계층)에서 패킷을 전달하는데 사용
MAC (LAN, 물리, 이더넷) 주소
  • LAN 주소, 물리 주소, 이더넷 주소
  • 프레임을 한 인터페이스에서 물리적으로 연결된 다른 인터페이스로 전달하는데 사용
  • Source Mac 주소와 Desitination Mac 주소가 데이터에 들어간다.
  • 48비트 MAC주소 (대부분의 LAN)
    • NIC ROM에 저장
    • 일부는 소프트웨어적으로 세팅
    • e.g.: 1A-2F-BB-76-09-AD
    • : - 둘다 사용 가능하다.

LAN 주소

LAN 상의 각 어댑터는 고유의 LAN 주소(MAC 주소)를 가진다.

MAC 주소 할당은 IEEE가 관리
  • 제조사는 MAC 주소 영역을 구매
  • 어댑터마다 고유의 주소 할당
  • MAC 주소의 첫 24비트는 제조사 코드, 나머지 24비트는 제조사에서 부여
MAC 주소는 평면 주소 구조 (flat address)
  • 어댑터의 위치에 관계 없이 고정
IP 계층 주소
  • 주소는 노드가 부착된 IP 서브넷에 종속
  • 이동할 수 없다.
비유
  • MAC 주소: 주민등록번호, 개인마다 고정
  • IP 주소: 우편 주소, 이사 시 변경

ARP: address resolution protocol

Question: 노드의 IP주소로부터 어떻게 MAC 주소를 알 수 있을까?

A: 네트워크 계층 주소 (IP 주소)와 링크계층 주소 (MAC주소) 사이 간에 변환이 필요하다.

Network Layer는 IP address를 갖고 정보를 구분하고, Datalink Layer에서는  MAC으로 바꾸려면 ARP가 필요하다.

 

ARP table: LAN 상의 각 IP 노드 (호스트, 라우터) ARP 테이블을 가짐

  • IP/MAC address mappings for some LAN nodes:

< IP address; MAC address; TTL>

  • TTL (Time To Live): time after which address mapping will be forgotten (typically 20 min)

ARP 프로토콜 - 같은 LAN

노드 A가 B로 데이터그램을 전송하고, A의 ARP 테이블에 B의 MAC 주소 엔트리 없다.

 

1. A는 ARP 질의 패킷(query packet)을 브로드캐스트

  • 질의 패킷에는 B의 IP 주소 포함
  • 소스 MAC 주소 = A의 MAC 주소, 목적지 MAC 주소 = FF-FF-FF-FF-FF-FF, FF-...를 다 1로 세팅하면 브로드캐스트이다. 11111111-11111111-11111111-11111111-11111111-11111111로 세팅할 경우 브로드배스트
  • LAN 상의 모든 호스트가 ARP 질의를 수신

2. B는 ARP 질의 패킷을 수신하고, 응답 패킷(response packet)으로 A에게 응답 (ARP response)

  • 응답 패킷에는 B의 MAC 주소 포함
  • 소스 MAC 주소 = B의 MAC 주소, 목적지 MAC 주소 = A의 MAC 주소 → 유니캐스트

3. A는 B의 IP/MAC 주소를 시간 종료 시까지 ARP 테이블에 저장

 

ARP는 플러그 앤 플레이(plug-and-play)

- 노드의 ARP 테이블은 시스템 관리자 개입 없이 자동으로 구축

- USB가 플러그 앤 플레이로, 데이터를 보내고 싶을 때, 자동으로 세팅된다.

- 아무도 개입하지 않아도 자동으로 구축된다는 것이다.

ARP 프로토콜 - 다른 LAN으로 라우팅

walkthrough: send datagram from A to B via R

  • focus on addressing – at IP (datagram) and MAC layer (frame)
  • A는 B의 IP 주소를 알고 있다고 가정 : 가능한 이야기
  • A는 첫번째 홉 라우터의 IP 주소를 알고 있다고 가정 (어떻게?) : IP 주소가 할당되는 시점에 기존 게이트웨이의 주소도 할당되기 때문이다.
  • A는 R의 MAC 주소를 알고 있다고 가정 (어떻게?) : 자동으로 ARP 테이블을 가지고 있다고 가정 

하나의 서브넷, 하나의 LAN에서만 arp로 이동하는 것

111.111.111은 동일한 서브넷이다.

111.111.111 서브넷과 다른 서브넷에 보내려면 라우터에 보내서 라우터가 222.222.222 서브넷으로 보내준다.

  • A는 출발지 A, 목적지 B의 IP 데이터그램을 생성
    • A는 R의 MAC 주소가 목적지가 되는 링크계층 프레임을 생성
    • 프레임에는 A에서 B로 전달되는 IP 데이터그램이 포함

  • A는 R로 프레임을 송신
  • R의 NIC가 프레임을 수신
  • R은 프레임을 수신하여 IP 데이터그램을 추출하여 IP 계층으로 전달

  • R은 A의 데이터그램을 B로 전달(forward)
  • R은 A에서 B로 가는 IP 데이터그램이 포함되고, B의 MAC 주소를 갖는 링크 계층 프레임을 생성

  • R은 source IP A, destination IP B인 데이터그램을 송신
  • R은 A-to-B 데이터그램을, B의 MAC 주소를 destination MAC 주소를 갖는 frame을 생성하여 전송

  • R은 source IP A, destination IP B인 데이터그램을 송신
  • R은 A-to-B 데이터그램을, B의 MAC 주소를 destination MAC 주소를 갖는 frame을 생성하여 전송

이더넷 Ethernet

  • 오늘날 가장 많이 사용되는 LAN 기술
    • 1973년 Xerox 사의 Robert Mecalfe 고안
    • 1976년 Robert Mecalfe와 David Boggd 책 출간
  • 가격 저렴, 어댑터 20$
  • 토큰 LAN이나 ATM 보다 더 싸고 간단
  • 빠른 속도: 10 Mbps – 10 Gbps

이더넷: 물리 토폴로지 (Physical Topology)

  • 클래식 이더넷
    • 공유 버스
    • 버스 최대 길이: 500m
    • 전송 속도: 10Mb/s

  • 지금부터는 스타 토폴리지가 우세하다.
    • 연결 선택: 허브 또는 스위치(나중에 추가)
    • 고속 이더넷: 100Mb/s
    • 기가비트 이더넷: 1Gbps

  • 1990년대 중 까지 반까지 버스 토폴로지 사용
    • 모든 노드가 같은 충돌 영역 (노드가 서로 충돌할 수 있음)
  • 오늘날은 스타 토폴리지 사용
    • 중앙에 스위치 (switch)
    • 노드는 서로 충돌하지 않음: 내부적으로 지나가는 것이 아니기 때문에 충돌이 일어나는 것은 아님

이더넷 프레임 구조

  • 송신 어댑터는 IP 데이터그램을 이더넷 프레임으로 캡슐화 (데이터 필드의 크기는 46~1500 바이트)
 

프리앰블 (preamble):

  • 8 바이트의 프리앰블
  • 첫 7 바이트는 10101010, 마지막 바이트는 10101011
  • 송신자, 수신자의 클록을 동기화하기 위해 사용
주소 (addresses): 6 byte source, destination MAC addresses
  • 어댑터의 주소가 목적지 주소와 같으면 프레임 수신하여 데이터를 네트워크 계층 프로토콜에 전달
  • 목적지 주소가 같지 않으면 프레임을 버림
타입 (type):
  • 상위 계층 프로토콜 표시
  • 대부분 IP지만, Novell IPX, AppleTalk 등도 가능
CRC: cyclic redundancy check at receiver
  • 수신 어댑터에서 프레임 오류 검출
  • 오류 발생시 프레임 버림

이더넷: 비신뢰적인 비연결형 서비스 Unreliable, Connectionless Service

ACK ACKnowledgement: 수신확인

NACK Negative: 몇 번을 받지 못했다라고 할 때 사용하는 것

비연결형 서비스 (connectionless): 송신과 수신 어댑터 사이에 핸드셰이킹이 없음
비신뢰적인 서비스 (unreliable):
  • 수신 NIC는 ACK, NACK를 송신 NIC에 보내지 않음
  • 네트워크 계층에 전달되는 데이터그램들 중 일부가 누락될 수 있음: Datalink Layer에서는 데이터 누락을 신경쓰지 않는다. Transport Layer에서 커넥션을 해놨기 때문에 Transport Layer에서 데이터 누락을 관리한다.
  • 애플리케이션이 TCP를 사용한다면 누락된 데이터그램은 채워짐
  • TCP를 사용하지 않는 경우 애플리케이션은 데이터를 손실
이더넷 다중 접속 프로토콜은 슬롯이 없고 이진 백오프를 갖는 CSMA/CD

이더넷 표준

  • IEEE 802.3 표준
  • 많은 상이한 이더넷 표준
    • 공통의 다중접속 (MAC) 프로토콜과 프레임 형식
    • 다른 속도: 2 Mbps, 10 Mbps, 100 Mbps, 1Gbps, 10 Gbps, 40 Gbps
    • 다른 물리 계층 매체: 광섬유, 케이블

허브 Hub

  • 물리 계층 (“dumb”) 리피터
    • 한 링크에 들어오는 비트들이 같은 속도로 모든 다른 링크로 나감
    • 허브에 연결된 모든 노드들은 서로 충돌 가능
    • 프레임의 버퍼링 기능 없음

이더넷 스위치 Ethernet switch

  • 링크 계층 장치로 허브보다 더 똑똑하고 많은 기능
    • 이더넷 프레임을 저장하고 전달(Store and forward)
    • 입력되는 프레임의 MAC 주소를 조사하여 하나 이상의 링크에 선택적으로 전달
  • 투명 (transparent)
    • 호스트는 스위치의 존재를 인지하지 못함
  • 자가 학습 (self-learning), 플러그 앤 플레이
    • 스위치를 설정할 필요 없음

스위치 - 동시 다중 전송 지원

  • 호스트는 스위치에 직접 연결
  • 스위치는 패킷을 버퍼링
  • 스위칭
    • A-to-A’와 B-to-B’를 충돌 없이 동시에 스위칭

스위치 테이블 Switch Table

  • Q: 스위치가 인터페이스 4를 통해 A’에 도달하고, 인터페이스 5를 통해 B’에 도달한다는 사실을 어떻게 알 수 있는가?
  • A: 스위치는 스위치 테이블을 갖는다.
    • 스위치 테이블 엔트리: (호스트의 MAC 주소, 인터페이스, 시간)
    • 시간은 TTL로 일정시간이 지난 후 해당 주소의 프레임을 수신하지 못하면 삭제됨
  • Q: 스위치 테이블 엔트리는 어떻게 생성되고 관리 되는가?

스위치 - 자가학습 Self-learning

  • 스위치는 어느 인터페이스를 통해 호스트에 도달할 수 있는가를 학습
    • 프레임이 스위치에 도착했을 때 송신자의 위치를 학습
    • 송신자는 입력 랜 세그먼트 (incoming LAN segment)
    • 인터페이스에 연결된 랜에 있는 모든 노드
  • 스위치 테이블에 송신자/위치 쌍을 기록

A: Source, A': Dest

스위치: 프레임 필터링/포워딩

프레임이 스위치에 도착하면:

1. 송신 프레임을 수신한 인터페이스(incoming link) 및 송신 호스트의 MAC주소를 스위치 테이블에 저장

2. MAC 목적지 주소를 사용하여 스위치 테이블 검색

3. MAC 목적지 주소를 사용하여 스위치 테이블 검색

4. if 목적지의 엔트리가 있으면
  then {

     if 목적지가 송신프레임을 수신한 인터페이스와 동일한 인터페이스

        (=incoming link)에 위치하면 (=destination is on segment that frame arrived.)
       then 프레임을 버림

           else 엔트리에 의해 지정된 인터페이스로 프레임을 포워딩

       }  

      else 브로드캐스트 (broadcast, flood) 

         /* forward on all interfaces except arriving interface */

Self-learning, forwarding: example

  • 프레임의 목적지 A'을 모르면: flood(=broadcast)
  • 목적지 A'의 위치를 알면: 해당 링크로 선택적으로 전달

스위치 상호 연결 Interconnecting switches

self-learning switches can be connected together:

Q: A에서 G로 보내는 경우 S1이 S4와 S3를 경유하여 목적지 G까지 프레임을 포워드하는 것을 어떻게 알 수 있을까?

A: 자가학습 (단일 스위치의 경우와 동일)

Self-learning multi-switch example

기관 네트워크 Institutional network

Switches VS routers

  • 둘 다 저장 후 전달(store and forward) 패킷 스위치
    • 라우터: 네트워크 계층 장치 (네트워크 계층 헤더 조사)
    • 스위치: 링크 계층 장치(링크 계층 헤더 조사)
  • 둘 다 테이블 관리
    • 라우터는 라우팅 알고리즘, IP 주소를 사용하여 테이블을 계산
    • 스위치는 프레임의 Source MAC 주소를 사용하여 테이블이 학습