
网络协议
文章平均质量分 84
常见各类网络协议详解
步基
深耕音视频领域,系统架构
展开
-
RTP协议详解
RTP全名是Real-time Transport Protocol(实时传输协议),对应文档RFC3550。也包含配套协议RTCP(Real-time Transport Control Protocol,即实时传输控制协议),提供服务质量。RTP基于UDP,分组传输,接收端数据包往往有延迟和乱序。在发送端,为降低延迟,往往对传输数据进行预处理(降低质量和高效压缩)。在接收端为了恢复时序,采用了接收缓冲;而为了实现媒体的流畅播放,则采用了播放缓冲。使用接收缓冲,可以将接收到的数据包缓存起来,然后根据数原创 2021-11-12 15:08:03 · 5500 阅读 · 0 评论 -
rtmp协议
包头可以是4种长度的任意一种:12, 8, 4, 1 byte(s).完整的RTMP包头应该是12bytes,包含了时间戳,AMFSize,AMFType,StreamID信息, 8字节的包头只纪录了时间戳,AMFSize,AMFType,其他字节的包头纪录信息依次类推。包体最大长度默认为128字节,通过chunkSize可改变包体最大长度,通常当一段AFM数据超过128字节后,超过128的部分就放到了其他的RTMP封包中。(后六个bits==1):基本头长度为3字节,第二三个字节表示快流ID。原创 2023-05-19 20:24:32 · 1166 阅读 · 0 评论 -
流媒体协议详解
流媒体协议相关的有tcp,udp,http1.0/1.1/2.0/3.0,rtp/rtcp,rtmp,rtsp,hls,dash,webrtc,以及广电行业广泛使用的ndi协议。原创 2023-05-20 14:46:50 · 694 阅读 · 0 评论 -
ftp主动模式与被动模式
ftp是基于tcp的应用层协议1、主动模式客户端从一个任意的非特权端口N(N>1024,如下图的1026端口)连接到FTP服务器的21端口。然后客户端开始监听N+1(如下图的1027端口),并发送FTP命令“port N+1”到FTP服务器。接着服务器会从它自己的数据端口(20)连接到客户端指定的数据端口(N+1)。用更通俗的语言来理解这个交互过程:1)客户端用一个大于1024的端口N与FTP服务器的21端口建立一个控制通道,发送一条命令告诉FTP服务端(即通常说的PORT命令),..原创 2021-11-27 18:02:52 · 3146 阅读 · 0 评论 -
TCP流量和拥塞控制
使用范围TCP为用户提供了高可靠性的网络传输服务,但可靠性保障措施也影响了传输效率。因此,在实际工程应用中,只有关键数据的传输才采用TCP,而普通数据的传输一般采用高效率的UDP。FEC前向纠错技术(Forward Error Correction)在确保信号的长距可靠传输方面也起着非常重要的作用,借用网友一张图来说明FEC。FEC在光通信中的位置码字经过信道到达接收端之后,如果错误在可纠范围之内,通过译码即可检查并纠正错误bit,从而抵抗信道带来的干扰,提高通信系统的可靠性。原创 2023-03-16 16:41:23 · 1895 阅读 · 0 评论 -
http协议
http0.91991年发布, 没有header,功能非常简单,只支持GEThttp1.01996年发布,明文传输安全性差,header特别大。增加了header(使用元数据与数据解耦)增加了status code,用于声明请求的结果。content-type可以传输其它文件。请求头增加了http/1.0版本号。支持GET, POST 和 HEAD方法缺点:短连接,每请求一次资源就新建一次tcp连接http1.11997发布,是现在使用最广泛的版本。原创 2023-05-17 14:47:15 · 588 阅读 · 0 评论 -
RTMP协议详解
RTMP协议是Real Time Message Protocol(实时信息传输协议)的缩写,它是由Adobe公司提出的一种应用层的协议,用来解决多媒体数据传输流的多路复用(Multiplexing)和分包(packetizing)的问题。RTMP协议是应用层协议,是要靠底层可靠的传输层协议(通常是TCP)来保证信息传输的可靠性的。在基于传输层协议的链接建立完成后,RTMP协议也要客户端和服务器通过“握手”来建立基于传输层链接之上的RTMP Connection链接。...原创 2021-11-11 12:32:34 · 14048 阅读 · 1 评论 -
ndi 推流拉流
ndi tools下载,需注册账号才能下载。需要的朋友可以私信。ndi5 sdk,有win版和linux版,以下截图是win版 ndi receive #include <cstdio> #include <chrono> #include <Processing.NDI.Advanced.h> #ifdef _WIN32 #ifdef _WIN64 #pragma comment(lib, "Pr原创 2022-03-08 10:20:08 · 3565 阅读 · 2 评论 -
rtsp协议详解
RTSP(Real-TimeStream Protocol ),RFC2326,实时流传输协议,是一种基于文本的应用层协议,在语法及一些消息参数等方面,RTSP协议与HTTP协议类似。RTSP被用于建立的控制媒体流的传输,它为多媒体服务扮演“网络远程控制”的角色。尽管有时可以把RTSP控制信息和媒体数据流交织在一起传送,但一般情况RTSP本身并不用于转送媒体流数据。媒体数据的传送可通过RTP/RTCP等协议来完成。RTSP在制定时较多地参考了HTTP/1.1协议,甚至许多描述与HTTP/1...原创 2022-01-10 19:00:53 · 8498 阅读 · 0 评论 -
tcp/ip协议详解
tcp/ip 四层模型,从上到下依次是应用层,传输层,网络层,网络接口层(数据链路层)http协议请求格式:1. 请求行:请求行包括请求方法、URL、协议版本,它们之间用空格分隔(所以我们输入的 URL 是不允许带有空格),且都不定长度。请求方法:常用的 POST (将表单数据存入请求体里面,多数用于上传数据),GET(将请求参数都放置在 URL+? 后,参数之间用 & 连接,用于获取数据),HEAD (服务端只返回响应头,所以处理响应速度快,用于检.....原创 2021-06-03 16:21:50 · 62522 阅读 · 2 评论 -
流媒体信令之Socket.IO C++ Client
socketio 依赖环境,需先下载安装cmakerapidjson下载源码 git clone https://github.com/miloyip/rapid将源码目录下的 include/rapidjson copy到socket.io-client-cpp/lib目录下即可boostboost官网http://www.boost.org/下载源码(boost_1_78_0.tar.gz)tar zxvf boost_1_78_0.tar.gzcd boost_1_78..原创 2022-02-10 14:13:02 · 838 阅读 · 0 评论 -
网络通信扫盲
大端与小端大端模式(Big-endian):高位字节排放在内存的低地址端,低位字节排放在内存的高地址端,即正序排列,高尾端;小端模式(Little-endian):低位字节排放在内存的低地址端,高位字节排放在内存的高地址端,即逆序排列,低尾端;1)大端模式:低地址 -----------------> 高地址0x0A | 0x0B | 0x0C | 0x0D2)小端模式:低地址 ------------------> 高地址0x0D | ...原创 2021-11-10 22:37:08 · 339 阅读 · 0 评论 -
tcp粘包拆包解决方案
一 概述经过上图咱们看到了接收方为了接受这两条连贯的指令,一共作了三次接受,第二次接收的时候,收到了一部分message1的内容和一部分message2的内容。这里要说明几个注意事项: 1. MSS:MSS属性是TCP链接双方在三次握手时所确认的每个TCP报文段中数据字段的最大长度。注意,一是链接双方协商出来的;二是只是数据段的最大长度,不包括IP协议头和TCP协议头的最大长度。 2. 半包是指接收方应用程序在接收信息时,没有接收到一个完成的信息格式块;粘包是指,接收方应用程序在接受信息时,除了接...原创 2021-06-28 17:41:46 · 216 阅读 · 1 评论 -
多播,IP_MULTICAST_TTL,IP_ADD_MEMBERSHIP,IP_MULTICAST_IF,IP_DROP_MEMBERSHIP
11.3 多播单播用于两个主机之间的端对端通信,广播用于一个主机对整个局域网上所有主机上的数据通信。单播和广播是两个极端,要么对一个主机进行通信,要么对整个局域网上的主机进行通信。实际情况下,经常需要对一组特定的主机进行通信,而不是整个局域网上的所有主机,这就是多播的用途。11.3.1 多播的概念多播,也称为"组播",将网络中同一业务类型主机进行了逻辑上的分组,进行数据转载 2017-07-05 17:27:28 · 1623 阅读 · 1 评论 -
NAT详解
1、引言网络地址转换(Network Address Translation,简称NAT)是一种在IP分组通过路由器或防火墙时重写源IP地址或/和目的IP地址的技术。这种技术被普遍使用在有多台主机但只通过一个公有IP地址访问因特网的私有网络中。20世纪90年代中期,NAT是作为一种解决IPv4地址短缺以避免保留IP地址困难的方案而流行起来的。家庭和小型办公室的路由器一般都集成了防火墙,DHCP原创 2017-07-05 18:40:00 · 492 阅读 · 1 评论