데이터링크 계층
데이터링크 계층의 서비스 이해
- 오류 검출 및 정정 (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
- 헤더 필드를 추가하여 데이터그램을 프레임으로 캡슐화
- 출발지, 목적지 구분을 위해 프레임 헤더에 MAC(medium access control) 주소 포함한다.
- 비트오류가 낮은 링크에는 통상 적용하지 않는다. (예: 광섬유, twisted pair)
- 무선 링크와 같이 높은 오류율을 갖는 링크에 적용한다.
- Q: why both link-level and end-end reliability?
- 신호약화나 잡음 (noise)에 기인한 오류
- 수신 노드에서 오류 검사를 통하여 검출한다.
링크 계층의 구현 위치
- 링크 계층은 호스트의 네트워크 인터페이스 카드(NIC: Network Interface Card) 또는 네트워크 어댑터(network adaptor)라고도 한다.
- 이더넷 카드, 802.11 카드, 이더넷 칩셋
- 링크, 물리계층 구현한다.
- 호스트 시스템의 버스에 연결한다.
- 하드웨어, 소프트웨어, 펌웨어의 결합으로 구성한다.
네트워크 어댑터(adaptor) 통신
- 데이터그램을 프레임으로 캡슐화
- 오류 검출 비트 등을 추가, rdt, 흐름 제어
- 오류, rdt, 흐름 제어 등을 조사
- 데이터그램을 추출하여 상위 계층으로 전달
오류 검출 및 정정 (Error detection and correction)
- 프로토콜이 일부 오류는 검출 못할 수 있지만, 대부분 검출
- 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:
- 단 하나의 노드가 전송을 할 때는 R bps의 처리율로 전송
- M개의 노드가 전송 시에는 평균 R/M bps전송률의 처리율로 전송
- 프로토콜은 분산(decentralized)되어 있음
- 전송을 조정하는 특별한 노드 없음
- 클럭, 슬롯 등의 동기화 없음
- 프로토콜은 단순
다중 접속 프로토콜 분류
크게 세 가지 부류의 프로토콜
- 채널 분할 프로토콜 (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
- 어댑터(NIC)는 네트워크 계층 으로부터 데이터그램을 받아서 이더넷 프레임을 생성
- 채널이 유휴(idle)하면 프레임 전송을 시작, 채널이 바쁘면 (busy)채널이 유휴 (idle)할 때까지 기다림
- 어댑터가 전체 프레임을 전송하는 동안 다른 어댑터의 전송 신호가 감지되지 않았으면 프레임 전송 완료
- 전송 중 다른 어댑터의 전송 신호가 감지되면 프레임 전송을 중단하고 잼 신호(j am signal)를 전송
- 중단 후 어댑터는 이진 지수적 백오프(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) 주소
- 네트워크 계층 주소
- 계층 3(네트워크 계층)에서 패킷을 전달하는데 사용
- LAN 주소, 물리 주소, 이더넷 주소
- 프레임을 한 인터페이스에서 물리적으로 연결된 다른 인터페이스로 전달하는데 사용
- Source Mac 주소와 Desitination Mac 주소가 데이터에 들어간다.
- 48비트 MAC주소 (대부분의 LAN)
- NIC ROM에 저장
- 일부는 소프트웨어적으로 세팅
- e.g.: 1A-2F-BB-76-09-AD
- : - 둘다 사용 가능하다.
LAN 주소
LAN 상의 각 어댑터는 고유의 LAN 주소(MAC 주소)를 가진다.
- 제조사는 MAC 주소 영역을 구매
- 어댑터마다 고유의 주소 할당
- MAC 주소의 첫 24비트는 제조사 코드, 나머지 24비트는 제조사에서 부여
- 어댑터의 위치에 관계 없이 고정
- 주소는 노드가 부착된 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
- 송신자, 수신자의 클록을 동기화하기 위해 사용
- 어댑터의 주소가 목적지 주소와 같으면 프레임 수신하여 데이터를 네트워크 계층 프로토콜에 전달
- 목적지 주소가 같지 않으면 프레임을 버림
- 상위 계층 프로토콜 표시
- 대부분 IP지만, Novell IPX, AppleTalk 등도 가능
- 수신 어댑터에서 프레임 오류 검출
- 오류 발생시 프레임 버림
이더넷: 비신뢰적인 비연결형 서비스 Unreliable, Connectionless Service
ACK ACKnowledgement: 수신확인
NACK Negative: 몇 번을 받지 못했다라고 할 때 사용하는 것
- 수신 NIC는 ACK, NACK를 송신 NIC에 보내지 않음
- 네트워크 계층에 전달되는 데이터그램들 중 일부가 누락될 수 있음: Datalink Layer에서는 데이터 누락을 신경쓰지 않는다. Transport Layer에서 커넥션을 해놨기 때문에 Transport Layer에서 데이터 누락을 관리한다.
- 애플리케이션이 TCP를 사용한다면 누락된 데이터그램은 채워짐
- TCP를 사용하지 않는 경우 애플리케이션은 데이터를 손실
이더넷 표준
- 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까지 프레임을 포워드하는 것을 어떻게 알 수 있을까?
Self-learning multi-switch example
기관 네트워크 Institutional network
Switches VS routers
- 둘 다 저장 후 전달(store and forward) 패킷 스위치
- 라우터: 네트워크 계층 장치 (네트워크 계층 헤더 조사)
- 스위치: 링크 계층 장치(링크 계층 헤더 조사)
- 둘 다 테이블 관리
- 라우터는 라우팅 알고리즘, IP 주소를 사용하여 테이블을 계산
- 스위치는 프레임의 Source MAC 주소를 사용하여 테이블이 학습