본문으로 건너뛰기
Advertisement

네트워킹 (Networking) 개요

네트워킹은 두 대 이상의 컴퓨터 혹은 디바이스들을 케이블이나 무선 통신망으로 연결하여 네트워크를 구성하고, 데이터를 주고받는 것을 의미합니다. 자바의 java.net 패키지를 사용하면 복잡한 네트워크 하드웨어 지식 없이도 손쉽게 네트워크 애플리케이션을 개발할 수 있습니다.

1. IP 주소 (IP Address)

IP 주소는 네트워크 상에서 각각의 컴퓨터(호스트)를 식별하기 위해 부여되는 고유한 번호입니다.

  • IPv4: 192.168.0.1 형식의 4바이트 주소 (현재 고갈 중)
  • IPv6: 16바이트로 확장된 차세대 IP 주소

자바에서는 InetAddress 클래스를 사용하여 IP 주소를 다룹니다.

import java.net.InetAddress;
import java.net.UnknownHostException;

public class NetworkEx {
public static void main(String[] args) {
try {
// 도메인 이름을 통해 IP 주소 알아내기
InetAddress ip = InetAddress.getByName("www.google.com");
System.out.println("Host Name: " + ip.getHostName());
System.out.println("IP Address: " + ip.getHostAddress());

// 여러 개의 IP 주소가 있는 경우 (Local Load Balancing)
InetAddress[] ipArr = InetAddress.getAllByName("www.naver.com");
for(InetAddress i : ipArr) {
System.out.println("NAVER IP: " + i.getHostAddress());
}
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
}

2. 포트 (Port) 번호

IP 주소가 건물의 주소라면, 포트(Port) 는 그 건물 안에 있는 특정한 '방 번호' 또는 '출입구'와 같습니다. 하나의 컴퓨터(IP) 안에는 웹 서버, 메일 서버, 게임 서버 등 여러 가지 프로그램이 동시에 실행될 수 있습니다. 네트워크를 통해 들어온 데이터가 정확히 어떤 프로그램으로 전달되어야 하는지를 식별하기 위해 포트 번호(0 ~ 65535)를 사용합니다.

잘 알려진 포트 (Well-known Ports)

0부터 1023번까지의 포트는 국제 규약에 의해 이미 약속된 시스템 서비스용 포트이므로, 개인 애플리케이션 개발 시에는 이 번호를 피해 보통 1024번 이후의 포트를 사용합니다. (예: 8080 등)

  • 80: HTTP (웹 데이터 통신)
  • 443: HTTPS (보안 적용된 웹 통신)
  • 21: FTP (파일 전송)
  • 22: SSH (원격 접속)

3. 네트워크 통신의 종류

네트워크 통신은 데이터를 주고받는 신뢰성과 속도에 따라 크게 두 가지 프로토콜로 나뉩니다.

  • TCP (Transmission Control Protocol): 연결 지향적이며, 데이터의 전달 성공 여부와 순서를 철저하게 보장합니다. 신뢰성이 중요한 웹 통신, 파일 전송 등에 사용됩니다.
  • UDP (User Datagram Protocol): 비연결 지향적이며, 데이터의 순서나 수신 여부를 확인하지 않고 무조건 보냅니다. 신뢰성보다는 실시간 속도가 중요한 스트리밍, 온라인 게임 등에 사용됩니다.
Advertisement