2009. 8. 6. 19:29ㆍ언어/TCP-IP
TCP : 전송과정을 컨트롤한다(Transmission Control Protocol)
TCP/IP 프로토콜 스택 : 총 4개의 프로토콜을 쌓아올려 놨다.
Physical 영역 : Link 계층 => 물리적인 영역을 담당한다.(LAN, WAN)
Network 영역 : IP계층 => 데이터 전송을 담당
- Router는 평상시에 서로간의 상태를 주고 받는다.
Transport 영역 : TCP/UDP 계층 : 데이터 전송에 대한 확실성
Application 영역 : Application 계층 => 데이터를 주고 받는 방법을 정의한다. 프로그램의 구현을 의미, 프로토콜을 정의하고 구현
TCP 기반 서버 구현
서버의 기본적인 함수 호출 순서
Socket()[소켓 생성] => bind()[소켓에 주소할당]=> listen()[연결요청 대기상태]=>accept()[연결허용]=>read&Write()[데이터 송수신]=>close()[연결종료]
연결요청 대기 상태(Listen())
Listen 함수는 첫 번째 인자는 서버소켓이 되고 두 번째 인자는 연결요청 대기 큐가 된다.
Listen 함수는 전달되는 인자의 소켓을 서버소켓이 되게 한다.
Listen 함수엔 연결요청 대기 큐가 두 번째 인자에 숫자에 의한 만큼 생성된다.
서버 소켓 : 일종의 '문지기'이다.
- 서버 소켓은 클라이언트의 연결요청을 받아 대기실 격인 연결요청 대기 큐에 저장해주는 역할을 한다.
- 한번 서버 소켓이 되면 프로그램이 끝날 때까지 다른 일을 할 수 없고 프로그램이 끝날 때까지 서버소켓을 남는다.
연결요청 수락하기(accept)
- 첫번째 인자 : 주소정보가 채워짐.
- 세번째 인자 : 주소 ㅈ정보의 길이
Accept => 자동으로 소켓이 생성된다., 새로운 소켓의 핸들이 리턴된다.
TCP 클라이언트 구현
클라이언트 함수 호출 순서
Socket()[소켓 생성]=> connect()[연결요청]] => road&write() [데이터 송수신]=> close()[연결종료]
Interative 서버 구현
Interative 서버
- 반복해서 클라이언트의 요청을 처리한다.
- 서버가 빠르다.
에코서버 : 클라이언트가 전해주는 데이터를 배열에 저장했다가 그대로 되돌려주는 서버.
'언어 > TCP-IP' 카테고리의 다른 글
주소체계와 데이터 정렬 (0) | 2009.08.05 |
---|---|
소켓의 생성과 프로토콜의 설정 (0) | 2009.08.05 |
네트워크 기초 (0) | 2009.07.31 |