69 lines
4.1 KiB
TeX
69 lines
4.1 KiB
TeX
PicoTCP is a complete TCP/IP stack, intended for embedded devices and
|
|
designed to run on different architectures and networking
|
|
hardware. The architecture of the stack allows easy selection of the features
|
|
needed for any particular use, taking into account the sizing and
|
|
the performance of the platform on which the code is to run.
|
|
Even if it is designed
|
|
to allow for size and performance constraints, the chosen approach is to
|
|
comply with the latest standards in the telecommunications research, including
|
|
the latest proposals, in order to achieve the highest standards for
|
|
today's inter-networking communications. PicoTCP is distributed as
|
|
a library to be integrated with application and form a combination for
|
|
any hardware-specific firmware.
|
|
|
|
|
|
The main characteristics of the library are the following:
|
|
\begin{itemize}
|
|
\item \textbf{Modularity} Each component of the stack is deployed in a
|
|
separate module, allowing the selection at compile time of the components needed to
|
|
be included for any specific platform, depending on the particular use case.
|
|
We know that saving memory and resources is often mission-critical for a
|
|
project, and therefore PicoTCP is fully focussed on saving
|
|
up to the last byte of memory.
|
|
\item \textbf{Code Quality} Every component added to the
|
|
stack must pass a complete set of validation tests. Before new code can be
|
|
introduced it is scanned and proof-checked by three separate levels of
|
|
quality enforcement. The process related to the validation of the code is
|
|
one of the major tasks of the engineering team. In the top-down approach of the design, a
|
|
new module has to pass the review of our senior architects, to have it comply
|
|
with the general guidelines. The development of the smaller
|
|
components is done in a test-driven way, providing a specific unit test for each function call.
|
|
Finally, functional non-regression tests are performed
|
|
after the feature development is complete, and all the tests are automatically
|
|
scheduled to run several times per day to check for functional regressions.
|
|
\item \textbf{Adherence to the standards} The protocols
|
|
included in the stack are done following stepare designed by following meticulously the guidelines
|
|
provided by the International Engineering Task Force (IETF) with regards to
|
|
inter-networking communication. A strong adherence to the standards guarantees a
|
|
smooth integration with all the existing TCP/IP stacks, when communicating
|
|
with both other embedded devices and with the PC/server world.
|
|
\item \textbf{Features} A fully-featured protocol implementation including all those non-mandatory
|
|
features means better data-transfer performances, coverage of rare/unique
|
|
network scenarios and topologies and a better integration with all types of
|
|
networking hardware devices.
|
|
\item \textbf{Transparency} The availability of the source code to the Free
|
|
Software community is an important added value of PicoTCP.
|
|
%Our programmers
|
|
%are proud of the aestethic of their code, and they show it with no
|
|
%hesitation to the attention of the rest of the world.
|
|
The constant peer reviews and constructive comments on the
|
|
design and the development choices that PicoTCP receives from the academic world
|
|
and from several hundreds of hobbyists and professionals who read the code,
|
|
are an essential element in the quality build-up of the product.
|
|
%PicoTCP constantly receives peer-reviews and constructive comments on the
|
|
%design and the development choices from the academic world and from several
|
|
%hundreds of hobbists and professionals who read the code.
|
|
%We strongly
|
|
%believe that software is not about keeping things secret: whenever one is
|
|
%convinced by the quality of their work, there is absolutely nothing to hide.
|
|
\item \textbf{Simplicity} The APIs provided to access the library
|
|
facilities, both from the applications as well as from the device drivers, are
|
|
small and well documented. This concurs with the goal of the library to facilitate
|
|
the integration with the surroundings and minimize the time used to combine
|
|
the stack with existing code. The support required to port to a new
|
|
architecture is so small it is reduced to a set of macros defined in a
|
|
header file specific for the platform.
|
|
\end{itemize}
|
|
|
|
|