suroMind

[C/C++]네트워크 개발 관련 사이트 모음 - 펌 본문

IT분야/C/C++

[C/C++]네트워크 개발 관련 사이트 모음 - 펌

suroMind 2011. 3. 23. 10:33

출처 : http://mainia.tistory.com/18

1 helper 툴
tcpview - 현재 시스템이 떠있는 모든 TCP/UDP 포트와 그 포트를 연 프로그램 목록을 실시간으로 보여줍니다. win32 전용. 공짜. 
tdimon - 현재 시스템의 모든 TCP/UDP 입출력 상황을 실시간으로 보여줍니다. win32전용. 공짜. 
 1.1 웹부하 특정용
http://www.joedog.org/siege/index.php - http 프로토콜 기반의 반복 부하테스트 툴.
http://builder.com.com/5100-6371-5171727.html - zdnet 소개기사


2 라이브러리
libnet 이야기 - 멀티플렛폼 패킷 조립용 라이브러리. 오픈소스.
libpcap 이야기 - 패킷 캡쳐 라이브러리. 오픈소스. libnet과 같이 쓰면 꽤 저급수준의 툴제작가능.


3 링크
http://www.ietf.org/internet-drafts/ - 인터넷 draft(초안)들의 모든 최신 문서들을 받을 수 있습니다. (txt 포멧) http://www.ietf.org/internet-drafts/1id-abstracts.txthttp://www.ietf.org/internet-drafts/1id-index.txt을 다운받아 자신이 원하는 부분에 대한 문서가 어느 초안에 들어있는지를 찾아볼 수 있습니다.
http://www.kegel.com/c10k.html - 유명한 곳이죠. 10000명 동접에 관한 글.
http://www.private.org.il/tcpip_rl.html - TCP/IP 리소스 목록. Uri Raz라는 사람이 모아놓은 링크모음.
http://www.pnk.co.kr/ - ICN이라는 국내 사이트입니다. 네트워크 개념 및 용어에 대한 정보와 자료, 링크 다수 존재.
http://tt.co.kr/~antihong/ - 네트워크 서버관련 주인장 자작 논문이 있습니다. 서버관리측면에서는 괜찮은 글들입니다.
http://tunelinux.pe.kr - 리눅스 서버 관리에 대한 막대한 링크, 자료들.
http://dsonline.computer.org/middleware/ - 미들웨어 관련 아티클 자료들.
http://carol.science.uva.nl/~delaat/ - Cees de Laat이라는 사람의 개인 사이트. 네트워크 및 그리드 컴퓨팅에 대한 다수 논문 존재.


4 개인 아티클
BeeJ's Guide to Network Programming - 소켓 기초에 대한 간단한 개요. 번역이 잘되어있습니다. kldp에서 링크.
Overlapped I/O 이야기 - WSARecv(), WSASend()의 사용법에 대한 이야기입니다.
Socket Overlapped I/O Versus Blocking/Non-blocking Mode - 오버랩드 입출력과 블럭킹/넌블럭킹 모드의 차이점에 대한 아티클. MSDN에서 인용했습니다.
CompletionPort 이야기 - CompletionPort 관련 함수들을 Winsock2와 함께 쓰는 방법을 나열했습니다.
Writing scalable server applications using IOCP(번역) - 괜찮은 아티클입니다. 원문포함했으니 꼭 읽어보시길...
Design Issue When Using IOCP in a Winsock Server - http://www.synczone.net에서 퍼온 글입니다.
winsock2/WriteScalableWinsockAppsUsingCompletionPorts - MSDN 메거진에 실린글입니다. MSDN에서 퍼왔습니다.
UDP패킷손실의특징/TCP트래픽효과
고성능서버디자인 - kegel.com에서 구한 링크 글 번역


5 POSIX 쓰레드에 대한 것들
http://sources.redhat.com/pthreads-win32/ - Win32 상에서의 POSIX Threads 구현.
http://www.humanfactor.com/pthreads/ - pThread에 대한 사이트.


6 state thread
http://state-threads.sourceforge.net/ - state thread 프로젝트 홈페이지. 아파치 서버 가속 프로젝트에 사용되었음. 상용화수준의 안정성을 가진 C 언어용 쓰레드 라이브러리.
http://www.freebsd.org/cgi/url.cgi?ports/devel/st/pkg-descr - State thread의 ?FreeBSD Port 정보.
State Threads Library FAQ 번역 - 이 라이브러리가 뭐지? 하는 것에 대한 대답.


7 데드레커닝
3차 베지어 곡선을 사용하여 랙 제거하기 - gamedev.net 아티클 번역.
VariationOfDeadReckoning - T_T 애니Gif까지 들어간 감동의 아티클. 보시면 압니다. 정말 잘 만들었음.
데드레커닝/네트워크게임에서지연을숨기기 - gamastra 아티클 번역.


