Search Results for 'Server'

20 POSTS

  1. 2012.09.04 데드락
  2. 2012.08.13 GetQueuedCompletionStatus() 함수
  3. 2012.08.13 Completion Port 오브젝트와 소켓의 연결
  4. 2012.08.13 Completion Port의 생성
  5. 2012.08.13 IOCP
  6. 2012.08.13 기본 함수 20개
  7. 2012.08.13 3way hand shake
  8. 2012.08.13 라우팅
  9. 2012.08.13 OS의 종류와 차이점
  10. 2012.08.13 기초 용어

데드락

Posted 2012. 9. 4. 14:41

정의

두개 이상의 스레드가 하나의 자원을 공유할때

ex) A 에서 B가 가진 자원이 있어야만 동작 가능하며 B의 작업이 끝나기를 기다리고 있는데

B 에서도 A가 가진 자원이 필요해 A가 끝나기를 기다리는 상태일때 두 작업은 교착상태에 빠지게 된다.

 

발생조건

Mutual exclusion : 한번에 오직 1개의 프로세스만 이 자원에 접근 가능

Hold and wait : 최소한 한개의 자원을 가진 프로세스가 다른 프로세스 소유의 자원을 추가로 얻기 위해 기다릴때

No preemption : 해당 작업이 완료되기 전까지는 자원이 반환하지 않는것

Circular wait : 연쇄적으로 자원을 기다리는 형태( 1은 2를 기다리고, 2는 3을 기다리고, 3은 1을 기다리는 상태 )

 

방지 방법

타임 아웃을 줘서 어느 일정시간 동안 락을 기다리다가 반응이 없으면 롤백 시키는 타임아웃 설정

락 타임아웃의 설정 : SET LOCK_TIMEOUT 10000

락 타임아웃 확인 : SELECT @@LOCK_TIMEOUT

트랜잭션 추가

또는 프로시저 우위를 설정해 준다

우선 순위의 레밸은 Low와 Normal로 나타낼수 있고 Priority라는 것을 이용하여 설정 할 수가 있다

SET DEDLOCK_PRIORITY LOW

또는 한 프로시저가 너무 오랫동안 사용하고 있다 의심되는 것을 강제로 종료 시키는 방법

 

'Server' 카테고리의 다른 글

Connection Error] IOCP : GetQueuedCompletionStatus  (0) 2013.10.18
크리티컬섹션, 뮤텍스  (0) 2012.09.04
3way hand shake  (0) 2012.08.13
라우팅  (0) 2012.08.13
OS의 종류와 차이점  (0) 2012.08.13

GetQueuedCompletionStatus() 함수

Posted 2012. 8. 13. 22:49

이제 CP에 등록되는 완료된 IO의 확인방법. 이에 사용되느 함수는

 

BOOL GetQueuedCompletionStatus(

HANDLE CompletionPort,  //완료된 IO정보가 등록되어있는 CP오브젝트의 핸들 전달      

LPDWORD lpNumberOfBytes,  // 입출력 과정에서 송수신 된 데이터의 크기정보를 저장할 변수의 주소값

PULONG_PTR lpCompletionKey,   // CreateIoCompletioPort함수의 세번쨰 인자로 전달된 값의 저장을위한 변수의 주소값

LPOVERLAPPED* lpOverlapped,  // WSASend, WSARecv 함수호출시 전달하는 OVERLAPPED구조체변수의주소값이저장될변수의 주소값 전달

DWORD dwMillisecones   // 타임아웃 정보전달, ㅕㅇ기서 지정한 시간이 완료되면 FALSE를 반환하면서 함수를 빠져나감.

INFINITE-> 완료된 IO가 CP오브젝트에 등록될때까지 블로킹상태.

);

-> 성공시 TRUE, 실패시 FALSE 반환

 

" GetQueuedCompletionStatus 함수의 세번째 인자를 통해서 얻게 되는 것은 소켓과 CP오브젝트의 연결을 목적으로

