我开发了一个基于 Beancount 的账本托管服务 HostedBeans,欢迎大家来了解纯文本复式记账并试用我的服务。
归档 2012 年 11 月

RP 主机正式开卖!

RP主机官网:http://rp2.jybox.net

RP主机的功能和定位,以及价格,在官网说的已经很明白了,不再重复.

2011年8月,因为零毫秒的需要,我买了一个VPS, 因为之前有半年多的Linux使用经验,也算很快就调教好了. 因为没钱,质量很差,动不动就挂,之后又辗转换过几家VPS服务商.

2012年3月,换到了大名鼎鼎的Linode, 140元/月,这价格我实在有点负担不起,于是决定将VPS上剩余的资源以虚拟主机的形式来出售,主要用于建站、翻墙之类的. 用了这么久的Linux, 也有了点Linux服务器管理的经验,这正好是一个实践的好机会,同时还能捞回点钱.

我很快就开干了,我没有选择安装市面上一些常见的虚拟主机管理系统,而是让用户直接给我发邮件,我自己来按照用户的要求修改配置文件. 包括新建和删除用户等等,都是手动的.

不使用面板一方面是版权的问题,很多面板是收费的. 另一方面是对免费的面板的不信任,不是怕作者使坏,而是怕那么大一个系统,会有某些细节不符合我的预期,造成漏洞. 另外别人的代码,有了bug我也没法改.

我给它起名神马终端, 很蛋疼的名字…., 5元/月. 我也没想到盈利,只是想收回一部分买VPS的钱,减轻点负担. 我以为这么蛋疼的卖法不会有几个人来买的. 但事实上还是有20几个人在用. 手动管理起来实在有点烦,于是我想着自己写个虚拟主机管理面板,将管理操作自动化,顺便把服务器搞的规范一点,实现盈利.

我给这个面板起名RootPanel, 这也是RP主机名字的由来. 我从2012年9月一直写到11月末,大致把它写完了,并结束了相关的测试工作.

期间神马终端受到过5、6次DDOS, 至今也不知道是谁干的、为什么要这样做. 这些次攻击给我的打击也挺大的,一度想放弃卖虚拟主机.

在这段时间,我又购进了一台LocVPS的VPS, 性价比很不错,我主要就是在用它进行面板的测试工作.

现在RP主机在LocVPS上已经开卖了,半个月后,Linode上原有的神马终端也将装上新的面板、更名,成为RP主机的第二个节点.

TCP/IP 笔记(4.IP路由选择和分段)

IP数据报头中的目标地址决定数据报的去处,它代表目标网络中的特定主机. 如果目标地址在本地网络,直接将数据报送到该主机即可.

如果目标地址指向外部网络,则将数据报发给网关,而决定发给哪个网关的过程,叫路由选择.

IP会为每个数据报选择路由.

路由选择

Internet网关(gateway)通常被称为IP路由器(IP router). 网关根据IP决定数据报传送的路径.

严格来说,网关能在不同的协议之间传输数据,路由器则在不同网络间,使用相同协议传输数据.

在TCP/IP术语中,网络设备分为网关和主机.

网关同时连接到多个网络,并可以在网络之间传输数据,而主机不能. 但如果主机被连接到多个网络,也可以被视为网关.

网关和主机最大的差别在于,主机的数据包必须逐层经过四层协议的处理,而在网关上,数据包只需上达网际层即可,因为IP会为数据包决定路由.

任何网络设备都只能将数据报送到与自己连接在同一物理网络上的其他设备. 若要向其他网络上的设备发送数据报,则必须先将数据报发给连接两个网络的网关,然后由网关转发给目标设备.

对于一个主机而言,它只需知道本地网关可以将数据报送往其他网络,不必也不能控制数据报在经过网关之后的转发路径.

这是因为不同的物理网络之间可能完全不兼容,一个网络中的数据报,必须经过网关的转换才能送达另一网络. 这样,数据报像接力棒一样可以跨越多个不同的物理网络,到达目标.

