kaspterio code as a hacker

  • nginx basic

  • Nginx Basic

    本文主要是对nginx的配置做了一些简要的介绍,来源是nginx的官方文档,结合自己的理解做了下精简和翻译,一来,为了加深对各个配置的理解,二来,为下一步读nginx的源码做准备

    location的概念

    • nginx配置文件中支持配置多个server,监听不同端口(也可以监听同一个端口,如果没有listen,默认是80端口。另外一个server还可以监听多个端口)。 nginx的server是一个非常松散、灵活的概念
    read more...
  • markdown with LaTeX

  • markdown是个利器

    自从接触了markdown,就很少再用Microsoft word或者apple pages写文档了. markdown能让你更关注内容,至于格式排版什么的就交给markdown去操心吧(和Latex理念一样)。这很重要,因为在写文档时这让能你消除对鼠标的依赖,从而提高效率,毕竟拖着鼠标来回点很费事的好么~ 至于编辑器,用vim就足够了。

    我在平常工作中主要使用markdown来写邮件和博客,也就是说只涉及把markdown文件解析为html文件,有一打的markdown解析引擎可以干这个事。

    read more...
  • 关于unix socket api的一些要点

  • prerequisites

    socket api是网络编程的基础,是对两台主机间利用各个通信协议进行通信行为的封装,操作系统以系统调用的形式将这个统一的接口提供给应用程序。各个编程语言的网络编程接口的底层都是基于操作系统的socket api,因此,了解它们的行为非常重要。仅仅了解每个系统调用是干什么的是不够的,本文将以TCP协议为例,从内核和tcp协议栈的角度去介绍这些系统调用干了什么、怎么做的以及一些实现机制。

    TCP协议一些概念

    • TCP的可靠性:TCP协议在传输数据时,接收方需要ack发送方告知数据收到了。如果在一定时间内没有ack,发送方将重发,重发几次任然失败的话将放弃并告知上层(这个过程一般在4-10分钟)
    • RTT(round-trip time):TCP持续估计一个连接的RTT时间,以确定等多长时间没有收到ack后重传
    • 滑动窗口:TCP通过滑动窗口来进行流控,在任何时候,滑动窗口就是接收方的receive buffer可用空间大小,它是随时间动态变化的。
    read more...