목록네트워크 (5)
쿼카러버의 기술 블로그
HTTP 관련 서비스를 구현하다보면 persistent connection을 빼놓을 수 없다. 그렇다고 필자가 완벽히 이걸 다 이해한건 아니고 공부중이다 하핫. 본 글에서는 persistent connection의 기본적인 개념을 소개하고 HTTP/1.0의 keep-alive에 대해서 알아본다. Persistent Connection HTTP에서 persistent connection이 필요한 이유는 무엇일까? 대표적인 이유로 site locality가 있다. site locality란 웹에서 특정 페이지를 보여주기 위해 서버에 연속적으로 이미지 request를 보내는 것 처럼, 서버에 연속적으로 동일한 클라이언트가 여러 요청을 보낼 가능성이 높은 경우를 의미한다. 이러한 니즈가 계속됨에 따라 HTTP/..
로드밸런서는 네트워크 공부의 꽃이다. 필자는 현재 일하고 있는 회사에서 직접 L7 로드밸런서를 구현해보면서 로드밸런서에 대해 공부를 했는데 L4스위치와 L7스위치가 무엇인지에 대한 개념을 하나의 글에서 다루는 것을 찾지 못해 필자가 나중에 기억이 안나면 참고하기 위해 글을 쓴다. 로드밸런서는 정말 광범위하고 복잡한 주제다. 사실 이 글이 끝이 아니고 이 글을 이해했으면 이해해야 할 개념들이 점점 더 많이 보여 고통스럽다. 그래도 개발자가 알아두어야할 지식이기 때문에 앞으로도 이 글 말고도 더 깊은 주제를 다뤄보고자 한다. 로드밸런서란? 서버나 장비의 트래픽을 분산하기 위해 사용하는 장비를 로드 밸런서라고 부른다. 이렇게 부하 분산이 필요한 이유는 갑작스런 이용자의 증가, 사업 확장 등의 이유로 더 많은 ..
Switch가 하는일은 경로 선택, 즉 Switching이다. Switching을 해주는 기기는 모두 Switch이기 때문에, 어떤 한 장치를 지칭하는 단어가 아니라는 점에 유의해야 한다. 대표적인 예로 Router는 기본적으로 IP Layer에서 스윗칭을 하는 기기다. 즉, 스위치는 라우터를 포함하는 개념이다. 이걸 왜 설명하지?라고 생각할 수 있겠지만 필자는 헷갈렸다.. 네트워크를 도로로, 패킷을 자동차라고 생각했을 때, Switch는 교차로에 존재하고있다가, 그 교차로에서 routing table이라는 이정표를 보고 패킷이 가야할 경로로 switching해준다. 물론 이때 이 routing table을 적절한 알고리즘으로 계산하기 위해 자기들끼리 프로토콜을 가지고 최적화된 경로를 결정한다. 자 여기..
DNS에 대해 공부하다보면, 나만 그렇게 느낄지 모르겠지만, 명확하게 정리된 내용을 잘 찾지 못했다. 필자는 DNS서버를 개발하려는 목적보다는, DNS가 어떻게 동작하는지, 그리고 어떻게 활용해볼 수 있을지에 대해 궁금했지만, 막상 내용을 찾아보면 너무 국소적으로 설명하거나 이론적 정의에만 치중된 글들이 많았고, 또 사용하는 용어들도 다르다 보니 전반적인 그림이 쉽게 이해가 되지 않았다.. 따라서 본 글에서는 DNS의 전반적인 그림에 대해 이해하고, DNS에서 필자가 가장 헷갈렸거나, 제대로 이해하지 못했던 내용들을 정리해보려고 한다. 항상 그렇지만 파고파도 끝이 없기 때문에, 관심있는 부분에 대한 키워드를 얻어가는 정도로 이 글을 읽으면 좋을 것 같다. 목차는 다음과 같다. DNS에 대한 간단한 소개 ..
포트포워딩이란 ? -> 포트 포워딩한 IP주소로 다른 네트워크기기의 외부 접속을 가능하게 해준다. 공유기를 사용하는 사람들의 경우, 내 피씨를 서버로 운영하려면 포트 포워딩을 필수로 해야 한다. 내부 ip와 외부 ip가 분리되서 나가게 되는데, 이를 좀 설명해보겠따. (공유기를 사용하지 않는다면 포트 포워딩이 필요없다.) 포트란? 컴퓨터의 Lan선은 하나인데 통신을 필요로 하는 프로그램이 다수일 때 이 다수의 프로그램을 구별할 수 있는 번호가 Port이다. 내부 ip? 외부 ip? 일반적으로 공유기를 사용하면 공유기와 연결된 PC들은 192.168~로 시작하는 IP를 공유기로부터 부여받는다. 위 그림을 보면 공유기는 하나의 ip인 172.20x.xx.xx를 가진다. 그리고 pc1, 노트북, 아이폰은 내부..