본문 바로가기

ETC/Server

HTTP / FTP / Socket HTTP 통신(Hyper Test Transport Protocal, 인터넷에서 웹서버와 사용자의 인터넷 브라우저 사이에 문서를 전송하기 위해 사용되는 통신규약) Client의 요청이 있을 때 server가 해당 page에 대한 data를 전송 하고 곧바로 연결을 끊는 방식이다.해당 방식은 Server와의 연결을 유지하지 않고 request가 들어오면 연결 후 data만 전송하고 끊는 방식으로서Server의 과부하를 줄여줄 수 있다.작은규모의 여러개 file을 보낼때 ftp보다 유리하다. Socket 통신 Socket 통신의 경우 Client와 Server가 연결이 되면 어느 한쪽에서 강제로 접속을 해제하기 전까지 계속 연결을 유지하는 방식이다.따라서 server의 성능에 따라 server와 연결할 수 ..
Multi play game의 server 형태와 그 특징 비동기형 Multi play Game Web browser 기반의 PC game이나 초창기 mobile game에서 많이 볼수 있는 server로서Puzzle game이나 farm game 처럼 player사이의 직접적인 상호작용이 거의 없거나 상호작용이 있다고 하더라도실시간으로 player의 상태를 동기화 할 필요가 없는 game에서 많이 사용된다. 예를들어 상대방과 같은 시점에 동시에 play하지 않아도 되고, 상대방의 data역시 항상 최근의 상태를 반영하지 않아도상호작용이 가능한 약한 multi play요소를 가지고 있는 게임들 Request-Reply 기반의 message 교환 Server는 client의 request를 처리하고 처리 결과를 client에게 돌려주는 방식으로 구현한다.Messa..
Dedicated Server / P2P Server / Listen Server Dedicated Server 모든 client가 1개의 전용server를 중심으로 data를 주고받는다.(Client - Server구조 기반)현재 MMORPG나 Online Game의 24시간 돌아가는 선택형 server가 대표적인 예 작동방식은 Client(User)가 field에 있는 상대방(다른 clinet, user)을 공격했다고 하면공격했다는 data를 server에 보내게 되고 server에서 피격판졍, 미스판정을 확정하여 다시 모든 client에게 보내게 된다. 즉 server가 게임 대부분의 판정을 처리한다. 장점 Client의 모든 data의 감시가 가능하다.Online game에서 불법프로그램을 사용하여 game을 진행한다면 전용server log에 기록이 되고 추후 user들의 신..
Network Transport / RPC Network Transport Web browser에서 사용되는 HTTP처럼 network가 사용하는 language RPC(Remote Procedure Call, 원격 절차 호출) Program이 network상의 다른 컴퓨터에 위치하고 있는 program에 service를 request하는데 사용되는 protocolRPC는 client / server model을 사용하는데, service를 request하는 program이 client이고 service를 제공하는 program이 server이다.request하는 program이 원격절차의 처리결과가 반환될때까지 일시정지 되어야 하는 Synchronous운영를 사용한다.
IOCP IOCP(I/O Completion Port) 멀티스레드 윈속서버 프로그램의 경우 user한명당 thread가 1개씩 할당이 된다. 사용자수가 많아지면 thread의 동적생성과 thread간의 잦은 context switching으로 인한 overhead가 크게 증가한다. 이러한 점을 극복하기 위해 IOCP가 만들어졌다. IOCP는 하나의 thread가 하나 이상의 user request를 처리할 수 있도록 해준다. 즉 thread의 개수를 줄여 context switching의 횟수를 줄여 비용을 절감하는 개념이다. Multi thread programming에서 유용하게 사용할 수 있으며 그중에서도 socket이나 file, mail slot, Pipe와 같은 입출력 관련 프로그램에서 유용하게 사용된..
Get방식과 Post방식 Get방식 클라이언트에서 서버로 데이터를 전송할 때, 주소 뒤에 '이름', '값' 이 결합된 스트링 형태로 전달한다.주소창에 쿼리스트링이 그대로보여져 보안성이 낮다.길이에 제한이 있다.(전송 데이터의 한계가 있다.)psot방식보다 상대적으로 전송속도가 빠르다. ex) 네이버에 돼지를 검색하면 나오는 http 주소https://search.naver.com/search.naver?sm=top_hty&fbm=0&ie=utf8&query=돼지 Post방식 일정 크기 이상의 데이터를 보내야 할 때 사용한다.서버로 보내기 전에 인코딩하고, 전송 후 서버에서는 다시 디코딩작업을 한다.주소창에 전송하는 데이터의 정보가 노출되지않아 Get방식에 비해 보안성이 높다.속도가 Get보다 느리다.쿼리스트링(문자열)데이터 뿐만..