Network 11

[Java] Netty (Concept, Architecture, Component, Work flow)

오늘은 Java 기반 비동기 이벤트 중심의 네트워크 프레임워크인 Netty에 대해서 알아보려고 합니다. 회사에서 WebSocket 통신을 위해 Netty를 도입했지만, 막연히 소켓 통신을 위한 프레임워크 정도로만 인지하고 있었고 세부적인 내용은 모른 상태였습니다. 저는 Netty를 통해 네트워크 소켓 통신이 어떻게 이루어지고, 아키텍처와 동작과정에 대해 분석할 겸 하나씩 정리해보려고 합니다. (물론 웹소켓이 아닌 다양한 많은 프로토콜을 구축할 수 있습니다)  Netty를 개념과 다양한 컴포넌트, 장점(Blocking I/O 방식과 차이를 곁들여서) 및 사용 목적에 대해 상세히 설명드리겠습니다. Netty자바 기반의 비동기 이벤트 중심의 네트워크 애플리케이션 프레임워크유지 관리가 용이한 고성능 프로토콜 서..

Network 2024.06.27

[Network] TCP 3 way handshake & 4 way handshake

네트워크 전송 계층에서 사용되는 TCP의 연결 설정 및 연결 해제 과정에 대해 알아보려고 합니다. TCP는 장치들 사이에서 논리적인 성립(establish)을 하기 위해 연결을 설정하여 신뢰성을 보장하는 연결형 서비스를 제공합니다. 이러한 신뢰성 있는 서비스를 제공하기 위해 3 way handshake, 4 way handshake 과정을 거치게 되는데, 이 과정들에 대해 상세하게 설명드리겠습니다. 3-way handshake TCP 통신을 이용하여 데이터를 전송하기 위해 네트워크 연결을 설정하는 과정 양쪽 모두 데이터를 전송할 준비가 되었다는 것을 보장하고, 실제로 데이터 전달을 시작하기 전에 한쪽이 "다른 쪽이 준비가 되었다는 것"을 알 수 있도록 합니다. 즉, TCP/IP 프로토콜을 이용해서 통신을..

Network 2024.01.05

[Network] ARP / RARP / GARP

ARP/ RARP는 OSI 3계층에서 사용되는 프로토콜입니다. IP Datagram이 한 Host에서 다른 Host로 전송될 때, 송신자는 수신자의 IP주소뿐만 아니라 MAC 주소도 알아야 합니다. 이들은 동적 매핑을 통해 ARP, RARP라는 두 가지의 프로토콜을 얻습니다. 이들의 차이와 동작 방식에 대해 설명드리겠습니다. 1. ARP(Address Resolution Protocol) 네트워크 상에서 IP주소를 물리적 네트워크 주소로 대응시키기 위해 사용되는 프로토콜 MAC 주소를 알기 위해 ARP Request Message(IP주소에 대한 MAC주소를 요구하는 Message)를 만들어 Broadcast, 해당 IP를 가진 시스템은 Unicast로 ARP Reply(MAC 주소) 전송 2. RARP..

Network 2023.10.04

[Network] VRRP(Virtual Redundancy Routing Protocoal)가 무엇이고 왜 사용하는가

