epoll - Kernel 2.6 기반이전의 epoll(2.4에서 epoll은 정식지원 사항이 아니었지만, 2.6에서는 정식지원이 되는 관계로 별도의 커널패치라든지 라이브러리(아래는 간단한 예제입니다. ET (EPOLLET) 방식이기 때문에 소켓을 nonblocking으로 했습니다. ET로 할것인지 LT로 할것인지에 대해서 생각이 다를 수 있는데, 속편하...
아마 네트웍 프로그래밍을 조금 해보았다면, Little-Endian, Big-Endian 이라는 말을 들어 보았을것이다. 때로 order byte, byte order 라고 말하기도 하며, 작은 끝돌이, 큰 끝돌이(--;) 라고 말하기도 한다. 작은 끝돌이, 큰 끝돌이는 김치하 교수의 번역서에서 볼수 있는 단어들이다....
gethostbyname에서 timeout 처리하기gethostbyname은 도메인이름에 대한 주소를 얻어오는 소켓(이 함수는 편리하게 사용할 수 있으나 입출력 과정이 감추어져 있어서, timeout처리를 할 수 없다는 문제가 있다. timeout 처리를 위한 방법에 대해서 고민해 보려고 한다.리눅스는 /etc/resolv.conf에 DNS(Domain ...
이글은 TCP, IP, UDP 그리고 libpcap에 대한 내용을 알고 있을 것이라는 가정하에 작성되었다. TCP 프로토콜과는 달리 UDP 프로토콜은 별도의 연결과정을 거치지 않고, 그냥 데이터를 전송하고 받는다. 또한 흐름제어를 위한 SQE ACK, ACK를 가지지 않는다. 그러므로 단지 Src IP, Src Port, Dst IP, Dst Port 만을...
네트워크 프로그래밍 이 문서는 여러분이 TCP( 최근 QOS(그러나 이러한 임시의 방법은 다음과 같은 문제점을 가진다. 1. connection time 은 구할 수 없다. 1. 다양한 클라이언트에서의 데이터 응답시간을 얻어낼 수 없다. QOS 관점에서 보자면, 이러한 문제점은 치명적이다. QOS를 위한다면, 다양한 지역과 도메인에서의 정확한 con...
소켓 타임아웃서버 / 클라이언트 모델 구축을 위해서 우리는 보통 Socket API 를 사용하게 된다. 이 Socket API 는 전송계층 레벨에서 통신을 가능하도록 도와주며, 매우 신뢰성있게 작동한다. 대부분의 read/write 작업을 할때 문제가 생기면 문제 상황을 리턴해 주기 때문에 문제상황에 대처하기도 쉽다.그러나 네트워크 단절, 클라이언트 프로...
예제로 알아보는 소켓 프로그래밍 예제가 쓸데 스럽게 복잡함. 예제 프로그램을 echo 로 바꿔야 겠음. -- 2011/02/22 --이문서에서 소켓(여기에서는 이 사이트의 취지에 맞도록 가장 간단하게 접근할수 있는 방법, 즉 "문고리"를 잡는데에 까지만을 설명하도록 하며, Unix(Linux) 상에서가장 널리, 그리고 일반적으로 사용되는 INET(TCP/...
소켓 전달을 통한 prefork 서버 구현fork()는 새로운 자식프로세스를 실행시키기 위해서 사용하며, 다수의 클라이언트를 동시에 처리하기 위해서 입출력다중화(이 방식의 단점이라면 fork()로 새로운 프로세스를 생성시키는 자체에 많은 비용이 들어간다는 점이 될 것이다. 이 문제를 해결하기 위해서 적당한 수만큼 프로세스를 미리 할당시켜 놓고, 새로운 연...
Socket API완성이 되면 docbook(네트워크 환경은 매우 다양하며, 예측하기 힘든경우도 많이 발생한다. 때문에 네트워크프로그램의 종류에 따라서 소켓의 세부사항을 조절해야 하는 경우가 발생한다. 이러한 소켓옵션 설정을 위해서 소켓은 getsockopt()와 setsockopt()두개의 함수를 제공한다. 이름에서 알 수 있듯이 getsockopt는 ...
RPC - Remote procedure callRemote prodecure call (이하 RPC)는 다른 주소공간에서 서브루틴이나 프로시져를 실행시키기위한 컴퓨터 프로그래밍 기술이다. 이 기술을 이용하면 프로그래머는 마치 로컬에서 프로그램을 돌리는 것과 같은 결과를 얻어올 수 있다. 이렇게 여러대의 컴퓨터에 프로시져를 분산하고, 결과를 취합하는 모델...
871 POSTS HERE
epoll - Kernel 2.6 기반
epoll - Kernel 2.6 기반이전의 epoll(2.4에서 epoll은 정식지원 사항이 아니었지만, 2.6에서는 정식지원이 되는 관계로 별도의 커널패치라든지 라이브러리(아래는 간단한 예제입니다. ET (EPOLLET) 방식이기 때문에 소켓을 nonblocking으로 했습니다. ET로 할것인지 LT로 할것인지에 대해서 생각이 다를 수 있는데, 속편하...
리틀 엔디언과 빅 엔디언
아마 네트웍 프로그래밍을 조금 해보았다면, Little-Endian, Big-Endian 이라는 말을 들어 보았을것이다. 때로 order byte, byte order 라고 말하기도 하며, 작은 끝돌이, 큰 끝돌이(--;) 라고 말하기도 한다. 작은 끝돌이, 큰 끝돌이는 김치하 교수의 번역서에서 볼수 있는 단어들이다....
gethostbyname에서 timeout 처리하기
gethostbyname에서 timeout 처리하기gethostbyname은 도메인이름에 대한 주소를 얻어오는 소켓(이 함수는 편리하게 사용할 수 있으나 입출력 과정이 감추어져 있어서, timeout처리를 할 수 없다는 문제가 있다. timeout 처리를 위한 방법에 대해서 고민해 보려고 한다.리눅스는 /etc/resolv.conf에 DNS(Domain ...
UDP 응답시간 체크하기.
이글은 TCP, IP, UDP 그리고 libpcap에 대한 내용을 알고 있을 것이라는 가정하에 작성되었다. TCP 프로토콜과는 달리 UDP 프로토콜은 별도의 연결과정을 거치지 않고, 그냥 데이터를 전송하고 받는다. 또한 흐름제어를 위한 SQE ACK, ACK를 가지지 않는다. 그러므로 단지 Src IP, Src Port, Dst IP, Dst Port 만을...
네트워크 프로그래밍 : connection Time 얻어오기
네트워크 프로그래밍 이 문서는 여러분이 TCP( 최근 QOS(그러나 이러한 임시의 방법은 다음과 같은 문제점을 가진다. 1. connection time 은 구할 수 없다. 1. 다양한 클라이언트에서의 데이터 응답시간을 얻어낼 수 없다. QOS 관점에서 보자면, 이러한 문제점은 치명적이다. QOS를 위한다면, 다양한 지역과 도메인에서의 정확한 con...
소켓 타임아웃
소켓 타임아웃서버 / 클라이언트 모델 구축을 위해서 우리는 보통 Socket API 를 사용하게 된다. 이 Socket API 는 전송계층 레벨에서 통신을 가능하도록 도와주며, 매우 신뢰성있게 작동한다. 대부분의 read/write 작업을 할때 문제가 생기면 문제 상황을 리턴해 주기 때문에 문제상황에 대처하기도 쉽다.그러나 네트워크 단절, 클라이언트 프로...
예제로 알아보는 소켓 프로그래밍
예제로 알아보는 소켓 프로그래밍 예제가 쓸데 스럽게 복잡함. 예제 프로그램을 echo 로 바꿔야 겠음. -- 2011/02/22 --이문서에서 소켓(여기에서는 이 사이트의 취지에 맞도록 가장 간단하게 접근할수 있는 방법, 즉 "문고리"를 잡는데에 까지만을 설명하도록 하며, Unix(Linux) 상에서가장 널리, 그리고 일반적으로 사용되는 INET(TCP/...
소켓 전달을 통한 prefork 서버 구현
소켓 전달을 통한 prefork 서버 구현fork()는 새로운 자식프로세스를 실행시키기 위해서 사용하며, 다수의 클라이언트를 동시에 처리하기 위해서 입출력다중화(이 방식의 단점이라면 fork()로 새로운 프로세스를 생성시키는 자체에 많은 비용이 들어간다는 점이 될 것이다. 이 문제를 해결하기 위해서 적당한 수만큼 프로세스를 미리 할당시켜 놓고, 새로운 연...
Socket API
Socket API완성이 되면 docbook(네트워크 환경은 매우 다양하며, 예측하기 힘든경우도 많이 발생한다. 때문에 네트워크프로그램의 종류에 따라서 소켓의 세부사항을 조절해야 하는 경우가 발생한다. 이러한 소켓옵션 설정을 위해서 소켓은 getsockopt()와 setsockopt()두개의 함수를 제공한다. 이름에서 알 수 있듯이 getsockopt는 ...
RPC - Remote procedure call
RPC - Remote procedure callRemote prodecure call (이하 RPC)는 다른 주소공간에서 서브루틴이나 프로시져를 실행시키기위한 컴퓨터 프로그래밍 기술이다. 이 기술을 이용하면 프로그래머는 마치 로컬에서 프로그램을 돌리는 것과 같은 결과를 얻어올 수 있다. 이렇게 여러대의 컴퓨터에 프로시져를 분산하고, 결과를 취합하는 모델...