Link layer
:Link layer가 하는 일 :
framing
:link access
:reliable delivery between adjacent nodes
:link layer는 어디에서 구현되고 있는가?
:CRC(Cyclic Redundancy Check)
를 한다.Multiple access
:
다수가 같은 link를 multiple하게 사용하는 것. (Ethernet, wi-fi, satellite, human voice, ...)
multiple access를 할 때, collision이 발생할 수 밖에 없는데
collsion을 해결하기 위해 나온 protocol이 MAC(muliple access contorol) protocols
이다.
MAC(Multiple access protocol) protocols
:
그래서 link layer를 MAC layer라고도 표현한다.
다른 layer들과는 달리, link layer에서만 제공하는 차별화된 service이다.
MAC protocol에는 크게 3가지 종류가 이다.
channel partitioning
random access
taking turns
channel partitioning
:random access
: ALOHA
slotted ALOHA
CSMA, CSMA/CD, CSMA/CA
pure ALOHA
:slotted ALOHA
:
pure ALOHA
와slotted ALOHA
는 내가 data를 보내기 전에, 누가 data를 보내고 있는지를 알 수가 없다.
이것이 가장 큰 문제이다.
이것을 개선하기 위해 나온 방식이CSMA
.
pure CSMA
: Carrier Sense Multiple Access
말 그대로 sensing을 하는 것이다.
data를 보내기 전에 channel을 listen해서 carrier를 sensing한다.
누가 data를 보내면, carrier가 sensing된다.
누가 data를 보내고 있으면(channel이 busy하면),
carrier sense가 clear할 때 까지(= channel이 idle할 때까지) 기다린다.
그럼에도 불구하고 transmission delay 때문에 collision이 발생할 수도 있다.
만약 2번째 host가 data를 보내기 시작한 동시에, 4번째 host가 carrier sense를 했다면
2번째가 data를 보냈지만 transmission delay로 인해, 4번째 host는 channel이 idle하다고 판단하여 data를 보내는 상황이 생긴다.
이때, 2번째 host와 4번째 host가 overlap되는 region에 collision이 발생한다.
CSMA/CD
: Carrier Sense Multiple Access/Collsion Detection
pure CSMA에서 transmission delay로 인해 collision이 발생하는 상황을 위해
CSMA/Collision Detection 방법을 사용한다.
실제 우리가 사용하는 유선LAN에서 사용하고 있는 방법이다.
pure CSMA처럼 carrier sensing을 하고, channel이 idle하다면 data를 보낸다.
그런데 data를 보내면서 동시에 collision이 발생했는지도 detection한다.
collision이 detection되면,
data 전송을 멈추고, binary exponential backoff = {} 뒤에 다시 carrier sensing을 시작한다.
만약 host A와 host B가 collision되어 동시에 멈추게 된다면 binary exponential backoff 뒤에 다시 carrier sensing을 하기 때문에
collision 확률이 줄어들게 된다.
CSMA 방식은 중앙에 coordinator가 필요 없기 때문에
host들끼리 서로 distribute하게 collision을 detection, correction할 수 있기 때문에
자주 사용된다.
CSMA/CA
: Carrier Sense Multiple Access/Collsion Avoidancetaking turns
: polling
:token passing
:MAC address
:
같은 컴퓨터여도 DHCP를 쓰면 IP address는 계속해서 바뀐다.
그런데 MAC address는 못 바꾼다.
MAC address는 같은게 없다.
그래서 network layer에서는 IP address를 쓸 수 있는데,
link layer에서는 IP address가 encapsulation이 되고, IP address가 계속해서 바뀌기 때문에 IP address를 쓸 수 없다.
그래서 link layer에서는 link 간의 통신을 하기 위한 추가의 address인 MAC address(HW address)를 사용한다.
그래서 LAN으로 연결되어 있는 device들끼리는 IP address로 통신하는게 아니라
MAC address로 통신을 한다.
MAC address 사용 예시
ARP protocol
ARP (Address Resolution Protocol)
:ARP table
을 관리한다.<IP address ; MAC address : TTL(Time To Live)>
Routing to another LAN
: