编码、网络协议

一、编码
最原始的音频数据就是PCM,是通过对模拟信号进行采样得到的数字信号;最原始的视频数据就是颜色数据,我们就理解为一帧一帧图片吧。

原始音视频数据是很大的,不适合传输、存储,所以必须对其进行压缩,这个过程称为编码。

音频压缩一般就是降低采样率、减少声道等方式,常用的编码格式有AAC和MP3。

视频压缩也是降低采样率、减少重复图片。当每秒大于23帧时,人眼就区分不出来了,所以可以降低采样率。很多画面连续几秒都是没怎么动的,图像变化很小,可以用一张图片加上变化量来代替。常用的编码格式有H264和MPEG4。

注意,上面所说的“编码格式”只是一种标准,主要是为了保证各个厂商的编解码器能通用,这个标准的具体实现就是编解码器。

二、封装
一个电影文件肯定是包含了视频和声音的(甚至还有字幕),所以一般来说,还要按照一定标准把视频压缩数据和音频压缩数据组合在一个文件中,这个过程就是封装。为了保证解封装时知道按照什么“规则”来解,所以也诞生了很多“封装标准”,即封装格式。

常用的有AVI、MP4、FLV、MKV、RMVB,评价一个封装格式主要有三个方面:支持的视频编码、支持的音频编码、是否支持流媒体播放。比如AVI对音视频编码支持很好,但是不支持流媒体,MKV这三个方面都支持,RMVB支持的编码格式比较少。。。等等。




客户端程序想发送“我饿了”信息给服务端,除了“我饿了”内容,还需要很多辅助信息,比如,请求时间、请求类型、请求地址等。添加了辅助信息后,“我饿了”就和这些辅助信息混在一起了,服务端无法区分真正的有效内容。所以,需要规定一个统一的格式(也就是协议),客户端按照这个格式组装数据,服务端按照这个格式解析数据,双方遵守这个规定。这就是http协议,它规定了数据如何包装,发送方和接收方都需要根据这个规定(协议)来进行包装和解包装应用数据,所以称之为应用层协议。

一个设备把数据传输到另一个设备,发送方会把数据分割成一个个数据包传输,并在每个数据包中加入各种辅助信息,接收方把一个个数据包拼接还原。为了保证传输可靠、不会丢失数据,需要进行“三次握手”来确认数据能准确到达。这就是tcp协议,它规定了数据如何传输,发送方和接收方都需要根据这个规定(协议)来发送和接收二进制数据包,所以称为传输层协议。

所有联网设备,都用一串xx:xx:xx:xx数字来表示设备的地址,这个地址是ipv4地址,每个ipv4地址对应一个物理地址(mac地址)。由于人类记不住一串数字,所以用字母代替,每个“http://xxx”都对应着一个ipv4地址,DNS可以把字符串解析成ipv4地址,这样,传输设备就知道把数据发送到哪里了。这些规定(协议)就是ip协议,用来规范接入网络的所有设备的地址,所以称为网络层协议。

URI = Universal Resource Identifier 资源唯一标识
URL = Universal Resource Locator 资源唯一位置
既然uri的意思是“唯一标识”,那么只要是能够唯一表示这个文件,就属于uri。比如身份证号、详细住址、学校+学号等,都能唯一标识某个人,所以身份证、详细住址等这些都属于uri。

url就好理解了,表示了这个文件的唯一地址,通过这个地址,可以唯一找到这个文件。

uri和urn都能唯一标识某个文件,他们都属于uri。而url除了能唯一表示某个文件,还能通过url找到这个文件,所以比较流行。




你可能感兴趣的:(编码、网络协议)