网络的秘密
网络的秘密 现代网络的秘密基本就是tcp/ip的秘密。解开这个秘密最重要的钥匙是steven写的《tcp/ip 详解的卷一,卷二》,下面这个就是看这个书的一些总结吧。 要了解tcp/ip那首先要了解一些基本概念。 MTU: 最大传输单元,这个就是指明了一次最多传输多少bytes的数据。这个一般都是1500. MSS: 最大报文段大小,这个指明了每次传输segment的大小,这个一般是1460. 之前一直没弄明白MTU和MSS之前的区别,后来看书才突然想明白了,MTU是2层的,而MSS是4层的。 所以为什么MSS定下的大小是1460, 就是1500-20(IP包头)- 20(TCP包头)的结果。 win: 也就是窗口大小,这个就是指明了本地可以接收多少数据大小再返回一个ACK确认。 RTT: 往返传输时间, 就是网络中src和dst之间的往返的延时,这个时间的长短跟win的大小是有关系的。 RTO: 重传超时, 也就是计时器计算多久没有收到返回后再次进行发送。 以上是一些基础概念,下面是一些基本网络流程。 先抄一个tcp状态迁移图吧,然后再稍微解释一下: TCP的三次握手,准确的说应该是TCP建立连接的3次握手。 这个就是一个互相确认的过程。 TCP的4次握手, 准确的说应该是TCP关闭连接的4次握手。 很多人会比较困惑,为什么建立连接是3次,而关闭要4次呢。 这个是因为大部分TCP实现都是全双工的, 也就是数据包是相互传递的。 所以当要释放的时候要2边都要确认没有数据传送了。所以我们看到系统中一些TIME_OUT就不用太大惊小怪,对于有些公网服务,有这种TIME_OUT是非常正常的。 所以在建立连接的时候我们有client和server之分,而关闭连接的时候是没有server和client之分的。 认识一些TCP的标志位: SYN, ACK 这2个我们经常碰到的,这2个后面带的值一般都是从0开始累加上去的。 PSH: 就是说将收到的报文段尽快转给应用层进行处理。 RST: 这个在天朝访问辽国的时候会经常出现的一个状态,重建连接。