2009-06-05 4 views
20

그래서 나는 네트워크에 대해 모두 배우고 싶습니다. 소켓 아래, 원시 소켓과 물건들. 허브, 라우터, 액세스 포인트 등을 이해하고 싶습니다. 예를 들어, 이런 종류의 작업을 수행 할 수있는 자체 소프트웨어를 작성하고 싶습니다. * 이러한 종류의 정보를 얻을 수있는 훌륭한 소스가 있습니까?저레벨 네트워크 프로그래밍을 _ 배울 수있는 방법은 무엇입니까?

나는 여기에 많은 것을 묻고 있는데, 그것을 완전히 설명하기 위해서는 높은 수준에서 낮은 수준까지 요구된다는 것을 알고있다. 나는 Applied Cryptography과 비슷한 범위와 깊이의 소스를 찾고 있지만 네트워크는 찾고있다.

저와 같은 사람들을 올바른 방향으로 가르쳐 주실 수있는 분들께 감사드립니다.

* 그래, 난 큰 보안 문제가 될 것입니다 내 손으로 만들어진 네트워크 스택의 코드 중 하나를 사용하여 실현, 만 :

비슷한 질문 배우고 그것을 찾고 있어요 : here합니다. 그러나 나는 TCP/UDP 소켓 아래에있는 것 이상을 찾고있다. "

Clarification을 위해 편집 됨 : 내가 말하는 깊이는 운전자 수준보다 높습니다. 따라서 비트가 와이어의 다른 쪽 끝을 왕복 할 수 있다고 가정하면 다음은 무엇입니까?

+3

을 어떻게 가고 싶어 낮은 수준; 당신이 배우고 싶어 : * 원시 소켓만을 사용하여 TCP 구현을 작성 하시겠습니까? * OS 또는 임베디드 시스템 용 TCP/IP 스택을 새로 작성 하시겠습니까? * 프레임 캡슐화도 수행합니까? (이더넷 유선 네트워크, Gig-E, 전화 접속, ATM, 토큰 링, wifi, 블루투스 등 각각에 연결하기 위해 다름) * 프레임을 가져 와서 NIC로 보내려면 네트워크 카드 드라이버를 작성 하시겠습니까? – Stobor

답변

18

IP 네트워킹을 TCP/IP Illustrated에서 습득했습니다. 추천.

+1

유닉스 네트워크 프로그래밍을 권장합니다. http://www.amazon.com/Unix-Network-Programming-Addison-Wesley-Professional/dp/0131411551/ref=sr_1_1?ie=UTF8&s=books&qid=1244659765&sr=1- 1 – Reginaldo

12

이것은 배우는 데 도움이되지 않을 수도 있지만 과 같은 패킷 스니퍼는 꽤 낮은 수준의 프로토콜 (TCP/IP)에서 데이터가 어떻게 보이는지에 대한 통찰력을 제공합니다.

2

당신은 C 컴파일러와 OS에 필요한 libs와 및 헤더와 함께 자신을 장비하고 놀러한다. 당신은 예를 들어 읽을 수 있습니다 : 당신은 분명 인정 것처럼 내 맛있는 계정에서 좀 더 링크를했다

http://snap.nlc.dcccd.edu/learn/fuller3/chap13/chap13.html

,하지만 그들은 모두 디지털 드레인 ;-)

8

추락, 우주 IP 프로토콜로 시작하고 끝나지 않습니다. IP가 레이어 3 (네트워크) 프로토콜 인 OSI 7 Layer Model을 살펴보십시오. 공통 IP 라우터는이 수준에서 작동하지만 자체 네트워크 스택을 코딩하기 전에 데이터 링크 및 실제 계층에서 이해해야 할 복잡성이 더 많습니다.

수많은 다양한 형태로 데이터 통신의 기본 사항부터 시작하여 중단해야 할 위치에 도달 할 때까지 스택을 진행하십시오. Data Communications, Computer Networking and Open Systems은 훌륭한 기초 텍스트이며, 집중해야 할 각 영역에 대한 자세한 정보를 찾으십시오. 이전 답변에는 IP 및 TCP/IP에 대한 좋은 링크가 포함되어 있습니다. 언급 된 바와 같이 Wireshark는 일부 레이어를 살펴볼 것입니다.

6

CISCO CCNA 자료에는 훌륭한 네트워크 기본 사항이 포함되어 있지만 프로그래밍 측면에는 영향을 미치지 않습니다. 나는 공식적인 자유로운 연결이다는 것을, 그러나 당신이 그 (것)들을 찾아내는 것을 시도 할다는 것을 모른다.

4

임베디드 프로그래밍 경험이 있습니까? 그렇다면 these development boards 중 하나를 구입하는 것이 좋습니다. 그들은 저렴하고 네트워킹 스택의 모든 부분과 필요한 모든 소프트웨어 툴을 무료로 사용할 수 있습니다.점점 거기에가는 것을

주 쉽지 않고 나는 그것이 ARM7 기반 프로세서와 통신하는 방법을 알아 보려면 CS8900 IC 데이터 시트를 읽고 끝났다. 그러나 만약 당신이 그런 종류의 것을 즐기면 (나는 그렇듯이) 아주 재미 있습니다.

3

는 흠 ... 당신은 타넨 바움에 의해 Computer Networks으로 보았다?

+0

이 책은 굉장하고 재밌으며 "저급"C++ 코드를 작성하게합니다! –

2

나는 매우 도움이 될 및 oreilly에서 "이해 리눅스 네트워크 내부" "리눅스 커널의 이해"의 네트워킹 장을 발견했다.

TCP/IP 스택은 아주 좋은 시작이지만, 이더넷이 어떻게 작동하는지, 이더넷이 어떻게! = IP! = interweb가 먼 길을 갈 것인가에 대해 더 잘 이해하고 있습니다. 네트워크는 간결한 맥락에서 작동하는 방법을 설명하는 작업을 GOOS하지 않을 경우 네트워크 보안에 대한

책은 종종 괜찮은을한다. 나를

1

:이 과정을 NAT를 구현하는 작업을 탔는데 정말 트릭을 한 일

나를 위해 일한 : COS 461 at Princeton. 그것은 거의 모든 측정 값과 강의 "강의 계획서"에서 온라인으로 사용할 수있는

C.

와 시스템 레벨의 프로그래밍 경험을 가정합니다. 또한 과제를 시도 할 수도 있습니다 (불행히도 가상 네트워크 시스템에 액세스 할 수 없습니다).

+0

호기심에서 벗어난이 책은 프린스턴 대학의 학부 과정 과정에서 어디에 해당합니까? –

+0

일반적으로 3 학년 또는 4 학년 때 CS 전공이 수강하지만, 관심이있어 일부 사람들은 그냥 가져갑니다. – weiyin

관련 문제