목록분류 전체보기 (112)
Shine's dev log
1. DNS (Domain Name System)란? DNS는 한마디로 말해서 사람들이 쓰기 편한 호스트 네임(www.naver.com)을 컴퓨터가 알아들을 수 있는 아이피 주소(125.209.222.141)로 바꿔주는 서비스이다. 세상에 있는 모든 서버의 주소는 IP 주소를 가지고 있다. 따라서 사용자들이 해당 서버에 접속하기 위해서는 그 서버의 IP 주소를 외우고 입력해야 한다. 하지만, IP 주소는 보다시피 그냥 숫자와 점의 조합으로 이루어진 주소로, 사람들이 외우고 사용하기 매우 불편하다. 그래서 DNS 라는 서비스를 이용해 영문 주소와 IP 주소를 쉽게 매핑(mapping)하여 사용할 수 있는 것이다. 즉, 우리는 인터넷을 사용할 때 항상 DNS 서비스를 이용하는 셈이다. 유튜브를 보려고 www..
1. Cookie 쿠키는 문자와 숫자의 조합으로 된 작은 파일이다. 서버는 쿠키를 통해서 클라이언트를 식별하고 이에 맞춰 다양한 서비스를 제공한다. 아마존 사이트에 들어가면 내가 보았던 상품 목록들을 보여 주는데, 이런 것들이 모두 쿠키를 이용하기 때문에 가능한 것이다. 사용자가 특정 사이트에 처음 접속하면, 그 사이트 서버는 사용자에게 Cookie header라는 숫자를 부여해준다. 브라우저는 부여받은 Cookie header와 사이트 이름을 조합하여 만들어진 쿠키 파일을 사용자의 컴퓨터에 저장한다. 이후 사용자가 그 사이트에 접속할 때마다 해당 쿠키파일을 보내주면 서버는 이를 통해 사용자를 식별할 수 있다. 전체적인 동작 과정은 아래 그림과 같다. 위의 내용들을 종합해보았을 때, 쿠키를 사용하려면 다..
1. 웹과 HTTP 웹 페이지는 HTML file + referenced object 로 이루어져 있는데, 이 때 각 object들은 URL을 통해 reference 되는 구조이다. 여기서 URL이란, Uniform Resource Locator의 약자로 아래 그림과 같은 구조로 이루어져 있다. 2. HTTP HTTP(Hyper Text Transfer Protocol)는 Application layer의 여러 프로토콜 중 하나로 주로 웹에서 많이 쓰이는 프로토콜이다. HTTP 프로토콜을 통해 우리는 웹사이트에서 다양한 활동을 할 수 있다. HTTP의 특징은 다음과 같다. 1) HTTP는 TCP와 짝지어져 있다. : 처음에 TCP가 연결을 맺으면 이후 HTTP 메시지가 교환되는 구조이다. TCP를 통해 ..
1. Application layer TCP/IP 네트워크 프로토콜 스택에서 가장 상위 레이어를 담당하고 있는 놈이 Application Layer이다. Application layer는 그 이름에 걸맞게 end system 들에게 여러가지 서비스를 제공거나 받는 부분을 책임진다. 즉, 이메일, 웹서핑 등과 같은 서비스를 제공하고 제공받기 위해서 어떤 형식으로 메시지를 주고 받아야 하는지의 프로토콜들이 모여있는 레이어라고 생각하면 된다. 대부분의 Application layer에서는 Client-Server 구조로 이루어져 있다. Client는 서비스를 제공 받는 호스트를 의미하고, Server 는 서비스를 제공해주는 호스트를 의미한다. Client-Server 구조 외에도 P2P (Peer 2 Peer..
1. 패킷의 지연 (Packet delay) network core에서 라우터를 통해 패킷들이 전달된다는 것을 알고 있다. 패킷들이 전송되는 과정에서 막힘없이 전송되면 가장 좋겠지만, 실제 환경에서는 여러가지 요인들로 인해 지연이 발생한다. 패킷이 지연되는 요소는 아래와 같이 크게 4가지로 생각해볼 수 있다. 1) Processing delay 2) Queueing delay 3) Transmission delay 4) Propagation delay 즉 패킷이 전송될 때 발생되는 총 지연인 Nodal delay = Processing delay + Queueing delay + Transmission delay + Propagation delay 인 것이다. 2. Processing delay Proc..
1. 네트워크 구성 우리가 항상 사용하는 스마트폰과 PC는 네트워크와 연결되어 있어 다양한 일들을 할 수 있다. 막연히 그냥 서로 연결되어 있다고 생각하면 마음이 편하지만, 그래도 네트워크가 어떻게 구성되어 있는지 조금 더 자세하게 살펴보자. 네트워크는 크게 3가지로 구성되어 있다. 1) 네트워크 엣지 (Network edge) 2) 엑세스 네트워크 (Access network) 3) 네트워크 코어 (Network core) 각각의 네트워크 구성요소들이 어떤 기능을 하는지 알아보자. 2. 네트워크 엣지 (Network edge) 네트워크의 가장 가장자리이다. 여기에는 수많은 end system들이 존재한다. 여기서 end system이란 host 라고 생각하면 되는데, host는 클라이언트나 서버를 뜻한..