
网络协议
文章平均质量分 88
嫩草终结者
一个渴望成为大牛的小程序猿
展开
-
RTCP报文之NACK包的处理机制(RTP接收端)
首先来看看整体的处理流程(上图)。处理过程主要包括两个:1、判断收到的RTP 的seq num与最近最大的seq num的差值。根据差值不同,做不同的处理。2、判断每个seq num的重发次数是否超过指定次数,如果超过,则不再重发。下面是主要逻辑的代码:synchronized private boolean received(int seq){ if (lastReceivedSeq == -1) { lastReceivedSeq = seq; ret...原创 2020-07-26 14:04:57 · 1749 阅读 · 0 评论 -
RTP音频AAC封包
过程比较简单:需要将aac的前7个字节的ADTS去掉;添加12字节的RTPHeader;添加2字节的AU_HEADER_LENGTH;添加2字节的AU_HEADER;从第17字节开始就是payload(去掉ADTS的aac数据)数据了音频aac封包格式RTP承载aac的格式由两部分组成:2个字节的AU-headers-lengthn个AU-header,每个2字节n个AU,是aac去掉adts的载荷AU-headers-length AU-header ...转载 2020-05-21 20:07:56 · 674 阅读 · 1 评论 -
从RTP包中解析H264数据(修改版)
package com.zhuyun.rtp;import java.nio.ByteBuffer;import org.jitsi.service.neomedia.RawPacket;public class RtpUtils { public static byte[] h264Pack(RawPacket rtpPacket){ if (rtpPacket.getPayloadType() == 96) { //以下处理仅针对H264码流 .原创 2020-05-11 16:29:17 · 785 阅读 · 0 评论 -
从RTP包中解析H264数据
for (;;) { RawPacketWithRoom rawPacketWithRoom = arrayBlockingQueue.take(); RawPacket rtpPacket = rawPacketWithRoom.getRtpPacket(); if (rtpPacket.getPayloadType() == 107) { //以下处理仅...原创 2020-05-02 16:53:11 · 1021 阅读 · 1 评论 -
硬不硬你说了算!近 40 张图解被问千百遍的 TCP 三次握手和四次挥手面试题
前言不管面试 Java 、C/C++、Python 等开发岗位,TCP的知识点可以说是的必问的了。任 TCP 虐我千百遍,我仍待 TCP 如初恋。遥想小林当年校招时常因TCP面试题被刷,真是又爱又狠….过去不会没关系,今天就让我们来消除这份恐惧,微笑着勇敢的面对它吧!所以小林整理了关于TCP 三次握手和四次挥手的面试题型,跟大家一起探讨探讨。 TCP 基本认识...转载 2020-04-10 21:33:17 · 304 阅读 · 0 评论 -
SDP协议简要介绍
参考:https://www.rfc-editor.org/rfc/rfc4566.html目录1、协议描述(session description)1.1、Protocol Version ("v=")1.2、Origin ("o=")1.3、Session Name ("s=")1.4、Session Information ("i=")1.5、URI ("u...原创 2020-01-07 21:52:15 · 4320 阅读 · 1 评论 -
TURN协议简要介绍
参考:https://www.rfc-editor.org/rfc/rfc5766.html https://www.rfc-editor.org/rfc/rfc5389.html目录1、新的STUN方法2、新的STUN属性2.1、CHANNEL-NUMBER2.2、LIFETIME2.3、XOR-PEER-ADDRESS2.4、DATA2.5...原创 2020-01-07 21:06:02 · 4665 阅读 · 0 评论 -
STUN协议简要介绍
参考:https://www.rfc-editor.org/rfc/rfc5766.html STUN/TURN https://www.rfc-editor.org/rfc/rfc5389.htmlSTUN协议在RFC5389中被重新命名为Session Traversal Utilities for NAT,即NAT会话穿透工具。在这里,NAT会话穿透工具被定位为一个...原创 2019-12-19 20:48:58 · 4677 阅读 · 0 评论 -
NAT的四种类型及类型检测
转自:https://www.cnblogs.com/my_life/articles/1908552.html考 虑到UDP的无状态特性,目前针对其的NAT实现大致可分为Full Cone、Restricted Cone、Port Restricted Cone和Symmetric NAT四种。值得指出的是,对于TCP协议而言,一般来说,目前NAT中针对TCP的实现基本上是一致的,其间...转载 2019-03-04 11:33:49 · 4254 阅读 · 0 评论 -
深入浅出 RPC - 深入篇
转自: https://blog.youkuaiyun.com/mindfloating/article/details/39474123 《深入篇》我们主要围绕 RPC 的功能目标和实现考量去展开,一个基本的 RPC 框架应该提供什么功能,满足什么要求以及如何去实现它?RPC 功能目标RPC 的主要功能目标是让构建分布式计算(应用)更容易,在提供强大的远程调用能力时不损失本...转载 2018-10-30 23:09:10 · 148 阅读 · 0 评论 -
深入浅出 RPC - 浅出篇
转自: https://blog.youkuaiyun.com/mindfloating/article/details/39473807本文来自本人独立博客,为获得更佳阅读体验,请点击 这里---------------------------------------------------------------------------------------------------...转载 2018-10-30 23:07:40 · 119 阅读 · 0 评论 -
看完让你彻底搞懂Websocket原理
内容转自知乎:http://www.zhihu.com/question/20215561 偶然在知乎上看到一篇回帖,瞬间觉得之前看的那么多资料都不及这一篇回帖让我对 websocket 的认识深刻有木有。所以转到我博客里,分享一下。比较喜欢看这种博客,读起来很轻松,不枯燥,没有布道师的阵仗,纯粹为分享。废话这么多了,最后再赞一个~一、websocket与httpWebSocket...转载 2018-08-17 23:21:07 · 1227 阅读 · 1 评论 -
netty模拟TCP数据粘包的解决方案
在之前的一篇《netty模拟TCP数据粘包》中提到过,若在同一条连接中发送的数据过快时,会发送数据粘包的情况,如下图: 前面博客提到过,解决这种问题,netty本身提供了三种解决方案:LineBasedFrameDecoder、DeLimiterBasedFrameDecoder和FixedLengthFrameDecoder。这三种是通用方案,不需要自己重新...原创 2018-07-14 19:46:57 · 889 阅读 · 0 评论 -
netty模拟TCP数据粘包
最近需要用netty写一个fota升级服务器,本来一些基本功能都是实现了,每一个API都测试通过了。但是后来多条API同时测试的时候出了问题。 比如,客户端发一个[0,1,2](意思是,请求有3个字节,分别是1、2、3)的请求,服务器不响应;客户端发[3,4,5]的请求,服务器响应“OK”。 目前一切都正常,但是如果客户端的这两个请求是连续发送的,第一个...原创 2018-07-07 19:35:54 · 679 阅读 · 0 评论 -
TCP滑动窗口 - 动画演示
http://www.exa.unicen.edu.ar/catedras/comdat1/material/Filminas3_Practico3.swf转载 2018-05-31 18:55:44 · 1613 阅读 · 0 评论 -
怎么理解TCP的面向连接和UDP的无连接(不面向连接)?
如题,在理解TCP和UDP中,一个是面向连接的传输协议,一个是不面向连接的协议。怎么能够更好的理解他们的不同。亚当和夏娃分别生活在两个山头,山头之间是万丈深渊,亚当采集野果需要分享给夏娃,如果他们之间有一条索道(物理连接),野果可以顺着索道滑到夏娃那一边,那就没有车小胖什么事了。事实上山头之间没有索道,但是亚当何等聪明,于是他想出了一个方法,假设亚当需要给夏娃10个野果,否则她会饿死。连接建立亚当...转载 2018-05-31 14:26:33 · 13476 阅读 · 10 评论 -
HTTP/2 头部压缩技术介绍
转自:http://web.jobbole.com/85635/我们知道,HTTP/2 协议由两个 RFC 组成:一个是 RFC 7540,描述了 HTTP/2 协议本身;一个是 RFC 7541,描述了 HTTP/2 协议中使用的头部压缩技术。本文将通过实际案例带领大家详细地认识 HTTP/2 头部压缩这门技术。为什么要压缩在 HTTP/1 中转载 2018-04-17 09:58:34 · 5990 阅读 · 0 评论