1. 용어 설명
- 네트워크 (Network) : 두대이상의 컴퓨터에서 값을 송수신하기 위한 기능
- 인터넷 (Internet) : 현실 세계에 존재하는 모든 컴퓨터들을 연결한 네트워크 통신망
- 프로토콜 (Protocol) : 네트워크 계층 > 인터넷 계층 (IP) > 전송 계층 (TCP or UDP) > 응용 계층 (FTP, HTTP, SMTP 등) >
- 호스트 (Host) : 네크워크 기능을 사용하는 컴퓨터 (프로그램)
2. InetAddress 클래스
1. InetAddress 클래스
- InetAddress 클래스 : 네트워크 식별자(IP주소 및 호트스이름)를 저장하기 위한 클래스
- 현재 사용중인 컴퓨터는 기본적으로 [127.0.0.1]의 IP 주소가 제공되며 [localhost]라는 이름으로 호스트이름 설정
- UnknownHostException 발생 (일반예외) : 호스트이름의 컴퓨터를 검색할 수 없는 경우 발생되는 예외
2. InetAddress 클래스의 메소드
- InetAddress.getLocalHost() : 현재 사용중인 컴퓨터의 네트워크 식별자가 저장된 InetAddress 객체를 반환하는 메소드
- InetAddress.toString() : InetAddress 객체에 저장된 네트워크 식별자을 문자열로 변환하여 반환하는 메소드
- InetAddress.getHostName() : InetAddress 객체에 저장된 네트워크 식별자에서 호스트이름을 문자열로 변환하여 반환하는 메소드
- InetAddress.getHostAddress() : InetAddress 객체에 저장된 네트워크 식별자에서 IP 주소를 문자열로 변환하여 반환하는 메소드
- InetAddress.getByName(String name) : 매개변수로 전달받은 호스트이름에 대한 네트워크 식별자가 저장된 InetAddress 객체를 반환하는 메소드
- InetAddress.getAllByName(String name) : 매개변수로 전달받은 호스트이름에 대한 네트워크 식별자가 저장된 InetAddress 객체의 배열을 반환하는 메소드
3. TCP/IP 모델 4 계층
1. 네트워크 계층
- 이더넷, 라우터, 스위치허브 등
- 이더넷 (Ethernet) : 호스트에서 사용하기 위한 통신 장비
- 라우터 (Router) : 네트워크 그룹과 네트워크 그룹을 연결하기 통신 장비
- 스위치허브 (SwitchHub) : 호스트와 호스트 또는 호스트와 네트워크 그룹을 연결하기 통신 장비
2. 인터넷 계층 (IP)
- IP (Internet Protocol) : 인터넷을 사용하기 위한 네트워크 주소(IP 주소)에 대한 통신규약
3. 전송 계층 (TCP or UDP)
1. TCP (Transmission Control Protocol)
- TCP (Transmission Control Protocol) : 연결형 프로토콜 (네트워크 기능을 이용한 연결 후 통신 가능)
- 신뢰할 수 있는 데이터 전송 통신규약
- 소켓 통신 - 1:1 연결
2. UDP (User Datagram Protocol)
- UDP (User Datagram Protocol) : 비연결형 프로토콜 (네트워크 기능을 이용한 연결 설정 없이 통신)
- 신뢰할 수 없는 데이터 전송 통신규약
- 고속통신 - 1:Many 연결
4. 응용 계층 (FTP, HTTP, SMTP 등)
- 응용 계층 : 전송계층을 기반으로 생성된 다수의 하위 프로토콜을 사용한 응용 프로그램
- IP 주소 : 인터넷을 사용하기 위해 컴퓨터에 부여하는 네트워크 식별자
=> IPV4 : 32bit를 이용하여 IP 주소 표현 -> 10진수 0~255 범위의 점수값 4개를 [.]으로 구분하여
=> IPV6 : 128bit를 이용하여 IP 주소 표현 -> 16진수 0000~FFFF 범위의 정수값 8개를 [:]으로 구분하여
- 공인 IP 주소와 사설 IP 주소 존재
=> A Class : 10.0.0.0 ~ 10.255.255.255
=> B Class : 172.16.0.0 ~ 172.31.255.255
=> C Class : 192.168.0.0 ~ 192.168.255.255
위를 제외한 주소는 공인 IP 주소
- Netmask 주소 : 네트워크 그룹(SubNet)을 표현하기 위한 주소
=> A Class : 255.0.0.0 => 0.X.X.X ~ 127.X.X.X
=> B Class : 255.255.0.0 => 128.X.X.X ~ 191.X.X.X
=> C Class : 255.255.255.0 => 192.X.X.X ~ 232.X.X.X
- Gateway 주소 : 라우터에 부여된 IP 주소
- DNS 서버 : 도메인(호스트 이름)을 IP 주소로 변환하는 기능의 서비스를 제공하는 컴퓨터
- 도메인 (Domain) : 인터넷을 사용하기위해 네트워크 그룹 또는 호스트에게 부여하는 문자로 된 네트워크 식별자
=> 도메인 그룹에 등록되어 있어야 호스트 사용 가능
- 포트번호 (Port Number) : 인터넷을 사용하여 데이터를 송수신하기 위한 고유의 통신 경로
=> 네트워크 프로그램은 반드시 0 ~ 65535 범위의 포트 중 하나를 사용하여 데이터 전송
=> 0 ~ 1023 : Well-Known Port (HTTP : 80, https : 443, SMTP : 25, POP3 : 110 등)
=> 1024 ~ 49151 : 네트워크 프로그램 작성시 사용 가능한 포트
=> 49152 ~ 65535 : 일시적으로 사용하는 임시 포트 (Private Port)
- 패킷 (Packet) : 인터넷에서 데이터를 전송하기 위한 단위 (Java에서는 Byte 배열로 표현 가능)
- 방화벽 (Firewall) : 네트워크를 이용한 접속 및 데이터 전송 차단 또는 허용을 위한 시스템