네트워크나 네트워크 간 연결의 목적은 사용자에게 서비스를 제공하는 것
Q1. 각 응용 프로그램들이 서비스 요청과 서비스 제공의 두 기능을 모두 할 수 있어야 하는가 아니면 둘 중에 하나만 가능해야 하는가?
A1. 클라이언트(client)라는 응용 프로그램을 로컬 측에서 동작시켜 원격 응용 프로그램에다 서비스 요청을 하고,
서버(server)라는 응용 프로그램을 원격에서 동작시켜 요청을 수신한 뒤 서비스를 제공하도록 하는 것
응용 프로그램은 요청자(클라이언트) 또는 제공자(서버)가 됨
Q2. 서버는 특정 클라이언트에만 서비스를 제공해야 하는가, 어떤 클라이언트에도 서비스를 제공해야 하는가
A2. 특정 클라이언트가 아니라 어떤 클라이언트에게도 서비스를 제공해야 함, 서버 클라이언트 관계는 일-대-다
클라이언트는 순차적이거나 동시적으로 수행될 수 있다.
오늘날 대부분의 컴퓨터는 동시에 수행될 수 있는 두 개 이상의 동시 클라이언트를 허용한다.
비연결형 순차 서버 UDP: 서버가 한 번에 하나의 요청만 처리함
연결 중심 동시 서버 TCP(or SCTP): 요청이 몇 개의 세그먼트로 도착하는 바이트 스트림, 응답도 몇 개의 세그먼트를 차지함
소켓 인터페이스
클라이언트 프로세스가 어떻게 서버 프로세스와 통신할 수 있을까?
컴퓨터 프로그램은 컴퓨터가 해야 할 일을 지정하는 미리 정의된 명령들의 집합이다.
컴퓨터 프로그램은 수학적인 동작을 위한 명령 집합, 문자열 처리를 위한 명령 집합, 입출력 접속을 위한 명령 집합을 가짐
다른 기계에서 수행되는 다른 프로그램과 통신할 수 있는 프로그램을 필요로 한다면,
전송 계층에게 연결을 설정하고, 다른 기계로 데이터를 송수신하고, 연결을 종료하는 명령들의 새로운 집합이 필요하다.
이러한 종류의 명령들을 보통 인터페이스라고 부른다.
- 인터페이스: 두 개체 사이의 상호작용을 위해 설계된 명령들의 집합
통신을 위해 설계된 여러 인터페이스 중 공통: 소켓 인터페이스(socket interface), 전송 계층 인터페이스(TLI: Transport Layer Interface), 스트림(STREAM)
peer-to-peer(P2P): 여러 클라이언트가 각각 연결을 만들고 대용량 파일을 내려받는 대신, 서버가 각 클라이언트로 하여금 파일의 일부를 내려 받고 이를 서로 공유하도록 하는 것
서버 장치에 많은 부하를 야기하는 파일 전송과 같은 영역에서 유용함
Reference
Behrouz A. Forouzan (2009), TCP/IP 프로토콜(Protoccol Suite), 4th Edition
'Networking > Network' 카테고리의 다른 글
[TCP/IP Protocol #26] Part 5 | Chapter 26. IPv6 주소 (0) | 2024.02.01 |
---|---|
DHCP: 호스트 설정 - 배경, 동작 절차, 기능, 상태 천이, 이슈 (1) | 2024.01.30 |
DNS - 정의, 배경, 서버 분류, 동작 원리 (0) | 2024.01.29 |
[TCP/IP Protocol #7] Part 2 | Chapter 7. IPv4 (1) | 2024.01.25 |
[TCP/IP #6] Part 2 | Chapter 6. IP 패킷의 전달과 포워딩 - 라우터 구조 (0) | 2024.01.25 |