数据报的分段

因为不同的物理网络本质上的差异,连接不同种类物理网络的网关的IP模块可能会将数据报拆分成较小的片段(fragment). 如果网关两端连接的是相同种类的物理网络,则不必拆分数据报.

每一种物理网络,都有自己的最大传输单元(MTU, Maximum Transmission Unit)限制,也就是说,各种网络所能承载的最大数据报容量并不一致.

当数据报从MTU较大的网络流向MTU较小的网络时,网关就必须将数据报拆分成较小的传输单位. 这个过程叫分段.

分解后的数据报称为片段,其格式与普通数据报一样,报头的编号部分可以用来唯一地区分一个片段,并作为还原数据报的依据.

片段(分段)偏移量代表该片段在原数据报中的位置(顺序).

标记中的是否为最后一个片段(分段), 可使IP判断是否已经收集到了一个数据报的所有片段.

传送数据给传输层

当IP收到一个传送给本机的数据报时,它会去掉报头,将得到的数据交给正确的传输层协议(如TCP或UDP). 至于要交给哪一种传输层协议,则由协议号决定,每一种传输层协议都有自己的协议号,以便IP进行识别.

TCP/IP 笔记(3.IP协议概述)

IP(Internet Protocol, 网际协议)工作在网际层,是TCP/IP协议族中最重要的组成部分,所有TCP/IP的数据包都通过IP来传输.

IP的功能

  • 定义数据报的格式,它是Internet的基本传输单位
  • 定义Internet的寻址方式
  • 在网络访问层和传输层之间传输数据
  • 决定数据报到远程主机的传输路径
  • 对数据报进行分解和重组

IP是一种非连接式协议,这意味着在传输数据前,两个端点之间不必交换控制信息(握手)来建立点对点连接.

对于需要面向连接的应用,须依赖于其他层的协议,如TCP.

IP是不可靠的协议,依赖于其他的协议来提供错误检测(ICMP,Internet Control Message Protocol, 互联网控制消息协议)和纠正(TCP)的能力.

IP数据报

数据报是包含控制信息(如接收者地址)的数据块.

IP会把数据报从一个物理网络转发到另一个物理网络,直到到达最终目标,每一个数据报的转发路径都是独立,与其他数据报没有关系.

下面是IPv4数据报的格式:

1

版本 IP的版本号,这里介绍的是IPv4, 应为4.

IHL Internet Header Lenght, IP报头长度,单位为32bit, 该字段最小值为5, 通过增加该字段长度,可以在图中的报头结构之后,再追加选项(选项部分要补齐到32bit的整数倍).

服务类型 目前被重新规定为DSCP(Differentiated Services Code Point, 差分服务代码点)占6bit和ECN(Explicit Congestion Notification, 显式拥塞通知)占2bit, 两者主要用于区分数据报的优先级、对延迟、吞吐率、可靠度的要求.

数据报全长 单位Byte.

编号 分段的编号,唯一地标识一个数据报的所有分段.

标记 与分段相关的标记,标记是否允许被分段是否为最后一个分段.

分段偏移量 该分段相对于原始数据报的偏移量,单位64bit.

TTL Time To Live, 存活时间,单位秒,但事实上通常每经过一个路由器会被减一.

协议号 指明所承载的数据使用的协议,常见的协议号如下:

校验和 报头校验和,用来核对报头是否被正确地传输,如果校验失败,则这个数据报会被丢弃.

源地址 目标地址 IPv4地址,二进制形式.

在通常的报头之后,还会有选项(由IHL决定)和实际的数据.

精子生于 1995 年,英文 ID jysperm.

订阅推送

通过 Telegram Channel 订阅我的博客日志、产品和项目的动态:

王子亭的博客 @ Telegram


通过邮件订阅订阅我的博客日志、产品和项目的动态(历史邮件):

该博客使用基于  Hexo  的  simpleblock  主题。博客内容使用  CC BY-NC-ND  授权发布。最后生成于 2023-12-20.