DLNA:全称是DIGITAL LIVING NETWORK ALLIANCE(数字生活网络联盟), 旨在解决个人PC,消费电器,移动设备在内的无线网络和有线网络的互联互通,使得数字媒体和内容服务的无限制的共享和增长成为可能。成立于2003 年6 月24 日, 其前身是DHWG (Digital Home Working Group 数字家庭工作组),在2017年1月15日正式解散。

UPNP:全名是Universal Plug and Play,愿景就是希望任何设备只要一接上网络,所有在网络上的设备马上就能知道有新设备加入,这些设备彼此之间能互相沟通,更能直接使用或控制它,一切都不需要设定,完全的Plug and Play。

UPnP 是各种各样的智能设备、无线设备和个人电脑等实现遍布全球的对等网络连接(P2P)的结构。UPnP 是一种分布式的,开放的网络架构。UPnP 是独立的媒介。UPnP 规范基于TCP/IP协议和针对设备彼此间通讯而制订的新的Internet协议。
计算机外设的即插即用(Plug and Play(缩写PnP)),UPnP功能可以使网关或路由器的NAT模块做自动端口映射,不建议开启,需要硬件与软件同时支持,在硬件不支持的情况下,对稳定性、转发性能的影响很大。

Win7及以上系统:

  1. 启动相关服务
net start SSDPSRV
net start upnphost
net start WMPNetworkSvc
  1. 打开Windows Media Player-->媒体流-->选项-->启用媒体流。

Android手机:

  • 全功能DLNA:安装MirageDLNA
  • DLNA播放器:如果只是播放PC的音视频文件,建议使用MOLIPLAYER(图片看不了,还支持Samba文件)。
  • DLNA服务端:安装MediaServer,【TW,图标为无线扇形,华为市场】,安装后,直接在WIN10我的电脑里出现。

建议

不要在无线PC上使用此功能,因为无线网络为共享型,不能全双工通信。最佳为:有线PC的服务端,无线手机的播放端。

无线通信中节点工作在全双工模式下需要克服功率强70~100dB的自干扰信号。在2011年之前,无线全双工被认为是不可能实现的。而现在,已经有实验室作出相关的原型设备可以工作在全双工状态下。但离商用(无线路由器)还很遥远。主要瓶颈在于信号带宽和通信距离。

=====================================================================

有线网络:802.3 i(10M)/u(100M)/z(1000M)/ba(40Gb/100Gb)
无线网络:802.11 a(5GHz 54M)/b(2.4GHz 11M)/g(2.4GHz 54M/108M)/n(2.4GHz 300M)/ac(5GHz 1G)/ad(60GHZ 7G,穿透力非常有限)

有线以太网设备必须采用载波侦听多路访问/冲突检测(CSMA/CD)方法来传输和接收以太网帧。
① 在共享的以太网网段上,PC以半双工模式工作,每台PC都可以先"发言",然后侦听是否同其他正在发言的设备发生冲突。很重要的是,整个检测冲突的过程是基于有线连接的最大长度,从网段的一端发送到另一端,检测到冲突之间的最大延迟是确定的。
②在全双工或交换型以太网链路上,不存在冲突或争取带宽的问题,但它们必须遵循相同的规范。例如,在全双工链路上,必须在预期的时间内发送或接收以太网帧,这要求全双工双绞线的最大长度与半双工链路相同。

虽然无线局域网也基于一组严格的标准,但无线介质本身难以控制,一般而言,当PC连接到有线网络时,与其共享网络连接的其他设备的数量是已知的,而当PC使用无线网络时,使用的传输介质为空气,由于接入层没有电缆和插口,因此,无法限制其他最终用户使用相同频率无线电波。——无线的难处本质在这里

无线局域网实际上是一种共享型网络,且争用相同频率电波的主机数量不是固定的。在无线局域网中,冲突犹如家常便饭,因为每条无线连接都是半双工模式的,IEEE 802.11 WLAN总是半双工模式的,因为传输站和接收站使用的频率相同。双方不能同时传输,否则将发生冲突。要实现全双工模式,必须在一个频率进行传输,在另一个频率进行接收,这类似于全双工以太网链路的工作原理,虽然这完全可行,但IEEE 802.11标准不允许采用全双工模式。

