CSMA/CD란?
LAN의 통신 프로토콜의 종류중 하나이며, 이더넷 환경에서 사용한다.
CSMA/CD는 Carrier Sense Multiple Access/Collision Detetion의 줄임말로, 즉, '대충 알아서 눈치껏 통신하자' 라는 방식의 프로토콜이다.
CSMA/CD의 방식
*캐리어 : 네트워크 상에 나타나는 신호
네트워크 통신이 일어나고 있으면 (캐리어가 감지되면) 데이터를 보내지 않고 기다린다.
네트워크 통신이 일어나고 있지 않으면 (캐리어가 감지되지 않으면) 데이터를 네트워크 상에 보낸다. (즉, 눈치를 보다가 보낸다..?)
만약, 캐리어가 감지되지 않았을때, 두 PC나 서버가 데이터를 동시에 보내면 이 경우를 Multiple Access(다중 접근) 이라 한다.
위 처럼 두 PC나 서버가 데이터를 동시에 보내려다 부딪치는 경우 충돌(Collision)이 발생했다고 한다.
만약, 충돌이 일어나게 된다면 데이터를 전송했던 두 PC나 서버들은 랜덤한 시간 동안 기다린 다음 다시 데이터를 전송한다.
이런 충돌이 계속해서 15번 일어나면 통신을 끊는다.
CSMA/CD 충돌 x
전송을 원하는 호스트는 네트워크에 캐리어를 감지해 전송이 가능한지 검사한다. ex) A에서 D로 데이터 프레임을 전송
전송이 가능할 경우 A에서 B, C, D로 브로드캐스트를 하여 D를 찾아낸다. (여기서 D는 유니캐스트로 응답한다)
그 후 전송을 한다.
CSMA/CD 충돌 o
전송을 원하는 호스트는 네트워크에 캐리어를 감지해 전송이 가능한지 검사한다. ex) A에서 D로 데이터 프레임을 전송, B에서 C로 데이터 프레임을 전송)
A에서 발생한 프레임과 B에서 발생한 프레임은 공유 매체에서 충돌을 발생한다. (빨간선과 파란선이 만나있는 지점)
충돌이 발생하면 Jam Signal을 모든 호스트로 전송하여 충돌 발생에 대해 알리고, Jam Signal을 받으면 일정 시간 뒤에 다시 전송을 시작한다.