OSI(开放系统互联模型)
OSI把网络通信的工作分为7层,分别是物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。
物理层:比特流传输 数据链路层:提供介质访问和链路管理 网络层:IP选址和路由选择 传输层:建立、管理和维护端到端的连接 会话层:建立、管理和维护会话 表示层:数据格式转化、数据加密 应用层:为应用程序提供服务
TCP/IP模型
TCP/IP协议是一个开放的网络协议簇,TCP/IP采用4层层级结构,每一层都呼叫它的下一层所提供的协议来完成自己的需求,这4各层次分别是:网络接口层、网络层、传输层、应用层。 各层主要设备: 物理层:中继器、集线器、双绞线 数据链路层:网桥、以太网交换机、网卡 网络层:路由器、三层交换机 传输层:四层交换机、四层路由器 应用层:各种应用程序
TCP三次握手建立连接
TCP是面向连接的协议,因此每个TCP连接都有三个阶段:连接建立、数据传送和连接释放。连接建立经过三个步骤,通常称为三次握手。
- 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器的确认;SYN:同步序列号
- 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态。
- 客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。
TCP三次握手为什么不能是两次
主要是防止两次握手情况下已经失效的连接请求突然又传送到服务器端而产生错误。例如:客户端A向服务器端B发送TCP连接请求,第一个连接请求报文在网络的某个节点长时间滞留,A超时后认为报文丢失,于是再重传一次连接请求,B收到后建立连接。数据传输完毕后双方断开连接,而这时之前滞留的连接请求到达了服务器端B,而B认为A又发来连接请求。如果两次握手建立连接,A无连接请求,造成B的资源浪费
TCP四次挥手断开连接
- TCP客户端发送一个FIN,用来关闭客户端到服务器的数据传送
- 服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN占用一个序号。
- 服务器关闭客户端的连接,发送一个FIN给客户端
- 客户端发回ACK报文确认,并将确认序列号设置为收到序号加1。
|