CreateCompletionPort 함수가 호출될때 전달되는 네번째 인자 값이다.

네번째 인자로 얻게되는건  WSASend, WSARecv함수호출시 전달되느 WSAOVERLAPPED구조체 변수의 주소값이다.

 

'Server > IOCP' 카테고리의 다른 글

Completion Port 오브젝트와 소켓의 연결  (0) 2012.08.13
Completion Port의 생성  (0) 2012.08.13
IOCP  (0) 2012.08.13

생성했다면 오브젝트에 연결해야됨..그래야 완료된 소켓의 IO정보가 CP오브젝트에 등록된다.

 

생성과 연결 함수

HANDLE CreateIoCompletionPort(

HANDLE FileHandle,

HANDLE ExistingCompletionPort,

ULONG_PTR CompletionKey,

DWORD NumberOfConcurrentThreads

);

이번은 연결시점으로 설명)

HANDLE FileHandle     // CP오브젝트에 연결할 소켓의 핸들 전달

 

HANDLE ExistingCompletionPort,    // 소켓과 연결할 CP오브젝트의 핸들 전달

ULONG_PTR CompletionKey,      //완료된 IO관련 정보의 전달을 위한 매개변수. 이는 GetQueuedCompletionStatus함수와 함꼐이해해야됨

DWORD NumberOfConcurrentThreads    // 어떠한 값을 전달하건 이 함수의 두번째 매개변수가 NULL이아니면 그냥 무시됨.

 

ex)

HANDLE hCpObject;

SOCKET hSock;

........

CreateIoCompletionPort( (HANDLE)hSock, hCpObject, (DWORD)ioInfo, 0 );

이렇게 Crea......함수가 호출된 이후부터는 hSock를 대상으로 진행된 IO가 완료되면 이에대한 정보가 핸들 hCpObject에 해당하는 CP오브젝트에 등록된다.

 

'Server > IOCP' 카테고리의 다른 글

GetQueuedCompletionStatus() 함수  (0) 2012.08.13
Completion Port의 생성  (0) 2012.08.13
IOCP  (0) 2012.08.13

Completion Port의 생성

Posted 2012. 8. 13. 22:48

IOCP에선 완료된 IO의 정보가 Completion Port 오브젝트(이하 CP 오브젝트)라는 커널 오브젝트에 등록된다.

" 이 소켓을 기반으로 진행되는 IO의 완료상황은 저 CP오브젝트에 등록해 주세요 " 라는 요청의과정이 선행되어야 한다.

이를 가리켜 소켓과 CP오브젝트와의 연결 요청 이라 한다.

때문에 IOCP 모델의 서버 구현을 위해서는 다음 두 가지 일을진행해야 한다

1.Completion Port 오브젝트의 생성

2.Completion Port 오브젝트와 소켓의 연결

이떄 소켓은 반드시 Overlapped 속성이 부여된 소켓이여야 함.

 

생성과 연결 함수

HANDLE CreateIoCompletionPort(

HANDLE FileHandle,

HANDLE ExistingCompletionPort,

ULONG_PTR CompletionKey,

DWORD NumberOfConcurrentThreads

);

-> 성공시 CP 오브젝트의 핸들, 실패시 NULL 반환

지금은 생성이니까 생성시점으로 설명)

  1. 입출력 완료 포트를 새로 생성하고
  2. 소켓과 입출력 완료 포트를 연결한다. 연결하면 이 소켓에 비동기 입출력 결과가 입출력 완료 포트에 저장된다.

 

FileHandle : 새로운 입출력 완료포트를 생성할때는 INVALID_HANDLE_VALUE를 전달

ExistingCompletionPort : 파일 또는 소켓과 연결할 입출력 완료 포트 핸들. 새로운입출력 완료 포트를 생성할땐 NULL 전달

CompletionKey : 입출력 완료 패킷에 들어갈 부가적인 정보를 32비트 값을 줄수있다. 생성시는 0을 전달