8 multiplexer
 8.1 epoll

어떤 분이 UNIX 기반에서 대용량 서버구성에 좋다는 얘기를 해주셔서 정리해둡니다. (symlink_at_naver.com님께 감사~) 리눅스와 같은 UNIX계열에서는 쓸만한 multiplexer죠. api도 간단.
리눅스에서는 커널 2.6부터 사용하는 것이 좋다고 되어있습니다. man page에는 2.5.22이후부터 인터페이스를 확정했다고 되어있네요.
ACE에서는 ACE_Dev_Poll_Reactor 구현을 통해서 사용할 수 있습니다. -> 버그가 있는지 동작하지 않습니다. 아무래도 /dev/epoll이 된이후 해당 코드의 업데이트가 없었던 모양입니다.
http://www.xmailserver.org/linux-patches/nio-improve.html - /dev/epoll 홈페이지.
http://epoll.hackerdojo.com/ - 또다른 /dev/epoll 페이지. 사용법이 더 간략하게 요약되어있다.
최신 man page : http://www.xmailserver.org/linux-patches/epoll.txt http://www.xmailserver.org/linux-patches/epoll_create.txt http://www.xmailserver.org/linux-patches/epoll_ctl.txt http://www.xmailserver.org/linux-patches/epoll_wait.txt
http://lse.sourceforge.net/epoll/index.html - /dev/epoll, /dev/poll, sys_epoll 간의 성능비교.
한컴리눅스가 커널 2.6을 탑재하고 있군요! 물론 epoll도 설치되어있습니다. 하지만 /dev에 추가되어있지 않으므로 다음과 같이 해서 추가해주면 사용가능합니다.
$ mknod /dev/epoll c 10 124

http://www.joinc.co.kr/modules/moniwiki/wiki.php/epoll - epoll에 대한 간단한 번역 및 한글 설명.
 8.2 kpoll
커널 2.4부터 패치된 멀티플렉서. 커널수준 poll 장치.
홈페이지 : http://www.synapse.se/kpoll/
 8.3 라이브러리
libevent 이야기 - 이식가능한 멀티플렉서 C 라이브러리. 알게모르게 많이 사용되는 듯 보이며, kqueue를 지원하므로 freebsd에서도 괜찮은 성능을 보일거라 생각됨. /dev/epoll 지원.
http://liboop.org/ - liboop. POSIX기반의 운영체계를 위한 하위 수준의 이벤트 루프 관리용 C 라이브러리.


9 기타등등
http://www.gamedev.net/reference/list.asp?categoryid=30 - GameDev닷넷에서 MultiPlayer & Networking에 관련된 아티클 목록
Unreal Networking Architecture - 언리얼 엔진에서 사용된 서버-클라이언트 구조에 대한 글입니다.
GDC 2001: 1500 Archers on a 28.8: Network Programming in Age of Empires and Beyond
Half-Life and TeamFortress Networking: Closing the Loop on Scalable Network Gaming Backend Services
http://www.gamasutra.com/resource_guide/20020916/hallenberg_pfv.htm
- Of Internet Servers and SQL Databases: Designing the Backend for Power and Performance
http://www.gamasutra.com/features/20000621/aronson_pfv.htm - Using Groupings for Networked Gaming.
http://www.gamasutra.com/features/19970905/ng_01.htm - Designing Fast-Action Games For The Internet
http://www.gamedev.net/reference/articles/article712.asp - 랙에 대한 이야기
http://www.gamasutra.com/features/20000724/pritchard_pfv.htm - How to Hurt the Hackers: The Scoop on Internet Cheating and How You Can Combat It
http://www.gamasutra.com/resource_guide/20020916/hallenberg_pfv.htm - Of Internet Servers and SQL Databases : Designing the Backend for Power and Performance

온라인게임 개론 - www.gameis.org에서 퍼온 글입니다. 원래 이런 내용은 아니지만 약간 각색해봅니다.
멀티플레이어 게임개발자 FAQ <- 짬짬히 손보고 있는중...-_-a

네트워크상에서 플레이어가 같은 데이터를 얻는 방법 - 윈도우즈 전략시뮬만들기 책에서 퍼온 글. 약간 각색중.

