cs를 공부하던 중 CSMA/CD와 CSMA/CA 내용이 나왔다.
CS스터디 교재가 범위가 넓어, 내용을 압축해 넣다보니 궁금한 것들이 일부 해결되지 않아 조금 더 자세히 알아봤다.
제일 많이 보이는 것들이 CSMA/CD, CSMA/CA이지만 CSMA가 무엇인지 궁금했다.
✅CSMA가 무엇일까?
CSMA(Carrier Sense Multiple Access, 반송파 감지 다중 접속)
: 각 노드들이 프레임을 전송하기 위해 공유 매체(반송파)에 접근하기 전에
매체가 사용중인지 확인(Carrier Sensing)하며 다중접속(Multiple Access)하는 방식
✅CSMA/CD가 무엇일까?
: LAN의 통신 프로토콜의 종류 중 하나이며, 이더넷 환경에서 사용한다
: 매체 엑세스 제어 방식이며,각 단말이 신호 전송을 위해 전송 공유매체에 규칙있게 접근할 수 있게 한다.
CSMA 방식에 충돌을 처리하는 절차를 더한 것이다
(LAN에서 사용되는 MAC (Media Access Control) 프로토콜)
유선LAN에서 버스형, 트리형 LAN 구성에서 사용된다
- CSMA/CD는 Carrier Sense Multiple Access/Collision Detetion의 줄임말로,
'반송파 감지 다중 접속 및 충돌탐지'라는 뜻이다.
🤞그럼 동작 방식은 어떨까?
1. 회선 상에 이미 다른 신호가 있는지를 감지한다. Carrier Sense
2. 회선이 사용중이면 잠시 대기 후 1번을 반복한다.
3. 회선을 사용할 수 있게되면 즉시 데이터를 전송한다. Multiple Access
4. 수신 컴퓨터에 응답이 없거나 타 신호와 충돌이 발생하면 일정 시간 대기 후 다시 1번부터 실시한다. Collision Detection
🤞여기서 말하는 캐리어란?
: 네트워크 상에 나타나는 신호를 의미한다.
- 네트워크 통신이 일어나고 있으면 (캐리어가 감지되면) 데이터를 보내지 않고 기다린다
- 네트워크 통신이 일어나지 않으면 (캐리어가 감지되지 않으면) 데이터를 네트워크 상에 보낸다.
- 캐리어가 감지되지 않았을때, 두 PC나 서버가 데이터를 동시에 보내면 이 경우를 Multiple Access(다중 접근)이라 한다.
위와 같이 두 PC나 서버가 데이터를 동시에 보내려다 부딪히는 경우를 충돌(Collision)이 발생했다고 한다.
- 만약, 충돌이 일어나면 데이터를 전송했던 PC나 서버들은 랜덤한 시간 동안 기다린 다음 다시 데이터를 전송한다.
위와 같은 충돌이 지속해서 15번 이상 발생 시 통신을 끊는다
- 전송을 원하는 호스트는 네트워크에 캐리어를 감지해 전송이 가능한지 검사한다. ex) A에서 D로 데이터 프레임을 전송
- 전송이 가능할 경우 A에서 B, C, D로 브로드캐스트를 하여 D를 찾아낸다. (여기서 D는 유니캐스트로 응답한다)
- 그 후 전송을 한다.
후에 추가 정리하겠지만 간단하게 키워드를 정리했다.
브로드캐스트 : 로컬 네트워크에 연결되어 있는 모든 시스템에게 프레임을 보내는 방식
유니캐스트 : 정보를 전송하기 위한 프레임에 자신의 MAC 주소와 목적지의 MAC 주소를 첨부하여 전송하는 방식
- 전송을 원하는 호스트는 네트워크에 캐리어를 감지해 전송이 가능한지 검사한다.
ex) A에서 D로 데이터 프레임을 전송, B에서 C로 데이터 프레임을 전송)
- A에서 발생한 프레임과 B에서 발생한 프레임은 공유 매체에서 충돌을 발생한다. (빨간선과 파란선이 만나있는 지점)
- 충돌이 발생하면 Jam Signal을 모든 호스트로 전송하여 충돌 발생에 대해 알리고, Jam Signal을 받으면 일정 시간 뒤에 다시 전송을 시작한다.
✅CSMA/CA가 무엇일까?
- IEEE 802.11 무선 LAN에서 사용하는 프로토콜
- 반송파 감지 다중 접속 및 충돌 회피
- 무선랜(WLAN)에서 사용하는 매커니즘
그럼 CSMA/CD가 있는데 CSMA/CA는 왜써?
라는 의문이 들 수도 있다.
CSMA/CD는 유선 네트워크에서 사용하는 방식이고, CSMA/CA는 무선LAN에서 사용하는 프로토콜이다.
즉, 무선 네트워크에서는 충돌을 감지하기 힘들기 때문에 CSMA/CD가 아닌 CSMA/CA를 사용하는 것이다.
CSMA/CA는 노드 충돌을 감지하기 위해서 신호를 전송하는 동시에 신호를 수신한다.
만약 충돌이 발생하지 않는다면 노드는 자신이 보낸 신호만을 수신하나,
충돌 발생 시 노드는 자신이 송신한 신호와 다른 노드가 송신한 신호 두 개의 신호를 수신하게 된다.
CSMA/CD(IEEE 802.11 Standard)의 두 가지 매체 접근 방식
1. PCF(Point Coordination Function) Mode : 우선 순위 기반 경쟁 방식
2. DCF(Distributed Coordination Function) Mode : 동등한 우선 순위를 가지고 경쟁하는 방식(default)
CSMA/CD는 ACK 프레임을 사용하지 않으나, CSMA/CA에서는 ACK 프레임을 사용
IFS(Inter Frame Space) : 프레임 간 공간
- 채널이 휴식 중인 상태를 확인해도 전송을 늦춰 충돌을 회피한다.
- 쉬고 있는 채널이 발견된 즉시 전송을 하지 않는 것은 IFS로 불리는 일정 시간만큼 노드들이 대기하기 때문이다.
채널을 감지했을 때는 비어있을지 몰라도 다른 노드에서 전송을 시작했을지 모르기 때문이다.
이렇기 때문에 대기하지 않고 전송을 하면 충돌이 일어날 위험이 있어 IFS 기간 동안 대기하게 된다.
Contention Window : 경쟁 구간
Contention Window는 Time Slot으로 나뉘어진 일정 시간 구간이다.
전송 준비가 된 노드는 임의의 수를 선택해 해당 수만큼을 대기한다.
경쟁 구간에서는 노드들이 매 Time Slot 뒤에 채널을 감지하게 된다.
채널이 busy 상태인 것을 감지하면 노드는 이 과정을 재시작하는 것이 아니라 timer를 멈춘다.
이후 채널이 idle한 상태가 되면 다시 timer를 작동시킨다.
위와 같은 과정을 거쳐 가장 오래 대기한 노드가 우선 순위를 가지게 된다.
참고자료 :
http://www.ktword.co.kr/test/view/view.php?m_temp1=52 .
https://velog.io/@inyong_pang/CSMACDCarrier-Sence-Multiple-Access-Collision-Detection .
https://howiwifi.com/2020/06/30/wireless-contention-mechanisms/ .
'책벌레와 벌레 그 사이 어딘가 > 개념쌓기' 카테고리의 다른 글
[개념쌓기] WAS & WS (0) | 2022.12.28 |
---|---|
[개념쌓기] RESTful하다 (0) | 2022.12.25 |
[개념쌓기]Spring, 왜 쓰는걸까? (2) | 2022.10.14 |
[개념쌓기]@Transactional 다시보자 (0) | 2022.10.01 |
[개념쌓기]Elastic Search (1) | 2022.09.24 |
댓글