네트워크

네트워크

    [네트워크] DNS(도메인 네임 시스템)

    이번 포스팅에서는 DNS에 대해 공부한 내용을 정리해 보려고 한다. DNS는 Domain Name System의 약자로서, 인터넷 상에서 접근하는 도메인에 대해 찾아가야 할 IP 주소로 변환해 주는 시스템이다. 스마트폰이나 노트북에서 어떠한 서비스를 제공하는 서버에 이르기 위해서는 웹 브라우저에서 IP 주소라고 부르는 숫자를 입력해야 한다. 하지만 우리가 항상 이 숫자를 기억하기 어려우므로, 이름을 부여하여(ex. www.example.com) 웹 사이트로 갈 수가 있다. DNS는 숫자와 이름을 매핑하여 마치 전화번호부처럼 이름에 대한 요청을 IP 주소로 변환하여 최종 사용자가 도메인 이름을 웹 브라우저에 입력할 때 해당 사용자를 어떤 서버에 연결할 것인지를 제어하는 것이다. 이러한 요청을 쿼리라고 부른..

    [네트워크] TCP/IP Application

    이번 포스팅에서는 링크드인 COMPTIA 네트워크 강의의 TCP/IP Application 부분 강의를 듣고 정리한 내용을 적어보려고 한다. TCP와 UDP 네트워크 계층 중 전송계층(Transport Layer)은 송신자와 수신자를 연결하는 계층으로, 데이터를 전달한다. 그리고 이 계층에서 데이터를 보내기 위해 사용하는 프로토콜이 TCP와 UDP이다. TCP는 인터넷 상에서 데이터를 메시지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜이다. 일반적으로 TCP와 IP를 함께 사용하는데, IP가 데이터의 배달을 처리한다면 TCP는 패킷을 추적 및 관리하게 된다. TCP의 특성은 아래와 같다. 연결형 서비스로 가상 회선 방식을 제공한다. 3 Way Handshake 방식으로 연결을 설정하고 4 Way ..

    [네트워크] 라우팅(routing)

    이번 포스팅에서는 라우팅에 대해 공부한 내용을 정리해 보려고 한다. 라우터(router)는 둘 이상의 네트워크와 네트워크 간 데이터 전송을 위한 경로를 설정해 주고 데이터가 해당 경로를 따라 한 네트워크에서 다른 네트워크로 통신할 수 있도록 도와주는 인터넷 접속장비이다. 내부 네트워크는 사용하는 컴퓨터 기종이나 OS, 프로토콜 등을 알 수 있기 때문에 네트워크 최적화를 이룰 수 있지만, 내부 네트워크를 외부 네트워크와 연결할 때는 정보가 제한되는데 이 때 라우터를 통해 두 네트워크를 연결한다. 라우터는 다른 기종간의 네트워크를 연결하는 기능을 하기 때문에 여러 가지 종류의 프로토콜에서 전송하는 패킷을 받아들일 수 있어야 한다. 이렇게 받아들인 패킷을 여러 경로 중 가장 효율적인 경로로 선택하여 흐름제어를..

    Docker #6. 스웜을 사용한 실전 어플리케이션 개발 - Part1

    이번 포스팅은 책의 CH04. 스웜을 이용한 실전 어플리케이션 개발 내용을 공부하고 정리한 내용이다. 도커를 사용하여 어플리케이션을 개발하는 흐름을 이해하고 스웜을 이용한 배포에 초점을 맞추어서 자세한 코드를 다 확인하면서 가지는 않음을 미리 명시한다. 아키텍처 구성 간단한 TODO App을 만들어 보려고 한다. 대략적인 아키텍처는 다음과 같다. 데이터베이스로는 MySQL, API는 Restful API(예제 코드는 Go 언어 기반), 웹 어플리케이션(Vue / React), Nginx 프록시 서버 이렇게 네 가지로 크게 구분해서 구성 요소를 생각해 볼 수 있다. Nginx의 경우 어플리케이션 프론트엔드 서버 및 API 앞단의 리버스 프록시 역할을 하며, 캐싱이나 라우팅 등에도 사용이 된다. 이전 포스팅..

    [네트워크] TCP/IP

    이번 포스팅에서는 TCP/IP에 대해서 공부한 내용을 정리해 보려고 한다. 지난 포스팅에서 IP 주소에 대해서 공부를 했었다. 네트워크 안에 있는 모든 컴퓨터(노드라고도 한다)는 고유한 IP 주소를 가지고 있다. IP 주소는 2진수 32개로 이루어져 있고 우리는 2진수가 익숙하지 않으므로 10진수로 표현해서 0.0.0.0 ~ 255.255.255.255 의 형태로 IP 주소를 표현한다. 네트워크 상에서 IP 주소를 물리적 네트워크 주소로 대응시켜야 할 때가 있는데 이 때 사용하는 프로토콜을 ARP(Address Resolution Protocol)라고 한다. TCP/IP 4계층에서 3계층(네트워크 계층)의 IP 주소를 2계층(데이터 링크 계층)의 MAC 주소로 대응시킬 때 사용한다. arp -a 명령어를..

    [네트워크] 이더넷(Ethernet)

    이번 포스팅에서는 이더넷에 대해서 알아보고자 한다. 이더넷(Ethernet)이란 이더넷은 네트워크를 만드는 하나의 방법이다. 이더넷은 CSMA/CD 프로토콜을 이용하여 통신한다. 네트워크를 만드는 방식에는 이더넷 말고도 과거에는 토큰링, FDDI, ATM 등의 방식들이 있었다. 각각의 방식마다 네트워크 방지, 랜카드 등을 다르게 준비해야 한다. 현재는 이더넷이 전 세계적으로 가장 많이 사용되는 네트워크 방식이다. CSMA/CD 방식에 대해서 조금 더 설명을 하면, Carrier Sense Multiple Access/Collision Detection의 약자이다. 이더넷 환경에서 통신을 하고 싶은 PC나 서버는 현재 네트워크 상에서 통신이 일어나고 있는지를 확인해야 한다. 네트워크 상에 있는 신호를 캐리..

    [네트워크] OSI 7계층, TCP/IP 4계층 모델

    (해당 포스팅은 링크드인 러닝의 CompTIA+ Network 강의를 듣고 핵심적인 내용을 정리하였다.) 모델은 네트워크가 어떻게 동작하는지를 나타내는 데 사용된다. 네트워크 모델에는 대표적인 모델이 두 가지가 있는데, 그건 바로 OSI 7계층 모델과 TCP/IP 모델이다. OSI 7계층 모델 OSI 7계층 모델은 네트워크 통신이 일어나는 과정을 7단계로 나눈 것을 말한다. 계층을 이렇게 나눈 이유는 통신이 일어나는 과정을 단계별로 파악하기 용이하기 때문이다. 특정 계층에서 이상이 생겼을 때 다른 계층은 놔두고 문제가 있는 계층만 고쳐서 문제를 해결할 수 있다. 하나씩 계층별로 살펴보도록 하자 물리계층 (Physical Layer) 전기적, 기계적, 기능적인 특성을 이용하여 통신 케이블로 데이터를 전송한..

    [네트워크] 토폴로지, 네트워크 구현, 장치들

    링크드인 러닝 네트워크 기초 강의를 듣고 공부한 내용을 정리해 보려고 한다. 토폴로지 (Topology) 토폴로지는 노드들과 연결된 회선들을 포함한 네트워크의 구성을 나타내는 개념이다. 크게 물리적 토폴로지와 논리적 토폴로지로 구분한다. 물리적 토폴로지(Physical Topology) : 노드, 링크와 같은 네트워크 구성 요소들에 의해 결정된다. 논리적 토폴로지(Logical Topology) : 노드 사이의 데이터 흐름에 의해 결정된다. 토폴로지는 그래프 이론에 따라 다음과 같은 종류들로 나누어 질 수 있다. 메시 토폴로지 (Mesh Topology) 메시 토폴로지는 망이나 그물 형태의 토폴로지를 의미한다. 완전 연결형(Full Mesh)과 부분 연결형(Partial Mesh)으로 나뉜다. 완전 연결..