@@ -830,20 +830,26 @@ Bulid过程可以分解为4个步骤:预处理(Prepressing), 编译(Compilation)
830
830
831
831
乐观锁:假设不会发生并发冲突,只在提交操作时检查是否违反数据完整性。
832
832
833
+ 乐观锁与悲观锁的具体区别:http://www.cnblogs.com/Bob-FD/p/3352216.html
834
+
833
835
##5 MVCC
834
836
837
+ 轻松理解MYSQL MVCC的实现机制:http://blog.csdn.net/whoamiyang/article/details/51901888
835
838
836
839
##6 MyISAM和InnoDB
837
840
838
841
MyISAM 适合于一些需要大量查询的应用,但其对于有大量写操作并不是很好。甚至你只是需要update一个字段,整个表都会被锁起来,而别的进程,就算是读进程都无法操作直到读操作完成。另外,MyISAM 对于 SELECT COUNT(* ) 这类的计算是超快无比的。
839
842
840
843
InnoDB 的趋势会是一个非常复杂的存储引擎,对于一些小的应用,它会比 MyISAM 还慢。他是它支持“行锁” ,于是在写操作比较多的时候,会更优秀。并且,他还支持更多的高级应用,比如:事务。
841
844
845
+ mysql 数据库引擎:http://www.cnblogs.com/0201zcr/p/5296843.html
846
+ MySQL存储引擎--MyISAM与InnoDB区别:https://segmentfault.com/a/1190000008227211
847
+
842
848
#网络
843
849
844
850
##1 三次握手
845
851
846
- 1 . 客户端通过向服务器端发送一个SYN来创建一个主动打开,作为三路握手的一部分 。客户端把这段连接的序号设定为随机数 A。
852
+ 1 . 客户端通过向服务器端发送一个SYN来创建一个主动打开,作为三次握手的一部分 。客户端把这段连接的序号设定为随机数 A。
847
853
2 . 服务器端应当为一个合法的SYN回送一个SYN/ACK。ACK 的确认码应为 A+1,SYN/ACK 包本身又有一个随机序号 B。
848
854
3 . 最后,客户端再发送一个ACK。当服务端受到这个ACK的时候,就完成了三路握手,并进入了连接创建状态。此时包序号被设定为收到的确认号 A+1,而响应则为 B+1。
849
855
@@ -856,6 +862,8 @@ _注意: 中断连接端可以是客户端,也可以是服务器端. 下面仅
856
862
3 . 服务器等到所有数据传输结束, 向客户端发送一个带有 FIN = 1 的数据分段, 并进入 CLOSE-WAIT 状态, 等待客户端发来带有 ACK = 1 的确认报文.
857
863
4 . 客户端收到服务器发来带有 FIN = 1 的报文, 返回 ACK = 1 的报文确认, 为了防止服务器端未收到需要重发, 进入 TIME-WAIT 状态. 服务器接收到报文后关闭连接. 客户端等待 2MSL 后未收到回复, 则认为服务器成功关闭, 客户端关闭连接.
858
864
865
+ 图解:http://blog.csdn.net/whuslei/article/details/6667471
866
+
859
867
##3 ARP协议
860
868
861
869
地址解析协议(Address Resolution Protocol),其基本功能为透过目标设备的IP地址,查询目标的MAC地址,以保证通信的顺利进行。它是IPv4网络层必不可少的协议,不过在IPv6中已不再适用,并被邻居发现协议(NDP)所替代。