DNS ——域名解析系统Domain Name System(一)

问:DNS解决的是什么问题?
答:解决的是互联网主机路由器的识别问题,互联网上成千上万上亿的主机每一台都有自己的标识符(地址)就是IP地址IPV4(32位)和IPV6(128位),但ip地址不适合不方便直接使用,所以日常的我们使用的是域名(例:www.lienze.com)而IP地址则是在底层的网络层中应用,DNS就是实现了域名到IP地址的映射解析。

问:那么域名和IP地址之间是如何映射的?
答:DNS域名解析系统是多层命名服务器组成的分布式数据库,通过应用层协议实现域名向IP地址的解析。

问:那么DNS除了能将域名解析成对应的IP地址还能用来做什么?
答:主机别名,负载均衡,服务器别名,例如负载均衡,在域名映射到IP的时候可以映射到多个服务器IP地址,通过映射IP的轮询实现负载均衡的目的。

问:DNS为什么使用分布式存储?
答:分布式存储能够避免几个问题,
1.集中式服务的单点失败,避免因集中服务出现故障使整个互联网瘫痪。
2.分散集中请求带来的流量压力,避免因集中请求流量压力过大而导致的服务器问题和成本问题。
3.降低地区时延,分布式存储能够在不同地区就近访问,从而避免因区域距离DNS服务器过远而导致的网络时延。
4.易维护,分布式存储的可伸缩性强,易于地区维护且不会因问题而影响整个互联网。

问:DNS多层命名分布式存储是怎样工作的或者说执行的流程是什么?
答:

(上图,多层命名分布式存储DNS数据库)

在使用的时候当用户输入域名访问时,实际上先访问的是本地域名服务器,本地域名服务器不属于DNS层级体系当中,本地域名服务器在你访问时会先查询映射缓存,当本地域名服务器不存在缓存时,才会作为代理将查询转发给DNS域名解析服务器,而DNS域名解析服务器的查询流程可以是迭代查询和递归查询,其实在真正使用的时候流程还会涉及到本地hosts,浏览器缓存等等缓存。

(上图,迭代查询)


(上图,递归查询)

了解二进制权限,二进制权限的应用(PHP演示)

一, 二进制的逻辑运算

1. “&” 与运算 相同位的值都为1结果就为1,有一位为0结果就为0。

举例1:

1&1=1 1&0=0
0&1=0 0&0=0

举例2:

二进制1 110010
二进制2 001010
结果 000010
2. “|” 或运算 相同位的值有一个为1结果就为1,全部为0结果为0。

举例1:

1&1=1 1&0=1
0&1=1 0&0=0

举例2:

二进制1 110010
二进制2 001010
结果 111010
3. “^” 异或运算 相同位的值都相等就为0,有一位不同就为1。

举例1:

0&1=1 0&0=0
1&1=0 1&0=1

举例2:

二进制1 110010
二进制2 001010
结果 111000
4. “~” 非运算(取反运算,这个叫法好像都对) 将二进值位上的值换成相反的值

举例1:

~1=0 ~0=1
5. “<<” 左移 将二进制向左移动N位,然后用0在右侧补全N位。

举例1:

左移2位 结果
110010 << 2 001000
6. “>>” 右移 将二进制向右移动N位,然后在左侧补全N位(正数补0,负数补1)。

举例1:

右移2位 结果
110010 >> 2 001100

二,了解和应用

PHP中“&”和“^”运算的两个值如果都是字符串,则将对组成字符串的字符的ASCII值进行运算,结果将是字符串。
在所有其他情况下,两个操作数都将转换为整数,结果将为整数。

“~” 运算符的操作数是字符串,则将对组成字符串的字符的ASCII值执行操作,结果将是字符串,否则操作数和结果将被视为整数。

继续阅读“了解二进制权限,二进制权限的应用(PHP演示)”

Cookie与Session的关系

Cookie概述

HTTP Cookie(也叫Web Cookie或浏览器Cookie)是服务器发送到用户浏览器并保存在本地的一小块数据,它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上。
通常,它用于告知服务端两个请求是否来自同一浏览器,如保持用户的登录状态。
Cookie使基于无状态的HTTP协议记录稳定的状态信息成为了可能。

Cookie主要用于以下三个方面:

  1. 会话状态管理(如用户登录状态、购物车、游戏分数或其它需要记录的信息)
  2. 个性化设置(如用户自定义设置、主题等)
  3. 浏览器行为跟踪(如跟踪分析用户行为等)

Session概述

Session:在计算机中,尤其是在网络应用中,称为“会话控制”。
Session 对象存储特定用户会话所需的属性及配置信息。
当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的信息将不会丢失,而是在整个用户会话中一直存在下去。
当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象。
当会话过期或被放弃后,服务器将终止该会话。
Session 对象最常见的一个用法就是存储用户的首选项。

Cookie与Session之间的关系