当多个无线工作站同时传输时,它们的信号将相互干扰,接收站收到的将是混乱的数据、噪声或错误信息。如果没有明确的方式来确定是否发生了冲突,传输站也无法知道发生了冲突,因为传输时将关闭其接收器,作为一个基本的反馈机制,每当无线工作站传输一帧后,接收工作站必须发送一个确认,确认已正确地收到该帧。——确认帧其实充当了基本的冲突检测工具,然而,它并不能预先防止冲突的发生。

IEEE 802.11标准使用一种名为载波侦听多路访问/冲突避免(CSMA/CA)的方法来避免冲突。注意,IEEE 802.3有线网络是检测冲突,而IEEE 802.11网络是尽可能避免冲突。

为实现冲突避免,要求所有工作站在传输每帧前进行侦听,当工作站有帧需要发送时,面临的将是下列情况之一:
① 没有其他设备在传输数据,工作站可立刻传输其帧,接收工作站必须发送一个确认帧,确认原始帧已在没有发生冲突的情况下到达。
② 另一台设备正在传输,工作站必须等待,等到当前帧传输完毕后,它再等待一段随机时间(这其实就体现了协议设计者的“CSMA/CA冲突避免”思想),然后传输自己的帧。

无线帧的长度不是固定的,一个工作站传输其帧时,其他工作站如何知道该帧已传输完毕,可以使用无线介质呢?显然,工作站可以进行侦听,等待静默期的到来,但这样做并非总是有效的,其他工作站也在侦听,可能同时决定开始传输。IEEE 802.11标准要求所有工作站在开始传输前等待一段时间,这段时间被称为DCF帧间间隔(DCF Interframe Space , DIFS)。

传输工作站可以在IEEE 802.11报头中包含一个持续时间值,以指出传输完当前帧所需的大概时间。持续时间值包含传输完当前帧所需要的时隙数(单位通常为毫秒),其他无线工作站必须查看持续时间值,并在考虑传输数据前等待相应的时间。由于每个侦听站在传输的帧中看到的持续时间值相同,因此它们都可能在这段时间过去后决定传输自己的帧,这可能导致冲突。所以,在实际中,除持续定时器外,每个无线工作站还必须实现一个随机后退定时器,传输帧之前,工作站必须选择一个要等待的随机时隙数,这个数字位于0和最大争用窗口值之间。——这里的基本思想不外乎是,准备传输的工作站必须等待一段随机时间,以减少试图立即传输的工作站数量。——这个过程就被称为抽象的术语“分布式协调功能(Distributed Coordination Function,DCF)”

三位无线用户都有一个帧需要发送,它们所需的时间各不相同。发生的情况如下所述。
① 用户A侦听并确定没有其他用户在传输,因此,传输自己的帧并通告持续时间。
② 用户B有一个帧需要传输,他必须等待用户A的帧传输完毕,再等待DIFS时间过去。
③ 用户B在传输前等待一段随机退避时间。
④ 在用户B等待期间,用户C有一个帧需要传输,他通过侦听发现没有人在传输,用户C等待一段随机时间,但比用户B的随机时间短。
⑤ 用户C传输一个帧,并通告其持续时间。
⑥ 用户B传输前必须等待该持续时间加上DIFS时间。

由于后退定时器是随机的,多台工作站仍可能选择相同的退避时间——看来协议设计者还是考虑到底了,因此,无法防止这些工作站同时传输数据,进而导致冲突。这样,在无线网络中将会出现传输错误,而接收站不会返回确认,为此发送站必须考虑重新发送其帧。

最后,工作站在其随机后退定时器过期后并准备传输数据时,如果发现有人正在传输,该如何办呢?它必须再等待当前正在传输的帧的持续时间、DIFS时间和随机后退时间。

