개요
Link : 통신 경로를 따라 인접 노드를 연결하는 채널 (e.g., wired, wireless, LANs)
Link Layer(2층) : "Frame"을 물리적으로 인접한 노드로 전달하는 역할 수행
link layer service
- framing, link access : 데이터그램에 header/trailer를 붙여 frame으로 encapsulate. header에는 식별자인 MAC주소 포함.
- 인접 노드간 전달 보장
- flow control : 노드 사이에 받는 속도/보내는 속도 맞춤
- error detection : 리시버가 에러를 검출해 재전송을 요구하거나 패킷드랍.
- error correciton : 재전송 없이 비트 에러 수정 (잘 안씀)
- half-duplex, full-duplex
Error detection, correction
기본원리는 데이터 외에 별도의 EDC(Error detection and correction bits)를 실어 전송하는 것. 그러나 EDC 자체도 100% 오류가 발생하지 않음을 보장할 수 없음. EDC가 정상이라고 해서 언제나 오류가 없지는 않음.
parity checking
근거리 에러체킹에 사용가능
짝수패리티는 EDC포함 1이 짝수개여야 정상
홀수패리티는 EDC포함 1이 홀수개여야 정상
- Single bit parity
- two-dimensional bit parity : 에러 탐지와 수정 모두 가능
Internet checksum
- 송신측 : UDP 세그먼트 값 더해서 checksum 필드에 넣음
- 수신측 : UDP 세그먼트 값 더해서 checksum 필드와 같은지 확인
CRC (Cyclic Redundancy Check)
32-bit CRC가 표준
<D, R> = D*2^r XOR R
** R : r or r+1 bits bit pattern
Multiple access protocols
링크는 두 가지로 분류가능
MAC(Multiple access protocol)이 필요한 이유
- 한 broadcast 채널에 여러 장치가 같이 신호를 쏘면 충돌남. 누가 언제 신호 쏠지 정해줘야 함.
- 근데 외부에서 보고 정해줄 수는 없고, 이 채널에 직접 들어와서 교통정리를 해줘야 함
MAC이 갖춰야 할 것은 (R bps회선이 주어졌다고 가정하면)
- 전송하기를 원하는 한 노드는 R bps로 전송가능
- M개 노드가 전송하고 싶어하면 각자 R/M bsp로 전송 가능
- 완전히 decentralized : 특별취급하는 노드 없고 동기화도 없다
- 단순해야함
** 이거 네 가지 만족하는게 이더넷임
Channel Partitioning
** DMA : Division Multiple Access
- TDMA (Time) : round라는 시간단위로 채널 나눔. 한 라운드에 모든 슬롯이 한 번씩 전송할 수 있는 기회를 줌. 안보내면 말고.
- FDMA (Frequency) : 주파수 대역별로 채널 나눔. 안보내면 말고.
- CDMA (Code)
Random Access
어떻게 충돌을 감지하고 복구할지 명시
** ALOHA기반으로 CSMA만들었음
- Slotted ALOHA
- 모든 프레임 사이즈 같음. 같은 시분할길이 슬롯. 슬롯 시작할 때만 전송. 한 슬롯에 여러프레임 전송하면 모든 프레임이 충돌 감지. 모든 프레임 등기화.
- 최고 효율 37%
- Pure ALOHA
- 동기화 없음. 프레임 들어오면 즉시 전송.
- 최고 효율 18%
- simple CSMA (Carrier sense multiple access)
- idle 감지하면 있는거 다보냄. busy 감지만 전송 지연함.
- 충돌 일어나도 계속 전송하니까, 그 전송시간이 다 낭비됨
- CSMA/CD
- 충돌감지 있는 CSMA
- 어느정도 전송하다가 충돌 감지하면 전송 멈춤.
- CSMA/CA (Collision Avoidance)
Taking turns
- polling : 한 컴퓨터(master)가 나머지(slaves)의 전송 도맡아함.
- token passing : 토큰 넘김. 토큰 갖고있는 애가 전송
DOCSIS
Data over cable service interface specification
upstream에 FDM, downsteam에 TDM
LAN (Local Area Network)
MAC 주소
= LAN주소, 피지컬주소, 이더넷주소
LAN의 모든 인터페이스는 두 가지를 가짐
- IP주소
- MAC주소 : 같은 서브넷 내에서 물리적으로 연결된 인터페이스간에 frame을 전송하기 위해 지역적으로 사용하는 유일한 48-bit 식별자.
MAC주소는 IEEE가 관리, 할당. portability
ARP
= Address Resolution Protocol
- 링크레이어 단에서 다른 노드로 프레임을 보내야 할 때. IP주소를 갖고 MAC주소를 알아내는 프로토콜
- 각 IP노드는 ARP table을 유지함. ( IP주소 / MAC 주소 / TTL )
만약 같은 서브넷에 있으면 직접 그 노드에 질의한다.
라우터로 구분된 다른 서브넷에 있으면 라우터가 대신 질의해준다.
Ethernet
그냥 사실상 현대의 유선 랜 그 자체임.
이더넷케이블이라 안하고 랜선이라 하는걸 보면 견적이 나온다.
- 이더넷의 MAC protocol : unslotted CSMA/CD with binary backoff
- 특징
- unreliable : 핸드셰이킹 없다
- connectionless : ACK NAK그런거 없다
- topology
- bus : 옛날
- switched : 오늘날 ( 스위치가 충돌 막아줌)
- ethernet frame structure
- preamble : 1010101010올리고 내리고 하다가 0으로 안바뀌면 이제 내용시작한다는 뜻 (address)
- dest/source MAC address
- type (higher layer protocol)
- CRC
- 이더넷 케이블(UTP) : 4쌍의 선(색,줄) + RJ45커넥터
- T568A(CrossOver) : 1 2 PAIR3(초록)
- T568B(Straight) : 1 2 PAIR2(주황)
--> 스위치와 스위치끼리는 Crossover, 나머지는 straight
--> 였지만 최근에는 전부 다 Straight를 쓰기도 함 (스위치가 진화함)
Switch
- 역할
- 이더넷 프레임을 Stroe and forward4
- 들어온 프레임의 MAC주소를 보고 1개 또는 여러 개의 링크로 전달. 충돌방지. 세그먼트 접근을 위해 CSMA/CD 사용.
- 특징
- 같은곳으로 가는거 아니면, 스위치는 동시 전송 가능함.
- 스위치 포워딩 테이블이 있음 : MAC주소, 링크 인터페이스 번호, TTL
- 스스로 배워서 포워딩 테이블을 채움
- Self-leaning
- 나가는 프레임이 스위치를 거친다.
- 스위치가 이 프레임이 나온 인터페이스 링크와 MAC주소를 기록한다.
- 이후 밖에서 스위치 내부로 들어가는 패킷이 날아온다.
- 그럼 배워둔 내용(스위치 포워딩 테이블 엔트리)을 사용해 전달한다.
- 만약 엔트리에 없는 곳으로 들어가려고 하면 보낸쪽빼고 모든 링크로 전달한다. (flood)
VLAN
물리적으로는 같은 스위치에 연결했지만, 논리적으로는 다른 LAN에 속한 것 처럼 네트워크를 구성하고 싶다. = VLAN
스위치가 VLAN을 지원하면 해당 기능을 사용할 수 있다. (이 때 스위치는 마치 라우터와 스위치를 합쳐놓은 것 같아서 L3 스위치라고 표현하기도 한다.)
- MAC-based VLAN
- Port-based VLAN : 포트번호별로 다른 네트워크에 속한 것 처럼 동작
- Trunk port : 다른 스위치와 연결되기 위한 포트. 802.1Q 프로토콜로 동작. 기존 802.1 프로토콜 이더넷프레임 포맷에 2개 필드가 더 추가됨. (TAG)
Link virtualization (MPLS)
MPLS를 지원하는(label-swtiched) 라우터들만 적용 가능
Shortest prefix matching이 아니라 fixed length label을 사용해 빠르게 포워딩할 수 있음.
특징
- traffic engineering 가능
- 빠른 re-route가능 (pre-computed backup paths)
signaling : RSVP-TE signaling protocol