카테고리 없음

컴네 data link mac

cheesecrust1008 2023. 4. 15. 16:53

mac는 data link의 sublayer 중 하나이다. 

 

이는 broadcast 방식의 shared link 인 경우에 사용된다. 

 

 

random access의 경우에는 순서가 없기 때문에 무작위로 경쟁을 통해서 데이터를 보낸다.

 

random access의 경우에는 충돌이 발생할 수 있다. 충돌을 감지 하는 방법은 에너지 준위를 감지하여 충돌인지 아닌지를 탐지한다. 

 

우선 aloha protocol을 알아보자.

 

순수 aloha의 경우 data를 보낸후 ack를 수신하기를 기대한다. ack 가 제한 시간안에 수신되지 않으면 데이터를 재전송한다. 

이때의 제한 시간은 전체 maximum 길이의 전송시간의 두 배이다.

 

이때의 문제는 충돌이 발생하였을때에 재전송을 언제 할 것인지가 문제가 될 수 있다. 

 

이 해결책은 random backoff 로 random 시간 동안 기다렸다가 재전송한다. 

그러다가 기다리는 횟수가 최대를 넘어가면 포기하고 나중에 다시 실행한다. 

 

random back off time의 경우는 

 

Tp는 최대 길이의 전송시간이고, Tfr은 평균 전송시간이다.

이때의 R은

순수 aloha 에서 취약 시간은

vulnerable time : 2 * Tfr 인데, 이는 전송 시작 전애 Tfr, 전송 후에 Tfr 이다. 

 

bps 는 시간당 몇비트를 전송할 수 있는지의 값이다.

 

bit length의 경우는 1개의 비트가 단위 시간에 이동하는 거리이다. 

 

throught put 은 처리량이다. 

s 는 성공적으로 전송된 프레임이다. 

 

G는 1 frame의 전송시간(Tfr)에 생성되는 frame 양이다. 

 

slotted aloha는 aloha의 효율을 높이기 위해서 slot으로 나누어서 

 

이 경우에는 정해진 slot 만큼만 전송되기 떄문에, 

취약 시간은 Tfr 이 된다. 

 

aloha의 경우에는 일반 frame을 보낸 후에 time out 동안 ack 가 오지 않는다면, 다시 보낸다. 

따라서 aloha의 경우에는 확인응답에 의존하게 된다.

 

이때의 처리량 throughput은 

 

s = g * e ^ -g 이다.

 

csma 

이는 충돌을 최소화 시키고 성능을 높이기 위해서 개발 되었습니다. 

 

이는 지국이 전송하기 이전에 먼저 매체에 귀를 기울인 후에 시작하는 것이다. 

 

이 csma의 경우의 취약 시간은 전파 시간이다.  Tp

 

이때의 전파 시간이란 끝에서 끝까지 전파 할 때의 전파시간이다. 

 

이 csma의 경우에는 3가지 지속 방식이 있다. 

1. 1 persistent

2. non persistnet

3. p - persistent

위의 경우는 모두 지국의 권한을 가져오는 방법이다. 

 

1 persistent의 경우는 탐지 후에 비어있는 것이 확인되면 바로 전송한다.

 

non persistnet의 경우는 탐지후 비어있으면 바로 전송하고, 아니라면, 임의의 시간이 지난 후에 다시 탐지한다. 

 

p persistnet의 경우는 휴지 상태라면, p의 확률로 전송하고, 나머지의 확률로 다음 슬롯까지 기다린다.

휴지 상태가 아니라면, 랜덤한 시간 동안 기다린다.

 

이때에 탐지는 데이터 도달 전까지는 휴지 상태로 감지 한다. 

 

위의 경우들에는 throughput은 

csma의 방식에는 두가지가 있는데, cd 와 ca 이다.

cd 의 경우는 collision detection, ca의 경우는 collision avoidence 이다. 

 

cd의 경우는 충돌을 감지하는 방식으로 포트를 두개를 두어 데이터를 전송하면서, 계속 데이터가 잘 가고 있는지를 탐지하다가 충돌이 확인되면 재전송을 합니다.

 

따라서 Tfr, 프레임 전송 시간이 최소 쵀대 거리 전송 시간의 2배가 되어야 한다. 

 

Tfr = Tp * 2 (minimum)

 

ca의 경우는 collision avoidence로 isp, contention window, ack 를 활용한다.

 

isp 는 휴지 상태가 발견되고, 바로 전송하는 것이 아닌, isp (interface space) 만큼 기다린 후에 전송된다.

 

ack 는 rts와 cts로 활용한다. 

rts 는 ready to send, cts 는 clear to send이다 

 

진행과정은 우선 difs 만큼 기다린 후에 요청으로 rts를 보낸 후 sifs만큼 기다린 후에 응답으로 cts를 보낸다. 그러면 cts를 받은 주 전송 매체는 sifs만큼 기다린 후에 data를 보내고 cts를 받은 전송을 하는 매체가 아닌 기기 들은 nav를 보내서 데이터 전송을 막는다.

 

그리고 데이터가 전송이 되면 sifs후에 잘 전송되엇다는 ack 응답을 보낸다. 

 

csma / cd 의 실행 과정은 다음과 같다.

 

csma / ca 의 실행 과정은 다음과 같다.

둘 다 channel free를 확인 한 후에 cd 같은 경우에는 collision을 계속 detect 하다가 collision이 발생하는 순간 jamming 후에 K 횟수를 증가 시킨 후에 random 수를 뽑은 후에 Tb 만큼 기다린다. 

 

ca 같은 경우는 channel free를 확인 한 후에 content window 를 통해 기다린 후에 rts와 cts를 활용한다.

ack에 의존하기 때문에 time-out 시에는 back-off 만큼 기다린다. 

 

여기서 content window은 2^K - 1 개의 slot의 개수 중에서 랜덤 번째를 뽑아서 사용합니다.

 

hand shake의 기간, 즉 rts가 통신하는데, 충돌이 발생 할 경우에 time-out에 의존하여 Tb 동안 기다린다. 

 

숨겨진 지국 문제, 

hidden station problem

 

만약에 같은 한 지국에 rts가 동시에 도착한다면, 둘 중에 먼저 도착한 rts에 대해서 그 지국에 cts를 보낸다. 

 

exposed terminal problem 또한 똑같다.

 

controll access에는

1. reservation

2. polling

3. token passing 이 있다.

 

1. resevation은 예약으로 원하는 slot을 먼저 예약하는 것이다.

2. polling 은 주국이 데이터를 원하는 곳을 찾는 것이다.

3. token passing은 token을 전달 하면서 다음 권한을 넘겨줍니다.

 

channelization의 종류에는 FDMA, TDMA, CDMA 이 있다.

FDMA의 방법은 진동수를 나누어서 보냅니다. 중간에는 가드 밴드를 두어 간섭을 막는다.

 

TDMA는 시간을 나누어서 보낸다.

 

CDMA는 code division multiflex 이기 때문에 이 경우는 각각의 수신기에 코드를 둔 후에 보내려는 데이터를 내적하여 더한 후에 받으려는 수신기에서 원하는 곳의 코드로 곱해주면 아닌 곳은 0으로 되고 원하는 곳의 데이터만 코드의 제곱인 스칼라 값이 곱해지기 때문에이를 나누면 데이터 값을 뽑을 수 있다.