Android 网络层学习
来源:互联网 发布:电信网络宽带 编辑:程序博客网 时间:2024/06/05 17:57
Android 网络层学习
参考:https://mp.weixin.qq.com/s?__biz=MzIwMzYwMTk1NA==&mid=2247486825&idx=1&sn=db596ed4b69bd9220f6a8ad79ef308db
TCP/IP协议:
TCP/IP协议族按照层次由上到下,层层包装,而其协议通信的过程其实就对应着数据入栈与出栈的过程,也就是不断地根据协议打包和拆包的过程
以HTTP协议为例的封装和解包:
TCP/IP(Transfer ControlnProtocol/Internet Protocol)传输控制和网络协议。
IP首部:
这里主要处理的是ip相关的协议。
TCP首部:
主要控制的是传输的地址和传输控制
ping
ICMP协议:IP协议并不是一个可靠的协议,当传送IP数据包发生错误。比如主机不可达,路由不可达等等,ICMP协议将会把错误信息封包,然后传送回给主机。给主机一个处理错误的机会,这也就是为什么说建立在IP层以上的协议是可能做到安全的原因。
Ping利用ICMP协议包来侦测另一个主机是否可达。
TCP VS UDP
TCP:对于一些要求可靠的应用,比如HTTP、HTTPS、FTP等传输文件的协议。
UDP:对网络通讯质量要求不高的时候,要求网络通讯速度能尽量的快,这时就可以使用UDP。
HTTP
Http实际上是基于TCP的应用层协议,而TCP协议又是基于Socket从而实现的。
HTTP报文格式:
请求方式及报文
HTTP提供7种访问方式:GET、POST、DELETE、PUT、HEAD、TRACE、OPTIONS。
主要学习GET、POST、PUT、DELETE;
GET、DELETE的请求报文格式:
POST、PUT的请求报文格式:
响应报文:
网络框架的使用
现在,网络框架很多。但是在原始的里面:
Apatch提供了HttpCLient;这个在Android6.0库已经被移除
Java提供了HttpUrlConnection;
所以,现在我们原生的只有HttpUrlConnection可以用了。
注意:框架只是构建一个基本环境,并且附带一些常用的类。
安卓网络层学习总结
对于安卓来说我们接触到的用于网络传输的对象就是socket。HttpUrlConnection这些网络库的底层也也是基于socket进行架构的。
HTTP协议的请求,是将数据按照HTTP协议的格式进行封装。针对TCP和UDP,socket有不同的对象进行处理。之后再经过ip协议的报文封装就可以进行传输了
- Android 网络层学习
- redis网络层学习
- 计算机网络学习-网络层
- 网络层学习笔记
- 网络层 学习笔记
- Android网络层封装
- 学习数据链路层和网络层
- Android网络层与数据层设计
- 计算机网络学习笔记----网络层
- 网络协议层学习笔记
- android网络层实现实例
- Android 网络层的封装
- 心得:android开发网络层
- 网络学习笔记(网络层一)
- 网络学习笔记(网络层二)
- 计算机网络学习(7)网络层
- 计算机网络基础学习笔记--网络层
- 网络学习笔记(数据链路层)
- css3 新增属性
- css知识
- dedecms织梦自定义表单发送到邮箱-用163邮箱发送邮件
- Excel 单元格中插入图片
- 单链表排序(冒泡排序)
- Android 网络层学习
- http请求详细讲解
- 廖雪峰python中filter过滤非回数
- 打印spring boot的controller里定义的路由
- kotlin学习笔记——委托属性
- Spring思维导图,让Spring不再难懂(aop篇)
- zTree树形插件使用 异步加载方法,Struts2框架
- SpringSecurity 学习记录(一)- SpringSecurity 主要的实现类
- 合并两个有序链表,合并后依然有序