Comments 10
Однозначно полезный перевод.
Хотя есть некоторые неточности, например:
Кроме того, в конце формата кадра Ethernet также есть поле Frame Check Sequence, которое наряду с Cyclic Redundancy Check (CRC) используется для проверки целостности кадра.
FCS используется не "наряду с CRC" а содержит значение CRC фрейма, итп
Писал свой стек недавно, чтоб всю обработку TCP/UDP/ICMP для IPv4 и IPv6 уместить в 5 КБ места микроконтроллера своего девайса. Оно даже как-то работает. Самое сложное было TCP, с его плавающим окном и подтверждениями, остальное по большей части банальный паркинг структур и вычисление контрольных сумм
тоже было дело, примерно в начале 90х, все это + snmp + rmon + mibs, с нуля, на С для контроллера, проект занял примерно 6 месяцев, включая тестирование, пошло на продажу, работал уже вне РФ, самое сложное было отладка mib walk, далеко не самый трудный проект
Исходники открыты?
Написание собственного стека TCP/IP поначалу может показаться пугающей задачей.
не совсем понятно только зачем свой писать, когда есть уже готовые библиотеки в исходниках, например LWIP: https://github.com/lwip-tcpip/lwip
если свой писать то еще и с аппаратно зависимым уровнем придется разбираться например с таким контроллером:

The Ethernet MAC (GMAC) module implements a 10/100 Mbps Ethernet MAC compatible with the IEEE 802.3 standard. The GMAC can operate in either half or full duplex mode at all supported speeds. The GMAC Network Configuration Register is used to select the speed, duplex mode and interface type (MII, RMII).
Изобретая велосипед с нуля можно понять в деталях нюансы его работы. Ну по крайней мере я использую такой подход, т.к. после чтения документации многие моменты упускаются или забываются в будущем.
Пишем стек TCP/IP с нуля: Ethernet, ARP, IPv4 и ICMPv4