티스토리 뷰

무선 환경에서 CSMA/CD를 적용 하기 힘든 이유

1. Hiden terminal 문제(CS가 힘듦)



 -> A B C 라는 단말이 순서대로 있을때 A와 C단말의 신호 전송 범위가 서로 겹치지 않아서 A와C는 서로의 존재를 알 수 없다.

   A가 B와 통신을 하고 있을때 C는 A와B가 통신하고 있는것을 모르므로 B에게 신호를 보낼 수 있다. 그렇게 되면 C가 의도치 않게

   A와B의 통신을 방해하게 된다. 이게 바로 히든 터미널 문제이다.

   CSMA/CD란 미디움에 캐리어가 있는지 확인하고 없으면 전송하며 충돌이 발생하면 어떤 처리를 해주는 것을 의미하는데

   히든터미널 문제때문에 C가 A의 캐리어를 확인할 수 없다. 다시 말해서 무선 환경에서는 캐리어 센싱 자체가 힘들다.


2. CD란 Collision Detection 의 준말인데, 충돌이 일어났다는 것을 수신자만 알 수 있고 송신자는 미디움에서 신호의 충돌이 일어났는지 안났는지 알 방법이 없다. 그렇기 때문에 무선에서는 CD를 사용할 수 없다.



히든 터미널 문제

A와 C가 서로의 존재를 알 수 없어서 캐리어센싱이 힘들기 때문에 A와B가 통신하는 와중에 C가 B에게 신호를 보내서 간섭을 일으킬수있음.

->신호를 보내지 않아야 하는 상황에 신호를 보내서 생기는 문제


Exposed terminal문제

B가 A와 통신을 하고 있을때 C가 캐리어 센싱을 하게 되면 C는 B에게 데이터를 보내도 아무 문제가 없음에도 불구하고 데이터를 보내지 않는다.

(C는 미디움이 비지라고 판단하기때문에) 

-> 보내도 되는 상황에 신호를 보내지 않는 문제



무선에서도 carrier sensing을 하지않는 알로하(17%)나 slotted(36%의 패킷 전송 성공률) 알로하 보다 carrier sensing을 하는 csma방식이 좀더 패킷 전송 성공 확률을 높여 주게 된다.



non-persistence 방식

-> 미디움이 비지면 랜덤 타임동안 기다린다.

-> 미디움이 idle이면 그 즉시 패킷을 전송한다.


1-persistence 방식

-> 미디움이 busy면 idle이 될때까지 계속 medium을 listen한다.

-> 미디움이 idle이면 그 즉시 패킷을 전송한다.

-> 여러 사용자들이 패킷을 전송해야겠다고 대기중이면 100% 확률로 충돌이 일어난다.


p-persistence 방식

-> 미디움이 busy면 idle이 될때까지 계속 medium을 listen한다.

-> 미디움이 idle이되면 p의 확률로 전송한다.

-> N*p<1이 되는 p를 적절히 선정해야 한다. p가 낮으면 낮을 수록 좋다. 거의 90%이상의 확률로 전송에 성공하게 된다.

-> 미디움을 비워두는 한이 있어도 패킷들끼리의 충돌을 없애는게 패킷 전송 효율에 더 도움이 된다.


CSMA/CA 방식

-> p-persistence방식과 비슷하다. 미디움이 busy면 idle이 될때까지 계속 listen한다. 

-> 미디움이 idle이 되면 랜덤한 시간동안 기다렸다가 패킷을 전송한다.

-> idle이 될때까지 기다렸다가 p의 확률로 전송하는것이나 랜덤타임동안 기다렸다가 전송하는거나 비슷하다.





MACA(Multiple Access with Collision Avoidance)

-> RTS/CTS를 이용 해서 미디움에서 충돌이 발생하거나(히든터미널)/ 전송해도 되는데 전송하지 않는 상황(노출된 터미널) 을 막음으로써

    공용 미디움을 여러개의 노드들이 잘 나눠 쓰게 하는것.


-> C가 CTS만 받았다는 뜻은 B가 A의 RTS를 받아서 A와 통신을 하겠다는 뜻이다. 즉 C가 CTS만 받았다는것은 B가 누군가와 통신을 하겠다는 뜻이므로 C는 어떤 데이터도 보내지 않게 됨으로써 히든 터미널 문제를 해결한다.


-> C가 RTS만 받았다는 뜻은 B가 누군가에게 데이터를 전송한다는 뜻이다. 그러므로 C는 옆에있는 D에게 데이터를 보내도 아무 문제가 없다.


-> RTS만 받았다는 것은 exposed terminal문제가 발생했다는것이고, CTS만 받았다는것은 히든터미널 문제가 발생했다는 것이다. 이것을 C가     RTS/CTS로 알게 됨으로써 문제를 해결 할 수 있다.






댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함