1. 링크 계층 소개
- 노드: 링크 계층 프로토콜을 실행하는 장치
- ex) 호스트, 라우터, 스위치, wifi AP
- 링크: 통신 경로상의 인접한 노드들을 연결하는 통신 채널
- 한 링크에서 전송 노드는 데이터그램을 링크 계층 프레임으로 캡슐화해서 링크로 전송함
1.1 링크 계층이 제공하는 서비스
링크 계층 프로토콜이 제공할 수 있는 서비스
프레임화
- 거의 모든 링크 계층 프로토콜은 네트워크 계층 데이터그램을 링크상으로 전송하기 전에 링크 계층 프레임에 캡슐화함
- 프레임: 네트워크 계층 데이터그램이 들어있는 데이터 필드와 여러개의 헤더 필드로 구성
링크 접속
- MAC 프로토콜은 링크상으로 프레임을 전송하는 규칙에 대해서 명시
신뢰적 전달
- 링크 계층 프로토콜이 신뢰적 전달 서비스를 제공하는 경우 네트워크 계층 데이터그램은 링크상에서 오류 없이 전달됨
- TCP와 같은 일부 트랜스포트 계층 프로토콜에서는 신뢰적 전달 서비스를 제공
오류 검출과 정정
- 오류가 있는 데이터그램은 전달할 필요가 없으므로 대부분의 링크 계층 프로토콜은 오류를 검출하는 방법을 제공함
- 오류 검출은 송신 노드에서 프레임에 오류 검출 비트를 설정하게 하고 수신 노드에서 오류 검사를 수행하게 함으로써 가능
1.2 링크 계층이 구현되는 위치
- 링크 계층은 네트워크 인터페이스 카드(network interface card, NIC)로 알려진 네트워크 어댑터(net-work adapter)에 구현됨