NumberOfConcurrentThreads : 동시에 실행할수있는 작업자 스레드의 개수. 0을 사용하면 자동으로 CPU개수와 같은수로 설정.

                                         최대설정수는 2.

 

ex) HANDLE hCpObject;

......

hCpObject = CreateIoCompletionPort( INVALID_HANDLE_VALUE, NULL, 0, 2 );

 

SOCKET sock;

HANDLE hResult = CreateIoCompletionPort( ( HANDL)sock, (DWORD)sock, 0 );

 

 

결론은 생성할땐 생성옵션에 맞춰서 함수를 호출하고 연결할땐 연결옵션에 맞춰서 함수를 호출.

 

즉.. 만들때 한번호출하고.. 이미 있는걸 연결할때 또 호출하고..

 

 

 

 

 

 

 

'Server > IOCP' 카테고리의 다른 글

GetQueuedCompletionStatus() 함수  (0) 2012.08.13
Completion Port 오브젝트와 소켓의 연결  (0) 2012.08.13
IOCP  (0) 2012.08.13

IOCP

Posted 2012. 8. 13. 22:48

Completion Port모델은 모든 소켓 입출력 모델 중 가장 뛰어난 성능을 제공한다.

보통 입출력 완료포트( I/O Completion Port ) 를 줄여서 IOCP라 칭한다.

 

입출력 완료포트는 비동기 입출력 결과와 이 결과를 처리할 스레드에 대한 정보를 담고 있는 구조로 APC큐와 비슷한 개념이다.

APC : 비동기 함수를 호출하는 매커니즘

 

APC와 IOCP의 차이점

1, 생성과 파괴

-> APC큐는 각 스레드마다 자동으로 생성되고 파괴된다.

-> IOCP는 CreateIoCompletionPort() 함수를 호출하여 생성하고 CloseHandle() 함수를 호출하여 파괴한다.

 

2. 접근 제약

->APC큐는 저장된 결과는 APC큐를 소유한 스레드만 확인할수 있지만 IOCP에는 이런 제약이 없다.

-> 보통 입출력 완료 포트를 접근하는 스레드를 별도로 두는데 이를 작업스레드라 한다.

 

3.  비동기 입출력 처리 방법  

->APC큐는 저장된 결과를 처리하려면 해당 스레드는 alertable wait 상태에 진입해야 한다.

-> IOCP에 저장된 결과를 처리하려면 작업자 스레그는 GetQueuedCompletionStatus() 함수를 호출해야 한다.

 

IOCP 소켓 입출력 절자

  1. CreateIocompletionPort() 함수를 호출하여 입출력 완료 포트를 생성
  2. CPU 개수에 비례하여 작업자 스레드를 생성

    모든 작업자 스레드는 GetQueuedCompletionStatus() 함수를 호출하여 대기 상태가 된다.

  3. 비동기 입출력을 지원하는 소켓을 생성한다.

    이 소켓에 대한 비동기 입출력 결과가 입출력 완료 포트에 저장되려면

    CreateIoCompletionPort() 함수를 호출하여 소켓과 입출력 완료 포트를 연결해야 한다.

  4. 비동기 입출력 함수를 호출한다.

    비동기 입출력 작업이 곧바로 완료되지 않으면 소켓 함수는 오류를 리턴하고 오류코드는 WSA_IO_PENDING으로 설정된다.

  5. 비동기 입출력 작업이 완료되면 운영체제는 입출력 완료 포트에 결과를 저장하고

    대기 중인 스레드 하나를 깨운다.

    대기 상태에서 깨어난 작업자 스레드는 비동기 입출력 결과를 처리한다.

  6. 새로운 소켓을 생성하면 3~5를.. 그렇지 않으면 4~5를 반복한다.

 

 

여기서 ...

IOCP에서는 IO를 전담하는 쓰레드를 별도로 생성하고 이 쓰레드가 모든 클라이언트를 대상으로 IO를 진행하게 됨.