http://www.cubicmetercrystal.com/alpine/ - ALPINE이라는 LGPL기반의 공개 P2P 프로토콜. DTCP라는 고유의 기반 프로토콜 사용.
http://opennap.sourceforge.net/ - 오픈소스 냅스터 프로젝트.
http://edu.hackerslab.com/home/html/temp/movie.htm - "패킷의 여행"이라는 영화. 네트워크 개념을 익히는데 정말 좋은 내용을 담고 있음. ^^;
http://www.lcscanada.com/muscle/ - MUSCLE 이라는 공개 클라이언트/서버기반의 메세징 시스템. 약간의 C++ 클래스 상속으로 냅스터나 P2P 스타일의 게임을 만들수 있는 놀라운 엔진.
http://www.kegel.com/c10k.html - 10000명 접속에 대한 문제를 논의한 사이트. 유명한 곳.
http://tangentsoft.net/wskfaq/ - Winsock Programming FAQ
http://www.gnucleus.net/ - Win32기반의 오픈소스 napster-like 컴퍼넌트 및 클라이언트. 프로토콜을 맘대로 조정할 수 있다는 점이 특징.
http://lgdc.sunsite.dk/articles/22.html - CPU 속도와 상관없는 게임 월드 만들기. 타이머 이야기입니다.
http://imays.pe.kr:41414/moin/iwiki/moin.cgi/DistributedGameServers - 배현직님의 네트워크개발위키에서 분산게임서버에 대한 경험을 적은 글입니다.


10 broadcast
spread 이야기 - 패킷 브로드캐스팅 환경을 제공하는 공개 데몬 프로그램. 아주 사용하기 쉬운 C API 제공. 같은 LAN상의 게임서버간 데이타 동기화에 어울릴만한 솔루션.


11 multicast
게이트웨이나 라우터의 지원이 필요하다는 것을 제외하고는 계속 지켜봐야하는 분야.
MCL 라이브러리 - MBONE 기반의 오픈소스 멀티캐스트 라이브러리. API 구조가 매우 간결하다.
http://www.merit.edu/~mbone/index/titles.html - MBONE 기반의 소프트웨어 링크 모음.
http://andrew.triumf.ca/pub/linux/multicast-FAQ - 리눅스 멀티케스트 FAQ.
 11.1 프로토콜
http://www1.bell-labs.com/project/rmtp/ - Reliable Multicast Transport Protocol.
http://www.nard.org/~tmont/rm-links.html - Reliable Multicast 링크.
http://www.icir.org/floyd/srm.html - Scalable Reliable Multicast.


12 VPN
http://www.pnk.co.kr/tech/network/vpn/1.html - VPN이 뭘까?
http://www.netbsd.org/Documentation/network/ipsec/ - netbsd의 ipsec FAQ
http://www.openbsd.org/faq/faq13.html - openbsd의 ipsec 설명.


13 Grid computing
http://www.gridforum.org/ - Global Grid Forum. Grid 컴퓨팅에 대한 자료 올라오는 곳.
http://www.globus.org/ - globus project. Grid 서비스 구조를 오픈소스로 진행하는 플젝트.
http://www.casa-sotomayor.net/gt3-tutorial/index.html - Globus Toolkit 3 프로그래머's 튜토리얼. (레이옷님 홈피에서 슬쩍~)


14 QoS
Quality of service의 약어로 사용자 또는 어플리케이션에 대해 중요도에 따라 서비스 수준을 차등화하여 한정된 WAN 대역폭에서 트래픽과 대역폭을 정책적으로 관리하는 제반 기술 및 개념을 말합니다. ACE에 관련 클래스를 제공하고 있는데 이에 대한 내용을 찾아보다가 관련링크를 올립니다.
보통 고가의 라우터, 게이트웨이 솔루션도 많지만 ACE에서는 소프트웨어적으로 서버에 qos 기능을 첨가할 수 있는 AQOSA라는 API를 제공하더군요. ACE를 사용한 서버제작시 대역폭 제어에 활용할 수 있을 듯...
http://www.cisco.com/univercd/cc/td/doc/cisintwk/ito_doc/qos.htm - 시스코에 있는 QoS에 대한 설명글.
http://www.taskqos.com/kor/technology/qos.html - 한글로된 qos에 대한 설명.
http://msdn.microsoft.com/msdnmag/issues/01/04/qos/default.aspx - GQOS(Generic Quality Of Service)에 대한 설명.


15 codewhore 번역물
괜찮은 네트워크 및 게임 제작에 대한 아티클이 모여있는 곳입니다.
codewhoreHOWTO/네트워크시간을동기화하기


16 P2P와 NAT
http://www.junglemonkey.net/emcast/ - emcast. 멀티케스트 통신을 원하는 분산?/P2P 어플리케이션을 위한 툴킷. API가 상당히 간결하다.
http://www.junglemonkey.net/ - 공개 화일 공유 프로그램.
http://www.infoanarchy.org/wiki/ - P2P 프로토콜에 대한 방대한 자료를 담고 있는 위키. (본래 infoanarchy자체가 뉴스전달을 위한 P2P시스템이군요)
http://www.microsoft.com/technet/treeview/default.asp?url=/technet/prodtechnol/winxppro/maintain/Teredo.asp - teredo라고 하는 P2P 릴레이 서버에 대한 글. unicast UDP 기반임.
 16.1 NAT 관련