3. 다중 접속 링크와 프로토콜
두 종류의 네트워크 링크
- 점대점 링크
- 링크의 한쪽 끝에 한 송신자와 링크의 다른 쪽 끝에 한 수신자가 있음
- PPP, HDLC
- 브로드캐스트 링크
- 동일한 하나의 공유된 브로드캐스트 채널에 다수의 송신 노드 및 수신 노드들이 연결됨
- 브로드캐스트: 임의의 한 노드가 프레임을 전송하면 그 채널이 그 프레임을 broadcast해서 다른 모든 노드들이 그 프레임의 복사본을 수신하는 것
- 이더넷, 무선 랜
다중 접속 문제
- 다수의 송수신 노드들의 공유되는 브로드캐스트 채널로의 접속을 조정하는 문제
- 2개 이상의 노드가 동시에 프레임을 전송하면 모든 노드는 동시에 여러 개의 프레임을 받게 되고 충돌이 발생
- 충돌에 관련된 모든 프레임은 손실되며 브로드캐스트 채널은 충돌 기간만큼 낭비됨
다중 접속 프로토콜
- 공유되는 브로드캐스트 채널로 보내는 노드들의 전송을 조정하기 위한 프로토콜
- 즉, 다수의 노드가 활성화되어 있을 때 브로드캐스트 채널이 제대로 동작하도록 보장하기 위해 활성 노드들의 전송을 조정
- 채널 분할 프로토콜
- 랜덤 접속 프로토콜
- 순번 프로토콜
3.1 채널 분할 프로토콜
1. 시분할 다중화 (TDM)
- 시간을 시간 프레임으로 나누고 각 시간 프레임을 N개의 시간 슬롯으로 나눔
- 각 시간 슬롯은 N개의 노드에게 각각 할당되고, 노드는 전송할 패킷이 있을 때마다 TDM 프레임에서 자신에게 할당된 시간 슬롯 동안 패킷 비트들을 전송함
장점
단점
- 전송할 패킷이 있는 노드가 단 하나인 경우에도 노드 전송률이 평균 R/N으로 제한됨
- 노드가 전송 순서상 자신의 차례를 항상 기다려야함
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)
- 위 두 프로토콜에서는 다른 노드의 활성 여부와 무관하게 전송 여부를 결정함
충돌시간을 줄이기 위한 규칙
- 캐리어 감지 (carrier sensing)
- 만일 다른 노드가 프레임을 채널로 전송하고 있으면, 노드는 임의의 짧은 시간 동안 전송 중단을 감지하면 프레임을 전송하기 시작함
- 충돌 검출(collision detection)
- 만일 다른 노드가 방해 프레임을 전송하고 있음을 검출하면, 자신의 전송을 중단하고 랜덤 시간 동안 기다린 후 유휴 시 감지 및 전송과정을 반복함
CSMA 충돌
- 채널 전파 지연(channel propagation delay): 신호가 채널의 한쪽 끝에서 다른 쪽 끝으로 전파되는데 걸리는 시간이 CSMA의 성능을 결정하는데 중요한 역할을 함
- 전파 지연이 길수록 네트워크의 다른 노드에서 이미 시작된 전송을 캐리어 감지 노드가 감지할 수 없는 경우가 더 증가함
CSMA/CD (Carrier Sense Multiple Access with Collision Detection)
- CSMA/CD는 충돌을 검출한 뒤에 두 노드가 바로 자신의 전송을 취소(abort)함
동작 과정
- 어댑터는 네트워크 계층으로부터 데이터그램을 받아서 링크 계층 프레임을 만든 후에 그 프레임을 어댑터 버퍼에 저장함
- 어댑터는 채널이 유휴(idle) 상태임을 감지하면 프레임 전송을 시작함
만일 어댑터가 채널이 바쁜(busy) 상태임을 감지하면, 어떤 신호 에너지도 감지되지 않을 때까지 더 기다렸다가 프레임을 전송하기 시작함
- 전송하는 동안 어댑터는 브로드캐스트 채널을 사용하는 다른 어댑터로부터의 신호 에너지가 있는지 감시함
- 프레임 전체를 전송하는 동안 다른 어댑터로부터의 신호 에너지가 감지되지 않으면, 프레임 전송을 완료함
그러나, 전송 도중에 다른 어댑터로부터의 신호 에너지를 감지하면, 자신의 프레임 전송을 취소함
- 어댑터는 전송 취소 후 임의의 랜덤 시간만큼 기다린 후 (동일한 고정시간동안 기다리면 계속 충돌하므로) 2단계로 돌아감
랜덤 백오프 시간 간격
- 이진 지수적 백오프 알고리즘
- 충돌을 n번 경험한 프레임을 전송할 때 노드는 {0,1,2,...,2^n-1} 중에서 랜덤하게 K값을 선택
- 프레임이 충돌을 더 많이 경험할수록 K를 선택할 간격을 크게함
CSMA/CD의 효율
- d_prop: 신호 에너지가 임의의 두 어댑터 사이에서 전파되는데 걸리는 최대 시간
- d_trans: 최대 크기의 이더넷 프레임을 전송하는 데 걸리는 시간
효율=1/(1+5dprop/dtrans)
3.3 순번 프로토콜
다중 접속 프로토콜에서 요구되는 두가지 특성
- 단 하나의 노드만이 활성이면 Rbps의 처리율을 가짐
- 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 주소를 가지지 않음
- 어댑터의 MAC 주소는 평면 구조를 가지며 어댑터의 위치에 따라 변경되지 않음
- <-> IP 주소는 계층 구조를 가지며 호스트가 이동하면 변경됨
- 랜상의 다른 모든 어댑터가 자신이 전송한 프레임을 수신하고 처리하기를 원할 때 프레임의 목적지 주소 필드에 MAC 브로드캐스트 주소를 넣음
ARP (Address Resolution Protocol)
- 네트워크 계층 주소와 링크 계층 주소 사이의 변환을 해주는 프로토콜
- ARP 모듈은 입력값으로서 동일한 랜상의 임의의 IP 주소에 대해 대응되는 MAC 주소를 돌려줌
- 호스트와 라우터는 자신의 메모리에 ARP 테이블을 갖고 있음
- IP 주소-MAC 주소 매핑 정보, 각 매핑이 언제 삭제되는지 나타내는 TTL 값을 포함
- ARP는 플러그 앤 플레이= ARP 테이블은 자동으로 구축됨
4.2 이더넷
- 오늘날 가장 우세한 랜 기술
- 인터넷은 글로벌 네트워킹, 이더넷은 근거리 네트워킹
성공한 이유
- 처음으로 널리 사용된 고속랜
- 토큰링과 FDDI, ATM은 이더넷보다 복잡하고 비쌈
- 높은 데이터율로 경쟁
- 이더넷 하드웨어가 저렴
발전 과정
- 1980년대
- 버스 토폴로지의 이더넷은 브로드캐스트 랜을 전송되는 모든 프레임은 버스에 연결된 모든 어댑터를 거치며 이들에 의해 처리됨
- 1990년대
- 허브 기반의 스타 토폴로지
- 허브는 프레임이 아닌 각각의 비트에 대한 처리를 하는 물리 계층 장치
- 2000년대
이더넷 프레임 구조
- 송신 어댑터는 IP 데이터그램을 이더넷 프레임에 캡슐화하고 그 프레임을 물리 계층으로 전달

