네트워크 용어

Receive-Side Scaling(RSS) http://minimonk.net/2728 Windows Server 2012의 NIC 티밍(teaming)에 대응. TCP Chimney Offload http://vstarmanv.tistory.com/58 VM에서는 사용 불가. Windows Server 2012의 NIC 티밍에 비 대응. NetDMA 네트웍 수신 데이터를 네트웍 어댑터의 수신 버퍼에서 애플리케이션 버퍼에 복사하는 작업을 CPU로 하지 않고 칩셋을 포함한...
더 읽기

표준 C++ 규격이 3년 간격으로 제정 되는 이유

Draft FAQ: Why does the C++ standard ship every three years? – Sutter’s Mill 현재 C++ 표준은 3년 단위로 제정 되고 있는데 왜 3년 주기인지 C++ 표준 위원회 의장인 Herb Sutter씨의 설명. C++ 표준은 3년 간격으로 제정된다. 초안에 버그가 있기...
더 읽기

golang - bcrypt로 패스워드를 hash화 할 때 패스워드의 bytes 수에 조심하자

bcrypt는 자주 사용 되고 있는 패스워드의 해시 함수이다. Slack’s hashing function is bcrypt with a randomly generated salt per-password which makes it computationally infeasible that your password could be recreated from the hashed form. https://slackhq.com/march-2015-security-incident-and-the-launch-of-two-factor-authentication-3cdcc8efba29 bcrypt가 생성하는 해시는 $2a$10$OTKlbteacFY8DOeZY5imi.wvNLmJ1WDenLlDSzXfFxizVX.D1BNfu 형식의...
더 읽기

Poco 라이브러리 설치하기

Linux 공식 사이트에서 최신 버전을 다운로드 한다. 압축을 풀고, 빌드한다. 아래는 64비트, static 라이브러리, 테스트와 샘플은 제외 하는 설정으로 빌드 한다 $ tar zxvf poco-1.7.8p2-all.tar.gz $ cd poco-1.7.8p2-all/ $ export OSARCH_64BITS=1 $ ./configure --static --no-tests --no-samples $ make 설정 정보는...
더 읽기

LinuxBrew 설치하기 (CentOS, WSL)

Linux (CentOS)에 Homebrew on Linux (Linuxbrew)를 설치하기 전에 출처: https://qiita.com/libra_lt/items/548fcbdfbcf992cba4ed CentOS Linux release 7.6.1810 (Core) Linuxbrew는 다음 특징을 가진 패키지 관리 도구이다. root가 아닌 사용자의 home에 설치하는 것이 가능하다. sudo가 필요 없다. 호스트 배포판에 패키지 되지 않은 소프트웨어를 설치할 수...
더 읽기

Boost 라이브러리 설치하기

설치 Linux Boost 라이브러리 공식 사이트에서 다운로드 후 압축 풀기 압축을 푼 디렉토리로 이동 후 아래처럼 입력 $ ./bootstrap.sh 생성된 b2를 사용하여 Boost 라이브러리 빌드하기 $ ./b2 toolset=gcc link=static threading=multi address-model=64 빌드가 끝나면 Boost 라이브러리 디렉토리 안의 stage/lib 디렉토리에 빌드...
더 읽기

C# - SuperSocketLite으로 게임 서버 만들기 - 05 채팅 서버

방 구조의 채팅 서버이다. 패킷 처리는 1개의 스레드만으로 처리한다. (네트워크 IO는 멀티 스레드) 프로젝트 구조는 아래와 같다. 파일 이름을 보면 대충 어떤 일을 맡고 있는지 알 수 있을 것이다 네트워크 관련 처리를 1개의 스레드에서 하기 위해 MainServer에서 바로 처리하지 않고,...
더 읽기

C# - SuperSocketLite으로 게임 서버 만들기 - 04 MultiPortServer

서버가 복수의 port 번호를 사용하는 경우에 대한 예제이다. 서버는 클라이언트 이외에 서버간 통신을 위해 연결 하기도 한다(보통 분산 서버를 만드는 경우이다). 이 프로젝트는 서버 객체를 2개 생성해서 하나는 클라이언트와 연결, 또 하나는 서버와 연결한다. 서버와 클라이언트 연결 포트를 다르게 하면...
더 읽기

C# - SuperSocketLite으로 게임 서버 만들기 - 03) 에코 서버 2

EchoServer를 좀 더 고도화 한 것이다. SuperSocketLite 프로젝트를 추가해서 참조하지 않고, SuperSocketLite를 빌드한 dll 파일을 참조한다. 00_superSocketLite_libs 디렉토리에 있는 dll을 추가한다. 또 Nuget으로 System.Configuration.ConfigurationManager을 추가한다 서버 옵션을 프로그램 실행 시 인자로 받는다. dotnet netcoreapp2.2\EchoServerEx.dll --port 32452 --maxConnectionNumber 32 --name EchoServe...
더 읽기

Ubuntu에 gcc 8, clang 6 설치하기

gcc 8 (Ubuntu 17.04) PPA로 최신 버전 설치 sudo add-apt-repository ppa:jonathonf/gcc-8.0 sudo apt update sudo apt install gcc-8 g++-8 LLVM 설치 Ubuntu 18.04 apt-get install llvm 6.0 버전이 설치된다. Clnag 설치 6.0 버전이 설치된다. 아래 명령어로 설치 후 연결 까지...
더 읽기