본문 바로가기

서버 프로그래밍

[2009/06/09] UDP 소켓의 성능향상 1. UDP 소켓에서의 connect 함수의 의미 - TCP 소켓에서의 connect 함수의 의미 1) IP와 Port의 할당. 2) 연결 요청 진행(Three-ay handshaking) - UDP 소켓에서의 connect 함수의 이미 1) IP와 Port의 할당. 참고 : connect 함수 호출을 하지 않으면 IP와 Port는 언제 할당 되는가?(sendto 함수가 호출될때 할당 된다.) - TCP/UDP 소켓 공통적으로 지니는 connect 함수의 의미 1) 커널과 소켓의 연결 생성. 2. 일반적인 UDP 클라이언트 - connect 함수를 호출하지 않는 UDP 클라이언트의 데이터 송 수신. 3. 결론! connect 함수 호출이 주는 이점. - 데이터를 주고 받는 속도가 빨라진다. - TCP 소.. 더보기
[2009/06/09] UDP 소켓의 데이터 전송 특징 1. UDP의 이해 - IP를 기반으로 데이터를 전송한다. - 흐름제어(flow control)을 하지 않기 때문에 데이터 전송을 보장 받지 못한다. - 연결설정 및 연결 종료 과정도 존재 않는다. - 연결상태가 존재하지 않는다. 2. UDP의 역할 - Port 정보에 의한 Process의 구분. 3. UDP 기반 서버 / 클라이언트의 구현 - 일반적으로 연결 설정과정을 거치지 않는다. - 데이터를 주고 받기 위한 소켓은 하나만 생성한다. 4. UDP 기반의 데이터 입 출력 함수. - 데이터 전송 함수. int sendto(int sock, const void* msg, int len, unsigned flags, const struct sockaddr * addr, int addrlen) (리눅스) i.. 더보기
[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 서버/클라이언트의 구현 - 에코 서버/클라이언트의 기능 더보기