服务器第一次接收到请求时,开辟了一块Session空间(创建了Session对象),同时生成一个Session id,并通过响应头的Set-Cookie:“JSESSIONID=XXXXXXX”命令,向客户端发送要求设置cookie的响应; 客户端收到响应后,在本机客户端设置了一个JSESSIONID=XXXXXXX的cookie信息,该cookie的过期时间为浏览器会话结束;

接下来客户端每次向同一个网站发送请求时,请求头都会带上该cookie信息(包含Session id); 然后,服务器通过读取请求头中的Cookie信息,获取名称为JSESSIONID的值,得到此次请求的Session id;

注意:服务器只会在客户端第一次请求响应的时候,在响应头上添加Set-Cookie:“JSESSIONID=XXXXXXX”信息,接下来在同一个会话的第二第三次响应头里,是不会添加Set- Cookie:“JSESSIONID=XXXXXXX”信息的; 而客户端是会在每次请求头的cookie中带上JSESSIONID信息

Cookie与Session之间的区别

Cookie数据保存在客户端,Session数据保存在服务器端。
Cookie受数据大小限制,而Session在服务端则可以存储更多的信息。

Cookie与Session使用时应当注意


  1. Cookie不是很安全,别人可以分析存放在本地的Cookie并进行Cookie欺骗,如果主要考虑到安全应当使用Session
  2. Session会在一定时间内保存在服务器上,当访问增多,会比较占用你服务器的性能。
  3. Session仅在支持 Cookie 的客户端中保留。
  4. 注意Cookie大小,受不同浏览器客户端限制。

HTTP概述 —— 关于HTTP 协议的一些事

什么是HTTP???

  1. 超文本传输协议(HTTP)是用于传输诸如HTML的超媒体文档的应用层协议。它被设计用于Web浏览器和Web服务器之间的通信,但它也可以用于其他目的。
  2. HTTP遵循经典的客户端-服务端模型,客户端打开一个连接以发出请求,然后等待它收到服务器端响应。
  3. HTTP是无状态协议,意味着服务器不会在两个请求之间保留任何数据(状态)。虽然通常基于TCP / IP层,但可以在任何可靠的传输层上使用; 也就是说,一个不会静默丢失消息的协议,如UDP。

继续阅读“HTTP概述 —— 关于HTTP 协议的一些事”

RUDP的实现原理是什么?有何用处?TCP和UDP的优缺点有什么?

先来考虑,TCP和UDP的优缺点是什么?

网络上一搜一大把,总结起来就是:

一,TCP的优点
可靠,稳定
二,UPD的优点
快快快
对比而言对比而言
1.TCP基于连接UDP无连接;
2.TCP对系统资源需求较多,UDP相反;
3.TCP程序结构较为复杂,UDP则相对简单;
4.TCP采用流,UDP采用数据报 ;
5.TCP保证数据按序、正确、完整、不重复,UDP仅是尽最大努力交付,可能丢包;
6.TCP信道是全双工的可靠信道,UDP是不可靠信道;
7.TCP是点到点的,UDP是一对多、多对多、一对一、多对一可交互。

这次考虑RUDP的实现原理是什么?

一, RUDP的实现原理?

RUDP(RELIABLE UDP)是基于UDP之上而实现的可靠性UDP传输,在应用层中实现安全控制机制,主要采用请求回应机制,实现了UDP的可靠传输,即接收方检查是否丢失数据,然后向发送方请求丢失的数据,因此发送方必须保留已经发送过的数据一定时间来回应数据丢失。为了减小发送方数据保留量,在每收到n个包时通知发送方n之前的包已经收到可以清除了,另外超过设定的包超时时间后也会清除。

打个比方,我是发送方,现在有1、2、3、4、5发送给接收端,然后接收方接收到了1、2、4、5,告诉我1OK、2OK、3不OK,3在传输中丢掉了,然后接收方就喊我,喂,你他娘的在3没了,我听到了接收端的呼喊,然后我就又发送了一次3,然后接收端又捋了一遍一看12345都全了,数据接收完毕。
在这个过程中接收端每响应一个OK我就会删除掉对应的数据,或者发送后接收端超过保留时间我也会删除掉超时的数据。

RUDP有何用处?

在要求实时传输性中RUDP更像是一个性价比以及平衡性高的产品。
TCP属于是通过增大延迟和传输成本来保证质量的通信方式,UDP是通过牺牲质量来保证时延和成本的通信方式,所以在一些特定场景下RUDP更容易找到这样的平衡点,兼顾全局

面向连接的传输控制协议—TCP(未完待续)

概述

  1. TCP是一个点对点的通讯机制,只有一个发送端和一个接收端(点对点)。
  2. TCP是一个可靠的、按顺序的字节流。
  3. TCP在发送方和接收方缓存。
  4. TCP是同一连接能够双向传输数据流(全双工)。
  5. TCP通信双方必须在发送数据之前建立连接,连接的状态在两端中维护,沿途节点中不维护状态(面向连接)。
  6. TCP拥塞控制和流量控制机制,设置窗口尺寸(流水线机制)。
    7.TCP在传输层中的段结构是由32bits组成。

继续阅读“面向连接的传输控制协议—TCP(未完待续)”