NAT뒤에 있는 클라이언트들끼리 UDP 통신을 가능하게 하는 방법에 대한 글들입니다.
http://www.xbox.com/ko-kr/live/connect/connectivitycompatibility - Xbox live NAT 관련정책.
NAT와 P2P - 우연히 얻은 글 번역.
http://www.pdos.lcs.mit.edu/~baford/nat/ - P2P 통신을 위한 NAT 검사 프로그램 소스 공개. 논문 다수 있음. (http://www.extremendl.net 게시물에서 발견한 사이트입니다)
middlebox를 경유하는 피어투피어 (P2P) 통신 - 관련 논문 번역 (http://www.extremendl.net 게시물에서 발견한 사이트입니다)


17 ipv6
http://network.hanbitbook.co.kr/view_news_print.htm?serial=548 - 한빛넷의 괜찮은 아티클.
http://www.viagenie.qc.ca/en/ipv6/quake/ipv6-quake.shtml - 공개된 퀘이크1소스를 고쳐서 ipv6에서 가능하도록 만든 소스 사이트. 2일 걸렸다네요. 


18 SCTP(Stream Control Transmission Protocol)
2000년도에 표준으로 지정되기 시작한 프로토콜 규약. 다중 사용자에 대한 신뢰성있는 송신을 보장하는 것이 특징. 현재 활발히 연구진행중.
리눅스 2.6커널에 추가되었죠. 점점 실용화되는 듯.
http://www.tta.or.kr/Home2003/library/weeklyNewsView.jsp?news_id=308 - 정보통신부 관련 뉴스링크.
http://www.sctp.de/sctp.html - SCTP에 대한 RFC 문서 링크등 다수의 정보모음.


19 프로토콜 문서
 19.1 MSN 메신저
http://www.venkydude.com/articles/msn.htm
http://www.hypothetic.org/docs/msn/index.php
 19.2 ICQ
http://www.algonet.se/~henisak/icq/icqv5.html - 버전 5
http://www.stud.uni-karlsruhe.de/~uck4/ICQ/ - 버전 8
http://www.d.kth.se/~d95-mih/icq/ - ICQ 프로토콜 관련 자료 모음.
 19.3 gnutella
http://www9.limewire.com/developer/gnutella_protocol_0.4.pdf - 공식 프로토콜 스팩.
http://capnbry.net/gnutella/protocol.php - 조금 상세한 설명.
 19.4 퀘이크(비공식)
http://www.csse.monash.edu.au/~timf/quake.html - 퀘이크 동영상 및 네트워크 스팩에 대한 몇가지 링크가 있다.
http://www.csse.monash.edu.au/~timf/bottim/qwspec221.txt - quakeworld 2.21 네트워크 프로토콜 스팩.
http://www.csse.monash.edu.au/~timf/bottim/q2net/q2network-0.03.html - 퀘이크 2 프로토콜 스팩.
http://www.richardsharpe.com/richard/ethereal/user-guide/sidquakenetworkprotocol.html http://www.ethereal.com/docs/user-guide/sidquakeiinetworkprotocol.html - ethereal 분석자료.
http://www.gamers.org/dEngine/quake/spec/quake-spec34/qkspec_8.htm#NETP0 - 퀘이크 1 프로토콜 스팩.
http://www.gamers.org/dEngine/quake/QDP/qnp.html - 또다른 퀘이크1 프로토콜 스팩.
 19.5 unreal
http://unreal.epicgames.com/IpServer.htm - 공식 프로토콜 설명.
http://unreal.student.utwente.nl/UT2003-queryspec.html - unreal 토너먼트 2003 패킷 분석자료. 일부분만 있음.


20 recording
네트워크와는 조금 거리가 멀지만.. 일반적으로 패킷설계와 관련있어 넣어둡니다.
http://www.planetquake.com/demospecs/ - 퀘이크를 비롯한 몇몇 게임의 recording 스팩들.


21 라이브러리
http://www.hawksoft.com/ - HawkVoice™, HawkNL™이라는 막강 LGPL 라이센스의 네트워크 라이브러리를 베포하는 사이트.
http://mune.will.jennings.name/ - MUNE 이라는 다중 사용자 네트워크 엔진. LGPL.
http://www.joedog.org/libping/ - ping 측정기능 C 라이브러리.


'IT분야 > C/C++' 카테고리의 다른 글

[C/C++]P2P UDP 네트워크 통신 자료  (0) 2011.03.28
[C/C++]UDP Socket 예제 링크  (0) 2011.03.18
Comments