본문 바로가기

TCP/IP3

서버의 로드밸런싱 서버를 구성함에 있어서 로드밸런싱이 무엇인가? 기본적으로 로드밸런싱이란 컴퓨터 네트워크 기술의 일종으로 둘 혹은 셋이상의 중앙처리장치 혹은 저장장치와 같은 컴퓨터 자원들에게 작업을 나누는 것을 의미한다 그렇다면 왜 작업을 나누어야 할까?? 작은 단위의 서버에서는 아래와 같이 하나의 포트로 접속하면 문제가 없을 것이다 왜냐하면 서버 혼자서 처리가 가능한 클라이언트는 5대라고 가정하면 4대의 클라이언트 접속만 있기에 처리가 가능한 것이다 하지만 다음과 같이 5대처리가 가능한 사양에서 7대의 접속이 들어온다면 어떻게될까?? 당연히 서버는 처리하지 못하고 다운되게 될 것이다 자 여기서 부하분산이라는 개념이 등장하고 그것을 로드밸런싱이라고 한다 서버는 자신의 한계인 5대를 넘지않게 클라이언트의 접속을 분할 받아야.. 2020. 4. 10.
[리눅스/linux] 윈도우 소켓 테스트 프로그램 / window socket test program data-ad-unit = "DAN-s100g804lcms" data-ad-width = "728" data-ad-height = "90"> 서버 프로그램을 개발하다 보면 클라이언트를 붙여서 테스트 할 일이 생긴다 그럴때 사용하면 좋은 프로그램이 있어 소개하려 한다 바로 ezterm 이라는 프로그램으로 그간 서버 개발시 여러가지 소켓 테스트 프로그램을 사용해 봤지만 이번에 hex값을 주고 받아야 하는 프로젝트를 진행함에 따라 구글 검색을 하였고 해당 프로그램을 접하게 되었다 프로그램을 실행시키면 정말 간단하게 창이 나뉘어 있는데 위쪽은 내가 접속한 서버로부터 받은 데이터 아래쪽은 내가 서버로 전송한 데이터를 보여준다 내가 접속하고자 하는 서버의 주소와 포트번호를 입력 후 접속하기를 누르면 서버에 접속이 .. 2020. 4. 9.
[리눅스/linux] 소켓접속 알고리즘 / Socket Connection algorithm 소켓통신 프로그램을 만들다 보면 이러한 고민들을 한번쯤 해보게 된다. 바로 통신시에 필요한 fd를 어떻게 할 것인가? fd를 다루기에 앞서서 소켓이 바뀌어 들어오거나 하는 경우등을 생각해야 한다 말로는 설명이 애매하니 아래 그림을 보면서 설명하겠다 예를들어 서버에 접속하는 3개의 소켓이 있다고 가정하자 DB에 저장하기 앞서 구분하기 쉽게 고유코드의 ID값을 지정해준다 그리고 이것을 DB상에 저장을 하면 아래와 같이 저장한다 이렇게 저장해서 서버에서 해당 Client로 데이터를 보내고자 할 때 Select socket_num from table where 0001 이렇게 fd값을 가져와서 write 해주면 전송이 잘 되는것을 확인 할 수 있다 그런데 문제는 이런 보통적인 상황이 아니라 여러가지 변수에 의해.. 2020. 4. 9.