오늘은 Keepalived를 구축하는 데 있어서 사용되는 프로토콜인 VRRP에 대해서 상세하게 알아보려고 합니다. 우선 Keepalived에 대해 아주 간단하게 설명드리겠습니다. Keepalived란 Load Balacing과 High Availability를 제공해 주는 C언어 기반 프레임워크 Virtual IP를 기반으로 작동하고, Master 노드를 모니터링하다가 해당 노드에 장애가 발생했을 시 Backup 노드로 Fail-Over 해주는 기능 지원 Fail-Over: 컴퓨터 서버, 시스템, 네트워크 등에서 이상이 생겼을 때 예비 시스템으로 자동 전환 되는 기능 VRRP(Virtual Router Redundancy Protocol) 게이트웨이 이중화 프로토콜(FHRP: First Hop Redun..

Network 2023.10.04

[Network] IPsec VPN이란?

IPsec(Internet Protocol Security), VPN(Virtual Private Network)은 무엇이고 IPSec VPN은 무엇인지 설명드리겠습니다. IPsec? 인터넷상에서 한 컴퓨터와 다른 컴퓨터가 에서 데이터를 주고받는 방식을 결정하는 인터넷 프로토콜에 암호화와 인증 방식을 추가하여 네트워크에서 안전한 연결을 설정하기 위한 통신 규칙 또는 프로토콜입니다. 또한 VPN 설정을 위해 사용되는데, VPN을 통해 외부 네트워크에서 데이터들을 안전하게 액세스하고 교환할 수 있게 됩니다. VPN? 가상 사설망은 둘 이상의 컴퓨터 간 암호화된 연결입니다. 공용 네트워크를 통해 이루어지지만, VPN을 통해 교환되는 데이터는 암호화가 되어 있습니다. IPsec VPN을 구축하기 위한 2가지 m..

Network 2023.07.13

[Network] Switch 와 Bridge 비교

스위치와 브리지는 Data Link layer (OSI 2계층)에서 작동한다는 부분과 특정 포트에게만 프레임을 전송한다는 부분에서 꽤 비슷합니다. 하지만 이들 간에도 차이가 있는데, 그 차이에 대해 간단하게 알아보려고 합니다. 이들은 모두 송신자/수신자의 물리적 주소(MAC)를 기준으로 프레임을 필터링합니다. 공통된 기능은 동작 방식에서 스위치, 브리지 모두 Store and Forwarding(Frame을 모두 받아들이고 처리 -> 이후 Error 발견시 해당 Frame을 버리고 재전송 요구) 방식을 지원하는 것입니다. 브리지는 순수하게 2계층에서 데이터를 필터링하는 역할을 하지만, 최신 스위치에서는 라우터에 기능도 포함되고 이를 IP 스위치라고 합니다. 이제 최신 스위치(L3)를 제외하고 이들의 차이..

Network 2023.07.13

[Network] Hub(L1), Switch(L2), Router(L3)

3학년 때 네트워크 공부를 하면서 허브, 스위치, 리피터 다양한 개념들을 가볍게 공부했었는데, 이번 세미나를 기회로 확실하게 개념들을 구분 짓고 이들의 기능과 역할에 대해 완벽하게 숙지하기 위해 공부하였습니다. 허브, 스위치, 라우터 모두 다 네트워크 장치들을 연결하기 위한 장비입니다. 각각 다른 방식으로 동작하고 다른 기능을 제공합니다. 이제 차근차근 설명드리겠습니다. Hub 내부 네트워크에서 모든 네트워크 장치를 함께 연결하는 것(장치가 물리적으로 연결된 것만 감지) 네트워크 장치에서 이더넷 연결을 허용하는 여러 포트가 있는 장치 데이터 패킷이 포트 중 하나에 도착하면 다른 모든 포트로 복사(Broadcast) 의도하지 않은 데이터도 전달될 수 있기에 불필요한 트래픽 발생 Switch Hub와 유사..

Network 2023.07.13

[Network] WPS(Wi-Fi Protected Setup)란 무엇인가 ?

오늘은 WPS(Wi-Fi Protected Setup, 와이파이 보호 설정)에 대해서 알아보려고 합니다. WPS이란? 복잡한 보안 설정 없이도 무선 연결 및 보안 설정을 가능하게 하는 표준화된 방법 및 기술 공유기와 연결하려는 기기가 WPS 기능을 지원하면 기기를 연결할 때 간편하게 무선 보안 접속이 가능(프린터, 공유기에서 활용) PC에서 프린터기를 이용하기 위해 무선 드라이버를 설치하는 번거로움 해소 WLAN에 연결하기 위해 새 장치에 암호를 입력하는 불편함을 해소하기 위해 개발(기존에 AP에 접속하기 위해서는 SSID, PW 등을 알고 있어야 했음) WPS를 이용하기 위한 4가지 방법 가장 보편적으로 PIN, PBC(Push Button Connection) 두 가지 방법이 사용되지만, 저는 상세하..

Network 2023.07.13

[Network] WLAN의 네트워크 환경 2가지 mode(Ad-Hoc mode, Infrastructure mode)

WLAN(Wireless LAN)의 네트워크 환경은 크게 두 가지로 분류됩니다. 첫 번째는 Ad-Hoc Mode인데, Ad-Hoc 모드는 Access Point(무선 LAN과 유선 LAN을 연결해 주는 장치) 없이 각각의 Device 끼리 직접적으로 통신하는 환경입니다. 서로 대등한 위치에서 통신을 주고받기에 Peer-to-Peer Network이고, Bluetooth가 하나의 예시가 될 수 있습니다. 두 번째는 Infrastructure Mode 입니다. Infrastructe Mode는 각 device가 Access Point를 거쳐 다른 device와 통신할 수 있는 환경입니다. 상세한 과정은 뒤에 설명드리겠습니다. 1. Ad-Hoc Mode(=Independent Basic Service Set)..

Network 2023.07.09

[Network] DHCP(Dynamic Host Configuration Protocol) 정의 및 동작과정

DHCP(Dynamic Host Configuration Protocol)란 무엇일까요? DHCP는 동적으로 클라이언트에게 IP 및 네트워크 통신에 필요한 구성들(라우터, 게이트웨이, 서브넷 마스크, DNS 등)을 할당해 주는 프로토콜입니다. 기존에는 네트워크 관리자가 수동으로 ip를 구성해줘야 했지만(인터넷에 접속하거나 네트워크 통신을 위해서는 네트워크 장치마다 IP주소가 필요한데, 전 세계의 수십 억 개의 장치에 IP를 수동으로 작업하는 과정은 매우 어려운 작업임) DHCP를 통해 클라이언트에게 자동으로 IP를 할당해 줌으로써, 클라이언트가 더욱 간편하게 IP를 임대할 수 있게 되었습니다. 핵심적인 내용은 DHCP Server의 기능에 대한 이해와 어떻게 DHCP Server가 단말에게 IP를 대여해..

Network 2023.07.09