본문 바로가기
CS/Network

[네트워크] 동기식 네트워크와 비동기식 네트워크

by 테리는당근을좋아해 2020. 6. 28.

블로킹(Blocking)과 논블로킹(Non-blocking)

1) 블로킹(Blocking)

- 호출된 함수가 자신의 작업이 모두 끝날 때까지 제어권을 가지고 있어, 호출한 함수가 대기하도록 만듬

 

2) 논블로킹(Non-blocking)

- 호출된 함수가 바로 return함으로써, 호출한 함수에게 제어권을 넘겨주어 다른 일을 처리할 수 있도록 함

 

 

동기식 네트워크와 비동기식 네트워크

1) 동기식(Synchronous) 네트워크

- Request를 보낸 스레드는 Response가 도착하기 전까지 블로킹(Blocking) 됨

 

(1) 장점

- 요청과 응답의 순서 보장

- 요청에 대한 처리 결과 보장

 

(2) 단점

- 응답이 지연되게 되면 요청을 보낸 스레드는 무한 대기상태에 빠짐

- 한 요청이 지연되면 전체 성능이슈 발생

 

2) 비동기식(Asynchronous) 네트워크

- Request를 보낸 스레드는 Response를 기다리지 않고 다른 일을 처리(Non-blocking)

 

(1) 장점

- 응답을 기다리지 않기 때문에 동기식 네트워크보다 성능 효율이 좋음

 

(2) 단점

- 순서와 응답을 보장하지 않음

 

 

댓글