6.3.3 순번 프로토콜
다중 접속 프로토콜에서 요구되는 두 가지 특성
- 단 하나의 노드만 활성 ⇒ R bps 처리율
- M개의 노드가 활성 ⇒ R/M bps 처리율
알로하와 CSMA 프로토콜은 첫번째 특성은 지니고 있으나 두 번째 특성은 없음 ==→ 순번 프로토콜 개발
폴링 프로토콜(polling protocal)
노드 중 하나를 마스터 노드로 지정, 마스터 노드는 각 노드를 라운드 로빈 방식으로 폴링
(폴링 : 하나의 장치가 충돌 회피 또는 동기화 처리 등을 목적으로 다른 장치의 상태를 주기적으로 검사하여 일정 조건을 만족할 때 송수신 등 자료처리 하는 방식)
마스터 노드가 먼저 노드 1에게 최대 전송 프레임 수에 대한 정보를 지닌 메시지 전송 노드 1이 프레임들을 보낸 다음 마스터 노드는 노드 2에게 메시지 전송
마스터 노드는 순환적으로 각 노드를 폴링하는 방식으로 과정 반복 랜덤 접속 프로토콜의 단점인 빈 슬롯을 제거함으로써 높은 효율 제공
단점
- 폴링 지연 : 한 노드만 활성일 경우 그 노드가 프레임을 보낼때마다 비활성노드들을 폴링해아 하므로 전송률이 작아짐
- 마스터 노드가 고장나면 전체 채널이 동작하지 못함
중앙 집중형 방식
토큰 전달 프로토콜
마스터 노드 없이 토큰이라는 작은 특수 목적 프레임이 정해진 순서대로 노드간에 전달
노드 1 → 노드 2 → … 노드 N → 노드 1 순서로 토큰 전송
노드가 토큰을 수신하면 → 데이터를 전송할 수 있게 됨 → 전송할 프레임이 있을경우에만 토큰을 붙잡음, 전송한 뒤 토큰을 다음 노드로 전달 → 없을 경우 : 토큰을 즉시 다음 노드로 전달
문제점
- 노드 하나가 실패하면 전체 채널이 동작하지 않음
- 노드가 잘못해서 토큰을 놓아주지 않으면 토큰이 다시 돌 수 있도록 하는 회복 절차가 실행되어야 함 (어떤 노드가 계속 토큰 붙잡고 data를 보내면 다른 노드들은 계속 기다려야돼서)
분산 방식
6.3.4 DOCSIS : 케이블 인터넷 접속을 위한 링크 계층 프로토콜
케이블 접속 네트워크
수천개의 케이블 모뎀을 케이블 네트워크 헤드엔드에 있는 케이블 모뎀 종단 시스템(CMTS)에 연결
DOCSIS(Data-Over-Cable Service Interface Specifications)
케이블 데이터 네트워크 구조와 프로토콜 정의
네트워크 세그먼트들을 다수의 주파수 채널로 나누기 위해 FDM 사용
하향채널 : 25192 MHz 대역에 약 1.6 Gbps 의 최대 처리율 제공
상향채널 : 6.496 MHz 대역에 약 1 Gbps 의 최대 상향 처리율 제공
상향 및 하향 채널 : 프로드캐스트 채널
하향채널로 전송된 프레임 : 채널을 통해 수신하는 모든 케이블 모뎀에 의해 수신 상향 : 다수의 케이블 모뎀이 CMTS로의 동일한 상향 채널을 공유하고 충돌이 발생할 수 있음
상향 채널 → 시간간격으로 나뉨, 각 시간 간격은 미니슬롯들로 구성
CMTS : 개별 케이블 모뎀이 특정 미니슬롯에 전송할 수 있도록 허락, 하향채널상으로 제어 메시지를 보냄으로써 어떤 케이블 모뎀이 MAP 메시지에서 명시한 시간 간격 동안 어떤 미니슬롯으로 전송할 수 있는지 알려줌
어떤 케이블 모뎀이 전송할 데이터가 있는지 어떻게 아는가? 케이블 모뎀이 이 용도로 할당된 특정 미니슬롯들을 사용해 미니슬롯요청 프레임을 CMTS에 전송함으로써 가능해짐 미니슬롯 요청 프레임은 랜덤 접속 방식으로 전송되기 때문에 충돌 발생 가능
==즉, 케이블 모뎀은 상향 채널의 사용 여부 감지나 충돌 검출을 수행하지 않는다
대신 요청된 할당에 대한 응답을 다음 하향 제어메시지에서 수신하지 못하면 미니슬롯 요청 프레임이 충돌됐다고 추정함 → 미니슬롯 요청프레임 재전송 지연을 위해 이진 지수적 백오프 사용 상향 채널에 트래픽이 거의 없는 경우? 미니 슬롯 요청 프레임을 위해 할당된 슬롯에 데이터 프레임 전송
6.4 스위치 근거리 네트워크
스위치는 링크 계층에서 동작함 → 링크 계층 프레임을 교환하고 네트워크 계층 구조를 인식하지 않으며 2계층 스위치들로 구성된 네트워크 경로를 결정하는데 OSPF같은 라우팅 알고리즘을 사용하지 않음 링크 계층 프레임 전달을 위해 링크 계층 주소 사용
6.4.1 링크 계층 주소체계와 ARP
호스트와 라우터 → 링크 계층 주소, 네트워크 계층 구조를 모두 가짐 ARP (Address Resolution Protocol): IP주소를 링크 계층 주소로 변환
MAC 주소
실제로 링크 계층 주소를 가진 것 → 호스트나 라우터의 어댑터(네트워크 인터페이스) 링크 계층 스위치는 호스트나 라우터를 연결해주는 인터페이스에 링크 계층 주소를 할당받지 않음 : 호스트와 라우터 간에 데이터그램을 전달하는 일을 하기 때문
링크 계층 주소 : 랜 주소, 물리 주소, MAC 주소라고 알려져 있음
MAC 주소 : 길이 6바이트( 2^48개만큼 사용 가능한 랜주소), 16진수로 표시, 주소의 각 바이트는 2개의 16진수로 표시, 영구적이도록 설계(현재는 소프트웨어를 사용해서 변경 가능)
특징
- 어떤 어댑터도 동일한 주소를 갖지 않음
- IEEE가 MAC 주소 공간을 관리하기 때문
MAC 주소
- 평면 구조
- 어댑터의 위치에 따라 변경되지 않음 IP 주소
- 계층 구조
- 호스트의 IP 주소는 호스트가 이동하면 변경되어야 함
어댑터가 프레임을 목적지 어댑터로 전송 → 송신 어댑터 : 프레임에 목적지 어댑터의 MAC 주소를 넣고 그 프레임을 랜상으로 전송
스위치는 종종 프레임을 자신의 모든 이넡페이스로 브로드캐스트 → 어댑터는 자신을 목적지로 하지 않는 프레임을 수신할 수도 있음 → 어댑터는 프레임을 수신할 때 프레임 안의 목적지 MAC 주소가 어댑터 자신의 MAC 주소와 일치하는지 검사 → 일치한다면 ? 데이터그램을 추출하고 프로토콜 스택의 위쪽으로 전달 → 일치하지 않는다면? 전달하지 않고 프레임 폐기, 목적지 노드만 인터럽트
송신 어댑터가 랜상의 다른 모든 어댑터가 자신이 전송한 프레임을 수신하고 처리하기 원할때 → 프레임의 목적지 주소 필드에 ==특수한 MAC 브로드캐스트 주소를 삽입
ARP(Address Resolution Protocol)
네트워크 계층 주소(IP)와 링크 계층 주소(MAC주소)를 변한하는 역할
- IP 주소 222.222.222.220 → 222.222.222.222 로 IP데이터 그램을 전송하려고 할 때
- 출발지와 목적지 노드가 동일한 서브넷에 존재
- 출발지 노드는 자신의 어댑터에게 목적지 MAC wnth wprhd
- 송신 어댑터는 목적지의 MAC 주소가 포함된 링크 계층 프레임을 구성해 그 프레임을 랜으로 전송
송신 호스트가 목적지 호스트의 MAC 주소를 결정하는 방법? → ARP
- 송신 호스트의 ARP 모듈은 입력값으로서 동일한 랜상의 임의의 IP 주소에 대해 대응되는 MAC 주소 반환
DNS 와의 차이점 DNS : 임의의 장소에 있는 호스트의 호스트 네임 해결 ARP : 동일한 서브넷상에 있는 호스트나 라우터 인터페이스의 IP 주소만을 해결
ARP 동작 과정
각 호스트와 라우터는 자신의 메모리에 ARP 테이블을 갖고있음 ARP테이블 :
- IP주소와 MAC 주소 간의 매핑 정보, TTL값 포함
- 서브넷상의 모든 호스트와 라우터에 대한 엔트리를 갖지 않아도 됨
노드 222.222.222.220이 같은 서브넷의 다른 ip주소로 가는 데이터그램을 전송하려할 때
→ 송신 호스트는 주어진 ip주소로부터 목적지의 mac 주소 획득해야 함 엔트리가 있으면 쉬운일 없다면 ? ARP 프로토콜 사용
송신노드 : ARP 패킷 구성 ARP 패킷 : 송신 및 수신 IP 주소와 MAC 주소를 포함하는 필드를 가짐 ARP 질의 패킷과 응답 패킷 모두 같은 형식 질의 패킷 : 해결하려는 IP 주소에 대응되는 MAC 주소 결정을 위해 서브넷의 다른 모든 호스트와 라우터들에게 질의하는 것
222.222.222.220은 ARP 질의 패킷을 어댑터에게 전달, 어댑터에게 MAC 브로드 캐스트 주소 FF-FF-FF-FF-FF-FF로 패킷 전송 지시 어댑터는 ARP 패킷을 링크 계층 프레임에 캡슐화, 프레임의 목적지 주소를 브로드캐스트 주소로 해서 서브넷에 전송 ARP 질의를 포함하는 프레임은 서브넷 상의 다른 모든 어댑터에 의해 수신되며, 각 어댑터는 프레임 상에 들어있는 ARP 패킷을 자신의 ARP 모듈로 전달 ARP 모듈은 자신의 IP 주소가 ARP패킷에 들어있는 목적지IP 주소와 일치하는지 검사 일치하는 노드는 요구된 매핑 정보가 포함된 응답 ARP 패킷을 질의한 노드로 돌려보냄 질의호스트는 자신의 ARP테이블을 갱신하고 자신의 IP 데이터그램을 링크 계층 프레임으로 캡슐화 후 전송 프레임의 목적지 MAC주소는 ARP질의에 대한 응답을 보낸 호스트나 라우터의 MAC 주소
ARP 프로토콜에서 주목할 점
- 질의 ARP메시지는 브로드 캐스트 프레임으로 전송되는 반면, 응답 ARP 메시지는 표준 프레임으로 전송
- 노드의 ARP 테이블이 자동으로 구축(플러그 앤 플레이)
- 시스템 관리자가 테이블을 구성하지 않아도 됨
- 호스트가 서브넷으로부터 연결이 끊어지면 이 호스트에 대한 엔트리는 그 서브넷의 다른 ARP테이블에서 제거
ARP는 링크 계층과 네트워크 계층 경계에 있는 프로토콜이다 → 링크 계층 주소를 포함하는 필드와 네트워크 계층 주소도 포함하기 때문
서브넷에 없는 노드로의 데이터그램 전송
각 호스트는 하나의 IP주소와 하나의 어댑터를 가짐
라우터는 각 인터페이스당 하나의 IP 주소를 가짐
각 라우터 인터페이스는 ARP모듈과 어댑터를 가짐
네트워크의 각 어댑터는 자신만의 MAC주소를 가짐
서브넷 1 호스트 (111.111.111.111)이 서브넷 2 호스트(222.222.222.222)로 IP 데이터 그램을 전송한다고 가정
- 데이터그램이 111.111.111.111에서 다른 서브넷에 있는 호스트로 전달되기 위해서 먼저 라우터 인터페이스 111.111.111.110으로 전달해야 한다. 이는 first-hop 라우터의 IP 주소이다.(DHCP를 통해 구할 수 있다)
- ARP를 사용해 first-hop 라우터의 MAC 주소를 가질 수 있다.
- 이후 A는 목적지가 222.222.222.222인 데이터그램을 포함한 프레임을 라우터에 전송하게 된다.(서브넷 마스크 이용)
- 라우터는 라우터의 포워딩 테이블을 참조하여 데이터그램을 라우터 인터페이스 222.222.222.220을 통해 B로 전달한다.(라우터 내부에서 역 캡슐화 → 캡슐화 과정이 있고, IP 주소로 prefix를 체크)
6.4.2 이더넷
이더넷 : 오늘날 가장 우세한 랜 기술
최초의 이더넷 랜 : 노드 연결을 위해 동축 버스 사용 90년대 후반 : 허브 기반의 스타 토폴로지 사용
- 허브가 한 인터페이스로 비트 수신 → 그 비트의 복사본을 다른 모든 인터페이스로 전송 2000년대 초반 : 중앙의 허브가 스위치로 대체, 저장-후-전달 패킷 스위치
이더넷 프레임 구조
- 프리앰블(8) : 8바이트로 구성되고, 첫 7바이트는 “10101010”, 마지막 바이트는 “10101011”로 되어있다. 각각은 수신 어댑터를 깨우고, 수신자의 clock을 송신자의 clock과 동기화시키는 역할을 한다. (이더넷의 종류가 다르기 때문에 동기화 과정이 필요하다.)
- 데이터 필드(46~1500바이트) : IP 데이터그램 운반, 최대 전송단위를 초과하면 데이터 그램 단편화, 최소크기보다 작으면 필드를 임의로 채움
- 목적지 주소(6바이트) : 목적지 어댑터의 MAC 주소
- 출발지 주소(6바이트) : 전송하는 어댑터의 MAC 주소
- 타입 필드(2) : 어떤 네트워크 계층 프로토콜로 데이터 필드 내용을 전달할지 구분, 한 계층에서의 프로토콜을 상위 계층의 프로토콜로 연계시키는 역할
- 순환중복검사(4) : 프레임에 오류가 생겼는지 검출
이더넷 기술의 특성
- 비 연결형 서비스 제공
- 핸드 셰이킹 없이 데이터그램을 캡슐화해서 랜으로 전송
- 비 신뢰적인 서비스 제공
- CRC를 통해 프레임을 검사해도 부정 확인 응답 메시지를 보내지 않음
- 손실된 데이터 그램 존재 가능
6.4.3 링크 계층 스위치
들어오는 링크 계층 프레임을 수신해 출력 링크로 전달하는 역할
포워딩과 필터링
필터링 : 프레임을 인터페이스로 전달할지 폐기할지 결정하는 스위치 기능 포워딩 : 프레임이 전송될 인터페이스를 결정하고 프레임을 해당 인터페이스로 내보내는 기능
- 스위치 테이블 이용
스위치 테이블
- MAC 주소
- MAC 주소로 가게 하는 스위치 인ㅌ페이스
- 해당 엔트리가 테이블에 만들어진 시점에 대한 정보
목적지 주소 DD-DD-DD-DD-DD-DD를 가진 프레임이 스위치 인터페이스 x에 도착했다고 가정
- 테이블에 DD~ 에 대한 엔트리가 없음 : 프레임을 브로드 캐스트
- DD~가 인터페이스 x에 연관된 엔트리 존재 : 다른 인터페이스로 전달할 필요가 없으므로 필터링 기능 수행
- DD~가 인터페이스 y와 연관된 엔트리 존재 : y에 접속된 랜 세그먼트로 전달, 포워딩 기능 수행
자가학습
스위치 스스로가 자신의 테이블을 자동으로, 동적으로, 자치적으로 구축하는 특징
- 네트워크 관리자나 사용자의 개입을 요구하지 않으므로 플러그 앤 플레이 장치이다
링크 계층 스위치 특성
- 충돌 제거 : 충돌로 인해 낭비되는 대역폭이 없음, 어느 시점이든 세그먼트에 하나 이상의 프레임을 전송하지 않음
- 이질적인 링크들 : 랜의 각 링크는 상이한 속도로 동작할 수 있으며 상이한 매체 사용 가능
- 관리 : 향상된 보안 제공, 네트워크 관리 용이
스위치 vs 라우터
라우터 : 3계층 패킷 스위치, 네트워크 계층 주소를 사용해서 패킷 전달 스위치 : 2계층 패킷 스위치, MAC 주소를 사용해서 패킷 전달
스위치 장단점
- 플러그 앤 플레이 장치
- 높은 패킷 필터링 및 전달률
- 실제 사용되는 토폴로지는 스패닝 트리로 제한
- 상당한 양의 ARP 트래픽이 생성되고 처리
- 트래픽 폭주에 방안 제공 X
라우터 장단점
- 계층구조이므로 중복 경로가 있어도 라우터를 따라 순환하지 않음
- 스패닝 트리로 제한받지 않고 출발지와 목적지 간의 최상 경로 사용 가능
- 인터넷 토폴로지 자유롭게 구축 가능
- 방화벽 보호 기능
- 패킷당 처리시간 높음