- 물리 계층에서 발생 가능한 오류를 감지하고 수정하는 역할을 수행
- 인접한 기기 간의 통신을 담당
Framing
datagram을 Frame으로 캡슐화
- header와 trailer를 붙임.
- header와 MAC의 주소가 출발지와 목적지를 나타냄
Flow Control
데이터 전송 속도 조절
- 수신 측이 처리 가능한 수신 속도보다 빠르게 데이터가 송신되면 송신 측의 전송 속도 조절
- Stop-and-Wait 방식 : 프레임을 하나 전송할 때마다 ACK 응답을 기다림. 안정적이지만 느림.
- Sliding Window 방식 : 여러 프레임을 한 번에 전송하고, ACK는 묶어서 받는다. 이때, ACK 응답은 다음에 받을 프레임의 숫자를 보낸다.
- ACK 2는 0, 1 이 잘 수신되었으니 2~0을 송신해달라는 것을 의미한다.
Error Correction
간섭이나 노이즈 등으로 인한 오류의 감지와 정정
- single bit error <-> Burst error
- backward error corr : 에러 발생 시 재송신
- forward error corr : error correction code를 통해 수신 측이 스스로 에러를 수정
Two-dimensional Bit parity
- single bit error의 감지와 수정 가능
Cyclic Redundancy Check (CRC)
- 사전에 정의된 CRC 다항식 G로 전송하고자 하는 D를 나눔.
- 나머지 값 R을 데이터 D에 붙여서 전송
- 수신측은 수신된 D를 G로 나눠보고, 나머지가 R인지 확인.
Hamming code
- 1비트 오류를 검출하고 정정 가능
- 전송하고자 하는 데이터의 비트 수 d와 패리티 비트의 수 p는 아래 식을 따른다.
2p≥d+p+1
Error Control + Flow Control
-
Stop-and-Wait ARQ
- 데이터 프레임을 전송한 후 ACK가 확인되기 전에는 다음 프레임을 송신하지 않고 이전 프레임을 가지고 있는다
- 데이터 프레임과 ACK 프레임에는 0과 1의 번호가 주어진다. 수신자가 데이터 0을 잘 수신하면 ACK 1을 보내야 하는데, 만약 적절한 ACK가 오지 않으면 부정응답으로 간주하고 재송신을 진행한다.
-
Sliding Window ARQ
- 수신자가 수신 상태에 따라 NAK나 ACK를 보낸다.
- ACK 프레임은 수신자가 다음으로 받을 프레임의 번호, NAK는 비정상적으로 수신된 프레임의 번호를 포함한다.
-
Go-Back-n ARQ : sliding window ARQ 방식 중 하나로, ACK가 확인되지 않으면 모든 프레임을 재전송한다.
-
Selective-Reject ARQ: Go-Back-n ARQ보다 효율적인 방법으로, NAK에서 요청한 프레임만 재전송한다. 수신자는 에러가 포함된 프레임만 교체 가능해야 한다.
Line Discipline
언제 어떤 장치가 데이터를 보낼 수 있는지 링크를 조정
- ENQ / ACK 방식 : 두 장치 간에 전용 라인이 있는 경우
- 전송 시작 시 Enquiry 신호를 보내고, 수신측은 ACK 신호를 보낸다.
- 이후 송신측이 데이터를 보낼 때마다 ACK로 확인한다
- 전송이 완료되면 송신측이 EOT 신호를 보낸다.
- Poll / Select 방식 : 한 장치가 Primary Device 로 지정되고 나머지가 Secondary Device로 지정된 구조에서 사용.
- 주 기기가 통신 링크를 제어하며 보조 기기들은 주 기기의 지시에 따른다.
- 주 기기가 데이터를 수신하고자 할 때, 송신자가 될 보조 기기에 Poll 신호를 보낸다.
- 보조 기기는 데이터를 전송하거나 NAK 신호를 보낸다
- 주 기기가 데이터를 송신하고자 할 때, 수신자가 될 기기에 SEL 신호를 보낸다.
- 보조 기기는 ACK 신호를 보내고, 데이터를 받을 때마다 ACK 신호를 보낸다.
Multiple Access Link, protocols
- 하나의 공유 broadcast 채널과 두 개 이상의 동시적인 통신을 주고받는 노드들 존재
- 노드들이 충돌없이 언제 송수신을 진행할지 결정하는 알고리즘 -> 프로토콜
- 3가지 주요 구조가 있음
- Channel Partitioning : 채널을 time, frequency, code 등으로 나누어 사용하는 방식
- Random Access : 그냥 collision이 발생하게 두고 이를 극복하는데 집중
- Taking Turns : 노드들이 차례를 가짐
Random Access 프로토콜
모든 노드들이 우열을 갖지 않고 데이터를 보냄
-
ALOHA, CSMA, CSMA/CD, CSMA/CA
-
ALOHA : 무선 LAN을 위해 설계되었으나 유선에서도 사용 가능
- 모든 노드는 언제든지 데이터를 송신할 수 있음
- 프레임이 정상 수신되면 ACK 응답이 존재하여 collision detection은 불필요함.
- 데이터를 전송 후 랜덤한 시간 후에 재전송(ACK 미확인 시)
-
Pure ALOHA
- ACK가 들어오지 않으면, 랜덤한 길이의 backoff time을 기다린 후에 재전송
-
Slotted ALOHA
- 공유 채널을 고정된 timeslot으로 나누고, 전송할 것이 있으면 이 slot에 맞게 보냄.
- 전송이 아주 약간 겹쳐서 충돌이 발생할 일이 없어 충돌이 감소
-
CSMA(Carrier Sense Multiple Access)
- 데이터 전송에 앞서 채널의 트래픽을 감지
- 1- Persistent : 채널이 idle이면 전송, busy면 idle이 되자마자 전송
- Non-Persistent: 채널이 busy이면 랜덤한 시간 기다리고 다시 확인.
- P-Persistent: 위 두 방식의 조합. 채널이 idle이면 p 확률로 전송. 전송하지 않으면 (1-p) 만큼 기다렸다가 다음 타임슬롯에 다시 전송 시도
- O-Persistent: 각 노드의 우선순위가 존재. 채널이 idle하면 우선순위 순으로 전송
-
CSMA/CD (collision detection)
- 채널이 idle이라면, 먼저 테스트 프레임을 하나 보내본다.
- 전송이 잘 되면 나머지 프레임을 전송한다.
- 충돌이 강지되면, jam/stop 신호를 채널에 보내고 전송을 중단한다.
- 랜덤한 시간을 기다리고 전송을 재개한다.
-
CSMA/CA (collision avoidance)
- 데이터를 송신하면서 동시에 ACK 신호를 송수신하여 충돌을 확인한다.
- 채널에 ACK 신호가 하나만 있으면 송신자 하나만 송신 중인 것이나, ACK 신호가 두 개 이상이면 여러 송신자가 동시에 송신중인 것이다.
- 충돌 회피를 위해 다음과 같은 전략들을 사용한다.
- Interframe space: 채널이 idle이 되어도 바로 전송하지 않고 약간 기다려본다. 이러한 시간을 IFS라 하며, 그 길이는 노드의 우선순위에 따라 달라진다.
- Contention window: 전송 시간을 time slot으로 나누고, 전송 시 랜덤한 슬롯만큼 기다리고 전송을 시작한다.
-
Controlled Access 프로토콜
- 각 노드들이 서로 소통하며 언제 어떤 노드가 채널을 사용할지 정한다.
- 한 노드는 다른 노드들이 동의하지 않는 한 독단적으로 전송을 시작할 수 없다.
- Reservation, Polling, Token Passing 기법 등
-
Channelization 프로토콜
- 코드나 주파수 등으로 채널을 분할하여 모든 노드들이 동시에 전송할 수 있다.
- FDMA, TDMA, CDMA가 있다.
- TDMA는 동기화 비트가 추가되어 오버헤드가 있다.
-
IEEE Ethernet Standard
-
이더넷의 물리적, 데이터 링크 계층의 세부 사항을 정의하는 표준
-
10Base-T: 10Mbps 속도의 baseband signaling 기반 Twisted Pair 케이블 통신 표준
-
FDDI (Fiber Distributed Data Interface)
- 토큰링의 개선형인 고속 LAN 기술로, 1-2km의 길이로 떨어진 1,000개의 호스트를 커버 가능
-
Fast Ethernet vs FDDI
- Throughput: 100 Mbps의 같은 대역폭을 갖지만, FDDI는 충돌 감지가 가능하여 30-50% 빠름
- Latency: 링 형으로 구성된 FDDI가 훨씬 높음
- Cost: 이더넷이 더 쉽게 설치하고 유지할 수 있음.
- 설치가 간단하고, 장치 추가도 링형의 FDDI와 달리 네트워크 다운 없이 수행 가능
- 거리 제한은 twisted pair로 100m, 광섬유로 2km에 불과한 이더넷에 비해 100km로 훨씬 우수함
- Host 수는 1,000여개로 비슷하나, FDDI는 호스트 수에 비례하여 지연이 길어지고, 이더넷은 충돌이 많아진다.
-
MAC Table
- 스위치의 포트 번호와 해당 포트에 연결된 컴퓨터의 MAC 주소가 등록된 테이블
- 기기에서 프레임이 스위치로 전송되면, MAC 주소를 확인하고 만약 등록되지 않은 주소면 추가함 → 학습 가능
- LAN 내부에서 데이터를 주고받을 때, 라우팅 테이블 상의 MAC 주소를 통해 목적지로 데이터 전송 가능 → 주소 필터링
-
ARP Table (Address Resolution Protocol)
- IP 주소를 통해 하드웨어 주소(MAC)를 알아내기 위한 테이블
- LAN 통신을 하고자 하는 상대 PC의 IP는 아는데 MAC을 모를 때, ARP request 패킷을 보내면 MAC 주소를 알려줌.
-
Token Ring, Token Bus
- LAN 구성 방식
- 토큰 링 방식은 패킷이 링 형태로 연결된 장치들을 broadcast 됨
- 토큰 버스 방식은 물리적 연결은 버스 형태로 되지만, 논리적인 링 구조로 전송이 이뤄져 충돌 최소화
-
Virtual LAN