2.7 소켓 프로그래밍: 네트워크 어플리케이션 생성

일반적인 네트워크 애플리케이션은 2개의 종단 시스템에 존재하는 클라이언트 프로그램과 서버 프로그램으로 구성됨. 이 두 프로그램을 수행하면 클라이언트와 서버 프로세스가 생성되고, 두 프로세스가 소켓으로부터 읽고, 소켓에 쓰기를 통해 서로 통신함.

클라이언트-서버 애플리케이션에는 두 가지 형태가 있음.

개발자가 개발 단계동안 우선해야 할 결정 중 하나 애플리케이션이 TCP를 이용하는지, UDP를 이용하는지에 대한 것임.

클라이언트 or 서버 프로그램이 RFC에 정의된 프로토콜을 구현할 때, 그 프로토콜과 연관된 잘 알려진 포트 번호를 사용해야함. (HTTP: 80번, HTTPS: 443번, SNTP: ..번)

역으로, 독점적인 애플리케이션을 개발할 때 개발자는 잘 알려진 포트번호를 사용하지 않도록 유의해야 함.

2.7.1. UDP를 이용한 소켓 프로그래밍

다른 컴퓨터에서 수행되는 프로세스 간의 통신은 소켓에 메시지를 보냄으로써 실행한다.

⇒ `애플리케이션 개발자는 소켓의 애플리케이션 계층에 대한 제어권을 갖지만 트랜스포트 계층 쪽에 대한 제어권은 거의 없음.