本文主要是介绍说一下TCPIP四层结构。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.说一下TCP/IP四层结构。
- 链路层(数据链路层/网络接口层):包括操作系统中的设备驱动程序、计算机中对应的网络接口卡
- 网络层(互联网层):处理分组在网络中的活动,比如分组的选路。
- 运输层:主要为两台主机上的应用提供端到端的通信。
- 应用层:负责处理特定的应用程序细
http工作流程?http1.0,1.1,2.0具体有哪些区别?
工作流程
1. 地址解析:把url地址解析成解出协议名、主机名、端口、对象路径等部分
2. 封装http请求数据包
3. 封装成tcp包,建立tcp连接(三次握手)
4. 客户端发送请求
5. 服务器响应
6. 服务器关闭tcp连接
http1.0,1.1,2.0的区别
1. 长连接:HTTP 1.0需要使用keep-alive参数来告知服务器端要建立一个长连接,而HTTP1.1默认支持长连接。
2. 节约带宽:HTTP 1.1支持只发送header信息(不带任何body信息),如果服务器认为客户端有权限请求服务器,则返回100,否则返回401。客户端如果接受到100,才开始把请求body发送到服务器。
这样当服务器返回401的时候,客户端就可以不用发送请求body了,节约了带宽。
3. HOST 域:现在可以web server例如tomat,设置虚拟站点是非常常见的,也即是说,webserver上的多个虚拟站点可以共享同一个ip和端口。
HTTP1.0是没有host域的,HTTP1.1才支持这个参数。
HTTP2.0使用了多路复用的技术,:做到同一个连接并发处理多个请求,而且并发请求的数量比HTTP1.1大了好几个数量级。
数据压缩:HTTP1.1不支持header数据的压缩,HTTP2.0使用HPACK算法对header的数据进行压缩,这样数据体积小了,在网络上传输就会更快。
服务器推送:意思是说,当我们对支持HTTP2.0的web server请求数据的时候,服务器会顺便把一些客户端需要的资源一起推送到客户端,免得客户端再次创建连接发送请求到服务器端获取。这种方式非常合适加载静态资源。
TCP三次握手,四层分手的工作流程?画一下流程图。为什么是四次?
转存失败重新上传取消
画一下https的工作流程?具体如何实现?如何防止被抓包?
1.[Server]生成一对密钥:公钥和私钥,我们称之为“KeyPub”,“KeyPri”
2.[Server]服务端将公钥(KeyPub)发送到客户端
3.[Client]生成一个对称密钥(姑且称之为key2),然后用key2加密数据。
4.[Client]使用公钥(KeyPub)加密key2.这时,key2是安全的,因为只有服务度有私钥KeyPri
5.[Client]发送用key2加密后的信息及用KeyPub加密过的key2到服务端
6.[Server]服务端使用KeyPri解密得到加密过的key2,得到真正的key2
7.[Server]使用key2解密消息正文。这样,数据就被安全的传输到了服务端。
具体实现可以参照rsa加密流程
RSA加密使用方式及签名验证 - CSDN博客
如何防止被抓包:https 所谓的防止被抓包并不是能够杜绝抓包的行为,而是让抓包变得无意义,例如用https进行抓包之后,抓包方无法得知里面的数据内容,也无法进行伪造。
除了https防止抓包外,数据传输更内层也对数据进行了保护,也就是SSL(Secure Socket Layer,安全套接字层)。
这篇关于说一下TCPIP四层结构。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!