基础概念 / 计算机网络

计算机网络的核心就是网络协议(如TCP / IP协议)

网络协议:规定着网络中数据交换的规则。用户间的数据终端是不同的,所以必须建立在一定的标准上计算机才能在网络中交互。

————建立网络通信规则、实现用户间的交互————

img1
img1

  1. 应用层:为操作系统或网络应用程序提供访问网络的服务接口—提供进程访问网络的接口
  2. 表示层:对传送的数据进行处理,包括转换、压缩、加密等,以保证被其他应用层理解(数据表示)
  3. 会话`:在传输层基础上,帮助进程建立、管理对话——主机间通信
  4. 传输层:通过流量控制、差错控制等,健壮IP协议不可靠的传输,同时实现进程间端口到端口的传输
  5. 网络层:在数据链路层基础上,提供主机端到端的传输服务—路径选择、优化传输IP数据报
  6. 数据链路层:数据组合成块,提供网络层到网络层的数据帧传输
  7. 物理层:提供硬件支持,解决通讯设备间的物理差异,将数据转换为比特流传输

网络层的划分

为了让不同型号的计算机可以互相通信,提出了开放系统互连 / 参考模型。即OSI / RM模型。Open system interconnect / Reference Model。

主要有七层,从下到上:物理层、数据链路层、网络层、传输层、会话表示应用层。

开放系统互连,OSI各层的划分


物理层:

提供硬件支持,消除设备差异,转化为比特流传输

定义:硬件层,给上层接口提供物理传输媒介,解决不同通讯设备间的信号差异,将数据转换为比特流传输。

设备:集线器(扩大信号、增加接口)、中继器(扩大信号)


数据链路层:

提供网络层到网络层的数据帧传输(帧转发)

定义:为网络层提供可靠的数据传输,将网络层数据可靠传输到目标网络层。

方法:如何数据组合成块,数据链路层我们将数据称为frame帧,在两个网络实体间提供数据链路的建立、维持和释放的管理。

总结:物理寻址,数据成帧,帧转发

设备:网桥(连接LAN之间)、交换机(连接LAN之间)——帧转发


网络层:

数据链路层的基础上,实现主机间端到端的数据传输(路径选择优化传输

定义:网络层的目的是实现两个系统之间的端到端的传输,具体功能包括寻址和路由选择、连接的建立、保持和终止等。它提供的服务使传输层不需要了解网络中的数据传输和交换技术。

主要协议:IP协议、地址解析协议ARP、逆RARP,英特网报文协议ICMP、英特网管组协议IGMP

方法:对子网数据包进行路由选择、选择最优达到主机的路径。同时依靠分组交换等技术优化传输。

设备:路由器 传输数据单位:数据包packet——IP数据报

1.什么是IP协议、IP地址、IP数据报

IP协议:即互联网协议,是TCP / IP协议中的网络层。其目是是为了提高互联网的可拓展性。
1.实现互联网的大规模互联互通 2.分割网络应用和网络技术,便于两者的独立发展。根据端到端的设计原则,IP为主机提供一种无连接、不可靠、尽力而为的数据传输。

IP地址:IP协议提供的一种地址格式,为互联网上的每一台主机分配一个逻辑地址,屏蔽物理地址的差异。32/128

IP数据报:IP协议传输的数据单位,无确认数据包是否完整、按顺序发送等,是不可靠的。包含了发送地址、目标地址。
IP地址——电话号码 路由器——电信局的交换机


2.IP地址的表示

  • IP地址 = 网络地址 + 主机地址。

  • 网络号:用于识别主机所在网络区域

  • 主机号:识别该网络中的哪一台主机
    img1

    概念 特征 网络范围 默认子网掩码
    A类地址 0XXX XXXX 0——127.x.x.x 255.0.0.0/8
    B类地址 0XXX XXXX 128——191.x.x.x 255.255.0.0/16
    C类地址 0XXX XXXX 192——223.x.x.x 255.255.255.0/24
    D类地址 1110 XXXX 192——223.x.x.x 用于组播
    E类地址 1111 0XXX 192——223.x.x.x 用于科研保留
  • 127.0.0.1是回环地址,用预测是本地通信。

  • 子网掩码:明确区分出IP地址的两部分——网络地址和主机地址(1网络地址、0主机地址)

  • 广播地址:专门向网络中所有工作站发送信息的地址


3.IP地址的计算

  1. 区分网络号和主机号——根据子网掩码
  2. 网络地址 = IP地址 & 子网掩码(全1)
  3. 广播地址 = 网络地址的基础上,主机位地址全变1
  4. 子网主机个数 = 2^(主机地址位数) - 2(网络地址+广播地址)
  • 第一个主机IP = 网络地址 + 1
  • 最后一个主机IP = 广播地址 - 1

例题1:202.112.14.137/255.255.255.224,计算对应网络地址、广播地址、主机数

202.112.14.137 ——202_112_14_1000 1001

255.255.255.224——255_255_255_1110 0000

网络地址:IP地址的前27位——202.112.14.1000 0000——202.112.14.128

广播地址:202.112.14.1001 1111

主机数:2的5次 - 2 = 30台

例题2:206.110.4 .0/18被划分成16个子网,每个子网掩码多少台主机?

子网划分的目的:子网的划分通过不同的子网掩码——解决IPv4地址的紧缺

解题:206.110.4 .0/18——主机数量 2^(32-18) / 16 = 2^(10)


3.网络层的地址解析协议

ARP地址解析协议——IP地址求MAC地址:主机对网络上的所有主机进行广播,发送包含IP地址的地址解析请求,并保存获得反馈mac地址,从而主机间便可以通信。

RARP逆地址解析协议——向服务器问询自己MAC地址对应的IP地址


4.网络层的路由选择协议

路由选择协议定义:两台非直连的计算机经过几个网络通信时,需要路由器来找寻一条最优化的路线。

RIP路由信息协议:用于网络设备之间交换路由信息,是向量-距离路由选择算法在局域网上的:自接实现。

OSPF开放式最短路经优先协议:OSPF采用的是一种链路-状态算法,并因此克服了RIP协议和其他采用距离矢量算法协议的方法。

路由协议包括:

  • IGP内部网关协议——RIP协议_UDP,OSPF协议_IP报文

  • EGP外部网关协议——BGP协议_TCP


    5.ICMP和IGMP—IP协的子协议

ICMP—Internet控制报文协议:它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。

IGMP—Internet 组管理协议称为IGMP协议:是因特网协议家族中的一个组播协议。该协议运行在主机和组播路由器之间。IGMP协议共有三个版本,即IGMPv1、v2 和v3。


传输层:

网络层实现了端口到端口的数据传输,而传输层则更近一步提供进程间端口到端口的连接通信。

流量控制(滑动窗口,拥塞窗口)、差错控制(确认重传)、健壮IP不可靠传输

  • 定义:

    • A_单个主机运行多个进程,所以传输层具有复用和分用功能。

    • B_传输层具有流量控制、差错控制来保证数据传输的可靠性。

    • C_解决和健壮网络层提供的不可靠服务(重复、丢包)

  • 主要协议:TCP协议(传输控制协议),UDP协议(用户数据报协议)

  • 设备:网关,又称协议转换器——用于高层协议不同的网络互联。(数据重新打包,满足不同网络的互联)

实质上是一个网络通向其他网络的IP地址。
比如有网络A和网络B,网络A的IP地址范围为“192.168.1.1_192. 168.1.254”,子网掩码为255.255.255.0;网络B的IP地址范围为“192.168.2.1_192.168.2.254”,子网掩码为255.255.255.0。而要实现这两个网络之间的通信,则必须通过网关。


1.说一下啊TCP / IP协议

TCP / IP协议是互联网最基本的协议,由网络层的IP协议和传输层的TCP协议组成。

简单来说:他们分工明确,网络层的IP协议负责数据端到端的传输,将数据从源地址传递到目标地址。

在此基础上,传输层的TCP协议通过流量控制、差错控制等,健壮IP协议不可靠的传输,同时进一步的实现进程间端口到端口的传输。

TCP协议:

  1. 面向端口到端口的通信协议,通过三次握手建立连接和四次挥手结束连接。

  2. 是一种可靠的数据流服务,采用“确认重传”技术来实现传输的可靠性。TCP还采用一种称为“滑动窗口”的方式进行流量控制,所谓窗口实际表示接收能力,用以限制发送方的发送速度。

    ————稳定可靠,确认重传,流量控制,快速重传。


    2.TCP报文

    img1

3.TCP建立和断开连接—握手握的是双方数据原点的序列号seq

img1

  • ACK:”acknowledge”确认号;SYN:”synchronize”请求同步标志;

  • FIN:”Finally”结束标志;seq:序列号——————都带有序列号

建立连接:三次握手

A SYN seq=x -》 B

A 《- ACK seq=x+1 SYN seq=y B

A ACK seq=y+1 -》 B

  • 总结

  • 客户端向服务发送请求连接报文,并*同步起始序列号 *

  • 服务器收到后,回复确认报文,并*同步起始序列号 *

  • 客户端收到后也发送确认报文。连接建立

**为什么要三次握手?——面向字节的连接,依靠序列号 **

所以建立可靠的连接,需要确认客户端和服务器的起始序列号。而二次握手只确认了客户端的起始序列号。所以不能保证可靠的连接。

例子:——客户端请求延迟、服务器回复丢失导致开始无限发送

  • 原理:客户端发送延迟

  • 1.浪费资源——客户端发送的请求连接包由于传输问题阻塞,延时传递到了,此时服务器还是会和其建立连接。但是客户端已经放弃了这个连接,而服务器则会为这个连接浪费资源。

  • 原理:服务器确认报文丢失

  • 2.服务器资源发生死锁——客户端请求连接,服务器回应建立连接。但是服务器的应答传送失败。而服务器认为传递成功,开始传递数据,客户端则不会接收。服务器无线重复发送,资源形成死锁。


** 断开连接:四次挥手 **
img1

  • A FIN seq=x+2 -》 B

  • A 《- ACK seq=x+3 B

  • A 《- FIN seq=y+1 B

  • A ACK seq=y+2 -》 B

  • 四次挥手:————主动关闭方

    • 1.客户端向服务器发送FIN报文,请求中断——表示我的数据传输完成了

    • 2.服务器向客户端发送确认报文——表示当我的数据传输完了再中断

    • 客户端进入FIN_WAIT——终止等待状态

    • 3.服务器向客户端发送FIN报文——表示我的数据也传输完了

    • 4.客户端向服务器发送确认报文,——表示可以断开连接

    • 客户端进入TIME_WAIT状态,等待2MSL,确认服务器是否收到了确认报文。如果没收到,客户端会再次发送FIN指令。所以服务器先关闭,后客户端再关闭。

重要:如果没有TIME_WAIT状态,最后一次ACK丢失,客户端直接CLOSE,服务器会一直发送FIN

MSL——报文最大生存周期

** 为什么要四次挥手? **

因为服务器和客户端双方都可以发送和接收数据,是全双工模式,接收到FIN时意味一方完成了数据的收发,但是另一方未知。所以需要保证双方的发送和接收数据都完成了才能断开连接。

使用TCP的协议:FTP文本传输协议,Telent远程登陆协议,SMTP简单邮件传输协议,POP3邮箱协议,HTTP协议等。


4.UDP协议——用户数据协议 / TCP协议—传输控制协议

  • UDP协议是用户数据协议,是面向无连接的通讯协议。由于通讯不需要连接,所以可以实现广播发送。
  • UDP不需要接收方确认,属于不可靠的连接,可能产生丢包等现象。UDP信息包8个字节,TCP20字节。
  • UDP和TCP同属一层,但是它不管数据包的顺序,错误或重发。其主要面向的是那些以查询—应答的服务,如NFS(共享文件)、视频直播等。

两者区别:

  1. TCP面向连接的,可靠的字节流服务
  2. UDP面向无连接的,不可靠的数据报服务——只知道:接收端IP和端口,所以每次只能读取一个报文数据

5.传输层——NAT协议——网络地址转换协议

NAT网络协议属于接入广域网的一种技术,将私有地址转换为IP地址,广泛运用于各种互联网接入上。

网关利用网络地址转换协议,有效地解决了IP地址不够地问题,同时也可以避免计算机收到网络的攻击。——(对外隐藏内部IP地址,减少IP减少IP地址产生的费用)

  • A类 10.0.0.0/8, 即10.0.0.0–10.255.255.255
  • B类 172.16.0.0/12, 即172.16.0.0–172.31.255.255
  • C类 192.168.0.0/ 16, 即192.168.0.0–192.168.255.255

会话层(建立管理对话)、表示层(为应用层翻译):

会话层:在传输层基础上,帮助进程建立并管理对话。

表示层对传送的数据进行操作,包括转换、加密、压缩等,以保证被其他应用层理解。

应用层:

定义:为网络进程提供访问网络的接口。同时规定应用在通讯时,所需遵守的协议

数据传输单位:报文

主要协议:FTP文件传送协议,Telnet远程登陆协议,DNS域名解析协议,SMTP邮件传送协议,POP3邮局协议,HTTP超文本传输协议。


DNS域名解析协议—应用层

  • DNS域名解析协议:简单来说就是将URL域名转换为IP地址。

  • 域名是由圆点分开的一串字母单词组成的,每个域名都对应一个唯一的IP地址。
    DNS服务器之间传输时使用TCP,而客户端与DNS服务器之间传输时用的是UDP


DHCP协议—应用层协议,使用UDP协议

  • DHCP动态主机设置协议(Dynamic Host Configuration Protocol)是一个局域网的网络协议,使用UDP协议工作。

  • 主要有两个用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段。


HTTP协议 / 超文本传输协议

  • 是互联网上运用最广泛的一种协议,所有万维网的数据通信必须遵守它。

  • 是一个客户端与服务器请求和应答的标准。

  • 我们通过浏览器等工具发起http请求到指定服务器,然后获取我们所想要浏览的信息。


具体问题

问题:1.HTTP协议包括哪些请求?

主要包括四种和服务器交互的方法:GET、POST、PUT、DELETE

GET、POST区别:

理解方式:货车和运输公司的关系,货物放在车顶,车厢内,允许不允许超载,卸货

  • HTTP协议是基于TCP/IP协议的,GET和POST本质上都是TCP连接。但是其在请求方式上存在差异。

  • GET请求的数据存放在请求URL中,而POST存放在请求包体中

  • 一般浏览器对请求URL长度有限制,所以导致GET请求获取的数据一般比POST少

  • 同时由于请求数据暴露,所以使得GET的安全性也较低。

  • 同时GET请求产生一个TCP数据报,而POST产生两个,对于验证数据的完整性更好。

GET——请求header和请求data一起发送——返回200

POST——请求header先发送——返回100——再发送请求data——返回200


2.HTTP的请求和响应

HTTP请求的格式包含:

(method—请求方法) (request—URL请求URL) (version—HTTP报文版本)

(headers—请求头部)

(entity-body—请求数据)

HTTP响应的格式包含:

(version) (status—请求过程状态) (reason-phrase)

(headers)

(entity-body)

常用响应码:

100——状态码。返回消息

200—(成功)服务器成功处理请求

301/302 Moved Permanently—(域名不存在)请求的域名已被移走,这个域名不存在了

304 Not Modified(未修改) 表示客户所请求的缓存资源是最新的,无需修改

404 Not Found 未找到资源

501 Internal Server Error(服务器遇到错误)服务器发生故障,无法对请求提供服务


3.数字证书相关问题——网页加密

数字证书:由证书中心CA的颁布,是网站对应的权威公共钥匙,用于验证网站发送的数字签名。

客户端 ————请求———> 服务器

客户端 <—————数字证书 + 网页——— 服务器

客户端 <—————网页 + 数字签名————— 服务器

客户端根据数字证书获得的公钥,然后利用公钥验证数字签名,确认是从对应的服务器发送来的数据。

总结:

  • 私钥——用于生成数字签名 + 解密
  • 公钥——*用于验证数字签名 * + 解密

问题1.浏览器输入域名访问的整个过程

首先客户端获取URL - > DNS解析 - >

TCP请求连接 - >客户端发送HTTP请求 - >服务端响应HTTP请求 - >

浏览器获得html代码 - >浏览器解析html代码,并请求html代码中的资源 - >

浏览器解析渲染页面 - >

TCP断开连接
img1


问题2.TCP怎么保证可靠,以及它建立和断开的过程

  • 1.三次握手和四次挥手保证连接和断开的正确性
  • 2.校验和:将发送前的数据和发送后数据进行计算,比较结果
  • 3.确认重传:接收方会告诉发送方接收了到了哪些数据,哪些数据是不完整的需要重新传递,保证数据的完整性。
  • 4.流量控制:会根据ACK报头的窗口大小进行速度的调整
  • 5.拥塞窗口:采用慢启动方法,先少量数据探路,再决定多大传输速度。定义了拥塞窗口概念:刚开始为1,逐渐增大,同时会和反馈获得的窗口大小进行比较,取小值

三次握手建立连接:

  • 客户端向服务器发送请求连接报文 + 序列号
  • 服务器收到后向客户端发送确认报文,并同步客户端起始序列号
  • 客户端向服务器确认其发送序列号,并同步服务器起始序列号

四次挥手断开连接:

由于TCP连接是双工模式,即客户端和服务器都可以收发数据,所以需要双方同时满足收发完成,才可以断开连接。

  1. 首先客户端向服务器发送请求终止报文,进入FIN _WAIT状态——表示我的数据接受完成可以断开
  2. 服务器根据回复确认报文——表示当我的数据接收完成后,再次确认
  3. 服务器数据接收完成后,向客户端发送终止报文——表示我的数据接收完成,可以关闭
  4. 客户端接收到服务器的FIN报文后,进入TIME_WAIT状态,等待两个周期的报文最长生存时间,如果此阶段未收到服务器信息,说明没有问题,断开连接。

问题3.说一说TCP模型,状态转移

五层从下到上:物理层,数据链路层,网络层,传输层,应用层

3次握手建立连接,传输数据,4次挥手断开连接。


问题3.1请回答一下HTTP和HTTPS的区别,以及HTTPS有什么缺点?

  1. HTTP协议是以明文的方式在网络中传输的,而HTTPS传输的数据是经过TLS加密的,HTTPS具有更高的安全性
  2. HTTPS在三次握手之后,需要进行SSL的握手,协商后加密使用的对称加密密钥
  3. HTTPS需要服务端申请证书,浏览器安装相应证书。
  4. HTTP协议端口是80,HTTPS是443
  • HTTPS优点:A数据加密安全性更高,B协议可以认证用户和服务器,确保数据发送到正确的用户和服务器。
  • HTTPS缺点:
    • A:握手阶段增加SSL握手,延时增加
    • B:部署成本较高:使用证书来验证安全,需要购买CA证书。
    • C:采用HTTPS协议需要进行加密解密计算,对服务器要求也更高

问题3.2请你说一说HTTP返回码

  • 100——状态码。返回消息
  • 200—(成功)服务器成功处理请求
  • 301/302 Moved Permanently—(域名不存在)请求的域名已被移走,这个域名不存在了
  • 304 Not Modified(未修改) 表示客户所请求的缓存资源是最新的,无需修改
  • 404 Not Found 未找到资源
  • 501 Internal Server Error(服务器遇到错误)服务器发生故障,无法对请求提供服务

问题4.请你说一说IP地址作用,以及MAC地址作用

MAC地址是一个硬件地址,又称网卡地址,来定义网络设备的位置,由生产制造商写在硬件内部,位于数据链路层。

IP地址(用逻辑地址屏蔽物理地址)是IP协议提供的一种地址格式,它给每个网络和每台主机分配一个逻辑地址,用于屏蔽物理地址的差异。


问题5.请回答OSI七层模型和TCP/IP四层模型,每层列举2个协议

OSI七层模型:

  • 应用层:为应用程序提网络服务接口。主要协议HTTP,HTTPS,FTP,DNS
  • 展示层:对数据进行翻译;JPEG ASII
  • 会话层:建立,管理,终止会话;NFS ,RPC
  • 传输层:提供端口到端口的可靠报文传递:UDP,TCP
  • 网络层:提供端到端的传输。传递路径选择和优化传输:IP协议,ARP
  • 数据链路层:提供点到点的数据帧传递:MAC,VLAN
  • 物理层:提供硬件支持,消除设备间的物理差异,传输比特流,主要协议RJ45

TCP/IP模型:

  • 应用层HTTP DNS
  • 传输层UDP TCP
  • 网络层IP ARP
  • 数据链路层:MAC,VLAN

问题6.输入一个网址,计算机都用到了哪些层

TCP/IP协议中的五个层都用到了。

首先客户端获取URL - > DNS解析 - > (应用层的https超文本传输协议,DNS域名解析协议)

TCP请求连接 - >客户端发送HTTP请求 - >服务端响应HTTP请求 - >

浏览器获得html代码 - >浏览器解析html代码,并请求html代码中的资源 - >浏览器解析渲染页面 - >

TCP断开连接

(传输层的TCP协议 / 网络层的IP协议、ARP地址解析协议)
(底层数据的传输用到了数据链路层和物理层,提供硬件支持,同时传递数据)


问题7.说一下TCP中的拥塞控制?说明时候开始慢慢增长

  • 网络层:路径选择、流量控制

  • 传输层:确认重传、滑动窗口、拥塞控制

  • 拥塞:是防止服务器和客户端之间过多的数据传输,使得网络中的路由器和链路发生过载而瘫痪。

    1. 首先慢开始 ,出现拥塞情况,慢启动极限变为一半,拥塞窗口重新从0开始增加)

    2. 快速重传和快速恢复


问题8.说一下数据链路层的交互过程)—— 通过MAC地址交互

网络层到数据链路层采用MAC地址作为通信地址。

数据包从网络层准备发往数据链路层时,首先会去地址缓存表中查找相应的ip_mac对应关系表,如果查到了就将ip的mac地址封装到链路层数据包的包头。

如果没有,就采用广播的形式,查找相应ip的mac地址,相应的主机收到广播后会回复自己IP对应得mac地址。


问题9.说一下数据传递到IP层如何知道报文传递给哪个应用程序,它怎么区分UDP还是TCP报文

根据端口区分给哪个应用。

根据报文头中的协议标识字段,17 / UDP,6 / TCP


问题10.SOCKET具体的网络层是如何操作的

img1

首先服务器需要打开

服务端:

  1. 创建socket套接字
  2. bind将本机地址绑定套接字
  3. listen设置此套接字可最大连接的客户端
  4. accept开始监听等待客户端的连接

客户端:

  1. socket创建套接字
  2. connect发送请求连接的请求

建立连接后Recv / Send


问题11.服务端监听的端口,但是还没有客户端连接进来,此时处于什么状态

需要看用到了什么编程模型,如果是socket中的recv,一般是阻塞状态,而epoll,select等这样的io复用情况则是处于运行状态。


问题12.TCP和UDP个自适应的场景

  • TCP是面向连接的,可靠的字节流服务。
  • UDP是面向无连接的,不可靠的数据包服务。
  • UDP可以一对多,TCP为端口对端口。
  • TCP的开销为20个字节,UDP8个字节。

综上UDP快,但是不可靠。TCP慢,但是可靠

  • TCP用于——要求准确的文件传输
  • UDP用于——视频传输、实时通信、广播通信等。

问题13.说一下HTTP协议

  • HTTP协议是超文本传输协议,是从万维网服务器到本地浏览器的超文本传输协议。

  • 基于TCP / IP通信协议来传输数据的。属于应用层面向对象的协议,适用于分布式超媒体信息系统。HTTP协议工作于客户端和服务端架构上。

  • 浏览器作为HTTP的客户端通过URL向WEB服务器发送请求,WEB服务器根据接收到的请求后,向客户端发送响应信息及传输数据。


问题14.说一下HTTP协议中GET和POST的区别

http主要包括四种和服务器交互的方法:GET、POST、PUT、DELETE

GET、POST区别:

理解方式:货车和运输公司的关系,货物放在车顶,车厢内,允许不允许超载,卸货

  • HTTP协议是基于TCP/IP协议的,GET和POST本质上都是TCP连接。但是其在请求方式上存在差异。

  • GET请求的数据存放在请求URL中,而POST存放在请求包体中

  • 一般浏览器对请求URL长度有限制,所以导致GET请求获取的数据一般比POST少

  • 同时由于请求数据暴露,所以使得GET的安全性也较低。

  • 同时GET请求产生一个TCP数据报,而POST产生两个,对于验证数据的完整性更好。

GET——请求header和请求data一起发送——返回200

POST——请求header先发送——返回100——再发送请求data——返回200


文章作者: Inter
文章链接: https://zuizichuan.cn/2020/07/14/714/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Zichuan365' Blog