본문 바로가기

CS 백엔드/네트워크

(8)
[네트워크] 네트워크 통신 이해를 위한 예제 (traceroute) 실제로 네트워크 끼리의 연결은 수 많은 라우터에 거쳐서 목적지까지 도착하게 된다. 리눅스 명령어를 이용해서 네트워크 통신에 대한 간단한 예제를 볼 것이다. traceroute traceroute 목적지 까지 도착하기 위해 거쳐가는 라우터를 추적해주는 명령어이다. 그러면 본인의 노트북(난 맥북)에서 구글까지 가는 경로를 추적한다는 명령어를 입력한다 traceroute 8.8.8.8 그러면, traceroute to 8.8.8.8 (8.8.8.8), 64 hops max, 52 byte packets 1 192.168.0.1 (192.168.0.1) 13.694 ms 3.564 ms 3.918 ms 2 59.21.1.1 (59.21.1.1) 6.671 ms 8.357 ms 6.996 ms 3 112.191...
[네트워크] 네트워크의 통신 방식 앞 글에서 네트워크와 연결 형태에 대해서 정리했는데, 그러면 연결된 네트워크끼리 데이터를 어떻게 주고 받을까? 1. 네트워크 통신 방식 (1) 유니캐스트 컴퓨터 네트워크에서 유니캐스트(unicast) 전송이란 고유 주소로 식별된 하나의 네트워크 목적지에 1:1로 ( one-to-one) 트래픽 또는 메시지를 전송하는 방식을 말한다. 특정 대상과 1:1로 통신 내가 통신하고 싶은 특정 대상과만 통신하는 형태 같은 네트워크 대역의 여러개의 사용자가 있다면 특정한 한 사용자랑만 통신을 함 (2) 멀티캐스트 컴퓨터 네트워크에서 멀티캐스트(multicast)란 한 번의 송신으로 메시지나 정보를 목표한 여러 컴퓨터에 동시에 전송하는 것을 말한다. 특정 다수와 1:N으로 통신 같은 네트워크 대역에서 여러명의 사용자가..
[네트워크] 네트워크란 무엇인가? 네트워크 CS에 대해서 꽤 공부했었는데, 잠시 두달 정도 다른 일을 하다가 다시 보니까 네트워크에 대해서 설명을 완벽히 못하게 되었다. 이참에 다시 네트워크에 대한 기초 공부를 다시 확립할 필요가 있어 보여서 시작하게 되었다. 1. 네트워크란 무엇인가? (1) 네트워크 ? 네트워크 노드들이 데이터를 공유할 수 있게 하는 디지털 전기 통신망의 하나. 아래의 사진처럼 여러개의 시스템(컴퓨터 등)이 연결되어있는 하나의 통신망. 노드 ? 네트워크에 속한 컴퓨터 또는 장비를 뜻하는 말로 즉, 분산되어있는 컴퓨터를 통신망으로 연결한 것을 말한다. 네트워크에서 여러 장치들은 노드 간 연결을 사용하여 서로에게 데이터를 교환한다. 전세계가 연결되어있는 네트워크 중 하나가 인터넷으로 인터넷은 네트워크의 한 종류이다. (2..
[네트워크] Cache 1. Cache 캐시(cache)란 무엇일까? Cache는 프랑스어로 '숨기다'라는 뜻을 가지는 단어인 'cacher'에서 파생된 단어로, '물건을 일시적으로 저장, 보관하기 위해 사용하는 곳'이라는 의미로 많이 사용된다.. 컴퓨터에서는 기술적인 의미로 Cache를 많이 사용한다 '자주 필요한 데이터나 값의 복사본을 일시적으로 저장, 보관하기 위해 사용하는 곳'이라는 의미로 컴퓨터에서 cache를 사용하게 된다. 이를 사용하는 것을 캐싱(caching)이라고 한다. 아래의 그림은 컴퓨터의 간단한 동작 흐름이다. RAM(메인 메모리)는 하드 디스크로 부터 필요한 데이터를 불러오고, CPU는 RAM에 저장되어 있는 데이터를 가져와서 연산 작업을 수행하는 구조이다. 위 그래프는 CPU와 RAM 간의 성능 차이..
Forward Proxy, Reverse Proxy 1. Proxy Server Proxy란 "대리" 즉, 남의 일을 대신한다는 의미로 간략하게 설명할 수 있다. 그렇다면 Proxy Server란 무엇일까? "대신 처리하는 서버"로 간략하게 의미를 정의할 수 있다. 조금 더 저세히 설명하면 클라이언트와 서버간의 중계 서버로, 통신을 대리 수행하는 서버 (ex. 캐시, 보안, 트래픽 분산 등 여러 장점을 가질 수 있다) 2. Forward Proxy Forward Proxy는 일반적으로 말하는 Proxy를 뜻하며, 클라이언트와 인터넷 사이에 위치해서 클라이언트 대신 서버에 요청(Request)을 보내주는 역할을 한다. 클라이언트와 가까이 위치해있기 때문에 서버쪽에서 크게 관여하지 않는 위치이다. Forward Proxy 특징 캐싱 : Proxy 단에서 서버..
HTTP/0.9, 1.0, HTTP/1.1, HTTP/2, 그리고 QUIC 0. 들어가며 HTTP는 OSI 7계층에서 응용 계층에 속해있다. 그렇기 때문에 아래 단계인 전송 계층에 대해서 이해가 필요하다. 전송 계층은 클라이언트가 서버에 신뢰할 수 있는 데이터를 전송하기 위해 필요하다. 전송 계층 아래 단계 물리, 데이터링크, 네트워크 계층만으로 목적지에 데이터를 보낼 수 있디만, 중간에 데이터가 손사오디거나 유실되더라도 이들 계층에서는 아무것도 해주지 않는다. 즉, 데이터가 제대로 전달 되었는지의 역할은 전송 계층에서 해주는 것이다. 1. HTTP/0.9 : GET 메서드 HTTP의 초기 버전은 따로 없었다. 차후에 다른 버전과 구별을 하기 위해 버전 번호를 붙이기 시작할 때가 HTTP/0.9버전 부터이다. 0.9의 요청은 단일 라인으로 구성되며 리소스에 대한 경로로 가능한 ..
HTTP 0. 들어가며 네트워크에 대한 개념과 지식, 동작 원리에 대해서 부족하다는 것을 느끼고 처음부터 공부한다는 생각으로 글을 작성하려고 한다. 1. 프로토콜 프로토콜이란 컴퓨터 내부에서, 또는 컴퓨터 사이에서 데이터의 교환 방식을 정의하는 규칙이다. 간단히 예를 들면 '1'과 '2'라는 데이터를 보낼 때도 이진법(컴퓨터는 당연히 이진법)으로 16bit를 사용해서 데이터를 주고 받자라고 미리 약속을 합니다. 그러고 나서 약속한대로 0000 0000 0000 0001 / 0000 0000 0000 0010 를 보내면 이를 받는 쪽에서도 당연히 16bit로 왔다는걸 알고 '1'과 '2'라고 인식하는 것입니다. 2. HTTP (HTTP 프로토콜) HTTP는 Hypertext Transfer Protocol의 약자로..
도메인과 DNS - 이론 1. Domain (도메인) 이란? 도메인은 웹 브라우저를 통해 특정 사이트에 진입을 할 때, IP 주소를 대신하여 사용하는 주소이다. 정확히는 해당 도메인에 매핑되어있는 IP주소를 가져오는 것이라고 보면 된다. 도메인을 사용하면 복잡한 IP주소보다 한눈에 파악하기 쉽다 예를 들면 IP주소가 지번 또는 도로명 주소라면, 도메인 네임은 해당 주소에 위치한 상호 또는 건물명을 의미한다. 2. DNS (Domain Name System) 이란? 네트워크 상에 존재하는 모든 PC는 IP주소를 가지고 있다. 그러나 모든 IP가 도메인 네임을 가지고 있는 것은 아니다. 로컬 PC의 127.0.0.1 IP 주소는 localhost 라는 도메인 네임을 사용할 수 있지만, 그 외의 모든 도메인 네임은 일정 기간동안 대여..