计算机网络工作总结3-应用层

本文介绍了HTTP协议的基础,包括HTTP1.1和HTTP2,以及测试工具Postman。接着深入探讨了MPEG-DASH协议,包括其各部分的概念和术语,如m4s、AdaptationSet和Representation。此外,还涉及HLS协议的m3u8文件解析。RTSP协议的功能如Setup和TEARDOWN也进行了讲解,以及RTP和RDP的作用。最后提到了基于UDP的SRT传输协议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HTTP协议

概念和术语

  • HTTP1.1。可以理解为没有考虑安全的HTTP协议。
  • HTTP2。即HTTPS,可以理解为基于安全的HTTP协议。
  • Postman。HTTP的客户端测试工具。

官方资料

HTTP入门

在资料<<接口自动化测试持续集成>>的1.2非常好的入门介绍。

MPEG-DASH协议

资料和方法

关键字:dash,HTTP视频、网络视频

资料

  • ISO官方资料https://www.iso.org/home.html

  • ISO/IEC 23009-1,已经下载2014版。最新版为2014版。

  • ISO/IEC 23009-2,最近版为2017版,道客巴巴。

  • ISO/IEC 23009-3,最近版为2015版,道客巴巴。

  • ISO/IEC 23009-4,最近版为2013版,道客巴巴。

  • ISO/IEC 23009-5,最新版为2017版,道客巴巴。

  • ISO/IEC 23009-6, 最新版为2017版,道客巴巴。

  • <<IP网络视频传输技术 标准和应用>>

开源代码

概念和术语

  • m4s:在ffmpeg中生成了m4s文件格式,可以从如下两个方面理解。

  • 符合ISO BMFF标准,因为能用MP4Reader打开。

  • DASH标准对ISO BMFF进行了扩展。

  • MIME type:多用途邮件扩展类型。可以理解为web浏览器(HTML)可以识别和传输的数据类型。具体包括的类型包括https://blog.youkuaiyun.com/zhaoyw2008/article/details/46647723。从中知道,264,265不是MIME type,但mp3和mp4是。

  • Profile:其为MPD层的属性。根据标准4.7的描述,其指定了音视频的封装格式。其为dash对封装格式(比如TS,ISOBMFF)的扩展。在标准8,指定了这种扩展,对于ISOBMFF,有live、demand、main三种profile。

  • On-demand service:按照请求的服务。所有的音视频内容都已经放在服务器上,按照HTTP请求传输所需要内容。

  • Live service:在线服务。实时服务,采集-编码-传输-解码-显示。实时服务结束时,MPD已经完备,转化为on-demand 服务。

DASH的层次结构

参考博客https://blog.youkuaiyun.com/ranghanqiao5058/article/details/87932267,利用xml工具打开一个mpd文件,进一步理解。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X22gWwUD-1676725579543)(Images/DASH层次结构.png)]

Peroid

Peroid的标识为时间段,即位于某个时间段的所有音频或视频的集合。

Period,一个DASH文件可以包含一个或多个Periods,每个Period代表一段连续的音视频片段,假设一段码流有60s被划分为3个Periods,Period1为0-15s,Period2为16-40s,Period3为41-60s。对于一个特定的Period,其内部所有的数据共享的一些属性详见标准(2014版)的table4。具体如下:

start起始时间。PT0.0s,表示从第0秒开始。
duration当前period的持续时间。
BaseURL
SegmentBase

SegmentBase

Adaption set

具体参数符合指定条件的音视频集合。里边可以有多个音视频,并且可以相互切换。

AdaptationSet,一个Period由一个或多个AdaptationSets组成。所有属于同一个Adapset的内容都具有一些属性,具体见标准(2014版)的table5。相当多的属性指定当前adapset内容属性的范围。

ContentType内容类型。视频或音频
par宽高比,比如16:9
minBandWidth最小带宽
maxBandWidth最大带宽
minWidth
maxWidth
minHeight
maxHeight
minFrameRate
maxFrameRate
……

