통신 방식에는 단방향 (Simplex), 반이중 (Half Duplex), 전이중 (Full Duplex) 세 가지가 있다
단방향 (Simplex)
단방향 통신은 한 방향으로만 데이터가 흐르는 방식으로 주로 Writer(송신자)와 Reader(수신자)가 나뉘어 있으며, 데이터의 일방적인 전송이 이루어진다. 예를 들어, 라디오 방송이나 텔레비전 방송 등이 단방향 통신의 예시이다.
주는 쪽에 Writer, 받는 쪽에 Reader 있으면 된다.
반이중 (Half Duplex)
반이중 통신은 스레드가 하나이기 때문에 데이터의 양방향 전송이 가능하지만, 동시에는 불가능한 방식이다. 주로 HTTP 프로토콜을 사용하는 웹 통신에서 사용된다.
요청이 있을 때만 데이터를 주고 받으며, (요청자의)상태를 유지하지 않는 stateless한 특징을 가지고 있다. 예를 들어, 네이버 검색 엔진에서 사용되는 웹 통신이 반이중 통신의 예시입니다.
무전기를 떠올려 보자.
전이중, 양방향 (Full Duplex)
전이중 통신은 보내는 스레드와 받는 스레드 두 개가 있기 때문에 동시에 양방향으로 데이터를 주고 받을 수 있는 방식이다. 통신이 지속되어 요청자의 상태가 유지된다. 예를 들어, 카카오톡에서 실시간으로 메시지를 주고 받는 것이 전이중 통신의 예시이다.
끊지 않고 계속 이어지는 전화 통화를 생각해 보자.
Share article