본문 바로가기

서버운영 (TA, ADMIN)/네트워크

(38)
[네트워크] 블로킹과 논블로킹 메커니즘 블로킹 모드어떤 시스템 콜을 호출했을때 네트워크 시스템 동작이 완료할때까지 그 시스템 콜에서 프로세스가 멈춥니다.소켓 생성시 디폴트는 default 모드입니다.listen(), connect(), accept(), recv(), send(), read(), write(), recvfrom(), sento(), close()block 될 수 있는 소켓 시스템 콜입니다.I/O시 처리될 때까지 기다려야하기 때문에 비동기적인 작업 수행 불가능하게 됩니다.일대일 통신을 하거나 프로그램이 한가지 작업만 하면 되는 경우는 blocking 모드로 프로그램을 작성할 수 있습니다. 논블로킹 모드소켓 관련 시스템 콜에 대하여 네트워크 시스템이 즉시 처리할 수 없는 경우라도 시스템콜이 바로 리턴되어 응용 프로그램이 block..
[네트워크] 소켓 프로그래밍 활용 소켓 프로그래밍 기초에서는 TCP/IP 프로토콜이 무엇인지 살펴보고 이를 이용해 네트워크 프로그래밍을 하는 데 필요한 기본 개념을 다뤘습니다. TCP와 UDP의 차이점과 IP주소와 포트 번호의 역할도 알아보았습니다. 또한 TCP/IP 프로토콜 기반 프로그램 작성에 필수적인 소켓 인터페이스 관련 함수와 구조체를 살펴보고 간단한 프로그램도 작성해봤습니다. 네트워크를 통해 데이터를 주고받으며 동작하는 네트워크 프로그램은 일반적으로 서버와 클라이언트로 역할을 구분할 수 있습니다. 서버는 클라이언트의 요청에 따라 다양한 서비스를 제공하는 프로그램으로, 보통 데몬(daemon) 프로세스라고 합니다. 예를 들어, 브라우저를 통해 웹사이트에 접속할 경우 서버에는 웹 서비스를 제공하는 HTTP 데몬이 동작하고 있어 사용..
[네트워크] 소켓프로그래밍 기초 01. IP 주소와 포트 번호 TCP/IP 프로토콜을 이용해 통신하려면 IP 주소가 있어야 합니다. 또한 인터넷에서 동작하는 각종 서비스를 구분하기 위한 포트 번호를 지정해야 합니다. 이 절에서는 IP 주소와 포트번호의 기본 개념을 살펴보고, 관련 함수의 사용법을 배웁니다. IP 주소와 호스트명IP 주소는 인터넷을 이용할 때 사용하는 주소로, 점(.)으로 구분된 32비트 숫자로 표시합니다. (예: 192.168.100.51) IP 주소를 네트워크 주소(인터넷 주소) network address(internet address)라고도 합니다. IP 주소는 A~C 클래스로 구분됩니다. 시스템은 주소를 숫자로 구분하는 것이 효율적이지만, 사람은 주소를 이름으로 구분하는 것이 더 편합니다. 따라서 시스템에는 IP..
[오픈소스] 메시지큐(Message Queue) 알아보기 메시지 큐 개념을 다시 잡아보고자 학습용도로 작성한 포스팅입니다. 출처는 http://zzong.net/post/3 입니다. 메시지 지향 미들웨어(Meesage Oriented Middleware: MOM)은 비동기 메시지를 사용하는 다른 응용 프로그램 사이에서 데이터 송수신을 의미합니다. MOM을 구현한 시스템을 메시지 큐(MessageQueue: MQ)라 합니다. 메시지 큐는 별도의 공정 작업을 연기할 수 있는 유연성을 제공하여 SOA(Service-Oriendted Architecture)의 개발에 도움을 줄 수 있습니다. 프로그래밍에서 MQ는 프로세스 또는 프로그램 인스턴스가 데이터를 서로 교환할때 사용하는 방법입니다. 이때 데이터를 교환할 때 시스템이 관리하는 메시지 큐를 이용하는 것이 특징입니..
[네트워크] Netty 프로젝트 3.1 가이드 The Problem 사람들은 다른 애플리케이션과의 통신을 위해 일반적인 목적의 애플리케이션이나 라이브러리를 사용합니다. 예를 들어, 우리는 웹서버로부터 정보를 가져오고 웹서비스를 통해 원격 프로시저를 호출하기 위해 HTTP 클라이언트 라이브러리를 사용합니다. 그러나, 일반적인 목적의 프로토콜이나 이를 구현한 것은 때때로 그렇게 잘 확장되지 않습니다. 덩치 큰 파일, 전자 메일 메시지, 금융정보와 멀티 플레이어 게임 데이터와 같은 실시간 메시지 교환을 위해 우리는 일반적인 목적의 HTTP 서버를 사용하지는 않을 것입니다. 필요한 것은 특수한 목적을 위해 매우 최적화된 프로토콜 구현입니다. 예를 들면, 여러분은 Ajax 기반 채팅 애플리케이션, 미디어 스트리밍, 혹은 덩치 큰 파일 전송을 위해 최적화된 H..