bjxiaxueliang
这是一个以技术分享为主要内容的博客,致力于分享Android、OpenGL ES、Vulkan、移动端音视频等领域的技术文章和经验总结,希望能为广大技术爱好者和从业人士提供有价值的信息和思路。同时,我也会不定期地分享我对某些技术行业前景的分析和思考,希望能为朋友们带来一些启示和思路。
展开
-
一文详解IPv4与IPv6:协议解析与报文对比
前段时间的工作大多与通信协议相关,随着协议相关工作的不断深入,相关数据包的分析占据了不少工作时间。在数据报文分析中,发现大学期间IP协议内容已经重新还给了老师,相关知识完全没有了印象,这篇文章算是一篇复习文,对相关IP协议进行重学习。原创 2023-06-12 17:34:10 · 5188 阅读 · 1 评论 -
一文详解 TCP与UDP协议:深度解析与场景应用
本文要介绍的TCP与UDP协议是TCP/IP 协议簇的核心成员,而TCP/IP协议簇是 Internet 的基础,也是一系列网络协议的总称。如:TCP、UDP、IP、FTP、HTTP、ICMP、SMTP等都属于TCP/IP协议族内的协议。这些协议在计算机网络中自上而下被划分为四层:应用层、传输层、网络层和链路层。原创 2020-05-19 21:23:53 · 3478 阅读 · 3 评论 -
一文读懂 HTTP 协议:报文结构及网络数据包举例
HTTP(HyperText Transfer Protocol)超文本传输协议。其`最初的设计目的是为了提供一种发布和接收HTML页面的方法`。HTTP是一个`客户端(用户)`和`服务端`之间请求和应答的标准。原创 2020-02-27 17:55:40 · 3625 阅读 · 0 评论 -
一文读懂 SIP 协议:构建现代通信的基石
SIP是由IETF制定的多媒体通信协议。广泛应用于CS、NGN以及IMS的网络中,可以支持并应用于 语音、视频、数据等多媒体业务,同时也可以应用于Presence(呈现)、Instant Message(即时消息)等特色业务。可以说,有IP网络的地方就有SIP协议的存在。`SIP是类似于HTTP`,SIP可以减少应用特别是高级应用的开发时间。由于`基于IP协议的SIP利用了IP网络`,固定网运营商也会逐渐认识到SIP技术对于他们的远意义。原创 2020-03-04 20:11:27 · 10789 阅读 · 1 评论 -
一文详解 WebSocket:双向长连接数据传输协议
WebSocket 是一种应用层网据传输协议,可在单个TCP连接上进行全双工数据通信。WebSocket 诞生于2008年6月,2011年底成为国际标准,其最初被应用于HTML5规范中。WebSocket协议相比于Http协议,其最大的特点是`允许服务端主动向客户端推送数据`,`客户端也可以主动向服务端请求数据`。在WebSocket API中,浏览器和服务器只需要`完成一次握手`,两者之间就可以建立持久性的连接,并进行双向数据传输。原创 2022-05-20 00:13:28 · 871 阅读 · 1 评论 -
一文详解SDP协议:多媒体会话参数与媒体流描述协议
SDP用于在互联网上传输多媒体会话的配置信息,常见于音视频、实时通信会话等。SDP协议提供一种灵活且可扩展的机制,通过在会话的参与者之间交换和传递SDP会话描述信息,实现多媒体会话参数与配置的协商和管理。这种机制为多媒体会话的协商与管理提供了完备的解决方案。原创 2020-03-07 22:16:29 · 4789 阅读 · 1 评论 -
一文详解 RTP/RTCP协议:流媒体数据传输的协议基石
RTP协议 运行于传输层UDP协议之上,与RTCP协议协作 常用于流媒体数据传输,例如:直播、远程摄像头流媒体播放、流媒体视频播放、视频会议等应用场景。其规定了在互联网上传递音频和视频的标准数据包格式,最初被设计为一个多播协议,但后来被常被应用在很多单播应用中。原创 2022-01-17 18:23:39 · 3905 阅读 · 0 评论 -
一文详解RTSP协议:流媒体传输控制协议
RTSP由RFC2326规范,是一种实现实时流媒体传输与播放的控制协议,可用于流媒体的点播和直播场景。RTSP主要有两个方面的作用:一是用于协商客户端与服务端之间的实时媒体通道。二是在建立媒体通道后,通过RTSP协议定义的控制方法(Method),实现流媒体的播放、暂停、停止、快进、倒退等控制操作。原创 2024-02-02 14:33:40 · 432 阅读 · 0 评论 -
一文详解MSRP协议:IM多媒体信息的传输协议
MSRP(Message Session Relay Protocol)消息会话中继协议,由RFC4975规范,是一种基于文本的、面向连接的协议。常用于在IM实时通信会话中传输或交换多媒体数据(文本、图片、音视频文件等)。支持点对点和多点传输,并提供了扩展性,可以适应不同的应用场景和需求。原创 2024-02-02 10:27:58 · 345 阅读 · 0 评论 -
一文详解CPIM协议:IM服务网关互联互通的桥梁
CPIM (Common Presence and Instant Messaging) 是一种应用于不同IM即时通信协议中,规范与描述消息体内容的通用消息格式,其消息格式由 RFC3862 规范 。CPIM消息体格式的定义是为了实现不同即时通讯协议之间的互操作性,让不同的即时通讯协议服务之间可以互联理解和互相交流。原创 2020-03-07 17:17:21 · 3849 阅读 · 0 评论 -
一文详解 SCTP 协议:高可靠网络传输的协议基石
SCTP(Stream Control Transmission Protocol)流控制传输协议,由 RFC2960 定义。SCTP的设计目的是提供一种可靠的、面向消息的数据传输服务,以便于支持多点通信以及满足传输的可靠性需求。SCTP 目前广泛应用于VoIP、移动通信和云计算等领域。原创 2023-05-05 21:26:02 · 2462 阅读 · 1 评论 -
一文详解 DTLS 协议:安全传输的协议基石
DTLS (Datagram Transport Layer Security)数据包安全传输协议,用于在不可靠的数据包传输协议上 (如UDP)提供数据的安全传输,DTLS1.2版本由 RFC6347 定义。DTLS为TLS协议的一个变体,因TLS不能用来保证UDP上传输的数据的安全性,Datagram TLS试图在现存的TLS协议架构上提出扩展,成为TLS的一个支持数据包传输的版本。DTLS常用于保护实时通信 (如VoIP和视频会议) 以及IoT设备通信的信息安全。原创 2023-03-27 10:31:07 · 2328 阅读 · 0 评论 -
一文学会WebRTC API:掌握实时通信利器
WebRTC(Web Real-Time Communication)是一项开放标准和技术集合,由 W3C 和 IETF 等组织共同推动和维护,旨在通过Web浏览器实现实时通信和媒体流传输。WebRTC于2011年6月1日开源并在Google、Mozilla、Opera支持下被纳入万维网联盟的W3C推荐标准,其提供了一组API和协议,使开发者能够在浏览器中构建实时音视频通信、数据传输和协作应用。目前WebRTC已得到包括主流的Web浏览器(如Chrome、Firefox、Safari)和移动设备平台的广泛的原创 2023-10-17 15:03:25 · 885 阅读 · 0 评论 -
一文读懂GBA认证流程:移动终端认证和网络安全连接的保障
GBA(Generic Bootstrapping Architecture)是一种用户认证机制,目前多用于运营商相关业务。在数据相关业务中,客户端与应用服务器(NAF)交互过程时,进行用户认证鉴权。`应用服务器NAF`与`基于SIM卡的终端设备应用`之间建立共享的`用户秘钥(Ks_NAF)`,并利用该共享秘钥实现用户认证,即GBA。原创 2020-12-21 22:32:36 · 6723 阅读 · 3 评论 -
一文读懂App服务保活:Android进程及TCP动态心跳机制
面对国内GCM推送服务不可用,也未出现一个统一市场PUSH平台的现状。早期的第三方软件一般通过维持一个终端与远端服务器之间的TCP长连接,达到PUSH拉活和消息及时送达的目的。而为了维持这个`TCP长连接`不断开,前提条件就是保证自己APP的后台服务进程,不会被杀死(因为只有活着的终端进程才能定期与远端服务器通信,保证长连接不断连)。原创 2021-10-28 09:04:09 · 3481 阅读 · 0 评论 -
一文读懂 HTTPS :HTTPS握手与TLS证书链校验
HTTPS协议详解从事移动互联网软件开发的小伙伴肯定了解:自Android 9.0开始,应用程序的网络请求默认使用https;基本是同期苹果IOS在应用网络请求方面,也强制使用https禁止http。这一期间如果你去面试,不了解Https的握手过程,都不好意思讲工资。本人一个普通程序员,项目期间工期紧张,并未抽出时间详细了解Https网络请求过程中TLS握手过程,因此这件事一直在我的待办记录中…这篇文章以Wireshark抓包,详细了解Https请求中TLS的握手过程 与 客户端证书校验过程。H原创 2020-06-23 17:09:01 · 1882 阅读 · 0 评论 -
一文读懂 URLEncode:URL编码原理解析
使用浏览器进行Http网络请求时,若请求query中包含中文,中文会被编码为 `%+16进制+16进制`形式,但你真的深入了解过,为什么要进行这种转义编码吗?编码的原理又是什么?原创 2021-02-23 20:58:26 · 6865 阅读 · 0 评论 -
一文详解 Http 短轮询、长轮询
早期的很多网站为具备数据推送能力,所在用的技术基本都是`HTTP轮询`。轮询是由由客户端每隔一段时间(如每隔5s)向服务器发出HTTP请求,服务端接收到请求后向客户端返回最新的数据。客户端的轮询方式一般为`短轮询`或`长轮询`。...原创 2018-01-09 12:04:44 · 5970 阅读 · 4 评论 -
一文比较 HTTP与HTTPS
Https相比与Http请求(完成TCP三次握手后,至少增加了):客户端向服务端请求证书服务端返回证书客户端产生随机对称加密密钥客户端对随机对称密钥加密客户端向服务端发送随机对称密钥服务端以私钥对加密密钥进行解密原创 2017-03-19 11:44:53 · 1213 阅读 · 0 评论 -
一文详解 NanoHttpd 微型服务器原理
`NanoHttpd`仅有一个Java文件的微型Http服务器实现。其方便嵌入式设备(例如:Android设备)中启动一个本地服务器,接收客户端本地部分请求;应用场景也非常广泛,例如:本地代理方式播放m3u8视频、本地代理方式加载一些加密秘钥等。原创 2019-08-29 16:51:47 · 1674 阅读 · 0 评论 -
Http文件断点下载(Http请求头的Range字段)
所谓断点下载,也就是要从文件已经下载的地方开始继续下载。 在以前版本的 HTTP 协议是不支持断点的,HTTP/1.1 开始就支持了。一般断点下载时要用到 Range 。Range请求头中,指定第一个字节的位置和最后一个字节的位置。用于告诉服务器自己想取对象的哪部分,一般格式:Range: bytes=[first byte pos]-[last byte pos] 例如...原创 2017-03-21 09:19:09 · 8568 阅读 · 0 评论 -
Http文件分块上传
注: 这里只是讨论一种文件分块上传的方案(解决方案并不唯一)1、需要服务端支持如何通知服务端,客户端对于上传文件分了几片? 如何通知服务端,当前为上传文件的第几片?可将以下数据放到post请求的body中解决以上问题:{ "file_md5": "xxxx", //完整文件的md5 "total_count": 5, //总的分片数..原创 2017-03-21 09:16:40 · 5053 阅读 · 0 评论 -
MQTT简单了解
MQTT简单了解参考百度百科:MQTT协议 MQTT协议-MQTT协议简介及协议原理 MQTT入门篇 MQTT与TCP的关系 MQTT数据包结构 MQTT英文文档 Version 3.1.1 MQTT协议中文版翻译MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscri...原创 2018-02-28 14:33:16 · 1488 阅读 · 0 评论 -
Android Volley http缓存
以volley的缓存机制,简单介绍http缓存Http缓存参考: http://blog.chinaunix.net/uid-11639156-id-3214858.html http://www.cnblogs.com/cocowool/archive/2011/08/22/2149929.html第一次请求某一资源时,客户端HTTP请求header举例:Host原创 2017-04-17 13:23:28 · 564 阅读 · 0 评论