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. str 类型

    1.capitalize():首字母大写 2.center(size,fillwith): 3.count(sub,start,end):计算子序列的个数 4.decode() 5.encode() ...

  2. quartz延迟执行一次

    package com.example.balabala; import org.quartz.*; import org.quartz.impl.StdSchedulerFactory; impor ...

  3. 爬格子问题(经典强化学习问题) Sarsa 与 Q-Learning 的区别

    SARSA v.s. Q-learning 爬格子问题,是典型的经典强化学习问题. 动作是上下左右的走,每走一步就会有一个-1的奖赏.从初始状态走到最终的状态,要走最短的路才能使奖赏最大.图中有一个悬 ...

  4. matlab handle plot

    https://cn.mathworks.com/help/matlab/ref/plotyy.html

  5. Pytorch中的Batch Normalization操作

    之前一直和小伙伴探讨batch normalization层的实现机理,作用在这里不谈,知乎上有一篇paper在讲这个,链接 这里只探究其具体运算过程,我们假设在网络中间经过某些卷积操作之后的输出的f ...

  6. Linux more命令详解

    more功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上. more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回( ...

  7. [LeetCode&Python] Problem 455. Assign Cookies

    Assume you are an awesome parent and want to give your children some cookies. But, you should give e ...

  8. es6 set&sort

    es6提供了新的数据结构Set. 它类似于数组,但是成员的值都是唯一的,没有重复的值. Set函数可以接受一个数组(或类似数组的对象)作为参数,用来初始化. 1.set去重 首先我们 let 一个数组 ...

  9. Go Example--函数多返回值

    package main import "fmt" func main() { a,b := vals() fmt.Println(a) fmt.Println(b) } //函数 ...

  10. LeetCode - Number of Recent Calls

    Write a class RecentCounter to count recent requests. It has only one method: ping(int t), where t r ...