■ 클라이언트 / 서버 구조에서 클라이언트는 IP 주소로 네트워크상의 서버를 구분하고, 포트로 시스템 내부에서 실행중인 프로그램을 구분해서 서비스를 요청한다.

(1) 포트 (Port)
: 클라이언트의 서비스 요청과 서버의 응대 처리는 각각의 소켓이 연결된 포트를 통해 이루어진다.

- 컴퓨터 시스템은 0 부터 65535까지의 포트를 두고 있다.
- 클라이언트가 원하는 서비스를 받으려면 서버의 어떤 포트가 서비스를 하고 있는지를 미리 알아야한다.
- 서버에서는 서비스를 할 수 있도록 미리 서버측 응용프로그램에서 소켓을 생성하고 해당 포트를 연결시켜 놓아야 한다.

※ 참고자료 : 2011/05/11 - [T heory/Network] - 포트 (Port) 

- 리눅스/유닉스 계열 시스템에서 포트별로 할당된 서비스의 내용 확인하기
: /etc/services 파일을 통해 확인 가능


(2) IP 주소
: 소켓통신을 위해 상대 컴퓨터와의 접속점으로 IP 주소와 포트를 사용한다.

- 응용프로그램에서의 IP 주소의 표현방식은 '도메인 이름(www.naver.com)', '10진수(202.131.30.81)'이 있다.
- 이런 형식의 IP 주소는 네트워크 바이트 순서로 된 이진값으로 변환해야 한다.

※ 참고자료 : 네트워크 바이트 순서 관련 자료
2011/06/20 - [T heory/Network] - 네트워크 바이트 순서 (Byte Ordering) 
2011/04/13 - [P rogramming/C Language] - 바이트 순서 변환 함수 (ntohl, ntohs, htonl, htons)

※ 참고자료 : IP 주소 변환 관련 자료
2012/02/29 - [P rogramming/Linux System] - 네트워크 주소 변환 - inet_addr()
2012/02/29 - [P rogramming/Linux System] - 네트워크 주소 변환 - inet_aton()
2012/02/29 - [P rogramming/Linux System] - 네트워크 주소 변환 - inet_ntoa()


(3) 프로토콜 주소의 구성
: TCP/IP 통신망에서 상대방과 통신하기 위해 사용하는 접속점의 주소는 구조체 sockaddr에 담아 준비한다.

※ 참고자료 : 프로토콜의 주소 관련 자료
2012/02/27 - [P rogramming/Socket] - 프로토콜 체계와 주소체계 - PF_INET, AF_INET
2012/02/28 - [P rogramming/Socket] - 3. 주소 정보의 표현 (sockaddr / sockaddr_in)


※ 포트번호나 IP 주소는 모두 네트워크 바이트 순서로 기술해야 하고, 특히나 IP 주소는 이진 형식이어야 한다.


 
by 민트앤라떼 2013. 11. 13. 19:38