- 데이터 필드 (46~1500바이트)
- 목적지 주소 (6바이트)
- 출발지 주소 (6바이트)
- 프레임을 랜으로 전송하는 어댑터의 MAC 주소
- 타입 필드 (2바이트)
- 네트워크 계층 프로토콜을 이더넷으로 하여금 다중화하도록 허용
- 순환 중복 검사(CRC) (4바이트)
- 수신 어댑터가 프레임에 오류가 생겼는지 검출할 수 있도록 함
- 프리앰블 (8바이트)
- 프리앰블의 첫 7바이트는 10101010 값을 갖고 마지막 바이트는 10101011
- 프리엠블의 첫 7바이트는 수신 어댑터를 깨우고, 수신자의 클록을 송신자의 클록과 동기화하는 역할을 함
- 8번째 바이트의 마지막 두비트는 수신 어댑터에게 중요한 것이 오고 있음을 알려줌
- 모든 이더넷 기술은 네트워크 계층에게 비연결형 서비스, 비신뢰적인 서비스를 제공함
이더넷 기술
- 이더넷은 초기에는 동축케이블의 일부로 여겨졌는데 이는 브로드캐스트 매체로 간주하는 것과 일치
- 한 인터페이스에서 전송된 모든 프레임이 다른 모든 인터페이스에 의해 수신되고, 이더넷의 CSMA/CD 프로토콜이 다중 접근 문제(프레임 충돌)를 해결
- 하지만, 오늘날의 이더넷은 초기 이더넷과 상당히 많이 달라짐
- 스위치 기반 이더넷 랜에는 충돌이 없으며 MAC 프로토콜이 필요 없음
4.3 링크 계층 스위치
- 스위치의 역할은 들어오는 링크 계층 프레임을 수신해서 출력 링크로 전달하는 것
- 스위치는 그 자체가 서브넷의 호스트와 라우터들에게 투명함
- 즉, 호스트/라우터는 중간에 스위치가 프레임을 받아서 다른 노드에게 전달하는 것을 알지 못함
- 스위치 출력 인터페이스는 버퍼를 갖고 있음
전달(forwarding) 및 여과(filtering)
- filtering: 프레임을 인터페이스로 전달할지 또는 폐기(drop)할지 결정하는 스위치의 기능
- forwarding: 프레임이 전송될 인터페이스를 결정하고 프레임을 해당 인터페이스로 내보내는 기능
- filtering, forwarding에는 스위치 테이블을 사용함
자가학습
- 스위치가 자신의 테이블을 자동으로, 동적으로, 자치적으로 구축하는 것
- 스위치는 네트워크 관리자나 사용자의 개입을 요구하지 않으므로 플러그 앤 플레이 장치
과정
- 스위치 테이블은 초기에 비어있음
- 인터페이스로 수신한 각 프레임에 대해 스위치는 (1) 프레임의 출발지 주소 필드에 있는 MAC 주소, (2) 프레임이 도착한 인터페이스, (3)현재 시간을 테이블에 저장함
- 수명 시간(aging time)이 지난 후에도 스위치가 해당 주소를 출발지 주소로 하는 프레임을 수신하지 못하면 테이블에서 이 주소를 삭제함
링크 계층 스위치의 특성
- 충돌 제거
- 스위치로 구축된 랜에는 충돌로 인해 낭비되는 대역폭이 없음
- 브로드캐스트 링크를 사용하는 랜보다 성능이 월등히 향상
- 이질적인 링크들
- 링크들을 별개로 분리하기 때문에 랜의 각 링크는 상이한 속도로 동작할 수 있으며 상이한 매체를 사용할 수 있음
- 관리
- 스위치는 향상된 보안을 제공할 뿐만 아니라 네트워크 관리를 쉽게 할 수 있게 함
스위치 대 라우터
- 일반적으로, 작은 네트워크는 트래픽이 지역적으로 제한되어 있고 IP 주소의 구성을 요구하지 않으면서도 총 처리율을 증가시키므로 스위치로도 충분함
- 그러나 보통 수천 개의 호스트로 구성된 큰 네트워크에서는 라우터도 포함
스위치
- 저장후 전달 패킷 스위치이지만 MAC 주소를 사용해서 패킷을 전달
- 2계층 패킷 스위치
라우터
- 네트워크 계층 주소를 사용해서 패킷을 전달하는 저장 후 전달(store-and-forward) 패킷 스위치
- 3계층 패킷 스위치
공통점
- store-and-forward
- forwarding table을 가짐
4.4 가상 근거리 네트워크(VLAN)

위 구조의 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 트렁크의 송신 측의 스위치에 의해 추가되고, 수신 측에 있는 스위치에 의해 파싱되고 제거됨