摘要:
1、Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。 2、下载 redis-3.2 阅读全文
摘要:
1、好的软件应该能够处理各种可能的错误,也就是防御式编程。 2、作为服务端,应该检测客户端的终止,客户端的无效输入。 阅读全文
摘要:
1、稍微想一下就知道,TCP不是绝对可靠的协议,比如:网络断开,主机崩溃,无论TCP如何努力,都无法将数据传给对方。 2、考虑应用程序A向应用程序B发送数据的TCP流程,数据流从应用程序A通过他所在主机的TCP/IP栈向下传输,经过几台中间路由器, 通过应用程序B所在主机的TCP/IP栈向上传输,最 阅读全文
摘要:
1、TCP/IP协议栈无法将连接的丢失立即通知应用程序. TCP为什么不提供这种通知机制,不这么做的优点和缺点,应用程序怎么检测链接的丢失。 2、TCP为什么不提供连接丢失即时通知的功能? a、其他通信协议,比如SNA和X.25,在连接丢失的时候会通知应用程序。他们是如何做到的? 他们的策略是轮询发 阅读全文
摘要:
1、有时候为了所谓的性能,我们倾向于使用udp,但是我们又期望数据的传输是可靠的,因此需要在应用层提供可靠性。 2、可靠、健壮的udp必须提供: a、在合理的时间内没有收到回复,进行重传 b、保证应答和请求的匹配 3、基于udp协议,在应用层提供可靠性,需要做很多事情,比如:滑动窗口,拥塞控制,对这 阅读全文
摘要:
1、tcp在ip的基础上增加了校验和、可靠性和流量控制的功能,而udp只增加了校验和的功能,看起来udp应该会比tcp快很多, 但事实不是这样,有时候tcp比udp的性能还要好。 2、思考,在什么情况下udp的性能要好于tcp,以及为什么? 3、这两种协议的cpu开销主要是进行数据拷贝和校验,二者区 阅读全文
摘要:
1、TCP是一种流协议(stream protocol),这意味着数据是以字节流的形式发给接收者的,没有固定的报文和报文边界的概念。 接收端读取tcp数据,无法预知在这一次读操作中会返回多少个字节。 2、假设主机A向主机B发送两条报文M1和M2,调用两次send发送两条独立的报文,但是数据在传输过程 阅读全文
摘要:
1、用于网络编程的API接口有两种: Berkeley套接字 XTL 2、套接字是加州大学伯克利分校为其Unix操作系统版本开发的,TLI是AT&T(贝尔实验室)为Unix系统V3.0开发的 3、二者通信能力没有差别,但是语义差别很大,套接字是更好的选择。首先套接字具有更好的移植性,其次,套接字比X 阅读全文
摘要:
1、TCP/IP应用程序分为 TCP服务器 TCP客户端 UDP服务器 UDP客户端 2、构建框架库是比较简单的一件事,主要就是对socket编程。 阅读全文
摘要:
1、私有地址包括三块: 10.0.0.0 到 10.255.255.255 172.16.0.0 到 172.31.0.0 192.168.0.0 到 192.168.255.255 2、私有地址接入公网,需要进行NAT(Network Address Translation) 出去进行SNAT,在 阅读全文