在checkpoint0中,实现了一个流控制的byte
stream抽象。在checkpoint1中,实现了一个reassembler,它可以将接受到的数据按照原来的数据流顺序组装起来。在本实验中需要实现一个TCP Reciever,这是TCP协议中的一个组件。
TCP Reciver在接受peer’s sender的信息后,也会向peer’s
sender发送一个消息,通过send()方法。...
最近在疯狂科研中,无数次尝试不同的方法,调各种各样的参数。闲暇之余想了解一下TCP内部的原理,看到CS144的Lab有这个实验,开一个新的坑,不知道在忙碌的研二期间能不能完成...
Task
Lab的任务是基于上一个lab实现的stream抽象,实现一个TCP
receiver:将接受到的datagram变成一个可靠有序的字节流。从TCP
sender的角度讲,它会把字节流分割成segment...
Introduction
Google的研发人员在过去处理大数据任务时,经常需要手写实现很多不同的拥有特定功能的程序,比如爬去文档、网络日志等等。这些任务经常需要将任务分布到很多台计算机处理,以提升处理的性能和速度;但在这个前提下,如何实现并行、分布数据、处理异常机器和失败的任务、保证系统正确运行是一个较为复杂和综合性的问题。
为了解决这样的问题,Google的研发人员开发了一套系统——Mapre...
Intro
这篇文章是我自己通过阅读LevelDB的源代码,有关LevelDB内存管理方案的总结。分为主要的三个部分。第一部分是LevelDB的内存池的实现;第二部分是内存数据库—跳表的实现;第三部分是缓存系统的实现。
Memory pool
LevelDB的内存池实现在arena.cc以及arena.h中。内存池是池化技术的一种,池化技术的核心内涵是:将程序中需要经常使用的资源预先申请出来,放...
Intro
Understanding Iterators
Before diving into the specifics of LevelDB, let's clarify what an
iterator is in the context of programming. An iterator is an object that
enables users to traverse a co...