Session Types for the Transport Layer: Towards an Implementation of TCP

Q4 Computer Science
Samuel Cavoj, Ivan Nikitin, Colin Perkins, Ornela Dardha
{"title":"Session Types for the Transport Layer: Towards an Implementation of TCP","authors":"Samuel Cavoj, Ivan Nikitin, Colin Perkins, Ornela Dardha","doi":"10.4204/EPTCS.401.3","DOIUrl":null,"url":null,"abstract":"Session types are a typing discipline used to formally describe communication-driven applications with the aim of fewer errors and easier debugging later into the life cycle of the software. Protocols at the transport layer such as TCP, UDP, and QUIC underpin most of the communication on the modern Internet and affect billions of end-users. The transport layer has different requirements and constraints compared to the application layer resulting in different requirements for verification. Despite this, to our best knowledge, no work shows the application of session types at the transport layer. In this work, we discuss how multiparty session types (MPST) can be applied to implement the TCP protocol. We develop an MPST-based implementation of a subset of a TCP server in Rust and test its interoperability against the Linux TCP stack. Our results highlight the differences in assumptions between session type theory and the way transport layer protocols are usually implemented. This work is the first step towards bringing session types into the transport layer.","PeriodicalId":30085,"journal":{"name":"Electronic Proceedings in Theoretical Computer Science","volume":null,"pages":null},"PeriodicalIF":0.0000,"publicationDate":"2024-04-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Electronic Proceedings in Theoretical Computer Science","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.4204/EPTCS.401.3","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q4","JCRName":"Computer Science","Score":null,"Total":0}
引用次数: 0

Abstract

Session types are a typing discipline used to formally describe communication-driven applications with the aim of fewer errors and easier debugging later into the life cycle of the software. Protocols at the transport layer such as TCP, UDP, and QUIC underpin most of the communication on the modern Internet and affect billions of end-users. The transport layer has different requirements and constraints compared to the application layer resulting in different requirements for verification. Despite this, to our best knowledge, no work shows the application of session types at the transport layer. In this work, we discuss how multiparty session types (MPST) can be applied to implement the TCP protocol. We develop an MPST-based implementation of a subset of a TCP server in Rust and test its interoperability against the Linux TCP stack. Our results highlight the differences in assumptions between session type theory and the way transport layer protocols are usually implemented. This work is the first step towards bringing session types into the transport layer.
传输层的会话类型:实现 TCP
会话类型是一种类型学,用于正式描述通信驱动的应用程序,目的是在软件生命周期的后期减少错误和简化调试。传输层协议(如 TCP、UDP 和 QUIC)是现代互联网上大部分通信的基础,影响着数十亿终端用户。与应用层相比,传输层有不同的要求和限制,因此对验证的要求也不同。尽管如此,据我们所知,还没有任何研究表明会话类型在传输层的应用。在这项工作中,我们讨论了如何应用多方会话类型(MPST)来实现 TCP 协议。我们用 Rust 开发了基于 MPST 的 TCP 服务器子集实现,并测试了它与 Linux TCP 栈的互操作性。我们的结果凸显了会话类型理论与传输层协议通常实现方式之间的假设差异。这项工作是将会话类型引入传输层的第一步。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
CiteScore
1.10
自引率
0.00%
发文量
295
审稿时长
21 weeks
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信