Android的网络请求(一)

tech2026-02-13  1

网络请求学习记录(一)

OSI模型与TCP/IP模型

1.OSI(Open System Interconnection)开放式系统互联,是计算机网络通信的基本框架;它将网络通信的工作分为7层,它更像是一个理论上的网络分层划分,对于我们编写代码来说并没有太多实际意义;它主要是提供了一系列“协议”,让网络通信更加标准;通过这些协议可以促进不同设备间的兼容性;促进标准化工作;结构上也更容易分割,这样做的好处就是利于实现和维护;就像平时我们使用的电源插板一样,这个行业里有一个标准,只要你的电视机等电器设备在做连接电源的插口时符合这些标准,那么你就不用担心买回来的电器无法适配家中的插座.

1.应用层:它是整个层级划分中最高,也是直接面向用户的一层,具体的体现比如:浏览器,各种客户端程序等; ​ 2.表示层:主要负责数据处理,比如压缩/解压缩,加密/解密等; ​ 3.会话层:建立,管理,验证目标与目标之间的通信会话; ​ 4.传输层:建立目标机器与目标机器之间端口的连接并实现两个目标之间的数据传递方式; ​ 5.网络层:负责网络中目标机器之间的报文传输,这一层传输时依靠的是IP地址;比如路由器;解决跨网络的主机通信问题。 ​ 6.数据链路层:负责网络之间相邻节点的可靠传输,传输依靠的是通过Mac地址;比如交换机;解决相邻主机通信问题。 ​ 7.物理层:原始信号传输,数据传递介质,比如网线之类的;物理层的任务就是透明地传输比特流。

2.TCP/IP模型则是将OSI参考模型以TCP/IP协议的方式重新划分,因为目前市场上几乎所有的网络通信都是基于TCP/IP协议;这个模型是对OSI模型的一个简化;主要分为5层(网络上也有针对TCP/IP模型分为4层的).

TCP/IP是将OSI中的应用层,表示层,会话层统称为应用层余下的4层不变

Socket通信

Socket是什么? 个人理解->Socket是对TCP/IP协议的封装,用来让应用层与网络层更方便的做通讯的连接层,Socket本身并不是协议,而是一组接口.

TCP的三次握手与四次挥手

三次握手 ​ 第一次:客户端发送请求给服务器,请求包括syn=1,以及随机产生的seq数值; ​ 第二次:服务器收到客户端发来的信息后,先确认请求,然后向客户端发送ack number(ack等于seq+1),syn=1,ack=1; ​ 第三次:客户端检查ack是否正确,即第一次发过去的seq是不是已经加1了,以及ack是否为1,如果正确;客户端会再发送ack number(seq+1),ack=1,服务器确认seq值以及ack=1后则连接成功;

四次挥手 第一次:客户端发起中断连接请求,发送FIN报文; 第二次:服务器接收到客户端的FIN后,回馈一个ACK给客户端,告诉客户端,你的请求我已经收到, 但请等待一下,我可能还有数据要发给你;客户端进入FIN_WAIT状态(此时还没有关闭,只是客户端想断开连接); ​第三次:服务器发送FIN给客户端,告诉客户端我已经发送完数据了,现在你可以关闭连接; 第四次:客户端接收到服务器的FIN,再发送ACK给服务器,服务器收到ACK后,则断开连接;

最新回复(0)