网络协议知识
# Android网络协议相关
**废话不多说,先上图**

## 网络的七层协议
网络的协议也成OSI七层协议
从上到下分别是:应用层,表示层,会话层,传输层,网络层,数据链路层,物理层
而TCP/IP协议是基于OSI七层模型的一种实现,简化为了4层:
1、应用层
2、传输层
3、网络层
4、网络接口层
#### 一、应用层
应用层协议定义的是应用之间通信和交互的准侧,例如http协议、ftp协议,都是在应用层的
#### 二、运输层
运输层的任务是负责向两个主机中进程之间的通信提供通用的数据传输服务于,TCP和UDP就是在运输层,TCP(Transmission Control Protocol),UDP(User Datagram Protocol)用户数据报传输协议,记住TCP中的T指传输=运输,所以能记住TCP在运输层
#### 三、网络层
再往下就是网路层了,网络层负责为网络上的不同主机提供通信服务。
网络层的另一个任务就是要选择合适的路由,使源主机运输层所传下来的分组你能够通过网络中的路由器找到目的主机。
网络层也称作为:网际层、ip层
#### 四、数据链路层
再往下是数据链路层
#### 五、物理层
最下面的就是物理层了
## Q&A?
#### TCP建立连接为什么是3次握手不是2次?
是为了防止已失效的连接请求报文段突然又传送到了服务端,造成服务端资源的浪费。
#### TCP和UDP之间的区别?
TCP:建立链接、可靠、有序<br>
UDP:无链接、不可靠、无序
#### get和post的区别?
get请求的参数包含在url中,可以直接看到,一般在查询接口用的比较多,因为直接暴露url,所以在涉及到修改数据的时候不能用这个。
post请求的参数包含在request body中,所以在涉及到一些敏感信息的时候会用post比较多
---
【参考文章】
* [TCP/IP--理解TCP三次握手和四次挥手](https://www.jianshu.com/p/4084a9397138)