在AdaptionSet中,指定了内容是视频还是音频。属于同一个period的视频和音频,使用不同的AdaptionSet表示。一个AdaptionSet表示视频,一个AdaptionSet表示音频。

Representation

具有特定参数集的音频或视频。

一个AdaptationSet由一组媒体内容配置可切换的Representations构成。Representation的数据详见标准(2014版)的table7~table9。和Adaption Set不同,Represention指定详细了编码参数值,而不是一个范围。

Sub-Representation

Segment

即所谓的片,个人片翻译的不准确,以后应该为段。

每个Representation中的内容按时间或者其他规则被切分成一系列Segments,使得客户端在播放时能够灵活地在不同的Representations之间进行切换。每个Segment都有一个唯一的与之对应的URL地址,也可能由相同的URL与不同的byte range指定。DASH客户端可以通过HTTP协议来获取URL对应。

即Represetation中的音频或视频数据,用多个文件表示。目前应用按时间切分。

Segment template

Segment的一种。描述一个规则,使用这个规则创建一个或多个segment。即一个segment template可以包含多个segment的信息。

DASH字段详解

MPD层

  • mediaPresentationDuration=PT00H00M33.333S:presentation time 00 hour 00 miniutes 33.333second。整段音视频的持续时间。

  • minBufferTime=“PT11.5S”:解码器端的buffer存储数据,可以播放的最长时间。PT11.5S:可以播放11.5s。用时间表示vbvbuffer=码率*minBufferTime。

其他

timescale=“24000”指定时间戳的单位。 表示时间戳的单位为:1/24000秒。
startNumber=“1”分段音视频的起始索引。起始索引为1。
t起始时间戳
d持续时间,以1/timescale秒为单位

BaseURL

BaseURL:在Nvidia OMAF播放器中,表示分段文件的位置。在intel播放器中,没有实际意义。

HLS

资料和方法

m3u8文件详解

具体详见<<RFC8216>>的第四章。直接将标识符输入搜索即可。以下为直观详解的部分。

#EXTM3U                     //m3u8的头标志
#EXT-X-VERSION:3          //对应的HLS版本号为7
#EXT-X-TARGETDURATION:2  //片段的最长时间,单位s
#EXT-X-MEDIA-SEQUENCE:0  //第一个片段的序号,从0开始
#EXTINF:2.000000,         //out0.ts持续时间,2s
out0.ts
#EXTINF:2.000000,
out1.ts
#EXTINF:2.000000,
......
#EXT-X-ENDLIST          //结束标志

RTSP1.0

资料

搜索关键字:RTSP、流媒体、RTSP信令。

标准文档1.0和2.0两个版本,RTSP1.0对应于RFC2326,RTSP2.0对应于RFC7826。这里指的是RTSP1.0。

在标准中,有[H14.18]的表达,表示HTTP1.1协议的14章18节。

在<<IP网络视频传输–技术标准和应用>>的7.2.3,概述了RTSP标准。

论文<<基于RTSP协议的VOD系统中间件实现>>详细解释了RTSP语法结构。

标准导读

  • 第12章,介绍各个字段。
  • 第10章,介绍各个方法。

概念和术语

  • RTSP,是服务器和客户端通信控制信息的协议。具体详见https://blog.youkuaiyun.com/asdyfw/article/details/118106059。

  • 头部域()

  • 服务器端:接受RTSP控制指令,按照指令执行多媒体处理,然后将处理结果发往指定的位置。

  • 客户端:发送RTSP指令的地方。

  • 请求(request):客户端向服务器发送RTSP数据,要求服务器进行多媒体数据处理。

  • 响应(respond):服务器对客户端请求的回应。在有些地方翻译为应答,不过还是感觉响应更加贴切一些。

  • 方法(method):请求中所实现的功能。比如setup,play等。

  • 消息(message): 一个完整的请求或响应数据的称呼。

协议功能

Setup

