① 노드(node) : 호스트와 라우터
② 링크(link) : 통신 경로 상의 인접한 노드들을 연결하는 통신 채널
③ 프레임(frame) : 링크 계층 패킷으로, 네트워크 계층 데이터 그램을 캡슐화한 것
데이터링크 계층은 한개의 노드로부터 물리적으로 인접한 노드로의 데이터그램 전송을 담당한다.
① 경로 상의 각 링크에서 서로 다른 링크 계층 프로토콜로 데이터그램 전송
② 각 링크 프로토콜은 서로 다른 서비스 제공
① 프레임화(framing), 링크 접속(link access)
헤더 및 트레일러 필드를 추가하여 데이터그램을 프레임으로 캡슐화
공유 매체인 경우 채널 접속 기술(shared인경우 충돌회피를 위해 전송타이밍, wait 등 결정)
출발지, 목적지 구분을 위해 프레임 헤더에 MAC(medium access control) 주소 포함
② 인접한 노드간 신뢰적 전달(reliable delivery)
비트 오류가 낮은 링크에서는 적용 안 함(광섬유, UTP)
무선 링크와 같이 높은 오류율(error rate)을 갖는 링크에 적용
③ 흐름 제어(flow control)
④ 오류 검출(error detection)
⑤ 오류 회복(error correction)
⑥ 반이중(half-duplex)과 전이중(full-duplex)
전이중 전송은 링크 양단의 노드들이 동시에 패킷을 전송
반이중 전송은 한 노드가 동시에 송수신을 처리할 수 없음(한놈만 ㄱㄴ)
① 링크 계층은 호스트의 네트워크 인터페이스 카드(NIC, Network Interface Card) 또는 네트워크 어댑터(Network Adaptor)에 구현
이더넷 카드, 802.11 카드, 이더넷 칩셋
링크, 물리계층 구현
② 호스트 시스템의 버스에 연결
③ 하드웨어, 소프트웨어, 펌웨어의 결합으로 구성
④ 링크 상위 게층은 전부 CPU에서 처리한다.
① 송신 측
② 수신 측
송신측에서 받은 정보를 이용하여 오류, 흐름제어 등 조사
데이터그램을 추출하여 상위 계층으로 전달
① EDC = 오류 검출 및 정정 비트(부가된 비트, redundancy)
② D = 오류로부터 보호되는 데이터, 헤더 필드를 포함할 수도 있음
③ 100% 오류 검출은 아니지만 신뢰할만한 수준
EDC의 가장 간단한 방법이다.
① 단일 비트 패리티
② 2차원 비트 패리티
① 체크섬은 전송된 세그먼트의 오류를 검출(트랜스포트 계층에 사용)
② 송신 측
세그먼트의 값을 16비트 정수의 열로 간주
세그먼트 값들을 더함(1의 보수 합)
송신자는 UDP의 체크섬 필드에 삽입
③ 수신 측
수신된 세그먼트의 체크섬 계산
계산된 체크섬 값과 체크섬 필드 값이 같은가를 비교. 다르면 오류 검출, 같으면 오류 없음
가장 널리 쓰이는 에러감지
① 좀 더 강력한 에러 검출 코딩
② 데이터 D 송신
③ 송신자와 수신자는 r+1 비트 패턴인 생성자(generator) G를 합의
④ 다음을 만족하는 r비트 크기인 CRC 비트 R을 선택
<D, R>은 G로 정확히 나누어짐(모듈로-2 연산)
수신자가 <D, R>을 G로 나누어서 나머지가 0이 아니면 오류 발생
r+1 비트보다 적은 수의 버스트 오류(burst error) 검출
⑤ 널리 사용됨(이더넷, 802.11 WiFi, ATM)
⑥ CRC 연산은 덧셈의 올림이나 뺄셈의 빌림이 없는 모듈로-2 연산을 사용
⑦ 다음 식을 만족하는 R을 구함
(두 번 XOR은 원래 값 복원)
G로 나누어 나머지 R 구함
① 점대점 링크(point-to-point)
다이얼업 접속의 PPP
이더넷 스위치와 호스트 사이의 점대점 링크
회선에 따른 분류
점대점 전송: 컴퓨터에서 일대일방식으로 직접 연결하는 전송 방식.(전용회선사용)
다지점 전송: 두개 이상의 통신 장치가 하나의 회선을 공유하는 전송 방식.
② 브로드캐스트(broadcast)
공유 매체
이전의 이더넷(old-fashioned Ethernet)
802.11, 무선 LAN
③ 단일 공유 브로드캐스트 채널을 통해 노드에 전송
④ 둘 이상의 노드가 동시에 전송 : 간섭
⑤ 다중 접속 프로토콜(multiple access protocol)
노드가 채널을 공유하는 방법을 결정하는 분배 알고리즘
채널 공유를 위한 통신에도 채널을 사용(조정을 위한 별도의 채널(out of band)은 없음)
① 단 하나의 노드가 전송을 할 때는 R bps의 처리율로 전송
② M개의 노드가 전송 시에는 평균 R/M bps 전송률의 처리율로 전송
③ 프로토콜은 분산(decentralized) 되어 있음
전송을 조절하는 특별한 노드 없음
클럭, 슬롯 등의 동기화 없음
④ 프로토콜은 단순
MAC 프로토콜 3가지 분류:
① 각 노드는 차례대로 고정된 길이의 시간 슬롯(time slot)을 획득하여 채널 접속
② 사용되지 않는 슬롯은 쉬게 됨(idle)
① 채널 스펙트럼이 주파수 밴드(frequency band)로 분할
② 각 노드에 고정된 주파수 밴드 할당
③ 주파수 밴드를 사용하지 않는 시간은 쉬게 됨(idle)
① 전송 노드는 항상 최대 전송률 R bps로 전송
② 사전에 노드 간 조정 없음
③ 둘 이상의 노드들이 전송 => 충돌(collision)
④ 랜덤 접속 프로토콜에는 충돌을 감지하는 방법과 충돌 시 복구하는 방법을 기술
⑤ 랜덤 접속 프로토콜 구현
슬롯 알로하(slotted ALOHA)
알로하(ALOHA)
CSMA, CSMA/CD, CSMA/CA
① 가정
모든 프레임은 같은 크기를 가짐 (L 비트)
시간은 같은 크기의 슬롯으로 분할 (L/R 초)
노드는 슬롯의 시작점에서만 프레임을 전송
각 노드는 슬롯의 시작을 알 수 있도록 동기화
한 슬롯에서 둘 이상의 노드들이 충돌하면 모든 노드들이 충돌을 감지
② 동작
노드는 전송할 새 프레임이 있으면 다음 슬롯에서 전송
충돌이 없으면 노드는 다음 슬롯에서 새로운 프레임을 전송
충돌이 발생하면 확률 p로 해당 프레임을 다음 슬롯에서 재전송
③ 장점
하나의 활성 노드가 채널의 최대 속도인 R로 계속 전송
충돌 감지 및 재전송을 노드 각자가 결정하여 분산. 노드들은 슬롯으로 동기화 필요
간단함
④ 단점
활성 노드가 많으면 충돌로 인해 슬롯 낭비
확률적인 전송으로 전송을 억제하는 경우 빈 슬롯 발생
클럭 동기화
⑤ 각 슬롯의 상태
S : Success, 전송 성공
C : Collision, 충돌 발생
E : Empty, 비어 있음
⑥ 슬롯 알로하 효율
N개 노드가 각 슬롯마다 확률 p로 많은 프레임을 전송한다고 가정
주어진 노드가 한 슬롯에서 전송에 성공할 확률 p(1-p)N-1, N-1개의 노드가 전송하지 않을 확률 (1-p)N-1
임의의 한 노드가 전송에 성공할 확률 Np(1-p)N-1
최대 효율은 Np(1-p)N-1 을 최대화 시키는 p*를 구하는 문제
활성 노드가 많은 경우 N이 무한대로 갈 때 Np(1-p)N-1 의 극한값을 취하면 최대효율은 다음과 같이 구해짐
최대 효율 = 1/e = .37
많은 노드를 전송할 때 37%의 슬롯 만이 낭비되지 않음
채널의 실제 전송률은 0.37·R bps
① 슬롯이 없이 완전히 분산된 프로토콜
② 프레임이 상위 계층에서 도착하면 바로 전송
③ 충돌 확률 증가
④ 알로하 효율
p(주어진 노드의 전송 성공 확률) = p(노드 전송).
p([t0-1, t0]에서 다른 노드 전송 않음).
p([t0, t0+1]에서 다른 노드 전송 않음).
=
=
최적의 p를 위해 N의 극한값을 취하면
=
① 전송 전에 채널 사용 여부 조사(캐리어 감지, carrier sensing)
② 채널이 쉬고 있으면 프레임 전송
③ 채널이 사용 중이면 전송을 연기
① CSMA/CD(Carrier Sense Multiple Access/Collision Detection)
캐리어 센싱되면 백오프
짧은 시간 내에 충돌 검출
충돌 시 전송을 중단하여 채널 낭비 줄임
② 충돌 검출(collision detection)
③ 충돌 발생
④ 이더넷 CDMA/CD 알고리즘
어댑터(NIC)는 네트워크 계층으로부터 데이터그램을 받아서 이더넷 프레임을 생성
채널이 유휴(idle)하면 프레임 전송을 시작, 채널이 바쁘면(busy) 채널이 유휴할 때까지 기다림
어댑터가 전체 프레임을 전송하는 동안 다른 어댑터의 전송 신호가 감지되지 않았으면 프레임 전송 완료
전송 중 다른 어댑터의 전송 신호가 감지되면 프레임 전송을 중단하고 잼 신호(jam signal)를 전송
중단 후 어댑터는 이진 지수적 백오프(binary exponential backoff) 단계 진입
m번 충돌 후 어댑터는 {0, 1, 2, ..., 2m-1} 중에서 임의의 K 값을 선택. m = min(m, 10)
어댑터는 K·512 비트 시간을 기다렸다가 단계로 돌아감
⑤ 잼 신호(jam signal)
⑥ 비트 시간(bit time)
1 비트를 전송하는데 걸리는 시간
10 Mbps 이더넷에서는 0.1usec, K=1023 이면 50msec
⑦ 이진 지수적 백오프(binary exponential backoff)
예측된 현재 부하에 적응하여 재전송 시도. 과부하(heavy load) : 랜덤 대기 시간이 길어짐
지연은 K·512 비트 시간
첫 충돌이면 K는 {0, 1}에서 선택
두 번째 충돌이면 K는 {0, 1, 2, 3}에서 선택
...
열 번째 이상 충돌이면 K는 {0, 1, 2, 3, 4, ..., 1023}에서 선택
① 노드들 중 마스터 노드 지정
② 마스터 노드는 차례대로(라운드 로빈 방식) 노드(슬레이브)들에게 전송하도록 폴링
- 충돌과 빈 슬롯 없음
③ 단점
- 폴링 오버헤드(overhead)
- 지연(latency) : 다음 차례까지 기다림
- 마스터 노드 고장 시 전체 채널 동작 멈춤
① 토큰(token)이 순서대로 노드들 간에 전달
② 전송할 프레임이 있을 때 노드는 토큰을 잡고, 아니면 다음 노드로 전달
③ 단점
토큰 오버헤드
지연
노드 하나가 실패하면 전체 채널 동작 못함
① 시간, 주파수 코드로 분할
② TDMA(Time Division Multiple Access), FDMA(Frequency Division Multiple Access), CDMA(Code Division Multiple Access)
① ALOHA, S-ALOHA, CSMA, CSMA/CD
② 캐리어 센싱
③ 이더넷에서 적용된 CSMA/CD
④ 802.11에서 적용된 CSMA/CA
① 폴링, 토큰 전달
② 블루투스, FDDI(Fiber Distributed Data Interface)
① IP 주소(32bit)
네트워크 계층 주소
계층 3(네트워크 계층)에서 패킷을 전달하는데 사용
② MAC(LAN, 물리, 이더넷) 주소
LAN 주소
, 물리 주소
, 이더넷 주소
로도 불림
프레임을 한 인터페이스에서 물리적으로 연결된 다른 인터페이스로 전달하는데 사용(같은 네트워크상에 존재)
48비트 MAC주소(대부분의 LAN)
NIC ROM에 저장
일부는 소프트웨어적으로 세팅
ex) 1A-2F-BB-76-09-AD
③ LAN 상의 각 어댑터는 고유의 LAN 주소를 가짐
④ MAC 주소 할당은 IEEE가 관리
⑤ MAC 주소는 평면 주소 구조(flat address)
⑥ IP 계층 주소
주소는 노드가 부착된 IP 서브넷에 종속
이동할 수 없음
네트워크 계층 주소(IP 주소)와 링크 계층 주소(MAC 주소) 사이 변환 필요
LAN 상의 각 IP 노드(호스트, 라우터)는 ARP 테이블을 가짐
IP/MAC 주소 매핑
ex) <IP 주소 : MAC 주소 : TTL>
노드 A가 B로 데이터그램을 전송하는 경우
(이 시점엔 A의 ARP 테이블에 B의 MAC주소 엔트리 없음)
A는 ARP 질의 패킷(query packet)을 브로드캐스트
질의 패킷에는 B의 IP 주소 포함
목적지 MAC 주소 = FF-FF-FF-FF-FF-FF
LAN 상의 모든 호스트가 ARP 질의를 수신
B는 ARP 질의 패킷을 수신하고, 응답 패킷(response packet)으로 A에게 응답
응답 패킷에는 B의 MAC 주소 포함
A의 MAC 주소로 유니캐스트 응답
캐싱: A는 B의 IP/MAC 주소를 시간 종료 시까지 ARP 테이블에 저장
ARP는 플러그 앤 플레이(plug-and-play)
① 오늘날 가장 많이 사용되는 LAN 기술
② 가격 저렴, 어댑터 20$
③ 토큰 LAN이나 ATM보다 더 싸고 간단
④ 빠른 속도 : 10Mbps ~ 10Gbps
① 1990년대 중반까지 버스 토폴로지
사용
② 오늘날은 스타 토폴로지
사용
버스형: 버스라고 불리는 하나의 중앙통신회선에 여러 대의 장치들이 결합된 형태. 한 장치가 데이터를 송신하면 버스를 통해 연결된 모든장치에 전송됨. 수신자는 전송된 데이터에 쓰이 수신자 측 주소를 확인해 자신에게 보내진 데이터가 맞는지 확인하고 이를 받아들임. LAN에서 사용, 설치비용이 적고, 신뢰성이 우수하여 중앙통신회선에 노드를 추가,삭제하기 간편함 but, 스푸핑이 가능..
스타형: 중앙에 있는 중개 호스트(허브or스위치) 주위로 여러 장치를 연결한 형태. 중앙의 허브에 다른 장치를 점대점 방식으로 연결. 중앙집중적 구조이므로 노드를 추가, 에러탐지 등 유지보수가 쉽고 전송 제어가 간단하며 패킷충돌가능성 적음. but, 중앙노드에 장애발생시, 전체네트워크 사용불가, 설치비용 고가.
트리형: 계층형 토폴로지. 트리형태로 배치한 네트워크 구성으로 노드의 추가, 삭제가 쉽고 특정노드에 트래픽이 집중되면 하위노드에 영향을 끼칠 수 있음.
링형: 각각의 노드가 양 옆의 두 노드와 연결하여 전체적으로 고리처럼 하나의 연속된 길을 통해 통신을 하는 망 구성. 데이터는 노드->노드로 이동하고, 각 노드는 고리모양 길을통해 패킷을 처리. 노드수가 증가되어도 네트워크상 손실이 거의없고, 충돌발생도 적으며 에러탐지 쉬움. but, 네트워크 구성변경이 어렵고 회선에 장애발생시, 전체네트워크에 영향.
메시형: 망형 토폴로지. 그물망처럼 연결되어있는 구조. 특정노드에 장애가 발생해도 여러개의 경로가 존재하므로 네트워크를 계속 사용가능하고 트래픽도 분산처리가능. but, 노드의 추가가 어렵고, 구축/운용 비용이 고가.
① 송신 어댑터는 IP 데이터그램을 이더넷 프레임으로 캡슐화
② 프리앰블(preamble)
8바이트의 프리앰블
첫 7바이트는 10101010, 마지막 바이트는 10101011
송신자, 수신자의 클록을 동기화하기 위해 사용
③ 주소
목적지, 출발지 주소 각각 6바이트
어댑터의 주소가 목적지 주소와 같으면 프레임 수신하여 데이터를 네트워크 계층 프로토콜에 전달
목적지 주소가 같지 않으면 프레임을 버림
④ 타입
상위 계층 프로토콜을 표시
대부분 IP이지만 Novell IPX, AppleTalk 등도 가능
⑤ CRC
수신 어댑터에서 프레임 오류 검출
오류 발생 시 프레임 버림
① 비연결형 서비스(connectionless service)
② 비신뢰적인 서비스(unreliable service)
수신 NIC는 ACK, NACK를 송신 NIC에 보내지 않음
네트워크 계층에 전달되는 데이터그램들 중 일부가 누락될 수 있음
애플리케이션이 TCP를 사용한다면 누락된 데이터그램은 채워짐
TCP를 사용하지 않는 경우 애플리케이션은 데이터를 손실
③ 이더넷 다중 접속 프로토콜은 슬롯이 없고 이진 백오프를 갖는 CSMA/CD
① IEEE 802.3 표준
② 상이한 이더넷 표준들
공통의 다중 접속(MAC) 프로토콜과 프레임 형식
다른 속도 : 2Mbps, 10Mbps, 100Mbps, 1Gbps, 10Gbps
다른 물리 계층 매체 : 광섬유, 케이블
유선으로 연결된 여러 대의 컴퓨터에서 데이터를 공유할 때 사용하는 장치로, 여러 곳에서 전송된 데이터들을 모아서 다시 여러 곳으로 전송하는 중앙 연결점.
① 한 링크에 들어오는 비트들이 같은 속도로 모든 다른 링크로 나감
② 허브에 연결된 모든 노드들은 서로 충돌 가능
③ 프레임의 버퍼링 기능 없음
④ 허브에서 CSMA/CD 기능 없음
① 링크 계층 장치로 허브보다 더 똑똑하고 많은 기능
이더넷 프레임을 저장하고 전달(forward)
입력되는 프레임의 MAC 주소를 조사하여 하나 이상의 링크에 선택적으로 전달
CSMA/CD 다중 접속 프로토콜 사용
② 투명(transparent)
③ 자가 학습(self-learning), 플러그 앤 플레이
④ 호스트는 스위치에 직접 연결
⑤ 스위치는 패킷을 버퍼링
⑥ 각 입력 링크에서 이더넷 프로토콜을 사용하지만 충돌은 없음
① 스위치 테이블 엔트리(호스트의 MAC 주소, 인터페이스, 시간)
② 스위치 테이블 엔트리의 생성 및 관리 - 자가 학습(Self-Learning)
프레임이 스위치에 도착했을 때 송신자의 위치를 학습
스위치 테이블에 송신자/위치 쌍을 기록
③ 프레임 필터링/포워드(Frame Filtering/Forwarding)
입력 링크의 송신 호스트와 MAC 주소를 기록
MAC 목적지 주소를 사용하여 스위치 테이블 검색
if 목적지의 엔트리가 있으면
then {
if 세그먼트의 목적지가 도착한 프레임이면
then 프레임을 버림
else 엔트리에 의해 지정된 인터페이스로 프레임을 포워드
}
else 브로드캐스트(broadcast, flood)
④ 스위치 상호 연결(Interconnecting Switches)
① 둘 다 저장 후 전달(store-and-forward) 패킷 스위치
라우터 : 네트워크 계층 장치(네트워크 계층 헤더 조사)
스위치 : 링크 계층 장치(링크 계층 헤더 조사)
② 둘 다 테이블 관리
라우터는 라우팅 알고리즘, IP 주소를 사용하여 테이블을 계산
스위치는 브로드캐스트, MAC 주소를 사용하여 테이블이 학습
BLAH BLAH
① 초기 목표
(IP 주소 대신) 고정 길이 레이블을 사용한 고속 IP 데이터그램 전달
IP 주소의 최장 프리픽스 대응 규칙 대신 고정된 길이의 식별자를 사용하여 빠른 참조
가상회선(VC)의 아이디어를 사용했으나, 데이터그램에 여전히 IP 주소를 포함
② 레이블 스위치 라우터(label-switched router)라고도 함
③ IP 주소를 참조하지 않고 레이블 값만을 참조하여 출력 인터페이스로 패킷을 전달
④ 유연성(flexibility)
MPLS의 패킷 전달 결정은 IP와 다름
같은 주소의 목적지에 대해 다르게 라우팅하여 표준 IP 라우팅 프로토콜에서는 불가능한 경로를 이용해 패킷 전달하는 능력(트래픽 엔지니어링)
링크 결함시 다시 빠르게 라우팅을 복구할 수 있음
미리 계산된 백업 경로 사용
VoIP 등에 유용
① IP 라우팅
② MPLS 라우팅
출발지와 목적지 주소를 모두 고려하여 경로 결정
링크 고장 시 미리 계산된 백업 경로를 사용하여 다시 라우팅
① 기존의 링크 상태 라우팅 알고리즘(OSPF) 확장
② 엔트리 MPLS 라우터는 RSVP-TE(Resource Reservation Protocol - Traffic Engineering) 시그널링 프로토콜을 사용하여 다른 라우터의 MPLS 포워딩을 설정