<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>TCP/IP on kpbot's blog</title><link>https://blog.kpbot.org/tags/tcp/ip/</link><description>Recent content in TCP/IP on kpbot's blog</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Sun, 26 Jul 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.kpbot.org/tags/tcp/ip/index.xml" rel="self" type="application/rss+xml"/><item><title>CS144 Lab4 笔记 — TCPConnection：组装完整 TCP 协议栈</title><link>https://blog.kpbot.org/post/cs144-lab4/</link><pubDate>Sun, 26 Jul 2026 00:00:00 +0000</pubDate><guid>https://blog.kpbot.org/post/cs144-lab4/</guid><description>&lt;p&gt;这是整个实验最复杂的部分。&lt;/p&gt;
&lt;p&gt;总的流程说实话我并没有完全做出来，抄了大量的作业，主要原因还是 TCP 的状态机确实有点复杂，有很多边缘条件需要考虑，调试起来死活都修不好。&lt;/p&gt;</description></item><item><title>CS144 Lab3 笔记 — TCPSender：超时重传与滑动窗口</title><link>https://blog.kpbot.org/post/cs144-lab3/</link><pubDate>Thu, 23 Jul 2026 00:00:00 +0000</pubDate><guid>https://blog.kpbot.org/post/cs144-lab3/</guid><description>&lt;h2 id="任务分析"&gt;任务分析&lt;/h2&gt;
&lt;p&gt;今天的任务是完成 Lab3，实现一个 TCPSender。&lt;/p&gt;
&lt;p&gt;TCPSender 比 TCPReceiver 更加复杂，因为涉及到定时器来进行超时重传机制。&lt;/p&gt;
&lt;p&gt;标准的 TCPSender 是一个 GBN 与 SR 都有借鉴的机制，当然更倾向于 GBN，但又有不同。&lt;/p&gt;</description></item><item><title>CS144 Lab2 笔记 — Sequence Numbers 与 TCP Receiver</title><link>https://blog.kpbot.org/post/cs144-lab2/</link><pubDate>Wed, 22 Jul 2026 00:00:00 +0000</pubDate><guid>https://blog.kpbot.org/post/cs144-lab2/</guid><description>&lt;p&gt;今天的任务比较简单，总共就要实现两个任务：Sequence Numbers 的转化与 TCP Receiver 的实现。&lt;/p&gt;
&lt;p&gt;下面对 Lab2 的两个任务进行分析。&lt;/p&gt;
&lt;h2 id="sequence-number"&gt;Sequence Number&lt;/h2&gt;
&lt;p&gt;TCP 的序列结构本质上就是围绕「可靠、有序的字节流」设计的一套编号体系。TCP 不关心数据包，而关心一个连续的字节流，因此需要给每个字节编号。&lt;/p&gt;</description></item><item><title>CS144 Lab0 笔记 — 从应用层到字节流</title><link>https://blog.kpbot.org/post/cs144-lab0/</link><pubDate>Mon, 20 Jul 2026 00:00:00 +0000</pubDate><guid>https://blog.kpbot.org/post/cs144-lab0/</guid><description>&lt;h2 id="背景"&gt;背景&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://csdiy.wiki"&gt;CS144&lt;/a&gt; 是斯坦福的计算机网络课程。要用 C++ 手撸 TCP/IP 协议栈，涉及大量数据结构，对本科生有一定挑战——最大的挑战其实是全英文文档。&lt;/p&gt;
&lt;p&gt;我对计算机网络的理解一直很碎片，概念都知道，但串不起来。趁这个机会系统整理一下。&lt;/p&gt;</description></item><item><title>CS144 Lab1 笔记 — StreamReassembler：乱序字节流重组</title><link>https://blog.kpbot.org/post/cs144-lab1/</link><pubDate>Mon, 20 Jul 2026 00:00:00 +0000</pubDate><guid>https://blog.kpbot.org/post/cs144-lab1/</guid><description>&lt;p&gt;经过 Day0 对 Lab0 的完成，今天的任务也很明了：完成 Lab1。&lt;/p&gt;
&lt;p&gt;CS144 本质上只实现一个简易 TCP 框架，所以本课程实际涉及到的计算机网络层级一般只用 TCP/IP 协议中的传输层与网络层以及应用层。本次实验也是同理，我们要完成一个 &lt;strong&gt;StreamReassembler&lt;/strong&gt;——将字符串拼接字节流。&lt;/p&gt;</description></item></channel></rss>