입출력 함수인 WSASend, WSARecv 함수를 호출하는 쓰레드는 우리가 직접 생성해야 한다.

다만 이 쓰레드가 입출력의 완료를 위해 GetQueuedCompletionStatus함수를 호출할뿐이다.

그리고 GetQueue....함수는 어떤 스레드든 호출 가능하지만 실제 IO의 완료에 대한 응답을 받는 쓰레드의 수는 

CreateIoCompletionPort호출시 지정한 최대 쓰레드의 수를 넘지않는다.

 

적정수는 CPU에 존재하는 코어의 수로 이해하는것이 좋다.

 

워커쓰레드의 갯수가 cpu*2인 이유. MS의 표준임..

 

즉 IOCP란

Input Ouput Completion Port즉 인풋 아웃풋 작업이 완료 되었을때 포트를 통해서 일을 처리하는것을 말한다.

그 일이 워커쓰레드 에서 한다.

 

동기식 : send나 recv함수가 완료되기 전에는 실행 코드가 움직이지 않는다

비동기식 : send나 recv는 우선 운영체제에게 소켓 작업을 한다고 알려죽 ㅗ후에 완료 통지를 받는 방식이다.

중첩소켓 : 여러개의 소켓 입출력 작업이 운영체제로 들어가면 몇개는 입출력 시간이 겹쳐도 작업이 가능하다는 매우 획기적인 기술

               중첩되는 시간만큼 속도가 빨라진다는 장점을 가직 ㅗ있다.

 

비동기 I/O가 완료되면 정보단위가 만들어지고 이것이 IOCP큐에 들어간다. 이때 작업 스레드는 IOCP의 통지를 받고 IOCP큐에서 정보 단위 하나를 가져와

작업을 수행하게 된다.

IOCP는 하나의 스레드가 하나 이상의 사용자로부터의 요구를 처리 할 수 있도록 해준다. 꼭 한개의 스레드를 사용하는 건 아니다.

상황에 맞게 스레드의 개수를 조절 할 수 있다.

작업 스레드가 많으면 좋지만. 스레드가 많아지게 되면 context switching이 많이 일어 나므로 적은 수으 ㅣ스레드를 사용.

context switching은 윈도우 2000, nt 이상에서 지원해준다( 자동으로 해줌..)

IOCP의 가장 큰 장점은 쓰레드 풀을 통한 context switching 비용이 줄어든다. 

 

'Server > IOCP' 카테고리의 다른 글

GetQueuedCompletionStatus() 함수  (0) 2012.08.13
Completion Port 오브젝트와 소켓의 연결  (0) 2012.08.13
Completion Port의 생성  (0) 2012.08.13

기본 함수 20개

Posted 2012. 8. 13. 22:47

기본 20개의 함수들을

보충해주기위해

나머지들이 도와주는..( 쓰레드, 동기화 등등 )

함수들을. 클래스화로 ..

그리고 함수들의 인자들 확실히. 알고넘기기

 

2) 소켓 초기화 socket

3) bind()

4) listen()

5) accept()

6)recv()

7)sand()

8)closesocket()

10)함수호출시 오류코드()

11)sin_family

12)sin_port

13)sin_addr

14)바이트 정렬 함수 htons : s 쇼트. 짧은거 port에 사용   -> 호스트 바이트 순에서 네트워크 바이트 순으로 변경 : 네트워크방식 -> 빅 엔디엔

15)바이트 정렬 함수 htonl : l 롱. 긴거 ip에 사용

ntohs : 네트워크 순에서 호스트순 쇼트로( PORT )

ntohl : 네트워크 순에서 호스트 순으로 롱으로( IP )

빅 엔디엔 : 상위 바이트의 값을 작은 번지수에 저장하는 방식

리틀 엔디엔 : 상위 바이트의 값을 큰 번지수에 저장하는 방식

