본문 바로가기

네트워크 프로그래밍

[2009/06/22] Nagle 알고리즘에 대한 이해 1. Nagle 알고리즘에 대한 이해. - 네트워크상의 패킷 수를 줄이기 위해 제안된 알고리즘. - ACK를 수신해야만 다음 전송을 진행하는 알고리즘. 2. Nagle 알고리즘의 장점과 단점. - 장점 : 네트워크의 효율성이 높아진다.(적은 패킷의 양) - 단점 : 전송 속도가 느리다(ACK 수신 후 패킷 전송) - 생각해 볼 문제 : Nagle 알고리즘의 중단이 데이터 전송 속도를 무조건 향상시켜 주는 것은 아니다. 3. TCP_NODELAY - Nagle 알고리즘을 Disable 시키기 위한 옵션의 변경. - TCP 소켓은 생성시 기본적으로 Nagle 알고리즘 적용 더보기
[2009/06/22] TIME-WAIT 상태에 대한 이해 1. TIME-WAIT 상태란 ? - 연결 종료 시 마지막 패킷 전송 실패를 대비하기 위한 상태. 2. 서버의 연결 종료 - 서버에서 먼저 종료 요청 후, 다시 서버를 가동 시키면? 3. TIME-WAIT 타이머의 재시작 - TIME-WAIT 상태는 우리의 생각보다 더 길어 질 수 있다. 4. SO_REUSEADDR - TIME-WAIT 상태에 있는 서버의 IP와 PORT를 재 할당 하도록 옵션 설정. 더보기
[2009/06/22] 소켓의 옵션 조작하기 1. 소켓의 옵션 조작이란? - 소켓의 옵션 조작 : 소켓의 기본적인 특성을 변경하는 것. - 소켓의 기본적인 특성 1) 입력 및 출력 버퍼의 크기 2) 데이터 전송 방식(TCP or UDP) 3) TTL(Time to live) - 소켓의 옵션은 거의 대부분 변경이 가능하지만 참조만 가능한 것도 있다. 2. 소켓의 옵션 관련 함수1(옵션 참조) #include #include int getsockopt(int sock, int level, int optname, void *optval, socklen_t *optlen); (리눅스) #include int getsockopt(SOCKET s, int level, int optname, char FAR *optval, int FAR *optlen); (윈.. 더보기
[2009/06/21] 도메인 이름과 IP주소의 변환. 1. 변환(도메인 이름 IP주소)의 필요성 - 상대적으로 잦은 IP 변화에 대한 능동적인 문제 해결. 2. 변환(도메인 이름 -> IP주소) 함수 1 #include struct hostent* gethostbyname(const char* name); (리눅스) #include struct hostent FAR *gethostbyname(const char FAR *name); (윈도우) 3. Struct hostent 4. Struct hostent 구조체 변수 5. 변환(IP -> 도메인 이름) 함수 2 #include struct hostent* gethostbyaddr(const char* addr, int len, int type); (리눅스) #include struct hostent FAR.. 더보기
[2009/06/21] 도메인 이름과 DNS 1. 도메인 이름이란? - 영문으로 표현되는 계층적 주소 체계 방식. - 각 나라마다 존재하는 Network Infomation Center에서 관리. : 한국은(KRNIC : Korea Network Infomation Center : www.nic.or.kr)에서 담당 - 도메인 이름 = 호스트 이름 + 도메인 이름 : academy.freelec.co.kr = academy + freelec.co.kr - TCP/IP 는 도메인 이름을 인식 못함. 2. 현실 세계의 주소 체계 3. 인터넷상에서의 주소 체계 4. DNS(Domain Name System) 서버 - 모든 Domain 이름은 해당 IP와 함께 DNS 서버에 등록되어야 한다. - Domain 이름을 IP 주소로 변환해 주는 작업을 한다. 더보기