下面为RTSP协议的setup消息,以#作为其注释进行说明。其为client发送到sever的(c->s)的消息内容。

SETUP rtsp://172.16.150.153:10530 RTSP/1.0   #client地址端口,RTSP版本
CSeq: 392                                    #应答序列号。
Content-Type: application/sdp
OnDemandSessionId: d797807b-01cb-4541-b5f9-ca70299bd917
Require: com.comcast.ngod.r2
ServerSession: 102.G503sOBpSLSFP5mMimzTL0
SessionGroup: SSS2_SS_CL_1.10
StartPoint: 1 0.0
StreamControlProto: rtsp
Transport:  MP2T/DVBC/UDP;unicast;destination=127.0.0.1;client_port=1234;bandwidth=8000000;client=;sop_group=CDN-OSTR1-A;sop_name=CDN-OSTR1-A#指定转码后的输出的目标地址和端口,可用的带宽
User-Agent: NSS/2.8
Volume: library
Content-Length: 205
Date: Wed, 03 Mar 0070 21:41:59 GMT
#注意这里必须有一个空格行
v=0
o=- 93711b4e-16b0-4bf7-9c2c-8fe9f2281bd9  IN IP4 0.0.0.0
s=
c=IN IP4 0.0.0.0
t=0 0
a=X-playlist-item: wasutv ABCD0000000000025004 0-
m=video 0 udp MP2T
u=http://127.0.0.1:8080/Dash/test.m3u8
#注意这里必须要一个空格行。

TEARDOWN

TEARDOWN是拆卸的意思,对于RTSP而言,就是结束流传输,同时释放与之相关的资源,TEARDWON之后,整个RTSP连接也就结束了。详见(13条消息) 手撕RTSP协议系列(9)——TEARDOWN_视界音你而不同的博客-优快云博客_rtsp teardown

Announce

从客户端发送到服务器时,ANNOUNCE将请求URL标识的演示文稿或媒体对象的描述发布到服务器。当从服务器发送到客户端时,ANNOUNCE会实时更新会话描述。

RTP

概述

早期的RTP协议,由ITU-T H.255.0发布,后来当IETF发布了关于它的稳定的标准RFC后就被取消了。所以RTP协议是IETF发布的RFC3550。在<<WebRTC音视频实时互动技术(李超著)>>的第9章,从应有的角度介绍了RTP和RTCP。现从整体的角度说明这两个标准。

  • RTP实现的是对音视频数据的封装,以一种最为精简的方式。可以将其看做是TS或MP4的简化版本。
  • RTCP用于封装和传输数据通信中的统计信息,比如丢包的个数。服务与码率控制和传输质量的改善。

RDP

概述

  • 其为微软支持的远程桌面传输协议(Remote Desktop Procotol)。详见微软MSDN的https://docs.microsoft.com/en-us/troubleshoot/windows-server/remote/understanding-remote-desktop-protocol和https://docs.microsoft.com/en-us/windows/win32/termserv/remote-desktop-protocol。
  • https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-rdpbcgr/5073f4ed-1e93-45e1-b039-6e30c385867c。中给出了RDP协议各个版本的下载。
  • 论文上描述的都是关于安全方面的,至于我们关注的键盘鼠标等,还需要网页和博客的查阅。

SRT协议

基于UDP的传输协议 ,ffmpeg已经支持。其官方网址为https://www.srtalliance.org/,GitHub网址为https://github.com/Haivision/srt。
icrosoft.com/en-us/openspecs/windows_protocols/ms-rdpbcgr/5073f4ed-1e93-45e1-b039-6e30c385867c。中给出了RDP协议各个版本的下载。

  • 论文上描述的都是关于安全方面的,至于我们关注的键盘鼠标等,还需要网页和博客的查阅。

SRT协议

基于UDP的传输协议 ,ffmpeg已经支持。其官方网址为https://www.srtalliance.org/,GitHub网址为https://github.com/Haivision/srt。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

加菲猫0320

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值