2009-06-05 24 views
20

Vì vậy, tôi muốn tìm hiểu tất cả về mạng. Vâng dưới ổ cắm, xuống ổ cắm nguyên liệu và các công cụ. Và tôi muốn hiểu các trung tâm, bộ định tuyến, các điểm truy cập, v.v. Ví dụ: tôi muốn có thể viết phần mềm của riêng mình để thực hiện loại công cụ này. * Có nguồn tuyệt vời cho loại thông tin này không?Tôi làm cách nào để tìm hiểu _really_ lập trình mạng cấp thấp?

Tôi biết rằng tôi đang yêu cầu LOT ở đây và điều đó giải thích đầy đủ tất cả yêu cầu từ cấp độ cao xuống mức thấp. Tôi đoán tôi đang tìm kiếm một nguồn tương tự trong phạm vi và chiều sâu để Applied Cryptography, nhưng về mạng.

Nhờ có ai có thể giúp chỉ cho tôi (và những người khác như tôi?) Đi đúng hướng.

* Vâng, tôi nhận ra sử dụng bất kỳ hand-crafted mạng stack mã của tôi sẽ là một vấn đề an ninh khổng lồ, và đang chỉ tìm cách để làm điều đó để học hỏi :)

Câu hỏi tương tự: here. Tuy nhiên tôi đang tìm kiếm nhiều hơn chỉ là 'những gì dưới đây TCP/UDP socket?'.

Đã chỉnh sửa để làm rõ: Độ sâu mà tôi đang nói đến ở trên mức trình điều khiển. Vì vậy, giả sử rằng các bit có thể làm cho nó đến và từ đầu kia của dây, những gì tiếp theo?

+3

thế nào ở mức độ thấp bạn muốn đi; bạn có muốn tìm hiểu: * ghi thực hiện TCP chỉ sử dụng ổ cắm thô không? * Viết một ngăn xếp TCP/IP mới cho hệ điều hành của bạn hoặc cho một hệ thống nhúng? * Có đóng gói khung hình không? (sẽ khác với kết nối với mỗi mạng Ethernet có dây, Gig-E, quay số, ATM, Token Ring, wifi, bluetooth, v.v.) * viết trình điều khiển card mạng để chụp khung và gửi chúng đến NIC? – Stobor

Trả lời

18

Tôi đã học được mạng IP từ TCP/IP Illustrated. Rat khuyen khich.

+1

Tôi cũng khuyên bạn nên lập trình Mạng Unix 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

Điều này có thể không giúp bạn tìm hiểu nó, nhưng gói sniffer như Wireshark sẽ cung cấp cho bạn một số thông tin chi tiết về dữ liệu trông như thế nào ở giao thức cấp thấp (TCP/IP).

2

Bạn nên trang bị cho mình một trình biên dịch c và libs cần thiết và tiêu đề cho hệ điều hành của bạn và chơi xung quanh. Bạn có thể muốn đọc ví dụ:

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

Tôi có một số liên kết hơn trong tài khoản ngon của tôi, nhưng tất cả đều đi xuống cống kỹ thuật số ;-)

8

Như các bạn đã rõ ràng là công nhận, vũ trụ không bắt đầu và kết thúc với Giao thức IP. Hãy xem OSI 7 Layer Model trong đó IP là giao thức Lớp 3 (Mạng). Các bộ định tuyến IP phổ biến sẽ hoạt động ở cấp độ này, nhưng có nhiều phức tạp hơn bạn có thể phải hiểu trong các lớp Liên kết dữ liệu và Vật lý trước khi bắt đầu mã hóa các ngăn xếp mạng của riêng bạn.

Bắt đầu với các nguyên tắc cơ bản của truyền thông dữ liệu ở tất cả các dạng vô số của nó và làm việc theo cách của bạn lên ngăn xếp cho đến khi bạn đến nơi bạn cần dừng lại. Data Communications, Computer Networking and Open Systems là văn bản nền tảng tốt và sau đó tìm thông tin chi tiết hơn về từng khu vực bạn cần tập trung vào. Các câu trả lời trước bao gồm các liên kết tốt cho IP và TCP/IP, và như đã đề cập Wireshark sẽ cho phép bạn xem qua một số lớp

6

Tài liệu CISCO CCNA chứa các nguyên tắc cơ bản về mạng lớn nhưng không ảnh hưởng đến khía cạnh lập trình. Tôi không chắc rằng có một liên kết miễn phí chính thức, nhưng bạn có thể thử tìm chúng.

4

Bạn có trải nghiệm lập trình nhúng nào không? Nếu vậy tôi khuyên bạn nên mua một trong số these development boards. Chúng rẻ và cho phép bạn làm việc trên mọi phần của ngăn xếp mạng cộng với tất cả các công cụ phần mềm được yêu cầu đều miễn phí.

Lưu ý rằng việc thực hiện nó không phải là dễ dàng và tôi đã đọc CS8900 IC datasheet để tìm hiểu cách làm cho nó giao tiếp với bộ xử lý dựa trên ARM7. Nhưng nếu bạn thích điều đó (như tôi làm) thì họ rất vui.

3

Hmmm ... bạn đã xem xét Computer Networks bởi Tanenbaum chưa?

+0

Cuốn sách này thật tuyệt vời, hài hước và giúp bạn viết mã C++ ở mức độ thấp! –

2

Tôi đã tìm thấy chương mạng trong "tìm hiểu hạt nhân Linux" và "tìm hiểu về mạng nội bộ của linux" từ quặng rất hữu ích.

Ngăn xếp TCP/IP là một khởi đầu rất tốt nhưng có nhiều hiểu biết hơn về cách hoạt động của ethernet và cách ethernet! = IP! = The-interweb sẽ đi một chặng đường dài.

sách về bảo mật mạng thường thực hiện công việc phong nha nếu không phải giải thích cách mạng hoạt động trong một ngữ cảnh ngắn gọn.

những gì thực sự đã làm các trick cho tôi được tham gia một công việc thực hiện NAT :)

1

Khóa học này làm việc cho tôi: COS 461 at Princeton. Lưu ý rằng nó giả định trải nghiệm lập trình cấp hệ thống với C.

Khá nhiều bài đọc và bài giảng có sẵn trực tuyến trong "Giáo trình". Và bạn cũng có thể thử các bài tập (thật không may, bạn sẽ không có quyền truy cập vào Hệ thống mạng ảo).

+0

Chỉ cần ra khỏi tò mò, nơi nào điều này nằm dưới trình tự khóa học của Princeton? –

+0

Nó thường được thực hiện bởi các chuyên ngành CS trong năm thứ 3 hoặc thứ 4, nhưng một số người chỉ lấy chúng vì họ quan tâm. – weiyin

Các vấn đề liên quan