With the rise of the Internet of Things, custom TCP/IP communications are becoming more and more common. Unfortunately, many developers lack experience in protocol design and make common mistakes. This talk is a crash course in designing TCP/IP protocols, with a focus on always-on, low-latency device communication.
TCP/IP communication mistakes are common because of how the TCP/IP protocol is presented: most developers learn about TCP/IP along with the rest of the OSI networking stack, but the concepts of the lower network stack layers do not carry through to the TCP/IP level. In fact, many early internet protocols including HTTP and FTP were designed with some common mistakes; newer protocols such as HTTP/2, WebSockets, and Passive FTP fix those mistakes.
This talk covers what TCP/IP actually provides to your application, and how to communicate over raw sockets. The three pillars of protocol design are covered: connections, message framing, and keepalives. Various protocol styles are examined, with the pillars evaluated for each, including command/response, polling, and streaming.
You will leave this talk with enough knowledge to use TCP/IP sockets to communicate with any custom device in a fully reliable manner. You will also be empowered to evaluate custom protocols used by devices, identify their defects, and provide workarounds if necessary.
Комментарий программного комитета
Учитывая глубину экспертных знаний Стивена, программный комитет решил выбрать самую «хардкорную» тему: доклад о внутренностях протокола TCP/IP. Сокеты, пакеты, потоки, обеспечение надежности и обработка ошибок — это немногое из того, о чем Стивен Клири планирует рассказать в отведенный ему час.