본문 바로가기

소켓 프로그래밍

[2009/06/08] TCP의 내부구조 1. TCP의 데이터 전송 과정. - 첫 번째 : 연결 설정 단계 1) 클라이언트가 connect 함수 호출 시 진행. - 두 번째 : 데이터 송 수신 단계 1) 서버/클라이언트간 데이터 송 수신 함수 호출 과정에서 진행 - 세 번째 : 연결 종료 단계 1) 클라이언트 혹은 서버가 close(윈도우즈에서는 closesocket) 함수 호출 시 진행. 2. 연결 설정 단계 - Three-way handshaking 3. 데이터 송 수신 단계. 4. 연결 종료 단계 - Four-way handshaking 더보기
[2009/06/08] TCP 소켓의 데이터 전송 특징 1. TCP 기반의 데이터 전송 특징 - 한번의 데이터 전송함수 호출(write, send)이 늘 하나의 패킷을 형성하는 것은 아니다. 2. 경계가 없는 TCP 기반의 데이터 전송 - 데이터 송수신 함수의 호출 횟수는 큰 의미를 지니지 않는다. 3. 버퍼의 존재 1 - 이미 전송된 데이터는 어디에서 존재 하고 있었는가? 4. 버퍼의 존재 2 - 입력 버퍼와 출력 버퍼의 역할. 5. TCP 기반의 전송 제어 - 버퍼가 수용 할 수 있는 크기 이상의 데이터 전송은 이뤄지지 않는다. - 따라서, TCP 기반의 데이터 전송 함수는 여러 개의 패킷을 생성하기도 한다. - 슬라이디 윈도우 프로토콜. 으휴... ㅠㅠ 축제니 데프콘 대회니 뭐니 해서 이제 하넹 ㅠㅠ 더보기
[2009/06/01] Iterative 서버와 에코서버 1. TCP 서버/클라이언트 함수호출 관계 2. Iterative 서버의 구현 - Iterative 서버 : 반복해서 클라이언트의 요청을 처리한다. 3. Iterative 서버의 코드 Template 4. echo 서버/클라이언트의 구현 - 에코 서버/클라이언트의 기능 더보기
[2009/05/31] TCP 기반 클라이언트의 구현 1. 클라이언트의 기본적인 함수 호출 순서 2. 연결 요청 함수 - 소켓과 목적지 주소에 대한 정보를 마련 해 두고 나서 연결 요청을 시도 한다. #include int connect(int sockfd, struct sockaddr *serv_addr, int addrlen); (리눅스) #include int connect(SOCKET s, const struct sockaddr FAR *name, int namelen); (윈도우) 더보기
[2009/05/30] TCP 기반 서버의 구현 1. 서버에서의 기본적인 함수 호출 순서 2. '연결 요청 대기 상태'로의 진입 - listen 함수는 전달되는 인자의 소켓을 '서버 소켓'이 되게 한다. - listen 함수는 '연결 요청 대기 큐'를 생성 한다. #include int listen (int s, int backlog); (리눅스) *int s : 서버 소켓 파일 디스크립터. *int backlog : 연결 요청 대기 큐 크기 지정. #include int listen(SOCKET s, int backlog); (윈도우) * SOCKET s : 서버 소켓 파일 핸들. 3. 서버의 역할과 연결요청 대기상태 - 서버 소켓은 일종의 '문지기'이다. 4. 연결요청 수락하기. - 연결요청 대기 큐(Queue)에 존재하는 클라이언트의 연결 요청 .. 더보기