1、简述osi七层模型和TCP/IP五层模型


OSI七层模型简介
应用层负责和计算机用户进行直接的交互,涉及协议有FTP,HTTP,HTTPS等
表示层负责处理用户的表示信息,涉及数据加密,数据解密,数据的格式等
会话层负责在两个用户之间建立,维护,终止会话
传输层负责处理数据报文的传输问题,根据所使用的的协议还可以提供流控,差错校验的功能
网络层负责处理用户之间跨网络的数据包传递,包括寻址,以及路由选择等
数据链路层负责处理同网段数据帧的传递,包括通过mac地址确保同一网段内数据的准确传递
物理层负责建立物理连接,实际意义上的数据传递线路,存在于现实之中


TCP/IP五层模型简介
应用层osi上三层的整合,包含osi的应用层,表示层和会话层
传输层负责处理数据报文的传输问题,根据所使用的的协议还可以提供流控,差错校验的功能,等同于osi的传输层
网络层负责处理用户之间跨网络的数据包传递,包括寻址,以及路由选择等
数据链路层负责处理同网段数据帧的传递,包括通过mac地址确保同一网段内数据的准确传递,和物理层一起被称为数据接口层
物理层负责建立物理连接,实际意义上的数据传递线路,存在于现实之中,和数据链路层一起被称为数据接口层

2、总结描述TCP三次握手四次挥手

三次握手

第一次握手:首先客户端先发送数据包给服务器端,信息字段包含SYN=1(表示客户端想建立tcp链接),seq=x(x为随机数字,表示该数据包序号),同时客户端进入SYN-SENT状态

第二次握手:服务器端收到客户端的数据包,确认有客户端想建立链接,于是回复客户端数据包,字段包含SYN=1(表示服务器端同意进入链接状态),ACK=1(确认字段)ack=x+1(表示服务器端希望客户端下个数据包的序号是x+1),seq=y(该数据包序号),同时服务端从listen状态进入SYN-RCVD状态

第三次握手:客户端收到服务器短的数据包,回复服务器端数据包:ACK=1(确认字段),seq=x+1(该数据包序号),ack=y+1(表示客户端希望服务器端下个报文的序号是y+1),同时客户端进入established状态,服务器端收到报文后也进入established状态,至此TCP连接建立,双方可以开始通讯了

四次挥手

第一次挥手:客户端发送数据报文给服务器端,报文字段包含FIN=1(表示客户端想断开连接),seq=v (该数据包的序号),同时客户端从established状态进入FIN-WAIT1状态

第二次挥手:服务器端接受报文后,发送回复数据包给客户端,字段包括:ACK=1(确认字段),seq=z(该数据包序号) ,ack=v+1(期望接受的下一个数据包序号),同时服务器端从established状态进入close-wait状态,客户端接受导数据包时进入FIN-WAIT2状态

第三次挥手:服务器端结束close-wait状态时,再次向客户端发送数据包,字段包括:FIN=1(服务器端准备关闭链接),ACK=1(确认字段),seq=w(该数据包的序号),ack=v+1(期望接受的下一个数据包的序号),同时进入LAST-ACK状态

第四次挥手:客户端接受报文后,发送回复报文,字段包括:ACK=1(确认字段),seq=v+1(该数据包的序号),ack=w+1。并进入TIME-WAIT状态,等待2个MSL后进入close状态,服务器端接受报文后直接进入close装,至此TCP链接断开了。


3、描述TCP和UDP区别

TCP  

优点:面向链接协议,可靠性高,具有校验机制,流控机制等

缺点:链接速度慢(相对于UDP而言),占用系统资源比UDP多

UDP

优点:面向无连接协议,传输速度快,占用系统资源较少

缺点:无可靠性,可能出现传输数据丢包,数据包排序错误等问题