[[Include(분류/network)]]
Contents
- 1 유용한 테스트 사이트
- 2 관련 서적
- 3 RFC
- 4 helper 툴
- 4.1 웹부하 특정용
- 5 라이브러리
- 6 링크
- 7 스터디용 자료들
- 8 pthread
- 9 state thread
- 10 데드레커닝
- 11 multiplexer
- 12 기타등등
- 13 broadcast
- 14 multicast
- 14.1 프로토콜
- 15 VPN
- 16 Grid computing
- 17 QoS
- 18 codewhore 번역물
- 19 P2P와 NAT
- 19.1 NAT 관련
- 20 ipv6
- 21 SCTP(Stream Control Transmission Protocol)
- 22 프로토콜 문서
- 23 recording
- 24 보안
- 25 RADIUS
- 25.1 공개 서버 프로젝트
- 26 해킹
1 유용한 테스트 사이트 #
http://www.speedguide.net/analyzer.php - 현재 사용중인 PC나 시스템에 대한 네트워크 정보(IP주소등등)를 보여준다.
http://www.dslreports.com/tools - 포트스켄과 같은 네트워크 관련 테스트를 실행해준다.
2 관련 서적 #
Network Programming for Microsoft Windows 2판 - Win32 소켓 프로그래밍을 하실려면 꼭 가지고 있어야할 바이블입니다. 좀 비쌉니다. T_T;
TCP/IP 소켓 프로그래밍 (C버전) - 소켓 프로그래밍을 처음 시작하시는 분들은 필독서입니다. UNIX/Win32겸용예제입니다만 다소 UNIX쪽에 치중한 면이 있습니다.
3 RFC #
http://www.cse.ohio-state.edu/cgi-bin/rfc/rfc1334.html - PPP Authentication Protocols. PAP(Password Authentication Protocol), CHAP(Challenge Handshake Authentication Protocol)이 언급되어있음.
4.1 웹부하 특정용 #
http://www.joedog.org/siege/index.php - http 프로토콜 기반의 반복 부하테스트 툴.
http://builder.com.com/5100-6371-5171727.html - zdnet 소개기사
5 라이브러리 #
- libnet 이야기 - 멀티플렛폼 패킷 조립용 라이브러리. 오픈소스. 동명으로 멀티플렛폼 UDP 소켓 구현 라이브러리도 있다.
- libpcap 이야기 - 패킷 캡쳐 라이브러리. 오픈소스. libnet과 같이 쓰면 꽤 저급수준의 툴제작가능.
http://www.hawksoft.com/ - HawkVoice™, HawkNL™이라는 막강 LGPL 라이센스의 네트워크 라이브러리를 베포하는 사이트.
- HawkNL 이야기 - 빌드해보니 꽤 깔끔한 라이브러리더군요.
http://www.joedog.org/libping/ - ping 측정기능 C 라이브러리. UNIX 계열 전용.
5.1 공개 네트워크 엔진 #
http://www.rakkarsoft.com/ - UDP 기반의 네트워크 엔진. 오픈소스로 전환됨. 꽤 강력한 기능 보유.
http://www.rit.edu/~jpw9607/gne/ - 게임 네트워크 엔진. 오픈소스. ACE 만큼은 아니지만 프레임워크를 나름대로 잘 정리함.
http://mune.will.jennings.name/ - MUNE 이라는 다중 사용자 네트워크 엔진. LGPL.
5.2 상업용 네트워크 엔진 #
http://www.opentnl.org/ - garagegames.com에서 내놓은 touque 엔진에서 네트워크만 떼어놓았네요. 오픈소스지만 독립게임수준이면 300불, 상업적 이용시 약 1천불정도 비용소요. 소스포지를 통해 소스는 풀공개형태로 진행되는 것이 특징.
6 링크 #
http://www.ietf.org/internet-drafts/ - 인터넷 draft(초안)들의 모든 최신 문서들을 받을 수 있습니다. (txt 포멧)
http://www.ietf.org/internet-drafts/1id-abstracts.txt과
http://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이라는 사람의 개인 사이트. 네트워크 및 그리드 컴퓨팅에 대한 다수 논문 존재.
7 스터디용 자료들 #
BeeJ's Guide to Network Programming - 소켓 기초에 대한 간단한 개요. 번역이 잘되어있습니다.
kldp에서 링크.
몇몇 소켓 C 예제
- Overlapped I/O 이야기 - WSARecv(), WSASend()의 사용법에 대한 이야기입니다.
- Socket Overlapped I/O Versus Blocking/Non-blocking Mode - 오버랩드 입출력과 블럭킹/넌블럭킹 모드의 차이점에 대한 아티클. MSDN에서 인용했습니다.
- CompletionPort 이야기 - CompletionPort 관련 함수들을 Winsock2와 함께 쓰는 방법을 나열했습니다.
- Writing scalable server applications using IOCP(번역) - 괜찮은 아티클입니다. 원문포함했으니 꼭 읽어보시길...
- ] - [http://www.synczone.net에서 퍼온 글입니다.
- winsock2/WriteScalableWinsockAppsUsingCompletionPorts - MSDN 메거진에 실린글입니다. MSDN에서 퍼왔습니다.
- UDP패킷손실의특징/TCP트래픽효과
- 고성능서버디자인 - kegel.com에서 구한 링크 글 번역
8 pthread #
http://www-903.ibm.com/developerworks/kr/linux/library/l-pthred.html - pthread 기초(한글번역)
http://sources.redhat.com/pthreads-win32/ - Win32 상에서의 POSIX Threads 구현.
http://www.humanfactor.com/pthreads/ - pThread에 대한 사이트.
9 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 번역 - 이 라이브러리가 뭐지? 하는 것에 대한 대답.
10 데드레커닝 #
- 3차 베지어 곡선을 사용하여 랙 제거하기 - gamedev.net 아티클 번역.
- VariationOfDeadReckoning - T_T 애니Gif까지 들어간 감동의 아티클. 보시면 압니다. 정말 잘 만들었음.
- 데드레커닝/네트워크게임에서지연을숨기기 - gamastra 아티클 번역.
11.2 epoll #
- 어떤 분이 UNIX 기반에서 대용량 서버구성에 좋다는 얘기를 해주셔서 정리해둡니다. (symlink_at_naver.com님께 감사~) 리눅스와 같은 UNIX계열에서는 쓸만한 multiplexer죠. api도 간단.
- 리눅스에서는 커널 2.6부터 사용하는 것이 좋다고 되어있습니다. man page에는 2.5.22이후부터 인터페이스를 확정했다고 되어있네요.
- ACE에서는 ACE_Dev_Poll_Reactor 구현을 통해서 사용할 수 있습니다. 버전 5.4.2에서부터 지원됩니다.
http://www.xmailserver.org/linux-patches/nio-improve.html - /dev/epoll 홈페이지.
http://epoll.hackerdojo.com/ - 또다른 /dev/epoll 페이지. 사용법이 더 간략하게 요약되어있다.
- 한글 번역중인 맨페이지 :
epoll
http://lse.sourceforge.net/epoll/index.html - /dev/epoll, /dev/poll, sys_epoll 간의 성능비교.
- sys_epoll이 사용가능한 리눅스 배포본 : fedora core 2, 코어리눅스.
http://www.joinc.co.kr/modules/moniwiki/wiki.php/epoll - epoll에 대한 간단한 번역 및 한글 설명.
11.3 kqueue #
- freebsd 운영체계에서만 사용가능한 멀티플렉서. sys_epoll과 대등한 성능을 자랑한다. (개발은 훨씬 오래전에 되어있었음)
http://ngps.net/ngpiki/index.php?display=kqueue%20프로그래밍 - ngps.net의 kqueue 사용법 번역 및 요약.
11.5 라이브러리 #
- libevent - 이식가능한 멀티플렉서 C 라이브러리. 알게모르게 많이 사용되는 듯 보이며, kqueue를 지원하므로 freebsd에서도 괜찮은 성능을 보일거라 생각됨. /dev/epoll 지원.
http://liboop.org/ - liboop. POSIX기반의 운영체계를 위한 하위 수준의 이벤트 루프 관리용 C 라이브러리.
12 기타등등 #
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
- 네트워크상에서 플레이어가 같은 데이터를 얻는 방법 - 윈도우즈 전략시뮬만들기 책에서 퍼온 글. 약간 각색중.
인터넷에서의 빠른 액션 게임 디자인하기 - imays라는 아이디를 가지신 분의 홈페이지 링크입니다. 무단입니다. -_-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 - 배현직님의 네트워크개발위키에서 분산게임서버에 대한 경험을 적은 글입니다.
13 broadcast #
- spread - 패킷 브로드캐스팅 환경을 제공하는 공개 데몬 프로그램. 아주 사용하기 쉬운 C API 제공. 같은 LAN상의 게임서버간 데이타 동기화에 어울릴만한 솔루션.
14 multicast #
- 게이트웨이나 라우터의 지원이 필요하다는 것을 제외하고는 계속 지켜봐야하는 분야.
MCL 라이브러리 - MBONE 기반의 오픈소스 멀티캐스트 라이브러리. API 구조가 매우 간결하다.
http://www.merit.edu/~mbone/index/titles.html - MBONE 기반의 소프트웨어 링크 모음.
http://andrew.triumf.ca/pub/linux/multicast-FAQ - 리눅스 멀티케스트 FAQ.
http://www.ligo-wa.caltech.edu/gds/framexmit/ - 기가비트 이더넷과 같은 환경에서 사용가능한 멀티케스트 기반의 프로토콜 라이브러리. 소스 있음. 솔라리스에서 테스트되었다고 하네요.
14.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.
15 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 설명.
16 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 튜토리얼. (레이옷님 홈피에서 슬쩍~)
17 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)에 대한 설명.
19 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 기반임.
19.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 게시물에서 발견한 사이트입니다)
- ] - 관련 논문 번역 ([http://www.extremendl.net 게시물에서 발견한 사이트입니다)
- 읽어볼것 :
http://www.ietf.org/rfc/rfc3489.txt
http://www.vovida.org/applications/downloads/stun/
20 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일 걸렸다네요.
21 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 문서 링크등 다수의 정보모음.
22.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 프로토콜 관련 자료 모음.
22.3 gnutella #
http://www9.limewire.com/developer/gnutella_protocol_0.4.pdf - 공식 프로토콜 스팩.
http://capnbry.net/gnutella/protocol.php - 조금 상세한 설명.
22.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 프로토콜 스팩.
22.5 unreal #
http://unreal.epicgames.com/IpServer.htm - 공식 프로토콜 설명.
http://unreal.student.utwente.nl/UT2003-queryspec.html - unreal 토너먼트 2003 패킷 분석자료. 일부분만 있음.
23 recording #
- 네트워크와는 조금 거리가 멀지만.. 일반적으로 패킷설계와 관련있어 넣어둡니다.
http://www.planetquake.com/demospecs/ - 퀘이크를 비롯한 몇몇 게임의 recording 스팩들.
24 보안 #
http://cnscenter.future.co.kr/main/research/usfederal.html - 미연방 암호화 표준안 관련 링크 및 간단 설명
- 온라인게임에서의보안문제점들 - gamedev.net에서 퍼온글.
- SEED - 국내 표준 블럭암호화 알고리즘. 한국정보보호진흥원에서 무료 배포중입니다.
24.1 서비스 거부 공격(DoS) 방어 #
- 완벽한 방어는 불가능하지만 한번 읽어볼만한 글.
http://www.sans.org/dosstep/index.php - Help Defeat Denial of Service Attacks: Step-by-Step
http://www.sans.org/dosstep/roadmap.php - Consensus Roadmap for Defeating Distributed Denial of Service Attacks
25 RADIUS #
- 아직 제대로 파악해보지는 못했지만... 인증용 서버데몬이라는 것과 꽤 자료가 많다는 것 때문에 정보를 모아보고 있습니다. 꽤 공개 솔루션이 많던데...
- (텀즈코리아에서 퍼온 정의입니다) -> RAS가 다이얼업 모뎀을 통해 접속해온 사용자들을 인증하고, 요청된 시스템이나 서비스에 관해 그들에게 액세스 권한을 부여하기 위해, 중앙의 서버와 통신할 수 있게 해주는 클라이언트/서버 프로토콜 및 소프트웨어. RADIUS는 회사가 중앙의 데이터베이스 내에 사용자 프로필을 유지하고, 모든 원격지 서버가 공유할 수 있게 해준다. 그것은 더 나은 보안을 제공하며, 회사가 어느 한 곳에서 네트웍을 관리하도록 정책을 수립할 수 있게 해준다. 중앙 서비스를 가진다는 것은 또한 사용량이나 네트웍 통계 등의 추적을 쉽게 할 수 있다는 것을 의미한다. Livingston(이제는 루슨트 테크놀로지의 소유가 되었다)에 의해 만들어진 RADIUS는, Ascend와 기타 다른 네트웍 장비들에 의해 사용되는 사실상의 산업계 표준이며, IETF 표준으로 제안되어있다.
RADIUS 프로토콜 RFC문서
RADIUS 프로토콜 분석
25.1 공개 서버 프로젝트 #
http://www.freeradius.org/ - freeRADIUS 프로젝트.
http://www.gnu.org/software/radius/ - GNU RADIUS 서버
http://www.radius.cistron.nl/ - cistron RADIUS 서버. 가장 잘알려진 서버. 하지만 freeRADIUS로 이전하는 분위기.








