클라이언트-서버 통신 모델

더보기

Network

 

네트워크로 연결되어 있는 서로 다른 두 컴퓨터가 데이터를 주고 받을 수 있도록 하는 것으로 물리적인 연결이 필요하다.

 

 

 

 

클라이언트-서버 통신 모델

 

대부분 네트워크 프로그램은 클라이언트-서버(C/S) 모델로 구현되는데 서비스를 받는 클라이언트의 요구(request)에 대하여 서비스를 제공하는 서버가 응답(response)을 보내는 방식으로 동작이 이루어진다.

 


 

소켓 통신 실행 흐름

더보기
클라이언트(Client) 흐름 서버(Server) 흐름
[1]생성 1. 클라이언트 소켓* 생성 [1]생성  1. 서버 소켓* 생성
    [2]결합 2. 서버 소켓에 IP 주소와 Port 번호 결합
    [3]대기 3. 클라이언트 요청 대기
[2]연결 2. 서버로 연결 요청    
    [4]수락 4. 클라이언트 요청 정보와 서버 소켓 정보를 결합해  연결 소켓* 을 생성 
[3]송수신 3. 서버 소켓에서 연결 수락 후, 데이터 송수신 [5]송수신 5. 연결 소켓을 통한 데이터를 송수신
[4]닫음 4. 통신이 완료되면, 소켓 닫음 [6]닫음 6. 통신이 완료되면, 연결 소켓을 닫음

* 서버 소켓은, 일반적으로 다수의 클라으언트 소켓으로부터 연결 요청을 받는다.

* 클라이언트 소켓은, 서버와 연결 된 뒤, 별도의 소켓을 생성하지 않고, 같은 소켓을 사용한다.  

* 연결 소켓은, 서버 소켓에서 클라이언트와 연결된 연결 소켓으로 서버 소켓과 다르다.