오늘은 길고 긴 고민 끝에 게임서버 트랙에서 클라이언트쪽으로 전환을 신청했다.
게임서버를 배우는 것도 나름의 도움이 되겠지만 원래 하려던 쪽이 기획이어서 그나마 가까운 클라이언트쪽을 선택하기로 했다.
게임서버를 진행하는게 난이도도 높고 흥미도 없어서 공부 자체가 눈에 들어오지 않는 것도 많았다.
오늘 학습한 내용
OSI 7계층에서 4계층은 전송 계층으로 3계층인 네트워크 계층의 한계점을 보완하고 신뢰성 높은 전송을 제어한다.
전송계층 프로토콜에는 TCP와 UDP가 있고 TCP는 연결지향적이라 데이터를 신뢰성 있게 순서대로 보내며 웹 페이지, 이메일처럼 정확한 데이터 전달이 필요한 곳에서 사용된다.
UDP는 연결을 설정하지 않고 빠르게 데이터를 전송하지만, 데이터 손실이나 순서를 보장하지 않는다. 동영상 스트리밍이나 온라인 게임처럼 속도가 중요한 곳에서 사용된다.
TCP 연결은 신뢰성과 연결지향을 위한 여러 제어가 있다.
1. 오류제어 : 데이터 전송 중 발생하는 오류를 감지하고 재전송 등을 통해 복구하는 기능으로 체크섬, 재전송요청 등의 방법을 사용한다.
2. 흐름 제어 : 송신자와 수신자간의 데이터 처리 속도 차이로 인한 문제를 방지하는 것으로 Stop-and-Wait, Sliding Window 등의 방법을 사용한다.
HTTPS에서의 대칭키와 비대칭키 사용
왼쪽이 A, 오른쪽이 B라고 가정하자.
1. B는 개인키(빨간색, 비밀 보관)와 공개키(파란색, 공개) 쌍을 만든다
2. A는 B의 공개키(파란색)로 문서를 암호화해서 B에게 보낸다.
3. B는 자신의 개인키(빨간색)로 문서를 복호화해서 내용을 확인한다.
4. 개인키는 절대 타인에게 전달하지 않는다.
HTTPS는 웹 통신의 보안을 위해 SSL/TLS 프로토콜을 사용한다.
로드 밸런싱 알고리즘
가중 라운드 로빈 : 각 서버에는 DNS 이름 외에도 가중치를 할당하고 가중치는 들어오는 요청을 처리하기 위해 어떤 서버가 다른 서버보다 우선 순위를 가져야하는지 결정한다. 서버 용량과 네트워크의 필요에 따라 각 서버에 가중치를 부여하는 방법
최소 응답 시간 : 최소 연결 방법과 가장 짧은 평균 서버 응답 시간을 결합한 알고리즘으로 서버가 요청을 수행하고 응답을 전송하는데 걸리는 시간과 연결 수를 모두 평가. 활성 연결 수가 가장 적고 가장 빠른 서버에 들어오는 요청이 할당