client :네트워크 프로세스나 다른 컴퓨터의 데이터, 서비스 또는 자원들을 액세스하는 컴퓨터 또는 프로세스
server : 네트워크상의 다른 컴퓨터 또는 프로세스가 액세스할 수 있는 데이터, 서비스 또는 자원을 제공하는 컴퓨터 또는 프로세스
host : 인터넷 네트워크에 접속되고 다른 인터네 호스트와 통신 할 수 있는 컴퓨터, 특정 사용자에 대한 로컬 호스트란 해당 상용자가 작업중인 컴퓨터, 원격 호스트란 네트워크에 있는 임의의 다른 호스트 이름 통신 네트워크에서 보았을때 호스트는 패킷의 소스이면서 대상이다. 모든 호스트가 클라이언트 이거나 서버 혹은 둘 다 일 수있으며 인터넷 네트워크에서 호스트는 인터넷 이름과 주소로 식별된다.
network : 둘 이상의 호스트 및 이들 사이의 연결 링크 조합. 물리적 네트워크는 네트워크를 구성하는 하드웨어이며 논리적 네트워크는 전체 또는 일부의 하나 이상의 물리적 네트워크에 있는 추상적 구조로 인터넷 네트워크가 대표적인 논리적 네트워크의 예이다. 인터페이스 프로그램은 논리적 네트워크 작업을 물리적 네트워크 작업으로 변환시키는 일을 처리한다.
Client-Server Programming Mode
모든 network application은 클라이언트-서버 모델에 기초하고 있으며
이 모델을 기반으로 Application은 하나의 서버 프로세스와 한개 이상의 클라이언트 프로세스로 구성되어있다.
client -server trnajection
클라리언트-서버 모델의 근본적 연산은 트랜젝션이며 위 그림과 같이 네 단계로 구성된다.
클라이언트가 서버로 request를 보내는 것으로 tranjection을 시작한다.
서버는 클라이언트로 부터 받은 요청을 해석하고 database에 있는 자원을 보내주기위해 적절히 조작한다.
클라이언트에게 서버가 응답한다.
응답을 받은 클라이언트는 이것을 처리한다
클라이언트와 서버는 일정하게 정해진 어플리케이션 규약에 따라 서로 요청과 응답을 주고 받는다.
네트워크?
네트워크란 두 대 이상의 컴퓨터들이 서로 연결되어 통신하는것 .
네트워크는 NET+WORK 의 합성어로 둘이상의 컴퓨터가 연결되어 자원을 공유하고 파일을교환하고 전자통신을 하는등 그물처럼 얽힌 연결망속에서 함께 일하는 것을 말한다.
우리가 웹을 검색하고 이메일 메세지를 보내고, 온라인 게임을 하는 모든 과정이 컴퓨터 네트워크가 있기에 가능한 것이다.
네트워크 와 호스트의 하드웨어 구성
클라이언트와 서버는 종종 별도의 호스트에서 돌아가며 호스트에게 네트워크란 단지 또다른 I/O 디바이스로 인식하자.
네트워크에서 수신한 데이터는 I/O와 메모리 버스를거쳐 어텝터에서 메모리로 DMA전송방식으로 복사된다.
DMA? 데이터가 이동하는 데에는 언제나 CPU의 개입이 있어야 한다. 그러므로 대량의 데이터가 이동할 때는 CPU에 많은 부하가 걸리게 된다. 그래서 CPU를 거치지 않고 직접 데이터를 전송하는 방법이 모색되었는데 그것을 DMA라고 한다.