计算机网络中的OSI模型
OSI模型是指“国际标准化组织(SO)”提出的使各种计算机在世界范围内互通互联的网络标准框架简称开放系统互联参考模型 (OSI)。
七层模型:应用层、表示层、会话层、传输层、网络层(IP协议、RARP协议、ARP协议、CIDR协议)、数据链路层、物理层
五层模型:应用层、传输层、网络层、数据链路层、物理层
四层模型:应用层、传输层、网络层、网络接口层
七层模型[主要内容]它从低到高分别是: 物理层、数据链路层、网络层、传输层、会话层、表示层和应用层.
应用层: 网络服务与最终用户的一个接口,常见的协议有: HTTP、FTP、SMTP、SNMP、DNS。
表示层:数据的表示、安全、压缩。确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取。
会话层:建立、管理、终止会话.对应主机进程,指本地主机与远程主机正在进行的会话。
传输层: 定义传输数据的协议端口号,以及流控和差错校验,协议有TCP、UDP。
网络层: 进行逻辑地址寻址,实现不同网络之间的路径选择协议有ICMPIGMP IP等。
数据链路层: 在物理层提供比特流服务的基础上,建立相邻结点之间的数据链路。
物理层:建立、维护、断开物理连接。
OSI模型各分层的相关协议
TCP三次握手
所谓三次握手,是指建立一个TCP连接时,需要客户端和服务器总共发送3个包。
握手目的:
二次握手的目的是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号并交换TCP 窗口大小信息。
具体过程:
第一次握手: 客户端发送一个TCP的SYN标志的包指明客户打算连接的服务器的端口。
第二次握手: 服务器发确认包(ACK)应答。即SYN标志位和ACK标志位均为1同时,将确认序号设置为客户的包序号加1即X+1。
第三次握手: 客户端再次发送确认包(ACK,SYN标志位为0.ACK标志位为1),并且把服务器发来ACK的序号字段+1.放在确认序号字段中发送给对方。
TCP为啥要三次握手?
三次握手的根本原因是避免重复连接,比如在网络环境比较复杂的情况,客户端可能会连续发送多次请求。如果只设计成两次挥手的情况,服务端只能一直接收请求,然后返回请求信息,也不知道客户端是否请求成功。这些过期请求的话就会造成网络连接的混乱。所以设计成三次握手的情况,客户端在接收到服务端SEQ+1的返回消息之后,就会知道这个连接是历史连接,所以会发送报文给服务端,告诉服务端。所以TCP设计成三次握手的目的就是为了避免重复连接。
计成四次握手、五次握手、也可以;不过为了节省资源,三次握手就可以符合实际情况,所以就没必要设计成四次握手、五次握手等等情况。
TCP四次挥手
FIN:请求断开连接
第一次挥手:客户端发送挥手请求, 把TCP报文标志位FIN,ACK位置为1,ACK=1,FIN=1,设置序列号seq,
客户端进入等待状态,FIN_WAIT,表示客户端没有数据要发送给服务器
第二次挥手:服务端接收客户端发送的FIN=1,知道客户端要和服务端断开连接,把TCP报文标志位ACK=1位置为1,ACK=1服务端告诉客户端同意关闭请求,客户端进FIN_WAIT_2状态,设置序号seq=y,确认号ack=x+1
第三次挥手:服务端请求关闭,把TCP报文标志位FIN=1,ACK=1,设置seq=y,确认号 ack=x+1
第四次挥手:客户端同意断开连接,把TCP报文标志位ACK=1,ack=y+1,seq=x+1
以上是自己根据学习总结。