컴퓨터 저장방식은 두가지 방식이 있음. 빅 엔디엔 방식과 리틀 엔디엔 방식.

빅 엔디엔 방식의 0x12, 0x24, 0x36 방식으로 저장되는걸 리틀엔디엔에서는 0x36, 0x24, 0x12 순으로 전송

네트워크상에서 통일 시켜주지않으면 뒤죽박죽..

 

16) IP주소 변환 함수 inet_addr

inet_addr : 32비트 정수형태로 IP주소를 변환

inet_ntoa : 인자로 전달된 정수형태의 IP정보를 참조하여 문자열 형태의IP정보로 변환해서 변환된문자열의 주소값을 반환함. 반환형이 char형임

             : 임시공간에 이미 저장시켜버림. 다음에 호출되면 이전께 지워지니까. 필요에따라선 따로 저장해둬야됨.

inet_aton : 문자열 형태의 IP주소를 32비트 정수, 그것도 네트워크 바이트 순서로 정렬해서 반환함. 다만 구조체변수 in_addr를 이용하는형태.

 

 

17) 도메인이름->ip주소 함수 getthostbyname

18) ip주소->도메인이름 함수 gethostbyaddr

19)클라의 connect

20) udp의 sendto, recvfrom

21) select 함수( 스레드없이 유저수64 이하의 데이터를 동시 컨트롤할수있음 )

 

21) TCP / UDP

22) 멀티캐스트 / 브로드캐스트

 

23) IP 주소 변환 함수

inet-addr()함수는 문자열 형태로 IP주소를 입력받아 32비트 숫자( 네트워크 바이트 정렬)로 리턴한다.

inet_ntoa()함수는 32비트 숮자(네크워크바이트 정렬)로 IP주소를 입력받아 문자열 형태로 리턴한다.

 

그 다음 쓰레드, 동기화

스레드 없이 동시컨트롤이. select, 비동기화 select, event select 3가지뿐.

3way hand shake

Posted 2012. 8. 13. 22:46

TCP 연결설정 ( 3 - way hand shake)

  1. A 가 B 에게 SYN(동기화) 요청을 한다.
  2. B 가 A 에게 ACK (요청에 대한 대답) 과 SYN(동기화 요청) 을 한다.
  3. A 가 B에게 ACK (요청에 대한 대답) 을 주면 이로서 session이 맺어지게 된다.

이제 비로소 통신을 하게됨

 

session

  1. 망 환경에서 사용자 간 또는 컴퓨터간의 대화를 위한 논리적연결.
  2. 프로세서들 사이에 통신을 수행하기 위해서 메시지 교환을 통해 서로를 인식한 이후부터 통신을 마칠때 까지의 기간.

 

아. connect함수를 이용해 connection을 맺을때 내부에서는 3way hand shake를 한다.

 

TCP 고유의 연결방식이 3way hand shake다.

3way hand shake로 인하여 TCP가 신뢰성 연결지향 방식이 될 수 있게 된다.

 

 

패킷을 보낼때마다. 이 과정을 거치게 된다.

 

그러므로 패킷을 최소화 하자. 

'Server' 카테고리의 다른 글

크리티컬섹션, 뮤텍스  (0) 2012.09.04
데드락  (0) 2012.09.04
라우팅  (0) 2012.08.13
OS의 종류와 차이점  (0) 2012.08.13
기초 용어  (0) 2012.08.13

라우팅

Posted 2012. 8. 13. 22:46

라우팅(Routing)

네트워크상에서 주소를 이용하여 목적지까지 메시지를 전달하는 방법을 체계적으로 결정하는 경로선택 과정

이과정을 능동적으로 수행하는 장치를 라우터(Router)라고 하며, 이 과정에서 생기는 라우팅테이블,메트릭등의 일련의 동작을 모두 포함하여 의미함.

 

라우팅테이블(Routing Table)