手机与PC的影音相互播放(DLNA/UPNP)的更多相关文章

  1. 基于C/S模式的android手机与PC机通信系统的开发

    原文链接: http://blog.csdn.net/nupt123456789/article/details/8213486 基于C/S模式的android手机与PC机通信系统的开发 作者:郑海波 ...

  2. foobar2000 iOS使用,并连接PC的歌曲进行播放

    foobar2000移动版下载地址:http://mobile.foobar2000.com/ 要实现歌曲互通有两种方法,使用iOS客户端的FTP Server用PC上传歌曲到iOS手机,和在PC上使 ...

  3. 在thinkPHP3.2.3框架下实现手机和PC端浏览器的切换

    查看thinkphp版本号方法 打开文件“根目录\ThinkPHP\ThinkPHP.php”下的文件ThinkPHP.php,在22--23行可以看到版本信息THINK_VERSION,如下图: 说 ...

  4. jquery 模拟 alert 手机,pc,平板 3合一

    $.kw = { title : "System information", //默认标题 可修改 speed : 400, //默认速度 可修改 buttonName : &qu ...

  5. android手机连接PC无法正常安装驱动

    工作当中我们经常会遇到Android手机连接PC的时候无法正确安装驱动,或者安装失败.当然找到正确的驱动文件时首选的解决方案,如果正确的驱动文件依旧无法安装成功我们可以打开我的电脑-->属性-- ...

  6. php或js判断网站访问者来自手机或者pc

    php或js判断网站访问者来自手机或者pc机 2013年9月26日,在弄wtuonline的时候为了区分用户是来自手机版浏览器还是pc,针对不同平台选择不同的网站版本,最终总结如下:         ...

  7. php或js判断网站访问者来自手机或者pc机

    php或js判断网站访问者来自手机或者pc机 2013年9月26日,在弄wtuonline的时候为了区分用户是来自手机版浏览器还是pc,针对不同平台选择不同的网站版本,最终总结如下:         ...

  8. 非堵塞socket实现android手机与PC的文件传输

    项目须要是通过WIFI建立手机和PC的通信,然后自己定义一个简单的协议对要传输的文件进行校验,传输的文件是2张3M的图片,要求考虑网络中断情况处理. 我这里採用的是非堵塞socket来实现的,之前查过 ...

  9. Windows 之 手机访问 PC 端本地部署的站点

    测试网页在手机上的显示工具我们可以使用谷歌内核的浏览器,打开开发者工具(F12),在device那里选择设备,然后刷新来查看网页在手机上的显示效果. 但毕竟是模拟的,如果想要在真机上调试该怎么办呢. ...

随机推荐

  1. vim 使用 Tricks

    vim + /etc/fstab:打开文档时直接光标直接置于最后一行首部: 1. 最小影响的修改:非 insert mode 修改 del/x:删除光标所在字符: r:replace,替换光标所在的字 ...

  2. c# 休眠后 定时唤醒

    源码见附件,执行唤醒功能前需要先对电源进行设置如下图: 源码

  3. [LeetCode&Python] Problem 748. Shortest Completing Word

    Find the minimum length word from a given dictionary words, which has all the letters from the strin ...

  4. 斐波那契 - pythoon实现

    def fn_1(n): if n == 0 : return n elif n == 1 : return n else: a = [0,1] for i in range(2,n): a.appe ...

  5. Python字符编码转换

    编码回顾 在备编码相关的课件时,在知乎上看到一段关于Python编码的回答这哥们的这段话说的太对了,搞Python不把编码彻底搞明白,总有一天它会猝不及防坑你一把.不过感觉这哥们的答案并没把编码问题写 ...

  6. KMP算法自我理解 和 模板

    字符串   abcd abc abcd abc 匹配串   cdabcd 匹配串的 next  0 0 0 0 1 2: 开始匹配 abcd abc abcd abc cd abc d a,d 匹配失 ...

  7. Spring的依赖注入的2种方式(1天时间)

    今天花了一天的时间才调试出来 private      接口   实现类的那个bean; 最后面的那个名字不能随便的写,必须是配置文件中,实现类的那个bean 就是后面的那个名字写错了,花了整整一天 ...

  8. pnpm 快速节省磁盘工具的包管理工具

    nodejs 相关的包管理工具有很多,我们常用的有 npm cnpm(我基本已经不用了),yarn... pnpm 是另外一个不错的包管理工具,包含以下特性 快速 节省空间,一个版本的包只会在磁盘中存 ...

  9. Using gcc stack debug skill

    The stack error is hard to debug, but we can debug it assisted by the tool provided by GCC. As we kn ...

  10. Python高阶函数_map/reduce/filter函数

    本篇将开始介绍python高阶函数map/reduce/filter的用法,更多内容请参考:Python学习指南 map/reduce Python内建了map()和reduce()函数. 如果你读过 ...