Ответ 1
Я узнал IP-сеть из TCP/IP Illustrated. Очень рекомендуется.
Итак, я хочу узнать все о сетях. Хорошо ниже сокета, вплоть до сырых сокетов и прочее. И я хочу понять концентраторы, маршрутизаторы, точки доступа и т.д. Например, я хотел бы написать собственное программное обеспечение для создания такого рода вещей. * Есть ли отличный источник для такого рода информации?
Я знаю, что я прошу здесь много, и что для полного объяснения это требует от высокого уровня до низкого уровня. Я предполагаю, что я ищу источник, похожий по объему и глубине, на "Прикладная криптография" , но о сетях.
Спасибо всем, кто может помочь мне указать (и другим, таким как я?) в правильном направлении.
* Да, я понимаю, что использование любого из моих ручных сетевых стековых кодов будет огромной проблемой безопасности, и я только хочу это сделать:)
Аналогичный вопрос: здесь. Однако я ищу больше, чем просто "что ниже сокетов TCP/UDP?".
Отредактировано для уточнения: глубина, о которой я говорю, выше уровня драйвера. Итак, полагая, что биты могут сделать это и с другого конца провода, что дальше?
Я узнал IP-сеть из TCP/IP Illustrated. Очень рекомендуется.
Это может не помочь вам изучить его, но пакетный сниффер, например Wireshark, даст вам некоторое представление о том, как выглядят данные на довольно низкоуровневый протокол (TCP/IP).
Как вы, очевидно, узнали, юниверс не запускается и не заканчивается протоколом IP. Взгляните на модель уровня OSI 7, где IP - это протокол уровня 3 (сеть). Общие IP-маршрутизаторы будут работать на этом уровне, но перед тем, как вы начнете кодировать свои сетевые стеки, вы, вероятно, должны понять, что есть в канале передачи данных и физических уровнях.
Начните с основ передачи данных во всех своих бесчисленных формах и прокладывайте путь вверх по стеку, пока не дойдете до того места, где вам нужно остановиться. Data Communications, Computer Networking и Open Systems - хороший исходный текст, а затем найдите более подробную информацию о каждой области, на которой вам нужно сосредоточиться. Предыдущие ответы включают хорошие ссылки для IP и TCP/IP, и, как упоминалось, Wireshark позволит вам смотреть вниз по некоторым слоям
Материалы CISCO CCNA содержат отличные сетевые основы, но не влияют на программный аспект. Я не уверен, что есть официальная бесплатная ссылка, но вы можете попытаться их найти.
Есть ли у вас встроенный опыт программирования? Если это так, я рекомендую вам купить один из эти платы разработки. Они дешевы и позволяют работать с каждой частью сетевого стека, а все необходимые программные средства бесплатны.
Обратите внимание, что получение этого нелегко, и я закончил чтение CS8900 IC, чтобы узнать, как заставить его взаимодействовать с процессором на базе ARM7. Но если вам нравятся такие вещи (как и я), тогда они очень интересны.
Хммм... вы посмотрели Компьютерные сети от Tanenbaum?
Вы должны оснастить себя компилятором c и необходимыми библиотеками и заголовками для вашей ОС и поиграть. Например, вы можете прочитать:
http://snap.nlc.dcccd.edu/learn/fuller3/chap13/chap13.html
У меня было еще несколько ссылок в моей восхитительной учетной записи, но все они пошли по цифровому дренажу; -)
Я нашел главу сети в "понимании ядра Linux" и "понимании внутренних сетей Linux" от рудиллинга, чтобы быть очень полезной.
Стек TCP/IP - это очень хороший старт, но есть намного больше и хорошее понимание того, как работает ethernet и как ethernet!= IP!= the-interweb пройдет долгий путь.
книги по сетевой безопасности часто делают приличную работу, если не goos, объясняя, как сети работают в сжатом контексте.
что действительно трюк для меня выполнял работу по внедрению NAT:)
Этот курс работал у меня: COS 461 в Принстоне. Обратите внимание, что он предполагает опыт программирования на системном уровне с помощью C.
Практически все чтения и лекции доступны в Интернете в разделе "Силлабус". И вы также можете попробовать задания (к сожалению, у вас не будет доступа к виртуальной сетевой системе).
Проверьте это.. это хороший сбор информации: http://www.tcpipguide.com/free/t_toc.htm