软件开发架构:
C/S: client/server
客户端/服务端架构:例如手机app,电脑exe应用程序
B/S: browser/server
浏览器/服务器: 例如网站、小程序、支付宝各种服务
服务端24小时不间断服务
远程通信条件
1、物理连接介质
2、公共的协议、标准:OSI七层协议
open system interconnection
OSI七层协议
应、表、会、传、网、数、物
OSI五层协议:
应用层:
1、HTTP协议
2、FTP协议
传输层
TCP协议:
1、流式协议、可靠协议
为什么可靠?有反馈机制,发送消息后,等待对方回应后,才会将数据从内存中清除。如果对方没有回应,在一段时间内,会隔段时间就继续发送请求,知道对方回应。
2、基于TCP协议,必须建立双向通道
客户端请求服务端,需要建立一条通道,服务端回应客户端表示收到,需要建立一条通道。
3、三次握手
所谓三次握手,指建立一个TCP协议时,需要客户端和服务端共发送三个包。
三次握手的目的:
1、明确双方收、发能力正常
2、连接服务器指定端口,建立TCP连接
3、交换TCP窗口信息
流程:
-
第一次握手(SYN=1, seq=x):
客户端发送一个TCP的SYN标志位置1的包,指明客户端打算连接的服务器的端口,并置发送序号为X
发送完毕,客户端进入 SYN_SEND 状态
-
第二次握手(SYN=1, ACK=1, seq=y, ACKnum=x+1):
服务端发回确认包 (ACK) 应答,即SYN和ACK标志位均为1。并置发送序号为Y,再确认序号为X+1。
发送完毕,服务端进入 SYN_RCVD 状态。
-
第三次握手(ACK=1, ACKnum=y+1):
客户端再次发送确认包(ACK),SYN标志位为0,ACK标志位为1,把服务器发来的发送序号加1并放在确定字段中发送给对方。
发送完毕,客户端进入 ESTABLISHED 状态,服务器接收到这个包时,也进入到ESTABLISHED状态。TCP握手结束。
4、四次挥手
为什么叫四次挥手?TCP的连接的拆除需要发送四个包,因此也称为四次挥手。也称为改进的三次握手。
客户端和服务器均可主动发起挥手动作。
-
第一次挥手(FIN=1, seq=X)
客户端想关闭连接时,发送一个FIN标志位置为1的包。表明已没数据可发,但可接收数据。
发送完毕,进入 FIN_WAIT_1 状态
-
第二次挥手(ACK=1, ACKnum=X+1)
服务器端确认客户端的FIN包,发送一个确认包(ACK)。表明收到请求,但没准备好关闭。
发送完毕,服务器端进入 CLOSE_WAIT 状态,客户端收到确认包后,进入 FIN_WAIT_2 状态,等待服务器端关闭连接。
-
第三次挥手(FIN=1, seq=y)
服务器端准备关闭连接,发送结束请求给客户端。FIN置为1
发送完毕,服务器端进入 LAST_ACK 状态,等待来自客户端的最后一个ACK
-
第四次挥手(ACK=1, ACKnum=y+1)
客户端接收到服务器端的关闭请求,发送一个确认包,并进入 TIME_WAIT 状态,等待可能出现的要求重传的ACK包。
服务器接收到确认包,关闭连接,进入CLOSED状态。
客户端等待某个固定时间,没收到服务器端的ACK包,认为服务器端已正常关闭,于是自己关闭,进入CLOSED状态。
网络层
ip协议
规定进入互联网的计算机必须拥有一个ip地址
特点:点分十进制
地址动态分配
两版本:ip4
ip6: 计算机太多,ip4不够用,出现ip6
最小:0.0.0.0
最大:255.255.255.255
数据链路层
- 规定电信号分组方式
- 规定计算机必须有网卡:世界唯一编号MAC地址
- 计算机通信靠吼!
物理层
基于电信号传输的二进制数据