전체 글 216

산타 가족 캠핑장 (양평군 서종면 서후리)

일요일 오후 바람쐴겸 양평 서종면 한바퀴 돌았습니다. 서종면에서 문호리 갔다가 문호리 지나 다리건너서 우회전으로 들어가보았습니다. (좌회전은 중미산/유명산 방향으로 평소에 가끔 다니던 길이구요) 수능리가 나오고. 황순원 소나기 마을을 조성중에 있었습니다. 황순원 문학 기념관 공사가 거의 진행이 되고, 부지도 어느정도 조성이 되어있었는데. 과연 여기 사람을 어떻게 끌어모을것인지. 테마가 불분명해 보였습니다. 수능리를 지나 계속해서 산속으로 들어가니, 서후리 라는 곳이 나왔습니다. 처음듯는 지명. 하지만 마을이 적지 않습니다. 농사 짓기에는 땅이 크지 않은데, 가옥들이 상당히 많고, 전원주택 이나 별장처럼 보이는 것들이 단지를 이루고 있구요. 정배리 쪽으로 산을 넘어 가려는데 캠핑장이 보였습니다. 산타 가족..

Private/캠핑 2009.08.19

sockaddr, sockaddr_in 구조체

sockaddr 구조체 소켓 주소를 표현하는 구조체다. 아래 정의를 보면 주소 체계와 주소 두가지 정보만 갖고 있는 단순한 구조로 되어있다. 원래 소켓 자체가 TCP/IP만을 목적으로 만들어진 것이 아니어서, 다양한 주소 체계에 맞게 범용 목적으로 사용하기 위해 이런 구조를 가지고 있다. struct sockaddr{ sa_family_t sa_family; // 소켓의 주소체계. PF_INET= IPv4 주소체계. char sa_data[14]; // 해당 주소체계에서 사용하는 주소 정보. } sockaddr_in 구조체 IPv4 주소체계에서 사용하는 구조체다. 소켓 프로그램은 범용 주소 구조체로 sockaddr을 사용하지만, 주소체계의 종류에 따라 별도의 전용 구조체를 만들어 사용하는게 아무래도 편리..

Public/tip & tech 2009.08.17

[TCP/IP 소켓 프로그래밍] 15. 소켓과 표준 입출력

15-1. 표준 입출력 함수의 장점 표준 입출력 함수의 장점 이식성이 좋아진다. - 모든 시스템은 ANSI 표준 C를 지원한다. 효율성을 높일 수 있다. - 표준 입출력 함수에 의한 버퍼를 제공받는다. (표준 입출력버퍼, 소켓 버퍼) - 소켓 생성 버퍼 목적 : 프로토콜의 완성을 위한 것. - 표준 입출력 버퍼 목적 : 성능 향상 파일 포인터와 파일 디스크립터 파일 포인터 - 표준 입출력 함수 호출을 위해서 필요한 파일 포인터. = FILE 구조체의 포인터. 파일 디스크립터를 이용한 시스템 입출력 - 시스템 입출력 함수 사용 시 필요 - 정수값이다. ※ 소켓 기반의 표준 입출력 함수 사용을 위해 파일 디스크립터를 기반으로 파일 포인터를 생성. 15-2. 표준 입출력 함수의 사용 파일 디스크립터 -> 파일..

Public/tip & tech 2009.08.14

[TCP/IP 소켓 프로그래밍] 14. Multicast & Broadcast

유선 : 고객에게 서비스를 제공. 멀티캐스트 방식(가입이 필요) 안테나 방송 : 서비스를 지정된 채널로 제공. 브로드캐스트 방식(가입 필요 없음) 14-1. 멀티캐스트(Multicast) 멀티캐스트 전송 방식. UDP를 기반으로 하는 전송 방식. 멀티캐스트 그룹(클래스 D에 속하는 IP주소)을 기반으로 멀티캐스트 패킷을 주고 받음. 하나의 멀티캐스트 패킷은 라우터를 통해서 다수의 호스트에 전송. (한 번만 방송하면 가입자 모두 시청 가능.) (정보를 단방향으로 제공할 때 주로 사용.) 라우팅(Routing)과 TTL(Time To Live) 라우팅 : 라우터에 의해서 패킷이 경로를 찾는 과정 TTL 거쳐갈 수 있는 라우터의 수(홉)를 의미. 이 값이 0이 되면 패킷은 더 이상 전달되지 못하고 소멸된다. ..

Public/tip & tech 2009.08.14

[TCP/IP 소켓 프로그래밍] 13. 고급 입출력 함수

13-1. recv & send 입출력 함수 read & write 함수와 달리 데이터 입출력 방법에 있어서 옵션 부여. #include #include int recv(int sock, void *buf, int len, unsigned int flags); int send(int sock, const void * buf, int len, unsigned int flags); 옵션의 종류와 의미 - MSG_DONTROUTE (send 함수 호출시에만 사용하는 옵션) 데이터 전송 시 라우팅 테이블(라우터에 있음)을 참조하지 않음. => Local network 내에서만 패킷을 전송하겠다는 뜻. - MSG_DONTWAIT (send, recv 함수 모두에 사용하는 옵션) not blocking 입출력 기능..

Public/tip & tech 2009.08.14

[TCP/IP 소켓 프로그래밍] 12. 프로세스간 통신(IPC)

12-1. I/O 멀티플렉싱 기반의 서버 하나의 전송로를 여러 사용자가 동시에 사용해서 효율성을 극대화 하는 것. 전송로를 공유. 전송로를 공유하기 위해서는 서로 약속이 필요하다. TDMA : 자료 전송 시간을 일정한 시간 폭으로 나누어서 함께 공유하는 방식 FDMA : 주파수 대역 폭을 나누어서 함께 공유하는 방식 I/O 멀티플렉싱 클라이언트와의 입/출력을 담당하는 프로세스를 하나로 묶어버리는 것. 프로세스 = 고속의 전송로. multitasking(멀티태스킹) 예시 multiplexing(멀티플렉싱) 예시 ※ 데이터 입출력 및 접속 모두를 하나로 묶어서 처리한다. ※ 멀티플렉싱 서버가 멀티태스킹 서버보다 성능이 좋다. -> context switching이 없음. 멀티 프로세스 vs 멀티 플렉싱 멀티..

Public/tip & tech 2009.08.14

[TCP/IP 소켓 프로그래밍] 11. 프로세스간 통신(IPC)

11-1. 프로세스간 통신(Inter-Process Communication) 프로세스간 통신의 정의 독립된 프로세스 간에 데이터를 주고 받는 행위를 의미 프로세스간 통신의 문제점 독립된 프로세스는 (특정 시스템콜을 하지 않는한) 공유 메모리가 존재하지 않기 때문에 데이터를 주고 받는 것이 불가능. 해결책 : 독립된 프로세스들이 통신할 수 있도록 '파이프'를 제공. 파이프 생성함수 #include int pipe(int fd[2]); 파이프는 커널 객체이다. fd[1]은 파이프 입구, fd[0]은 파이프 출구로 사용한다. 리턴 : 성공시 0, 실패시 -1 파이프의 생성과 프로세스간 통신 파이프의 특징 1. 파이프는 fork 함수에 의해서 복사되지 않는다. -> 파이프의 입출력을 의미하는 파일 디스크립터가..

Public/tip & tech 2009.08.14

[TCP/IP 소켓 프로그래밍] 10. 멀티태스킹 기반의 서버구현

10-1 다중 접속 서버의 구현 방법들 ※ 클라이언트의 (여러명)다중 접속을 허용(concurrent server). 리눅스 기반의 다중 접속 서버 구현 방법들 1. 프로세스 생성을 통한 멀티태스킹(Multitasking) 서버의 구현 2. select 함수에 의한 멀티플렉싱(Multiplexing) 서버의 구현 3. 쓰레드 기반으로 하는 멀티쓰레딩(Multithreading) 서버의 구현 10-2. 프로세스의 생성 프로세스에 대한 이해 1. 실행되고 있는 프로그램의 기본 단위 2. 생성된 프로세스는 운영체제에 의해 할당된 고유한 ID를 가진다. 3. 하나의 프로그램 내에서 여러 개의 프로세스가 동시에 실행 될 수 있다. ps -u : 어떤 프로세스가 수행되고 있는 지 보여준다. (shell 명령) pi..

Public/tip & tech 2009.08.14

[TCP/IP 소켓 프로그래밍] 9. 소켓의 다양한 옵션

9-1 소켓의 옵션 1. 소켓의 옵션 조작 : 소켓의 기본적인 특성(다양함)을 변경하는 것. ※ 운영체제에 의해 관리. 운영체제는 소켓의 특성에 대한 정보를 보관하고 있다. 2. 소켓의 기본적인 특성 - 입력 및 출력 버퍼의 크기 - 데이터 전송 방식(TCP 또는 UDP) - TTL(Time To Live) : 건너뛸 수 있는 라우터의 개수. hop과 관련됨. 3. 옵션은 대부분 변경(set) 가능하지만 참조(get)만 가능한 것도 있다. 소켓의 옵션 관련 함수 1. 현재 설정 상태 정보를 가져오는 함수. #include #include int getsockopt(int sock, int level, int optname, void *optval, socklen_t *optlen); sock : 소켓을 ..

Public/tip & tech 2009.08.14

[TCP/IP 소켓 프로그래밍] 8. 도메인 이름과 인터넷 주소

8-1. DNS(Domain Name System) 1) 도메인 이름이란? 1. 영문으로 표현되는 계층적 주소 체계 방식. ※ IP 이후에 도메인이 나왔음. 중복되면 안 된다. 2. 각 나라마다 존재하는 Network Information Center에서 관리. => 약속 한국은 KRNIC(http://www.nic.or.kr, Korea Network Information Center)에서 담당. 3. 도메인 이름 = 호스트 이름 + 도메인 이름 예시) academy.freelec.co.kr = academy + freelec.co.kr 4. TCP/IP는 도메인 이름을 인식 못함. ※ IP와 도메인의 중계 역할을 하는 서버 : 도메인 서버 현실세계의 주소체계 인터넷 상에서의 주소체계 root 도메인 ..

Public/tip & tech 2009.08.14