자바의 정석 을 읽으며 가장 기본적인 네트워킹 관련지식을 정리해 보았습니다.
네트워킹(Networking)
네트워킹
두 대 이상의 컴퓨터를 케이블로 연결하여 네트워크(network)를 구성하는 것을 말한다. 전 세계의 많은 수의 컴퓨터가 인터넷이라는 거대한 네트워크를 구성하고 있다.
java.net 패키지를 사용하면 네트워크 어플리케이션의 데이터 통신 부분을 쉽게 작성할 수 있으며, 간단한 네트워크 어플리케이션도 쉽게 작성이 가능하다.
클라이언트 / 서버(client/server)
컴퓨터간의 관계를 역할로 구분하는 개념 / 서버(server)는 서비스를 제공하는 컴퓨터 / 클라이언트(client)는 서비스를 사용하는 컴퓨터
서버 / 서비스
서버는 다수의 클라이언트에게 서비스를 제공 / 서비스를 제공하는 소프트웨어가 실행되는 컴퓨터를 뜻함
서비스는 서버가 클라이언트로부터 요청받은 작업을 처리하여 그 결과를 제공하는 것을 뜻함
서버가 서비스를 제공하기 위해서는 서버프로그램이 있어야 하고, 클라이언트가 서비스를 제공받기 위해서는 서버프로그램과 연결할 수 있는 클라이언트 프로그램이 있어야 한다.
ex) 웹 서버에 접속하여 정보를 얻기 위해서는 웹브라우저(클라이언트 프로그램)이 필요
서버기반 모델(server-based model) / P2P 모델(peer-to-peer model)
네트워크를 구성할 때 전용서버를 두는 것을 서버기반 모델(server-based model)이라 하고 별도의 전용서버없이 각 클라이언트가 서버역할을 동시에 수행하는 것을 P2P 모델(peer-to-peer)이라 한다.
서버기반 모델 특징
- 안정적인 서비스↑↑
- 데이터의 관리와 보안↑↑
- 구축비용 & 관리비용 ↑↑
P2P 모델 특징
- 구축비용 & 관리비용↓↓
- 자원 활용↑↑
- 자원(데이터) 관리와 보안↓↓
IP주소(IP address)
IP주소는 컴퓨터(host)를 구별하는데 사용되는 고유한 값, 인터넷에 연결된 모든 컴퓨터는 IP주소를 갖는다. 4 byte(32bit)의 정수로 구성되어 있으며, 4개의 정수가 마침표를 구분자로(부호없는 1 byte 값, 0~255사이의 정수) 표현된다.
서로 다른 두 호스트의 IP주소의 네트워크 주소가 같다는 것 -> 같은 네트워크에 포함되어 있다는 것을 의미한다.
URL(Uniform Resource Locator)
URL은 인터넷에 존재하는 여러 서버들이 제공하는 자원에 접근할 수 있는 주소를 표현하기 위한것 '프로토콜://호스트명:포트번호/경로명/파일명?쿼리스트링#참조'의 형태(URL에서 포트번호, 쿼리, 참조는 생략 가능) 로 이루어져 있다.
HTTP프로토콜에서는 80번 포트를 사용하기 때문에 URL에서 포트번호를 생략하는 경우 80으로 간주, 각 프로토콜마다 통신에 사용하는 포트번호가 다르며 생략되면 각 프로토콜의 기본 포트가 사용된다.