Network

JooH·2024년 1월 8일
0

NHN_BackendAcademy

목록 보기
3/23

Echo Server

에코서버란 위 사진처럼 클라이언트가 메세지를 보내면 서버가 메시지의 내용을 읽고 그대로 클라이언트에게 돌려주는 서버이다. 그렇다면 카카오톡 같은 채팅서버는 어떻게 작동하는 것일까?
채팅서버는 비동기(Async) 통신을 사용한다. 에코서버의 경우 데이터가 전송되는 순간 바로 돌아오지만, 쓰레드를 사용하여 에코서버의 send/receive 과정이 독립적으로 작동하게 할 수 있다. 비슷하게 Broadcasting Server 또한 존재한다. 브로드 캐스팅 서버는 클라이언트가 서버에 메시지를 전달하면 서버는 해당 내용을 모든 클라이언트에게 전달하는 일종의 단톡방에 메시지를 보내는 개념이다.

Computer Network

컴퓨터 네트워크는 서로 프로토콜을 이용하여 통신하며 다양한 형태로 구성되어있다.

Node

노드란 Computing Device간 메세지 연결을 위해 중간연결을 수행하는 다양한 디바이스를 의미한다(End-Point의 반대) 노드의 종류로는 Network Interface, Repeater and Hub, Bridge, Switch, Router, Modem, Firewall등이 있는데, 최근에는 기술이 좋아져서 Switch안에 대부분의 기능(Bridge 등)이 들어있는 경우도 있다.

Protocol

네트워크를 통해 정보를 교환하기 위한 일련의 규칙. 물리적 프로토콜, 논리적 프로토콜 모두 존재한다. 예를들면 WIFI는 물리적 신호에 대한 프로토콜이며, TCP/IP는 논리적 프로토콜이다. OSI 모델의 프로토콜 스택에서 통신기능은 프로토콜 계층으로 나누어진다. 프로토콜 스택의 중요한 예는 IEEE 802.11, IP(Internet Protocol)을 통한 TCP를 통해 실행되는 HTTP(WWW Protocol)이다.

Network 계층

요즘은 예전처럼 엄청 중요하지는 않다고 그러셨으나...다양한 역할을 하는 Layer이다. 그 역할을 간략하게 나열하면 다음과 같다.

Colision Avoidance (충돌회피)
Digital to Analog Conversion (디지털->아날로그 변환)
Error Detection and Correction (오류 감지와 수정)
Routing (경로 지정)
Operationg System Compatibility (운영 체제 호환성)
Heterogeneous Network Cabling (이질적인 네트워크 케이블링)
Network Protocol (네트워크 프로토콜)
Security (보안)
Quality of Service (QOS - 서비스 품질)
Scalability (확장성)

다음 사진은 네트워크 Layer별 프로토콜이다OSI-Model - 네트워크 기능을 계층으로 분리하여 각각의 특정 기능을 갖춘 표준화된 프로토콜과 계층 집합을 정의하는데 사용된다.Physical Layer - 장비간의 물리적 접속 확인
Data Link - 장비간 통신(Header -> Destination, Source(+Mac addr, type) Mac Addr은 전세계에 1개밖에 없다.(가상 주소 제외)
Network Layer - Mac Addr이 물리적 주소라면, Destination의 ip를 논리적으로 따라간다. 경로를 어떻게 짤 것인가?가 주 목적이고 논리주소는 랜덤/지정 둘다 가능하다.
Transport Layer - End to End 통신. Service Point (서버와 클라이언트 연결). Port 번호가 요기서 쓰인다. IP 및 옵션들이 들어가며 TCP, UDP가 이 계층에서 사용된다.
Application, Presentation, Session --> 최근에는 통합해 사용하는 추세이다.

TCP/IP 모델 - TCP/IP 프로토콜 스택의 구성요소를 설명한다.
Application layer는 TCP/IP 인터넷 전체에서 사용 가능한 서비스에 접근하는 사용자 호출 응용 프로그램으로 구성된다. 응용 프로그램은 데이터를 전송 레이어로 전달하기 위해 필요한 형식으로 전달한다.

Transport layer의 주요 목적은 한 응용 프로그램에서 다른 응용 프로그램으로의 통신을 제공하는 것이다. 소프트웨어는 전송되는 데이터 스트림을 ISO 용어로 패킷이라고 하는 더 작은 조각으로 나누고 각 패킷과 목적지 정보를 다음 레이어로 전달한다.

Internet protocol layer는 한 대의 기계에서 다른 대의 기계로의 통신을 처리한다. 이 layer는 transport layer에서 데이터를 전송하도록 요청을 수락하며, 데이터를 전송할 기계의 식별 정보와 함께 받는다. 그런 다음 데이터를 IP 데이터그램으로 래핑하고 데이터그램 헤더를 채우며, 데이터그램을 전달 방법을 결정하기 위해 라우팅 알고리즘을 사용하고 데이터그램을 전송하기 위해 적절한 장치 드라이버에 전달한다.

Host-to-Network(네트워크 인터페이스라고도 함)는 가장 낮은 TCP/IP 계층로, 패킷을 수신하고 특정 네트워크를 통해 전송하는 역할을 담당한다. Network interface는 장치 드라이버 또는 자체 데이터 링크 프로토콜을 사용하는 복잡한 서브시스템으로 구성될 수 있다.

DNS

컴퓨터 네트워크에서 사용되는 계층화된 분산 데이터베이스 시스템. 쉽게 생각해서 www.example.com을 컴퓨터가 이해할 수 있는 주소인 192.168.0.1로 변환하거나 그 반대의 과정을 수행하는 것이다.

DNS 캐싱 : 자주 검색하는 사이트는 매번 오래 기다릴 필요 없이 캐시로 미리 가지고 있어서 접속을 빠르게 하자는 의미.

0개의 댓글