做app 的模板下载网站有哪些,模板网站建设清单,无锡定制化网站建设,成都山猫vi设计公司系列文章目录 GIGE 学习笔记 GIGE 协议摘录 文章目录 系列文章目录引言第 1 章 设备发现1.1 链路选择1.1.1 单链路配置1.1.2 多链路配置1.1.3 链路聚合组配置 LAG 1.2 IP配置1.2.1 协议选择1.2.2 静态IP1.2.3 DHCP1.2.4 链接本地地址 LLA 1.3 设备枚举1.3.1 GVCP设备发现广播设… 
系列文章目录 GIGE 学习笔记 GIGE 协议摘录 文章目录 系列文章目录引言第 1 章 设备发现1.1 链路选择1.1.1 单链路配置1.1.2 多链路配置1.1.3 链路聚合组配置 LAG 1.2 IP配置1.2.1 协议选择1.2.2 静态IP1.2.3 DHCP1.2.4 链接本地地址 LLA 1.3 设备枚举1.3.1 GVCP设备发现广播设备发现单播设备发现将设备关联到枚举表 1.3.2 零配置发现组播 DNSmDNSDNS 服务发现  1.4 设备添加和删除1.4.1 删除1.4.2 添加  第 2 章 GVCP 协议概览2.1 基本概念2.2 通道2.2.1 控制通道1、控制通道权限2、控制通道寄存器3、打开/关闭控制通道4、控制通道心跳5、设备控制6、使用待定应答7、控制通道字典 2.2.2 流通道流通道寄存器标签数据块打开一个流通道操纵一个流通道关闭一个流通道分组大小组播多网络接口影响穿越防火墙或网络地址转换NAT设备无条件流 2.2.3 消息通道   引言 GigE Vision 是一种通信接口标准可用于各种网搭拓扑上的视觉软件与视频流设备间的交互。该标准是基于 UDP/IP 协议体系并构成了 Gige Vision 协议(工作在应用层包括 GVCP 和 GVSP 两个协议)。需要的设备包括 IP 网络上各种软硬件摄像机、处理器、路由器等。本说明中设备指的是一个 GigE Vision 兼容的可控设备而应用程序指运行在一台主机上的一个与 GigE Vision 兼容的控制程序。 本说明分三部分即设备发现、GVCP 协议和引导寄存器分别在对应的章节中介绍。 
第 1 章 设备发现 PC 在接入设备时需要一种机制发现设备即链路选择、IP 地址配置、设备枚举。 一个设备有一个或多个网络接口可将其连接到该网络。第一步是让设备确定哪些链接是活动的哪些不是。根据IEEE 802.3所定义的以太网自动协商过程然后处理两个合作伙伴之间的链路速度协商。 第二步是IP配置它使用了标准的IP协议。它是由该设备启动的。但其目标是为该设备分配一个唯一的IP地址。GigE视觉设备必须支持动态主机配置协议DHCP和链路本地地址LLA。GigE视觉设备可能支持静态IP。静态IP定义为持续运行整个电源循环或重置的静态IP地址。它被保存在设备中的非易失性存储器中。 第三步设备枚举由应用程序启动以收集关于网络上设备存在的信息。如果应用程序不知道设备的IP地址则可以使用UDP广播命令在应用程序的子网上实现。如果客户端的IP地址已知则可以使用单播UDP来完成。此步骤可通过在设备和应用程序之间的GVCP消息交换来实现。这个答案包含了有关设备的各种信息如制造商、设备型号等。 警告此规范没有标识应用程序如何检索位于不同子网上的设备的IP地址。这可以通过DHCP服务器提供的信息、通过多铸造设备枚举请求或使用DNS来实现。该规范的未来版本可能会解决此主题。 
1.1 链路选择 在进行IP配置之前必须在设备和应用程序之间建立一个物理连接。GigE视觉设备可以使用多个物理链路来增加数据传输的总体可用带宽。当使用多个链路时可以将它们组合在一起数据包可以分布在它们之间以优化带宽利用率。例如通过结合两个1千兆位的以太网链路一个设备可以提供高达2千兆位/秒的带宽。 本规范为一个设备提供了4种不同的物理链路配置 
单链路配置SL配置多链接配置ML配置静态链路聚合组配置静态LAG配置sLAG动态链接聚合组配置动态LAG配置、dLAG 前2个SL和ML配置被手动控制每个网络接口都被单独配置。每个网络接口在启动时都要经过IP配置。因此该设备最终会为每个物理网络接口提供一个不同的IP地址。 最后2个静态LAG和动态LAG使用IEEE 802.1AX规范来创建链路聚合组。在这些配置中将创建单个虚拟链接。因此应用程序对重新分组的物理接口只看到一个IP地址。物理链路的分组在MAC层上执行并且对应用软件是透明的。 
1.1.1 单链路配置 单链路配置SL配置是最简单的配置因为只需要一个物理网络接口。因此所有的控制通道、流通道和消息通道都被连接到这个接口上。 一个设备必须至少有一个网络接口。所有设备都必须支持SL配置。 
1.1.2 多链路配置 当有多个网络接口可用时一种选择是将它们配置为独立的链接其中每个接口都配置为不同的IP地址。 
设备最多支持4个不同的网络接口。如果设备支持ML配置则在使用ML配置时每个网络接口必须独立执行IP配置过程。 
1.1.3 链路聚合组配置 LAG 
1.2 IP配置 本节列出了设备为获得有效IP地址时必须遵循的要求。 
所有设备必须在通电、设备重置或以太网链路协商成功后执行IP配置。设备必须支持以下IP配置协议 动态主机配置协议DHCP链接本地地址LLA  可选地设备可以支持用户可配置的静态IP地址持久性 IP。该地址存储在设备非易失性存储器引导寄存器中将用于设备通电或重置。当使用静态IP地址时用户可以确保所选的IP地址不会在网络上造成任何冲突。 
1.2.1 协议选择 在一个设备上每个IP配置协议的执行顺序必须为 
静态IP如果已得到支持和启用DHCP如果已启用链接-本地地址 设备的出厂默认值必须禁用静态IP并启用DHCP。LLA总是启用的。 
ARM-Linux配置DHCP自动获取IP地址 Arm Linux配置DHCP 注意GVCP还提供了一个命令 FORCEIP_CMD将静态IP地址强制进入设备的接口#0 interface #0。此地址覆盖使用本节中描述的普通IP配置选择获得的IP地址。但此地址在电源循环或设备重置时丢失。 为设备分配有效的IP地址后必须将其相关信息复制到以下引导寄存器中 
当前的IP地址网络接口#0的地址为0x0024当前子网掩码网络接口#0的地址为0x0034当前默认网关网络接口#0的地址为0x0044 
1.2.2 静态IP 如果一个设备支持持久性IP那么它必须使用适当的引导寄存器来这样做并且它必须提供一些非易失性内存来存储这些设置。 以下引导寄存器用于支持持久性IP 
网络接口功能网络接口#0的地址0x0010第31位表示此设备是否支持持久性IP位设置已清除位。网络接口配置网络接口#0的地址0x0014第31位表示用户是否已激活持久IP位设置位清除。持久IP地址网络接口#0的地址为0x064C这是用户分配的持久IP地址。它是由用户来确保这是一个有效的IP地址。持久性子网掩码网络接口#0的地址为0x065C这是与持久性IP地址相关联的子网掩码。持久性默认网关网络接口#0的地址为0x066C当激活持久性IP时这为默认网关。 
1.2.3 DHCP 一个 DHCP 可用标志存储在非易失内存中如果没有储存介质设备必须决定 DHCP 是否可用。设备应支持 DHCP 选项子网掩码和路由选项。 DHCP 重传策略使用 DHCP设备发送一个 DHCPDISCOVER 消息DHCP 服务器返回一个 DHCPOFFER 消息设备发送一个 DHCPREQUEST 消息服务器返回一个 DHCPACK 或 DHCPNAK 消息。若设备没有从服务器接收到任何回应需要重传上述消息至多允许 2 次重传因为最坏情况下设备分别发送3 个上述消息。如果没有 DHCP 服务器可用设备在 DHCP 阶段一般会等待 12s。 DHCP 租借到期设备停止使用 IP 地址并重启 IP 配置循环。 
1.2.4 链接本地地址 LLA 即私有 IP。IP 地址范围从 169.254.1.0 – 169.254.254.255。必须一直被激活。 
1.3 设备枚举 在设备获得一个 IP 后PC 端程序需要收集网络上所有设备相关信息如设备 id、制造商、制造日期等。通过单播或组播 UDP 命令方式分别得到已知或未知 IP 的设备信息并使用 GVCP 协议实现信息交互。 GigE Vision 提供了两种机制来枚举设备 
GVCP 设备发现必备多播DNS / DNS服务发现可选 
1.3.1 GVCP设备发现 广播设备发现 广播设备发现消息可以被应用程序用来查找驻留在同一子网上的设备。它可以使用目标IP地址为255.255.255.255的UDP广播消息来实现。这被RFC1122对互联网主机的要求——通信层定义为一个“有限的广播”。请注意此消息将不会跨路由器发送。这就是为什么只有在同一子网上的设备才会接收到它。使用广播设备发现不可能枚举与应用程序的网卡不同的子网上的设备。 
单播设备发现 单播设备发现消息只能在应用程序事先知道设备IP地址时使用。通过直接向设备IP地址发送UDP包来实现。 
将设备关联到枚举表 为方便将一个设备关联到设备发现列表的对于条目中设备外壳上应有一个序列号和 MAC 地址标签。 
1.3.2 零配置发现 在 GigEVision1.x 中GVCP仅被定义为侦听UDP端口3956。这一限制意味着要在单个物理盒中有多个独立控制的设备至少需要使用多个IP地址和GVCP堆栈。一个GigE Vision产品可以在一个以太网端口后面有几个虚拟MAC地址就好像前面有一个交换机一样但这种方法不能很好地扩展。 GigEVision2.0 版本定义了设备如何使用多播DNS和DNS-SD的组合来进行广告和发现彼此称为Zeroconf发现。除了提供一个更标准和更健壮的发现机制之外还有一个特性是它本机地提供了对各种类型的多服务配置的支持。 首先这种机制将“主机”通常是插入网络的单个硬件的概念与“服务”通过网络提供一些服务的某些应用程序的一个实例如HTTP服务器区分开来。单个主机可以有多个以太网接口以及多个IP地址以及IPv4和IPv6。服务有三个主要组件类型GVCP固定、名称标识特定实例和服务正在运行的UDP/TCP端口号。每个服务还可以有一个唯一的TXT记录列表其中可以包含关于特定实例的详细信息。这允许单个主机有N个IP接口和M个服务而两者之间没有明确的关系。在GigE Vision中每个服务实例对应一个GVCP控制通道。 标准设备 这是SL配置。它用单一的服务来宣传单个主机。 配置 1个以太网端口1个IP地址1个GVCP通道在GVCP端口3956上  具有链路聚合的标准设备 这声明单个服务多个链接被视为一个逻辑链接。 多个以太网端口通过链接聚合、sLAG或mLAG绑定1个IP地址1个GVCP通道在GVCP端口3956上  具有多个链路的无链路聚合的标准设备 这可以发布具有多个IP地址和单个服务的单个主机并映射到ML配置。然后将由应用程序来决定连接到哪一个它总是可以使用列出的第一个并将实现定义哪些链接用于任何特定的流。这相当于GigE Vision 1.x中的行为。 N个以太网端口N个IP地址1个GVCP通道在GVCP端口3956上  具有单链路的多控制器装置 这将使用多个GVCP服务来发布一个主机。每个服务都被视为一个共享相同物理接口的SL配置。 1个以太网端口1个IP地址多个GVCP通道使用不同的UDP端口第一个通道必须使用GVCP端口3956  具有多个独立链路的多控制器设备 每个链接将发布一个不同的主机mDNS规范允许每个主机将发布一个服务。通常每个链接只会响应查询匹配唯一的主机/服务名称对应的链接所以主机链接的另一端只会看到他们连接的接口以及能够推断哪些服务是可以通过特定的链接大多数mDNS响应客户端能够指示本地链接服务通过。这将映射到SL配置但对每个服务都有不同的物理接口。 N个以太网端口N个IP地址N个GVCP通道所有通道必须使用GVCP端口3956  
组播 DNSmDNS 查询类型如 A/AAAA 记录IP v4/IP v6 名称解析查询服务为 SRV 记录。在组播 DNS Internet 草案中为 mDNS 分配的 IP v4 组播地址为 224.0.0.251IP v6 链路本地组播地址为 FF02:FB使用 UDP 端口 5353仅用 UTF-8 编码资源记录名采用DNS 顶级域名.local.“。设备主机名由设备制造商名设备名设备 MAC 地址大写十六进制”.local.构成。 
DNS 服务发现 使用 DNS 来查找特定的服务名称。主要任务是列举服务名称列表及将服务名翻译成相关联的 IP 地址。合法的服务名需为_gvcp._udp。若支持 DNS-SD其TXT 记录必须至少支持如下键规范版本号、设备模式、MAC 地址、设备供应商名、模型名、具体制造商版本信息、具体制造商串名、序列号、自定义名和实例号。 
1.4 设备添加和删除 程序应能够动态响应设备网络拓扑结构变化在网络上添加或删除一个设备。 
1.4.1 删除 现场删除主要由控制协议处理然后程序暂停其发送的消息命令或者一个控制与接收程序可暂停不再到来的 GVSP 发送端视频流。 
1.4.2 添加 
有三种方法 
程序发送 DHCP 请求给服务器后者做出响应并通知添加设备的程序但要求客户端与服务器端联系密切程序定时发送一个 DISCOVERY 命令但这会消耗一定的网络带宽尤其是每次有很多设备需要回应一种解决方案是提供给用户一个控件来刷新设备列表执行组播 DNS 或 DNS 服务发现来发现新设备。 除了网络带宽要分配给新设备外原来的设备不受新添加设备的影响。 
第 2 章 GVCP 协议 GVCP 协议描述了程序与设备之间遵守的通信规范重点介绍了三种类型的通道即控制通道、消息通道和流通道并列举了各种事件命令。 
概览 GVCP是一种依赖于UDP传输层协议的应用层协议。它基本上允许应用程序在设备上配置设备通常是照相机并在设备上实例化流通道GVSP发射器或接收器如果适用以及设备在特定事件发生时通知应用程序。 GVCP仅为一个应用程序主应用程序提供必要的支持以控制设备写入设备。然而如果主应用程序允许这样做那么许多应用程序就可以监视一个设备从一个设备中读取。应用程序也可以请求对已经在主应用程序控制下的设备的控制前提是设备支持并且主应用程序允许这样做。在GVCP下应用程序是主程序设备是从程序。命令请求总是由应用程序发起的。 命令和确认消息必须分别包含在一个数据包中。应用程序必须等待确认消息当请求时才能发送下一个命令消息。这就创建了一个非常基本的握手以确保最小的流量控制。确认消息提供设备实际接收到命令的反馈它还提供命令请求的任何响应数据。 该规范的当前版本使用UDP IPv4作为传输层协议。由于UDP是不可靠的GVCP定义了机制来保证数据包传输的可靠性和确保最小的流量控制。 
2.1 基本概念 在GVCP协议报文中最大传输单元 MTU定义为576byte包括IP头、UDP头、GVCP头以及数据负载部分。 GVCP控制头和数据段部分大小必须是4字节的倍数。 GVCP是基于UDP无连接服务的因此设计了消息重传机制。消息重试次数可以由用户设定默认值为3。reg_d≠0在控制通道关闭后其值会被初始化。此外还启用了端到端连接通过设置心跳计数来侦听链路是否断开。同理其值是可以自定义的。一般来说应用程序端的心跳频率应略低于设备端的13这样可以在 UDP包发送丢失时排除心跳因素的干扰。 GVCP 头包含了键值 0x42用于设备与应用程序识别GVCP包。 设备的第一个 GVCP 端口号必须为 3956。 
2.2 通道 通道即虚拟连接。在本说明中包含1个控制通道0-512个流通道0或1个消息通道。 2.2.1 控制通道 控制信道被应用程序用于与设备进行通信。GVCP定义了两种类型的控制通道 
主控制通道主控制通道由主应用程序创建。主应用程序是指允许写入设备寄存器的应用程序。只允许一个应用程序作为一个设备的主要应用程序。辅助控制通道任何辅助应用程序都会创建辅助控制通道。辅助应用程序只能从设备寄存器中读取它们不能写入其中。这可以用于监视或调试。一个设备可能支持许多辅助应用程序。一个设备不允许支持任何辅助应用程序。 在消息或流通道创建前必须实例化一个控制通道。例如有程序请求对一个寄存器进行写操作以实现一个图像捕获设备应该在寄存器被写入时返回一个响应而不是捕获已完成时。 
1、控制通道权限 GVCP定义了四个级别的特权 
独家访问通过写CCP寄存器授权访问。主程序能对设备进行读写其他程序则不能也不允许创建一个第二控制通道除其发送的DISCOVERY_CMD、FORCEIP_CMD等少数命令其他命令请求设备一概返回一个错误。 控制访问权限与前者不同在于其他程序可以读设备也允许具有控制访问权的二级程序创建一个控制通道。 具备切换能力的控制访问与控制访问不同在于该模式主程序能对设备进行读写允许具有正确凭据的其他程序控制设备。  监控访问条件最弱一般用于调试帮助。只要无独占访问的程序连接设备就可以读该设备。  设备必须记录主程序相关的上下文信息至少包括程序 IP 地址、源UDP端口和授予特权类型以确定其是否可授权给其他程序如果收到的命令消息合法。 在程序端使用一个动态端口号任意设备端使用标准GVCP端口除非通过mDNS通告了一个不同的端口就可以创建控制通道再通过 GVCP DISCOVERY 命令创建链接。在软件开发阶段对设备使用非独占方式访问有助于其他调试工具监控该设备。 
2、控制通道寄存器 
控制通道特权寄存器Control Channel Privilege register (CCP)控制切换键寄存器Control Switchover Key register心跳超时寄存器Heartbeat Timeout register待定超时寄存器Pending Timeout register 
3、打开/关闭控制通道 程序通过对CCP寄存器写请求特权并检查设备 ACK 消息返回的状态根据状态码内容决定是否有打开通道的资格。允许主程序在不关闭控制通道时请求相同的特权类型如可通过写CCP寄存器来直接切换到另一控制特权。通过对CCP寄存器写0来关闭通道并释放主程序的特权。 
4、控制通道心跳 使用心跳序列可以定期检测控制通道是否处于活动状态心跳速率是可自定义的默认每秒1次。设备在接收到主程序任一有效命令后必须重置心跳计数少数命令除外如 ACTIONCMD。心跳计数可通过读CCP寄存器来重置且只能由主程序执行。若设备在超过用户设置的心跳超时时间默认3秒后且没有禁用心跳性能寄存器仍没有收到一个控制消息则必须断开控制通道。如果主程序不能读CCP寄存器或读取非预期数值时即可判定链路断开此时必须实例化控制通道以建立与设备的新链接。 
5、设备控制 主程序可以在打开通道后发送任何受GVCP支持的命令二级程序可发送READREG和READMEM命读取设备速率。DISCOVERY、ACTION和PACKETRESEND命令可以在任何时间由任一程序发送且设备总是在收到后返回一个ACK消息。 
6、使用待定应答 若设备执行命令时间比程序预期的要长则下述机制有助于相互间通信 
执行一个请求所需的最大执行时间。当请求执行时间将超过①中的值使用使用 PENDING_ACK 消息通知程序使其可以等待额外必需的时间来完成该请求。 PENDING_ACK 的 ack_id 值与程序初始请求的 reg_id 值相同。若设备支持该消息则必需在一个PENDING_ACK 和 ACK 命令发出之间响应 DISCOVERY_CMD且不能用该消息响应一个DISCOVERY_CMD、FORCEIP_CMD 和 PACKETRESEND_CMD。 7、控制通道字典 如果一个控制报文所在请求端没有所需特权设备则返回一个只含包头的应答报文其 status 字段必须为 GEV_STATUS_ACCESS_DENIEDlength 字段值为0。下面列出了在通道中各种类型的控制消息。 DISCOVERY DISCOVERY_CMD8 字节其中 8-15 位表示 flag其第 3 位说明设备是否允许广播其应答报文ACKNOWLEDGE 位第7位须设置。     DISCOVERY_ACK如果设备与程序在同一个子网则必须单播一个该报文。如果 DISCOVERY_CMD 报文并没有在设备所在子网接收或者上段提到的 flag 字段设备应该广播该报文。当设备的静态 IP 与程序所在的子网 IP 不匹配时会发生。如果 flag 第 3 位清零且设备与程序不在一个子网段则设备对程序是不可见的。其他说明见 Discovery ACK Delay 引导寄存器。  FORCEIP 该消息要求将一个静态IP地址强制赋给MAC 地址被识别的设备。     FORCEIP_CMD必须在非主程序的GVCP端口上广播该消息包含要访问设备的MAC地址若该地址与设备的MAC地址不匹配或存在独占或控制访问含可切换控制程序时该消息都必须被设备丢弃。可用于实现指定MAC地址的设备两种不同的动作。若该消息的 static_IP 字段为0设备必须重启其所有网络接口上的IP配置周期而不用发送给程序一个 FORCE_ACK 命令否则设备须将其 IP 地址设置为该字段的值成功分配后返回 FORCEIP_ACK若程序请求。如果该静态 IP 需要设备重置其通信栈及内部状态则该 IP 必须在重置后保持不变。该命令 flag 字段的第3位表明设备是否应广播FORCE ACK消息若该位被清零则不能广播应答消息这在该命令执行期间所在子网变动时有效。     FORCEIP_ACK当一个强制性静态IP 地址被赋给一个设备后可以返回一个 FORCEIP_ACK 消息。当程序设置了 FORCEIP_CMD 的 flag 字段的第 3 位时设备应广播此应答消息。  READREG   WRITEREG   READMEM   WRITEMEM   PACKETRESEND   GVSP接收端分组重传处理需要GVSP接收端程序快速发送 PACKETRESENF 命令以防要重传的分组在发送端中丢失。一些网络拓扑保证了UDP分组按序到达但UDP分组在传输中若存在多条路由存在网关和路由器则不能保证按序到达。对于前者GVSP 接收端程序可使用分组ID向下跟踪包序列如果某个包ID跳过了程序立即请求重发丢失分组可以使用超时器检测数据跟踪是否丢失对于后者程序不能确定分组ID 值是有序的因此需要一个分组重传机制可以有多种如使用超时方案。 PENDING   ACTION   
2.2.2 流通道 使用 GVSP 协议使数据从一个 GVSP 发送端转移到 GVSP 接收端。若产品支持 GVSP 流则必须支持从索引 0 顺序启动的流通道不允许索引中间有间隔。发送数据的流通道使用比接收流通道更低的索引该索引可在相关引导寄存器中找到。 
流通道寄存器 一个给定的流信道可以是发射机或接收器。以下寄存器与发射器和接收器流通道相关联 
流通道端口寄存器Stream Channel Port registerSCPx流通道数据包大小寄存器Stream Channel Packet Size registerSCPSx流通道目的地址寄存器Stream Channel Destination Address registerSCDAx流通道配置寄存器Stream Channel Configuration registerSCCFGx 除此之外以下寄存器还与发送端流通道相关联。 
流通道分组延迟寄存器Stream Channel Packet Delay registerSCPDx流通道源端口寄存器Stream Channel Source Port registerSCSPx 
标签数据块 在流通道上传输的相机图像被拆分成合适大小的数据块接收端可通过查找与每个数据块相关联的块 ID 来追踪图像。 一个 GigE Vision2.0 兼容的 GVSP 发送端和接收端如果只支持 64 位 block id64 和 32 位 packet id32则称为纯 GigE Vision2.0若支持 16 位 block id 和 64 位 block id64 称为双模式 GigE Vision2.0这种情况考虑了向后兼容性。 
打开一个流通道 只有主程序可配置流通道通过将主机端口写入 SCPx 寄存器、目的地址写入 SCDAx 寄存器即可打开一个流通道。对于一个给定流通道GVSP 发送端应使用任意的动态端口号作为 UDP 源端口端口号范围 [49152, 65535] 。流通道必须在程序置 SCPx 寄存器的 host port 字段为一个非 0 值时才被激活。当通道打开时当前数据块的索引 block id/block id64 必须被重置为1 。 
操纵一个流通道 当 SCPx 值非 0 时SCSPx 必须返回一个非 0 值对应 GVSP 发送端流通道的源 UDP 端口。只要其对于控制会话的持久不变其值在先前的任何时候为非 0 值也依然有效。若 SCPx 为非 0 值时设备必须默认所有的 UDP 流量来自于设备 SCSPx 端口的 SCDAx 和 SCPx 寄存器列表中的地址和口。 
关闭一个流通道 主程序必须通过将 SCPx 寄存器清零来关闭一个流通道。打开通道SCPx 是最后一个被访问的寄存器关闭通道则为第一个。GVSP 发送端不能发送一个不完整的流分组。相机可通过提供采集启动和采集停止特征来停止流的传送。若当前分组是最后一个发送时GVSP 发送端不需要发送数据追踪该分组行为类似一个退出。 
分组大小 通过发送流测试分组来确定 IP 不分段情况下的最大分组大小用一个简单的二分迭代搜索算法对 SCPSx 寄存器写各种大小的分组以寻找一个最优的分组大小。 
组播 在数据流须发送到多个地方时使用。当在 SCDAx 寄存器的一个组播选项中设置了 GVSP 发送端的目的 IP即可激活组播。 
多网络接口影响 允许流通道上多个网络接口以增加流的可用带宽具体见 2.2.4 节。 
穿越防火墙或网络地址转换NAT设备 设计了 SCSPx 寄存器以允许一个 GVSP 接收端相关的程序通知其上的远程 UDP 端口在 GVSP 收发端流通道上创建一个模拟的双向通行会话。可采用 SCPx 中的源端口在其上发送一个 UDP 分组到 SCSPx 指定的端口通过防火墙的相关配置程序可定时发送类似第一个分组以保持回话间隔推荐 30s。该机制可以使程序在防火墙中打开 UDP 端口但程序不应指望设备回应其发送到设备消息通道上的分组。 
无条件流 在以太网中存在大量视频分布系统尤其一些同时包含多个 GVSP 接收端时需强制确保 GVSP 发送端可以一直持续流动数据而不用关心其主程序或网络的状态如主程序崩溃或关闭或移动到不同的主机上只要该发送端受其主程序支配即可。 
2.2.3 消息通道 允许设备发送一个异步消息到程序。如一个相机触发器被检测到设备可发送一个信号。设备总是初始化该通道上的事务。与控制通道使用的头是相同的但请求发送的方向相反设备 —— 程序。若通道的消息增加时相应regidreg id1mod 655351。允许程序检测一个UDP报文是否丢失即使没有请求应答。 寄存器消息通道端口寄存器消息通道目的地址寄存器消息通道传输超时寄存器消息通道重试计数寄存器消息通道源端口寄存器。 打开/操纵/关闭一个消息通道通过向MCDA寄存器写目的PP并将主机端口写入MCP 寄存器来打开消息通道只允许主程序打开。其他要求与打开流通道类似。如果请求超时设备需重传相同消息重发次数存在MCRC寄存器中若该值为0则不允许重传。通过设置MCTT寄存器的ACKNOWLEGDE位来控制是否支持产生应答消息。当MCP值非0时MCSP必须返回一个非0值对应GVSP发送端流通道的源UDP端口。只要其对于控制会话的持久不变其值在先前的任何时候为非0值也依然有效。当MCSP为非0值时若所有的UDP流量来自于设备MCSP端口的MCDA和MCP寄存器列表中的地址和端口其与一个EVENT ACK或EVENTDATA ACK消息不匹配时设备必须默认将其丢弃。关闭操作与流通道类似但消息通道是写MCP来关闭的。此时如果在设备端正准备发送一个分组则其应该被完整发送但若程序端收到一个消息时就应该丢弃它。异步事件用16位ID表示有2种类型GigEVision标准事件和设备相关事件设备商相关的寄存器用于启用/禁用这些事件XML设备描述文件则报告了这些事件、其索引号和上述寄存器。 组播当消息需要发送到多个地方即可使用组播此时不允许发送应分组。当在MCDA 寄存器的一个组播选项中设置了设备目的印P即可激活组播此时MCTT必须置0 以禁用应答。 穿越防火墙或NAT设备与流通道采用的机制相同不过其中的源端口在MCP寄存器中指定目的端口则在 MCSP中指定。 消息通道字典 程序读消息通道数寄存器来验证消息通道是否有效在打开该通道前应检查该寄存器27位和28位以确定设备是否支持EVENT和EVENTDATA。通过写可用寄存器位来控制相应的事件或事件组是否启用应在XML描述文档中提供该寄存器。 ① EVENT 设备使用EVENT消息通知程序发生了异步事件可在该消息中串联多个事件且全部分组大小必须≦576字节。若使用16位biock id消息中事件数量消息头“length feld/16”若使用64位block id64消息中事件数量lengih field/24”。每个EVENT命令必须贴上64位时间戳rimesamp表示设备上生成的事件时间。值范围在 0-36863的时间标识符保留给GigE Vision 使用其中 32769-36863的事件用于设备异步地报告一个错误36864-65535的事件与具体设备相关在XML描述文档中定义。EVENTCMD主要包括标志位、事件1D、流通道索引、blockid和block id64、时间戳信息EVENT ACK不要求设备请求一个应消息。② EVENTDATA 与EVENT作用类似不同在于可以将与设备相关的数据附加到EVENTDATA消息且不能将多个事件串联进一个该消息命令中只能存储1个事件。 EVENTDATA CMD与EVENTCMD类似但多了一项data表示原始数据在XML设备描述文档中指定 EVENTDATA ACK与EVENT ACK类似。 2.2.4 多网络接口设备 影响控制通道程序必须在设备接口#0上实例化该通道并获得设备控制权设备不能回应来自非#0 接口的 GVCP 请求该报文默认被丢弃。 影响流通道在指定流通道上输送数据时GVSP发送端必须使用相应的SCPx寄存器nehwork interface index字段指定的网络接口如果GVSP 接收端是一个设备则在指定流通道上接收数据时也必须使用上述接口如果不是设备则不需要实现引导寄存器。由于#0是唯一支持GVCP 的接口故程序必须在其上发送PACKETRESENDCMD命令该接口存放在SCPx的stream channel index字段。影响消息通道如果支持该通道则其必须在接口#0上实例化。 ☆