라우터가 어떤 경로를 찾을 때 사용하는 것으로 이것은 사용하는 라우터의 프로토콜에 따라 달라지며, 또 라우터는 항상 최적의 경로를 찾아 이것을 라우팅 테이블에 유지하고있다. 그러나 인터넷은 너무 광법위해 모든 정보를 저장하고 유지하는데 한게가 있기에 효율적으로 사용하기 위한 기술이 필요하다. 목적지 네트워크 주소와 라우터의 출구 포트 정보, 최적 경로 산출을 위한 metrics등의 정보를 포함한다.

 

메트릭(Metric)

네트워크를 거쳐 지나가는데 할당되는 비용, 특정 경로 상의 통 메트릭은 그 경로에 속하는 각 네트워크들의 메트릭의 합이며,

라우터는 이 값이 가장 작은 경로를 선택한다. 일반적으로 사용되는 메트릭의 종류로는 path length(경로거리, Hop count), delay(시간),

bandwidth(전송선로 용량), load(부하, traffic), cost(링크특성, 관리자에 의해 부여된 값)등이 있다.

 

-----라우팅의 효율적인 사용 방법-----

1. 다음 홉 라우팅(Next-hop Routing)

목적지에 대한 정체경로 대신 다음-홉(Next-hop)에 대한 정보만을 저장

라우팅 테이블의 크기를 줄일수 있음

일반적으로 네트워크 지정 라우팅, 호스트 지정 라우팅과 함께 사용

 

2. 네트워크 지정 라우팅(Network Specific Routing)

목적지에 대한 호스트 정보 대신 네트워크 주소에 대한 정보만을 저장

라우팅 테이블의 크기를 줄일수 있음, 단, 100개의 호스트가 단일 네트워크로 연결되어 있다면 라우팅 테이블은 1개의 네트워크 정보만 저장

 

3. 호스트 지정 라우팅(Host Specific Routing)

목적지에 대한 호스트 정보를 저장

네트워크 지정 라우팅에 비해 비효율적

경로를 점검하거나 보안을 위해 특정 경로를 이용해야 하는 경우 사용

 

'Server' 카테고리의 다른 글

크리티컬섹션, 뮤텍스  (0) 2012.09.04
데드락  (0) 2012.09.04
3way hand shake  (0) 2012.08.13
OS의 종류와 차이점  (0) 2012.08.13
기초 용어  (0) 2012.08.13

OS의 종류와 차이점

Posted 2012. 8. 13. 22:45

OS(Operation System)

컴퓨터의 운영체제, 운영체제시스템소프트웨어의 핵심으로 사용자와 하드웨어 사이에서 사용자가 컴퓨터 하드웨어를 보다 쉽게 사용할 수 있도록 인터페이스를 제공해 주는 프로그램들의 집합이다.
이는 컴퓨터시스템의 자원을 관리하는 자원 관리자라고도 하는데 관리하는 자원으로는 프로세서, 기억장치, 입출력장치, 데이터나 정보, 그리고 통신장치 등이다.

종류 : 윈도우, 유닉스, 리눅스, 맥OS등등..

 

유닉스(Unix)

처음부터 다양한 시스템 사이에서 이식가능하고, 멀티 태스킹 다중 사용자를 지원하도록 설계되었고 유닉스 시스템은 다음과 같은 개념임

 일반 텍스트 파일, 명령행 인터프리터, 계층적인 파일 시스템, 디바이스 및 특정한 형식의 프로세스간 커뮤니케이션을 파일로 취급 등.소프트웨어 엔지니어링 측면에서, 유닉스는 C (프로그래밍 언어)의 사용과 유닉스 철학이라는 부분이 특징이다

 

리눅스(Linux)

