본문 바로가기

[네트워크 기초]

(23)
TCP와 UDP TCP (Transmission Control Protocol)와 UDP (User Datagram Protocol)는 전송 계층에서 사용하는 두 가지 주요 프로토콜로, 각각의 목적과 특성에 따라 데이터 전송의 방식을 결정한다.TCP (Transmission Control Protocol)개념TCP는 신뢰성 있는 데이터 전송을 보장하는 연결 지향적 프로토콜이다. TCP는 데이터의 전달을 확인하고, 데이터가 올바른 순서로 도착하며, 오류 없이 전송되도록 보장한다.주요 특징연결 지향: 데이터 전송을 시작하기 전에 송신자와 수신자 간에 연결을 설정한다. 이 과정은 3-way Handshake를 통해 이루어진다.신뢰성 보장: 데이터가 손실되거나 손상되었을 때 이를 검출하고, 손실된 데이터는 재전송한다.데이터 순..
응용 계층과 DNS, HTTP 응용 계층(Application Layer), DNS(Domain Name System), HTTP(Hypertext Transfer Protocol)는 네트워크와 웹 기반 애플리케이션에서 중요한 역할을 한다. 응용 계층 (Application Layer)응용 계층은 OSI 7계층 모델의 최상위 계층이며, 사용자와 네트워크 간의 인터페이스를 제공한다. 이 계층은 네트워크 애플리케이션과 직접 상호 작용하며, 다양한 네트워크 서비스를 제공한다. 응용 계층의 주요 기능은 다음과 같다:주요 프로토콜과 서비스HTTP/HTTPS (Hypertext Transfer Protocol / Secure)웹 브라우저와 웹 서버 간의 통신을 위한 프로토콜이다. HTTP는 데이터를 평문으로 전송하며, HTTPS는 SSL/TLS..
socket.io socket.io는 웹 소켓(WebSockets) 기술을 활용한 실시간 양방향 통신 라이브러리다. socket.io는 클라이언트와 서버 간의 실시간 통신을 가능하게 하며, 실시간 채팅, 게임, 협업 애플리케이션 등에 자주 사용된다.동작 원리socket.io는 다음과 같은 구조와 원리로 동작한다:연결 수립: 클라이언트가 서버에 연결을 요청한다. 서버는 이를 수락하고 소켓 연결을 설정한다.이벤트 기반 통신: 클라이언트와 서버는 이벤트(event)를 통해 메시지를 주고받는다. 각 이벤트는 특정 메시지 유형을 나타내며, on 메서드로 이벤트 리스너를 설정하고 emit 메서드로 이벤트를 발생시킨다.양방향 통신: 클라이언트와 서버는 양방향으로 메시지를 주고받을 수 있다. 서버는 클라이언트에 메시지를 보낼 수 있고,..
전송 계층의 개념과 필요성 전송 계층은 네트워크 통신에서 중요한 역할을 하는 계층으로, OSI 7계층 모델의 네 번째 계층이다. 전송 계층은 데이터를 종단 간(end-to-end)으로 전송하며, 신뢰성 있는 데이터 전송, 흐름 제어, 오류 제어, 혼잡 제어 등의 기능을 제공한다. 이 글에서는 전송 계층의 개념과 필요성, TCP와 UDP의 차이점, 그리고 TCP의 오류, 흐름, 혼잡 제어에 대해 자세히 알아본다.전송 계층의 개념과 필요성개념전송 계층은 두 호스트(클라이언트와 서버) 간의 데이터 전송을 관리하고, 데이터 전송의 신뢰성을 보장하는 계층이다. 이 계층은 상위 계층(응용 계층)에서 받은 데이터를 하위 계층(네트워크 계층)으로 전달하고, 그 반대의 과정을 수행한다.필요성전송 계층의 필요성은 다음과 같다:신뢰성 보장: 데이터를..
동적 라우팅, 정적 라우팅 라우터와 라우팅에 대한 설명라우터와 라우팅은 네트워크의 핵심 개념으로, 데이터를 효율적으로 전달하고 네트워크 트래픽을 관리하는 데 중요한 역할을 한다. 라우터와 라우팅, 그리고 동적 라우팅과 정적 라우팅에 대해 알아본다.1. 라우터 (Router)라우터는 네트워크 간의 데이터를 전달하는 네트워크 장비이다. 라우터는 각기 다른 네트워크 간에 데이터를 전달하며, 최적의 경로를 선택하여 데이터 패킷을 목적지로 보낸다. 라우터는 다음과 같은 주요 기능을 수행한다.패킷 전달: 라우터는 데이터 패킷을 수신하고, 목적지 IP 주소를 확인하여 적절한 네트워크로 패킷을 전달한다.라우팅 테이블 관리: 라우터는 라우팅 테이블을 유지 관리하며, 이 테이블을 기반으로 데이터 패킷의 최적 경로를 결정한다.네트워크 분할 및 연결:..
TCP Handshake와 흐름 제어 및 혼잡 제어에 대하여 TCP(Transmission Control Protocol)는 인터넷을 통해 데이터를 신뢰성 있게 전달하기 위해 설계된 주요 프로토콜 중 하나이다. TCP는 연결 지향성, 데이터의 신뢰성 있는 전송, 흐름 제어 및 혼잡 제어를 통해 안정적인 네트워크 통신을 제공한다.  TCP의 3-way Handshake, 흐름 제어, 혼잡 제어에 대해 상세히 알아본다.1. TCP HandshakeTCP 통신을 시작하기 전에, 클라이언트와 서버 간의 연결을 설정하는 과정이 필요하다. 이를 3-way Handshake라고 한다.. 3-way Handshake는 연결을 설정하고 초기 순서 번호를 교환하여 데이터 전송을 준비한다.1.1. 3-way Handshake 과정SYN (Synchronize): 클라이언트가 서버에 ..
데이터베이스 샤딩 데이터베이스 샤딩(Database Sharding)은 데이터를 여러 개의 데이터베이스 서버로 분할하여 저장하고 관리하는 기술이다. 이는 단일 데이터베이스 서버가 처리할 수 있는 용량을 초과하는 대량의 데이터를 효율적으로 저장하고 액세스하기 위한 방법이다. 샤딩은 대규모 애플리케이션의 성능과 확장성을 개선하는 데 중요한 역할을 한다. 샤딩의 주요 개념과 방법을 자세히 설명하면 다음과 같다.샤딩의 기본 개념샤딩은 대형 테이블을 여러 개의 작은 테이블로 나누어 서로 다른 데이터베이스 서버에 분산하여 저장한다. 각 작은 테이블은 샤드(shard)라고 하며, 각각은 독립적인 데이터베이스 서버에서 호스팅된다. 이러한 분할을 통해 데이터베이스의 처리 능력과 저장 용량을 확장할 수 있다.샤딩의 필요성성능 향상: 데이터..
웹 소켓? WebSocket은 HTML5 표준에 포함된 프로토콜로, 클라이언트와 서버 간의 양방향 통신을 실시간으로 수행할 수 있게 해준다. WebSocket의 주요 특징을 자세히 설명하면 다음과 같다.1. 양방향 통신 (Full-duplex communication)WebSocket은 클라이언트와 서버 간의 양방향 통신을 지원한다. 이는 클라이언트와 서버가 서로 독립적으로 메시지를 보낼 수 있음을 의미한다. 클라이언트가 요청을 보낸 후 서버의 응답을 기다리는 HTTP와 달리, WebSocket은 양쪽에서 자유롭게 메시지를 주고받을 수 있다.2. 지속적인 연결 (Persistent connection)WebSocket 연결은 초기 핸드셰이크 이후 지속된다. 한 번 연결이 이루어지면, 클라이언트와 서버 간의 연결이 ..