기존의 유닉스를 GUI시스템으로 새로 개조된것(GUI : 그래픽 유저 인터페이스)

 

 윈도우와 리눅스와 차이점

  1. 윈도우는 사용법이 쉽고 간편한 반면 리눅스는 컴퓨터 전문지식이 필요하다.
  2. 윈도우는 사용할수 있는 컴퓨터의 기능에 제약이 많고 하드웨어에 따라 성능차이가 심하지만 유닉스는 하드웨어에서 완전히 독립되어

    어느 하드웨어건 상관없이 독자적인 효과를 발휘함

  3. 윈도우는 개인용 컴퓨터나 독립적인 작업이나 일부 소규모 네트워크에서 제한된 네트워킹 작업만을 하는데 더 효율적이지만

    리눅스는 반대로 대규모에서 더 효율적이다(유닉스를 기반으로 했기때문에 기본 특성이 유닉스와 비슷함)

  4. 그렇기에 윈도우는 대체로 클라이언트, 리눅스는 서버용으로 많이 사용함

'Server' 카테고리의 다른 글

크리티컬섹션, 뮤텍스  (0) 2012.09.04
데드락  (0) 2012.09.04
3way hand shake  (0) 2012.08.13
라우팅  (0) 2012.08.13
기초 용어  (0) 2012.08.13

기초 용어

Posted 2012. 8. 13. 22:44

네트워크 프로그래밍

네트워크로 연결되어 있는 서로 다른 두 컴퓨터가 데이터를 주고 받을 수 있도록 하는것

 .지금은 인터넷이란 거대한 네트워크로 연결되어 있어 물리적인 연결은 신경 쓸 필요 없다.

 

 운영체제에서 소켓(SOCKET)은 데이터송수신에 사용할 수 있는 소프트웨어적인 장치를 의미함

 

BSD소켓

네트워크 프로그램을 작성하기 위한 기기

유닉스에선 일반소켓을 BSD소켓이라고 하고, MS는 WinSock이라는 이름을 씀, 단순한 이름의 명칭

 

호스트라는 용어는 여러 가지 상황에서 사용되는데, 약간씩 다른 의미를 가지고 있다.

  1. 인터넷에서 호스트는, 인터넷을 통해 다른 컴퓨터들과 쌍방향 통신이 가능한 컴퓨터를 말한다. 호스트는 특정한 호스트번호를 갖는데, 이는 네트웍 번호와 합해져서, 고유의 IP 주소를 이루게된다. 인터넷 서비스 제공업체를 통한 PPP 사용자의 경우에는, 접속되어있는 동안에만 고유한 IP 주소를 갖게되며, 그 시간동안은 해당 사용자의 컴퓨터도 하나의 호스트가 되는 것이다. 이러한 맥락에서 보면, 호스트란 네트웍의 하나의 노드라고 볼 수도 있다.

     

  2. IBM이나 기타 다른 메인프레임 컴퓨터 환경에서, 호스트란 하나의 메인프레임 컴퓨터를 말한다 (요즘은 이런 컴퓨터를 '대형 서버'라고 부른다).이 상황에서 메인프레임은 단말기가 부착되어 있으며, 메인프레임은 이 단말기에게 서비스를 제공하는 호스트가 된다 (여기서 호스트는 항상 서버가 되고 워크스테이션은 항상 클라이언트가 된다는 것을 의미하는 것은 아니다. 클라이언트/서버 관계는 호스트라는 용어의 사용과 관계없는 하나의 프로그래밍 모델이다).

     

  3. 그 외 다른 상황에서, 이 용어는 자신보다 작거나 능력이 떨어지는 장치 또는 프로그램에게 서비스를 제공하는 장치나 프로그램을 의미한다

 

 

트래픽( Traffic )

특정 전송로상에서 일정 시간내에 흐르는 Data의 양.

즉, 시스템에 걸리는 부하. 시스템 관리자의 중요한 작업중 하나가 수시로 관리를 해줘야됨

 

'Server' 카테고리의 다른 글

크리티컬섹션, 뮤텍스  (0) 2012.09.04
데드락  (0) 2012.09.04
3way hand shake  (0) 2012.08.13
라우팅  (0) 2012.08.13
OS의 종류와 차이점  (0) 2012.08.13