KR20130107618A - Usb 디바이스 장치의 데이터를 클라이언트 단말을 통해 서버로 전송하는 데이터 처리 방법 및 클라이언트 단말 - Google Patents

Usb 디바이스 장치의 데이터를 클라이언트 단말을 통해 서버로 전송하는 데이터 처리 방법 및 클라이언트 단말 Download PDF

Info

Publication number
KR20130107618A
KR20130107618A KR1020120029537A KR20120029537A KR20130107618A KR 20130107618 A KR20130107618 A KR 20130107618A KR 1020120029537 A KR1020120029537 A KR 1020120029537A KR 20120029537 A KR20120029537 A KR 20120029537A KR 20130107618 A KR20130107618 A KR 20130107618A
Authority
KR
South Korea
Prior art keywords
data
server
client terminal
usb
usb device
Prior art date
Application number
KR1020120029537A
Other languages
English (en)
Inventor
권은정
권영달
한상훈
권순종
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020120029537A priority Critical patent/KR20130107618A/ko
Priority to US13/663,621 priority patent/US8819125B2/en
Publication of KR20130107618A publication Critical patent/KR20130107618A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/168Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP] specially adapted for link layer protocols, e.g. asynchronous transfer mode [ATM], synchronous optical network [SONET] or point-to-point protocol [PPP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/169Special adaptations of TCP, UDP or IP for interworking of IP based networks with other networks 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)

Abstract

서버와 통신하는 클라이언트 단말의 데이터 처리 방법은, 서버로부터 클라이언트 단말에 장착된 하나의 USB 장치로부터 판독될 데이터에 대한 데이터 사이즈를 포함하며 하나의 USB 장치의 데이터를 요청하는 데이터 요청 메시지를 수신하는 단계와, 데이터 요청 메시지에 포함된 데이터 사이즈만큼의 데이터를 USB 장치로부터 획득하는 단계와, 클라이언트 단말에 연결된 다른 USB 장치들의 동작 상태에 따라서, 하나의 USB 장치로부터 판독될 데이터에 대한 추가로 전송가능한 데이터 사이즈 정보를 결정하는 단계와, 추가로 전송가능한 데이터 사이즈 정보 및 획득된 데이터를 포함하는 데이터 전송 완료 메시지를 서버로 전송하는 단계를 포함한다.

Description

USB 디바이스 장치의 데이터를 클라이언트 단말을 통해 서버로 전송하는 데이터 처리 방법 및 클라이언트 단말{Method and apparatus for data transfer of remote USB device between server and client}
본 발명은 서버 기반 컴퓨팅 환경에서의 데이터 전송 기술에 관한 것으로, 더욱 상세하게는, 클라이언트 단말에 연결된 USB 장치가 서버에 인식되어 데이터를 송수신함에 있어 연결된 세션을 유지하고 데이터를 송수신하는 과정에서 지연시간을 최소화하기 위한 방법에 관한 것이다.
원격 접속 프로토콜을 통해 서버에 접속하는 클라이언트 단말은 서버에 접속하여 서버의 리소스를 이용하여 실행한 결과를 클라이언트 단말에서 확인할 수 있다. 즉, 클라이언트 단말은 원격 접속 프로토콜을 통해 서버에서 실행한 응용 프로그램 실행 결과 화면만을 수신하기 때문에 클라이언트의 컴퓨팅 자원은 감소하고 그에 따라 클라이언트의 가격도 상대적으로 낮아지는 장점이 있다.
또한, 클라이언트 단말에서 서버로 데이터를 전송하는 다자간 영상 회의나 영상 통화 등 클라이언트에 장착된 외부 장치를 통해 입력되는 데이터를 서버로 전송하고, 서버에서는 클라이언트 단말로부터 수신한 데이터를 처리하여 실행한 그 결과 화면을 다른 클라이언트 단말로 전송할 수도 있다. 이러한 방법을 제공하기 위해 서버는 클라이언트 단말에 장착된 외부 장치를 인식하고, 인식된 각 장치별로 논리적인 가상 채널을 할당함으로써 데이터 송수신에 대한 독립적인 통신 방식을 제공할 수 있다. 일반적으로 원격 전송 프로토콜은 가상 채널의 성격에 따라 정적 가상 채널과 동적 가상 채널로 구분하고 있다. 동적 가상 채널의 경우 USB 인터페이스를 통해 연결된 외부 장치가 클라이언트에 동적으로 플러그 및 언플러그(Plug & Unplug)될 때 이용되는 채널이다. 즉, 동적 가상 채널을 통해 USB 장치의 데이터를 전송할 때, 동적 가상 채널의 수에 따라서, 대역폭이 조정될 수 있다.
USB 인터페이스를 갖는 외부 장치의 성격상 서버가 클라이언트에 장착된 USB 디바이스에 데이터를 쓰는 경우(예, 파일 시스템을 갖는 저장 장치), 클라이언트에 장착된 USB 디바이스가 서버로 데이터를 주로 전송하는 경우(예, 화상 카메라) 등이 존재한다. 클라이언트에 장착된 USB 장치의 데이터를 서버로 송수신하기 위한 RDP(Remote Desktop Protocol) 확장 프로토콜인 USB 장치를 위한 통신 프로토콜이 존재하고, 이를 통해 USB 장치의 데이터를 서버와 단말 간 데이터 처리를 가능하게 할 수 있다.
출원번호: 10-2005-0113510, 출원일자: 2005년 11월 25일, 출원인: 마이크로소프트 코포레이션, 발명의 명칭: 애플리케이션 서버 환경에서의 USB 장치.
본 발명은 클라이언트에 연결된 USB 장치가 서버에 의해 인식되어 USB 장치의 데이터가 서버와 클라이언트 단말 사이에 송수신될 때, 연결된 세션을 유지하고 데이터를 송수신하는데 걸리는 지연 시간을 최소화하기 위한 방법을 제공한다.
일 측면에 따른 서버와 통신하는 클라이언트 단말의 데이터 처리 방법은, 서버로부터 클라이언트 단말에 장착된 하나의 USB 장치로부터 판독될 데이터에 대한 데이터 사이즈를 포함하며 하나의 USB 장치의 데이터를 요청하는 데이터 요청 메시지를 수신하는 단계와, 데이터 요청 메시지에 포함된 데이터 사이즈만큼의 데이터를 USB 장치로부터 획득하는 단계와, 클라이언트 단말에 연결된 다른 USB 장치들의 동작 상태에 따라서, 하나의 USB 장치로부터 판독될 데이터에 대한 추가로 전송가능한 데이터 사이즈 정보를 결정하는 단계와, 추가로 전송가능한 데이터 사이즈 정보 및 획득된 데이터를 포함하는 데이터 전송 완료 메시지를 서버로 전송하는 단계를 포함한다.
다른 측면에 따른 클라이언트 단말은, 복수의 USB 장치와 연결된 USB 인터페이스부와, 서버와 통신하는 통신부와, 서버로부터 복수의 USB 장치 중 하나의 USB 장치의 데이터를 요청하는 데이터 요청 메시지가 수신되면, 데이터 요청 메시지에 포함된 USB 장치로부터 판독될 데이터에 대한 데이터 사이즈의 데이터를 USB 장치로부터 획득하고, 클라이언트 단말에 연결된 다른 USB 장치들의 동작 상태에 따라서, 하나의 USB 장치로부터 판독될 데이터에 대한 추가로 전송가능한 데이터 사이즈를 결정하고, 추가로 전송가능한 데이터 사이즈 정보 및 획득된 데이터를 포함하는 데이터 전송 완료 메시지를 생성하여 통신부를 통해 서버로 전송하는 제어부를 포함한다.
본 발명에 따르면, 실시간으로 현재 클라이언트 단말에 장착된 USB 장치의 동작상태를 파악함으로써 동적 가상 채널의 대역폭 값을 변경하고, 클라이언트 단말이 변경된 대역폭을 통해 추가 전송가능한 데이터 사이즈 정보를 서버로 알려줄 수 있으므로, 원격 데이터 전송 시 USB 장치를 통한 데이터 처리를 원활히 제공할 수 있다.
도 1은 본 발명의 일 실시예에 따른 서버와 USB 장치가 부착된 클라이언트 간에 통신이 수행되는 시스템을 나타내는 도면이다.
도 2는 본 발명의 일 실시예에 따른 서버와, 클라이언트 단말과 USB 장치가 통신하는 전반적인 과정을 나타내는 도면이다.
도 3은 본 발명의 일 실시예에 따른 서버가 클라이언트 단말에 부착된 USB 장치로부터 데이터를 획득하는 과정을 나타내는 도면이다.
도 4는 본 발명의 다른 실시예에 따른 서버가 클라이언트 단말에 부착된 USB 장치로부터 데이터를 획득하는 과정을 나타내는 도면이다.
도 5는 본 발명의 일 실시예에 따른 클라이언트 단말의 데이터 처리 과정을 나타내는 순서도이다.
도 6은 본 발명의 일 실시예에 따른 데이터 전송 완료 메시지의 구성의 일 예를 나타내는 도면이다.
도 7은 본 발명의 일 실시예에 따른 클라이언트 단말의 구성을 나타내는 블록도이다.
이하, 첨부된 도면을 참조하여 본 발명의 일 실시예를 상세하게 설명한다. 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 또한, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 본 발명의 일 실시예에 따른 서버와 USB 장치가 부착된 클라이언트 간에 통신이 수행되는 시스템을 나타내는 도면이다.
일 실시예에 따른 시스템(100)은, 서버(110), 클라이언트 단말(120) 및 클라이언트 단말(120)에 부착된 USB 장치(131, 132)를 포함한다.
클라이언트 단말(120)은 개인용 컴퓨터, 랩탑 컴퓨터, 휴대 전화, 스마트 단말 등 다양한 형태의 단말 장치일 수 있다. 서버(110)와 통신하는 1 개의 클라이언트 단말(120)이 도시되어 있으나, 서버(110)는 복수의 클라이언트 단말이 접속하여 통신하도록 구성된다.
서버(110)와 클라이언트 단말(120)는 RDP(Remote Desktop Protocol)와 같은 원격 전송 프로토콜을 이용하여 양방향으로 통신한다. 클라이언트 단말(120)은 각각 원격 접속 프로토콜(RDP)을 이용하여, 서버(110)에 접속하게 되고, 서버(110)는 클라이언트 단말(120)에 원격 접속 처리를 위한 세션을 할당할 수 있다.
클라이언트 단말(120)에는 USB 장치들(131, 132)이 장착된다. 서버(110)는 각 클라이언트 단말(120)에 장착된 USB 장치들(131, 132)로부터 데이터를 읽거나 쓰도록 동작할 수 있다. USB 장치들(131, 132)은, 웹 카메라, 외장형 메모리, 마우스, 키패드 등 다양할 수 있다.
서버(110)는 클라이언트 단말(120)과 같은 다수의 클라이언트 단말이 접속하여 처리하는 구조이기 때문에, 새로운 클라이언트 단말이 접속할 때마다 세션이 늘어나게 된다. 세션이 할당되는 과정에서, 클라이언트 단말(120)과 서버(110)는 송수신하려고 하는 데이터의 특징에 따라 가상 채널을 생성하고, 생성된 가상 채널에 대한 세션을 관리한다.
클라이언트 단말(120)에 USB 장치(131, 132)가 탈부착될 때, 서버(110)에서 생성된 가상 채널을 이용하여 USB 장치(131, 132)에 대한 제어 정보, 입출력 정보 및 송수신 목적이 되는 데이터가 전달이 된다. 이러한 과정에서 서버(110)는 다수의 가상 채널을 논리적으로 분리하여 체계적으로 관리하고, 클라이언트 단말(120)은 장착된 USB 장치(131, 132)로부터 서버(110)가 데이터를 송수신할 수 있는 지연시간을 최소화시킬 필요가 있다.
서버(110)와 USB 장치(131, 132)가 부착된 클라이언트 단말(120) 간에 송수신 되는 메시지에 대한 규약 및 절차에 관한 통신 메커니즘은 RDP USB Devices Virtual Channel Extension 규격에 그 내용이 기술되어 있다.
기본적인 개념은 클라이언트 단말(120)이 서버(110)에 RDP를 이용하여 접속을 하게 되면 가상 채널이 할당되어 해당 채널로 USB 장치(131, 132)에 대한 USB 디바이스 디스크립터 정보를 서버(110)로 전송하고, 이와 같이, USB 장치(131, 132)의 디바이스 디스크립터 정보는 클라이언트(120)에 탑재된 원격 접속 처리 소프트웨어를 통해 서버(110)와 공유된다. USB 디바이스 디스크립터 정보는 USB 장치의 허브 개수, 포트 정보, 허브 이름, 컨트롤러 이름과 같은 USB 장치의 형상 정보 및 USB 장치의 디바이스 드라이버 정보 등을 포함할 수 있다.
이에 대한 처리가 완료되면, 서버(110)는 USB 장치(131, 132)의 디바이스 디스크립터 정보를 이용하여 USB 장치(131, 132)에 데이터를 읽거나 쓸 수가 있다.
USB 디바이스 디스크립터 정보는 URB(Universal Request Block) 포맷으로 생성되어, 클라이언트 단말(120)에서 동작하는 RDP 클라이언트 소프트웨어(RDP Client S/W) 및/또는 리다이렉터 데몬(Redirector Daemon)을 통해 서버(110)로 전송된다. RDP 클라이언트 소프트웨어를 통해서는 URB 포맷의 데이터가 RDP 가상 채널을 통해 전송되며, 리다이렉터 데몬을 통해 전송하는 경우는 URB 포맷의 데이터를 TCP/IP 소켓 통신으로 전송된다.
클라이언트 단말(120)에서 서버(110)로 향하는 상향 데이터에 대해서 두 가지 방법이 있다. 첫번째, 상향 데이터의 트래픽이 많은 경우 상대적으로 데이터 오버헤드가 적은(RDP 헤더를 붙지 않기 때문에) 리다이렉터 데몬을 통해 USB 장치에 대한 정보를 바로 서버로 전송하는 방법이 있다. 둘째, USB 장치로부터의 데이터를 리다이렉터 데몬을 거치고 나서 또 다시 RDP 클라이언트 소프트웨어를 거쳐 서버로 전송하는 방법이 있다. 두 번째 방법은 클라이언트가 상향(클라이언트 -> 서버) 및 하향 (서버 -> 클라이언트) 데이터 처리를 모두 RDP 클라이언트에서 처리하는 구조이므로 서버(110)상에서 RDP 세션 별로 USB 장치를 쉽게 구별할 수 있는 장점이 있지만 상향 트래픽이 많은 경우 성능이 좋지 않을 수가 있다.
일 실시예에 따르면, 상향 데이터 트래픽이 많을 경우, 리다이렉터 데몬을 통해 USB 장치에 대한 정보를 바로 서버로 전송하는 방법을 우선적으로 이용할 수 있다. 차선적인 방법으로 리다이렉터 데몬을 거치고 나서 또 다시 RDP 클라이언트 소프트웨어를 거쳐 서버(110)로 전송할 수 있다.
도 2는 본 발명의 일 실시예에 따른 서버(110)와, 클라이언트 단말(120)과 USB 장치(131)가 통신하는 전반적인 과정을 나타내는 도면이다.
클라이언트 단말(120)이 서버(110)에 접속하게 되면서 정적 가상 채널이 생성된다(210). 정적 가상 채널 생성을 통해 클라이언트 단말(120)과 서버(110) 사이의 일반적 클라이언트/서버 관계가 설정될 수 있다. 정적 가상 채널 생성 과정에서 클라이언트 단말(120)과 서버(110) 간의 지원할 수 있는 파라미터 값을 교환하면서 클라이언트 단말(120)이 동적 가상 채널을 제공할 수 있는 경우, 클라이언트 단말(120)과 서버(110) 사이에는 채널 ID, 채널 이름 등을 가지는 동적 가상 채널이 생성된다(220).
이러한 동작 과정에서 클라이언트 단말(120)에 USB 장치(131)가 플러그인 되거나 또는 클라이언트 단말(120)에 이미 USB 장치(131)를 장착해 놓은 상태인 경우(230), 서버(110)와 클라이언트 단말(120) 간에 USB 장치(131)의 데이터를 처리하기 위해 어떤 동적 가상 채널을 이용할 것인지 협의하고, 클라이언트 단말(120)과 서버(110) 간에 사용할 채널이 생성되었음을 서로 알리는 채널 설정 과정이 수행된다(240).
그런 다음, 클라이언트 단말(120)은 USB 장치(131)로부터 USB 장치(131)의 디바이스 디스크립터 정보를 획득하고(250), 디바이스 디스크립터 정보를 서버(100)로 전송하는 새로운 디바이스 통지(New Device Notification) 과정을 수행한다(260). 새로운 디바이스 통지 과정(260)에서 클라이언트 단말(120)로부터 서버(110)로 전송되는 Add Device Channel 메시지(ADD_VIRTUAL_CHANNEL)와 Add Device Message(ADD_DEVICE)가 이용된다.
이와 같은 일련의 처리 과정을 거치고 난 후, 서버(110)는 USB 장치(131)로부터 데이터를 읽어오거나 USB 장치(131)에 데이터를 쓰는 입출력 시퀀스를 처리할 수 있고(270), 클라이언트 단말(120)은 서버(110)와의 입출력 시퀀스에 따라 USB 장치(131)로부터 데이터를 읽어오거나 USB 장치(131)로 데이터를 쓸 수 있다(280).
서버(110)는 클라이언트 단말(120)에 장착된 USB 장치(131)의 데이터를 획득하기 위해서는 클라이언트 단말(120)에 장착된 USB 장치(131)로부터 판독될 데이터에 대한 데이터 사이즈 정보를 포함하며, USB 장치의 데이터를 요청하는 데이터 요청 메시지를 클라이언트 단말(120)로 전송한다. 이러한 데이터 요청 메시지를 Transfer In Request 메시지라고 한다. 또한, 서버(110)는 클라이언트 단말(120)에 장착된 USB 장치(131)로 데이터를 쓰기 위해서는 Transfer Out Request 메시지를 클라이언트 단말(120)로 전송할 수 있다. 서버(110)는 가상의 USB 장치들을 이용하기 위해 가상 채널을 생성하는 과정에서 디바이스 디스크립터 정보를 획득하고 관리하고 있는 상태이므로 Transfer In Request 메시지에 출력 버퍼 사이즈 정보(OutputBufferSize)를 실어 클라이언트로 전송할 수 있다. 출력 버퍼 사이즈 정보는 USB 장치(131)에 대해 생성된 동적 가상 채널을 통해 USB 장치(131)로부터 판독되어 서버(110)로 전달될 것이 요청되는 데이터의 데이터 사이즈를 나타낸다.
동적 채널 생성 과정(220)에서, 서버(110)는 서버(110)가 지원하는 가상채널의 버전 정보(Version 1 또는 Version 2), 채널 번호, 명령 코드 값, 동적 가상 채널별로 정의된 우선순위 클래스(Priority Class) 등을 포함하는 Dynamic VC Create Request PDU 메시지를 통해 클라이언트 단말(120)로 전송한다. 우선순위 클래스는 4가지 타입으로 구분되어, 각 타입에 따라 얼만큼의 대역폭을 점유할지를 나타낸다. 우선순위 클래스에 대응하는 4개의 우선순위 값은, 추후에 서버(110)가 단말(120)로 전송하는 Transfer in Request 메시지에 포함되어, Transfer in Request 메시지에 따라 USB 장치(131)의 데이터 전송에 할당될 대역폭을 나타낼 수 있다.
예를 들어, 우선순위 클래스를 전송할 때, 서버(110)는 4개의 우선순위 값(PriortyCharge0, PriortyCharge1, PriortyCharge2, PriortyCharge3)을 정의하여 대역 할당 알고리즘에 따라 클라이언트 단말(120)에 설치된 USB 장치(131)가 갖는 우선순위 값에 따라 대역폭을 사용할 수 있도록 조정할 수 있다. 이와 같은 방법으로, 서버(100)와 클라이언트 단말(120) 간 대역폭 사용에 대한 우선 순위 값을 공유할 수 있고, 그럼 다음 서버(110)는 해당 동적 가상 채널이 사용할 우선 순위 값을 클라이언트 단말(120)로 전송함으로써 해당 가상 채널에 대해 사용할 수 있는 대역폭의 양이 설정될 수 있다.
일반적으로는, 4가지 우선순위 별로 할당된 대역폭은 고정되어, 어느 특정 USB 장치가 자신에 할당된 대역폭을 사용하지 않더라도 다른 USB 장치에서 사용되고 있지 않은 대역폭을 추가적으로 사용할 수 없다.
예를 들면, 클라이언트 단말(120)에 연결된 USB 장치(131)가 USB 웹 카메라이고, USB 웹 카메라에 대해 대역폭의 50%가 예약된 경우, USB 웹 카메라가 실제로 그 대역폭을 활용하여 데이터를 보내는지 상관없이 다른 USB 장치(132)는 나머지 50%만을 쓸 수 있다. USB 웹 카메라는 항상 USB 포트에 끼워져 있지만 대역폭이 필요한 때는 화상 정보를 전송할 때뿐이지만, USB 웹 카메라가 할당된 대역폭을 이용하지 않는 경우에도, 항상 일정량의 대역폭을 점유하고 있게 되면 대역폭이 낭비될 수 있다. 예를 들어, 클라이언트 단말(120)에 장착된 USB 웹 카메라 외에 정확도를 요구하는 대량의 데이터(Bulk Transfer)를 송수신하기 위한 다른 USB 장치가 존재하는 경우, USB 웹 카메라와 같은 장치를 통한 실시간 데이터 전송을 위한 대역 외 나머지를 이용하기 때문에 데이터 처리에 지연시간이 발생하게 된다.
또한, USB 장치(131)를 위한 가상 채널 처리 방식은 서버(110)와 클라이언트 단말(120) 간에 USB 장치(131)의 데이터를 송수신하기 위한 제어 정보 값이 실제 전송할 때의 제어 정보 값과 상이할 경우 생성된 가상 채널을 종료시키고 처음부터 가상 채널 초기화 과정을 거치게 된다. 데이터를 송수신하기 위한 제어 정보 값은 예를 들어, 동적 가상 채널 설정 정보, 데이터 전송을 위해 초기 수행해야 하는 메시지 처리 절차에서 발생되는 정보 등을 포함할 수 있다. 이러한 일련의 과정을 재수행한다는 것은 서비스를 제공받는 최종 사용자에게는 결국 서비스 이용을 위한 지연시간을 증가시게 되어 비효율적일 수 있다.
본 발명의 일 실시예에 따르면, 서버(110) 및 클라이언트 단말(120)은 동적 가상 채널을 통해 USB 장치(131)의 데이터를 전송함에 있어서 대역폭을 제어할 수가 있다. 예를 들어, 화상정보와 같은 리얼 타임 형식 및 정확도가 불필요한 대량 데이터를 전송하고자 할 때에는, 정해진 시간 내에 데이터를 전달하는 것이 목적이기 때문에, 전달할 데이터 량에 따라 USB 데이터 전송에 이용되는 대역폭을 점유하게 할 수 있다.
도 3은 본 발명의 일 실시예에 따른 서버(110)가 클라이언트 단말(120)에 부착된 USB 장치(131)로부터 데이터를 획득하는 과정을 나타내는 도면이다.
전술한 바와 같이, 서버(110)는 USB 장치(131)가 장착된 클라이언트 단말(120)의 USB 장치(131)를 서버(110)에서 이용하기 위해 가상 채널을 생성하고 I/O 제어 명령을 통해 서버(110)는 클라이언트 단말(120)을 통해 USB 장치(131)의 디바이스 디스크립터 정보(Device Descriptor)를 획득한다.
이후, 서버(110)는 클라이언트 단말(120)에 장착된 USB 장치(131)의 데이터를 송수신할 수 있는데, 서버(110)에서 원격 USB 장치(131)의 데이터를 획득하기 위해서는 Transfer In Request 메시지를 클라이언트 단말(120)로 전송한다(310). 서버(110)는 획득한 디바이스 디스크립터를 통해 대량의 데이터를 받아오고자 클라이언트 단말(120)의 출력 버퍼 사이즈 값을 설정하여 Transfer Request 메시지를 전송한다(310).
클라이언트 단말(120)에 장착된 USB 장치(131)가 USB 웹 카메라인 경우에, 서버(110)는 Transfer In Request 메시지의 헤더 정보에 일정한 통신 속도를 요구하면서 어느 정도 약간의 Error를 감수할 수 있는 Isochronous Transfer(TS_URB_ISOCH_TRANSFER) 정보를 설정하여 클라이언트 단말(120)로 전송할 수 있다. Isochronous Transfer 정보는 기본적으로 클라이언트 단말(120)에 장착된 USB 장치(131)의 Interface에 대한 정보(인터페이스 수, 데이터를 전송하는 연결 통로인 pipe의 수, 각 pipe에 대한 정보에 대한 요청 정보)를 포함한다.
클라이언트 단말(120)은 내부의 메모리(도시되지 않음)에 Transfer in Request 메시지에 정의된 출력 버퍼 사이즈에 해당하는 버퍼를 할당하고(320), USB 장치 드라이버(도시되지 않음)를 통해 USB 장치(131)에 저장된 데이터 중 출력 버퍼 사이즈만큼의 데이터를 요청한다(320). 클라이언트 단말(120)은 요청에 따라 USB 장치(131)로부터 판독된 데이터를 클라이언트 단말(120)의 할당된 버퍼(도시되지 않음)에 저장한다(330).
이 과정에서 버퍼에 저장된 데이터의 사이즈가 특정 사이즈(예를 들어, 1,600bytes) 이상인 경우 또는 가상 채널로 전송하고자 하는 데이터 사이즈 보다 경우 데이터를 분할할 수 있다(340). 데이터를 분할하는 동작(340)은 선택적으로 수행될 수 있다.
클라이언트 단말(120)은 판독된 데이터를 패킷화하여 생성된 데이터 전송 완료 메시지를 서버(120)로 전송한다(350). 서버(120)는 데이터가 분할된 경우, 데이터 전송 완료 메시지를 통해 수신된 데이터를 재조립하는 과정을 수행할 수 있다.
이와 같이, 클라이언트 단말(120)은 Transfer In Request 메시지를 수신하여 해석하고 서버(110)가 요구하는 데이터 사이즈에 따라 클라이언트 단말(120)에 장착된 USB 웹 카메라에서 출력되는 데이터를 서버(110)로 전송할 수 있다.
도 4는 본 발명의 다른 실시예에 따른 서버(110)가 클라이언트 단말(120)에 부착된 USB 장치(131)로부터 데이터를 획득하는 과정을 나타내는 도면이다.
도 4를 참조하면, 서버(110)는 Transfer In Request 메시지를 클라이언트 단말(120)로 전송한다(410). Transfer In Request 메시지에는 USB 장치(131)로부터 읽어올 데이터에 대한 데이터 사이즈에 대응하는 출력 버퍼 사이즈 정보가 포함된다.
Tansfer in Request 메시지를 수신한 클라이언트 단말(120)은 Transfer In Request 메시지에 포함될 출력 버퍼 사이즈만큼의 버퍼를 할당하고, USB 장치(131)로 데이터를 요청한다(420). 이와 동시에, 클라이언트 단말(120)은 클라이언트 단말에 연결된 다른 USB 장치들의 동작 상태에 따라서 추가적으로 전송가능한 데이터 사이즈를 결정한다(420).
또한, 클라이언트 단말(120)은 USB 장치(131)로부터 획득한 데이터는 할당된 버퍼에 저장한다(430).
클라이언트 단말(120)은 추가 전송가능한 데이터 사이즈 정보를 서버(110)로 전송할 데이터 전송 완료 메시지의 헤더 값에 설정한다(440). 클라이언트 단말(120)은 USB 장치(131)로부터 획득된 데이터 및 추가 전송할 데이터 사이즈를 포함하는 데이터 전송 완료 메시지를 서버(110)로 전송할 수 있다(460). 데이터 전송 완료 메시지는 Transfer In Request 메시지에 대응 응답으로 서버(120)로 전송되는 URB completion 메시지일 수 있다.
또한, 서버(110)로 전송되어야 하는 총 데이터의 사이즈가 동적 가상 채널을 통해 전송될 수 있는 데이터 사이즈보다 큰 경우, 클라이언트 단말(120)은 전송될 데이터를 분할하고(450), 분할된 데이터를 패킷화하여 하여 전송할 수 있다(460).
서버(110)는 다음 번에 USB 장치(131)의 데이터를 요청하는 Transfer In Request 메시지를 클라이언트 단말(120)로 보낼 때, 추가 전송가능한 데이터 사이즈 정보를 이용하여 출력 버퍼 사이즈를 다시 결정하고, 결정된 출력 버퍼 사이즈를 포함하는 Transfer In Request 메시지를 전송할 수 있다. 따라서, 이후에는, 서버(110)는 변경된 출력 버퍼 사이즈에 대응하는 데이터를 USB 장치(131)로부터 읽어올 수 있으므로, 클라이언트 단말(120)와 서버(110)는 USB 장치(131)로부터 판독된 데이터를 전송하는데 걸리는 지연시간을 최소화할 수 있다.
도 5는 본 발명의 일 실시예에 따른 클라이언트 단말(120)에서 가상 채널을 통해 전송되는 USB 장치(131)의 데이터를 처리하는 과정을 나타내는 순서도이다.
클라이언트 단말(120)은 서버(110)로부터 전송되는 Transfer in Request 메시지를 수신한다(510).
클라이언트 단말(120)은 Transfer in Request 메시지를 해석하고, Transfer in Request 메시지에 포함된 버퍼 사이즈만큼의 데이터를 USB 장치로부터 획득한다(520).
클라이언트 단말(120)에 USB 장치(131)를 포함하는 복수의 USB 장치가 연결된 경우, 각 USB 장치에 대해 설정된 대역폭의 상태를 확인하고, 이를 최대한 이용하도록 클라이언트 단말(120)에서 관리하고 있는 USB 장치들의 동작 상태를 파악한다. 예를 들어, 클라이언트 단말(1201)은 USB 웹 카메라가 연결은 되어 있으나 동작하지 않는 경우, 동적 가상 채널에 할당된 클래스별 우선순위 값을 재계산하여 동적 가상 채널의 정보를 변경할 수 있다.
서버(110)와 클라이언트 단말(120) 간 통신 지연시간을 줄이기 위해 USB 장치 드라이버의 메모리에 저장된 데이터 사이즈를 확인한 후(530), 추가로 전송가능한 데이터 사이즈 정보를 결정한다(540). 클라이언트 단말(120)은 재계산된 우선순위 값에 따라 데이터 전송에 이용되는 대역폭을 결정할 수 있고, 결정된 대역폭에 따라 USB 장치에서 추가로 판독되어 서버(110)로 전송될 수 있는 데이터 사이즈를 결정할 수 있다.
클라이언트 단말(120)은 추가로 전송가능한 데이터 사이즈 정보 및 획득된 데이터를 포함하는 데이터 전송 완료 메시지를 서버(110)로 전송한다(550).
클라이언트 단말(120)이 전송한 USB Request Completion 메시지를 수신한 서버(110)는 USB Request Completion 메시지의 헤더 정보에 표기된 추가 전송 가능한 데이터 사이즈를 고려하여, Transfer In Request 메시지에 추가로 전송이 요청되어야 할 데이터 사이즈에 해당하는 출력 데이터 버퍼 사이즈 정보를 전송할 수 있다. 그러므로, 이전에 클라이언트 단말(120)로부터 획득한 데이터 사이즈보다 많은 데이터를 획득하고 지원되는 대역폭 내에서 서버(110)와 클라이언트 단말(120) 간의 빠른 데이터 송수신이 가능함으로 지연시간이 줄어들 수 있다.
도 6은 본 발명의 일 실시예에 따른 데이터 전송 완료 메시지의 구성의 일 예를 나타내는 도면이다.
클라이언트 단말(120)은 Transfer in Request 메시지를 수신하고 버퍼에 저장된 데이터를 서버(110)로 전송하기 위해서는 데이터 전송 완료 메시지를 전송하게 된다. 데이터 전송 완료 메시지는 전술한 바와 같이 규격의 URB completion 메시지(610)에 해당된다.
도 6의 URB completion 메시지(610)는 USB 원격 처리를 위한 공유 헤더(Header)와 이전에 수신된 Transfer in Request 메시지에 대응하는 RequestID 값을 설정하게 되며, 또한 서버(110)에 전송될 버퍼에 저장된 데이터 값을 포함하고 있다.
서버(110)와 클라이언트 단말(120) 간의 데이터 처리의 지연시간을 줄이기 위한 방안으로, URB Completion 메시지의 HResult 필드(620)의 값의 'C' 필드(622)에 특정 값(예를 들어, '1')이 정의된 경우 Code 필드(624)에 추가로 전송가능한 데이터 사이즈 정보가 포함될 수 있다.
Code 필드(624)의 값은 2byes로 상위 1bit값은 이후 Transfer in Request 메시지가 추가 데이터 전송을 요청해야 함을 나타내며, 하위 15bits값은 실제 추가 요청되어야 할 데이터 사이즈를 나타낼 수 있다. 이러한 방법은 USB 장치(131)를 서버(110)에서 원격으로 이용할 수 있도록 하는 처리 규정에 위배되지 아니하며, 구현 시 자체 정의가 가능하도록 허가하고 있다.
도 7은 본 발명의 일 실시예에 따른 클라이언트 단말의 구성을 나타내는 블록도이다.
클라이언트 단말(120)은 제어부(710), 통신부(720) 및 USB 인터페이스부(730)를 포함할 수 있다.
제어부(710)는 클라이언트 단말(120)의 동작 전반을 제어하도록 구성될 수 있다. 제어부(710)는 원격 접속 프로토콜에 따라 서버(110)와 통신할 수 있도록 한다. 이를 위해, 제어부(710)에는 RDP 클라이언트 소프트웨어(RDP Client S/W) 및/또는 리다이렉터 데몬(Redirector Daemon)과 같은 원격 접속 처리 소프트웨어가 설치되어 실행될 수 있다.
통신부(720)는 원격 접속 서비스를 제공하는 서버(110)와 통신한다.
USB 인터페이스부(730)는 복수의 USB 인터페이스(도시되지 않음)를 포함한다. 각 USB 인터페이스에는, 웹 카메라, 외장형 메모리, 마우스, 키패드 등의 USB 장치들이 연결된다.
제어부(710)는 서버(110)로부터 USB 장치의 데이터를 요청하는 데이터 요청 메시지가 수신되면, 데이터 요청 메시지에 포함된 출력 버퍼 사이즈의 데이터를 USB 장치로부터 획득하고, 출력 버퍼 사이즈에 추가로 전송가능한 데이터 사이즈를 결정할 수 있다.
제어부(710)는, USB 인터페이스부(730)를 통해 연결된 복수의 USB 장치의 동작 상태를 파악하고, 복수의 USB 장치 중 동작하지 않는 USB 장치가 있는 경우, 동적 가상 채널에 할당된 클래스별 우선순위 값을 재계산하여 재계산된 우선순위 값에 따라 데이터 전송에 이용되는 대역폭을 결정하고, 결정된 대역폭에 따라 USB 장치에서 추가로 전송가능한 데이터 사이즈를 결정할 수 있다.
제어부(710)는 추가로 전송가능한 데이터 사이즈 정보 및 획득된 데이터를 포함하는 데이터 전송 완료 메시지를 생성하여 통신부(720)를 통해 서버(110)로 전송할 수 있다. 서버로 전송되는 데이터 전송 완료 메시지는 URB Completion 메시지이고, 추가로 전송가능한 데이터 사이즈 정보는 URB Completion 메시지의 Hresult 필드에 포함될 수 있다. URB Completion 메시지의 HResult 필드의 값의 'C' 필드에 특정 값이 정의된 경우 HResult 필드의 Code 필드에 추가로 전송가능한 데이터 사이즈 정보가 포함될 수 있다. Code 필드 상위 1 bit값은 서버(110)에서 이후에 클라이언트 단말(120)로 전송되는 Transfer in Request 메시지가 추가로 전송가능한 데이터 전송을 요청해야 함을 나타내며, 하위 15 bits값은 실제 추가 전송가능한 데이터 사이즈를 나타낼 수 있다.
본 발명의 일 양상은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있다. 상기의 프로그램을 구현하는 코드들 및 코드 세그먼트들은 당해 분야의 컴퓨터 프로그래머에 의하여 용이하게 추론될 수 있다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 디스크 등을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드로 저장되고 실행될 수 있다.
이상의 설명은 본 발명의 일 실시예에 불과할 뿐, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 본질적 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현할 수 있을 것이다. 따라서, 본 발명의 범위는 전술한 실시예에 한정되지 않고 특허 청구범위에 기재된 내용과 동등한 범위 내에 있는 다양한 실시 형태가 포함되도록 해석되어야 할 것이다.

Claims (11)

  1. 서버와 통신하는 클라이언트 단말의 데이터 처리 방법으로서,
    서버로부터 클라이언트 단말에 장착된 하나의 USB 장치로부터 판독될 데이터에 대한 데이터 사이즈를 포함하며 상기 하나의 USB 장치의 데이터를 요청하는 데이터 요청 메시지를 수신하는 단계;
    상기 데이터 요청 메시지에 포함된 상기 데이터 사이즈만큼의 데이터를 USB 장치로부터 획득하는 단계;
    상기 클라이언트 단말에 연결된 다른 USB 장치들의 동작 상태에 따라서, 상기 하나의 USB 장치로부터 판독될 데이터에 대한 추가로 전송가능한 데이터 사이즈 정보를 결정하는 단계; 및
    상기 추가로 전송가능한 데이터 사이즈 정보 및 상기 획득된 데이터를 포함하는 데이터 전송 완료 메시지를 상기 서버로 전송하는 단계; 를 포함하는 것을 특징으로 하는 데이터 처리 방법.
  2. 제1항에 있어서,
    상기 추가로 전송가능한 데이터 사이즈 정보를 결정하는 단계는,
    클라이언트 단말에서 관리하고 있는 복수의 USB 장치의 동작 상태를 파악하는 단계;
    상기 복수의 USB 장치 중 동작하지 않는 USB 장치가 있는 경우, 동적 가상 채널에 할당된 클래스별 우선순위 값을 재계산하여 재계산된 우선순위 값에 따라 상기 하나의 USB 장치로부터 판독되는 데이터의 전송에 이용되는 대역폭을 결정하는 단계; 및
    결정된 대역폭에 따라 상기 추가로 전송가능한 데이터 사이즈를 결정하는 단계; 를 더 포함하는 것을 특징으로 하는 데이터 처리 방법.
  3. 제1항에 있어서,
    상기 서버로부터 수신되는 데이터 요청 메시지는 Transfer in Request 메시지인 것을 특징으로 하는 데이터 처리 방법.
  4. 제1항에 있어서,
    상기 서버로 전송되는 데이터 전송 완료 메시지는 URB Completion 메시지이고, 상기 추가로 전송가능한 데이터 사이즈 정보는 상기 URB Completion 메시지의 Hresult 필드에 포함되는 것을 특징으로 하는 데이터 처리 방법.
  5. 제4항에 있어서,
    URB Completion 메시지의 HResult 필드의 값의 'C' 필드에 특정 값이 정의된 경우 HResult 필드의 Code 필드에 추가로 전송가능한 데이터 사이즈 정보가 포함되는 것을 특징으로 하는 데이터 처리 방법.
  6. 제5항에 있어서,
    상기 Code 필드 상위 1 bit값은 상기 서버에서 이후에 상기 클라이언트 단말로 전송되는 Transfer in Request 메시지가 상기 추가로 전송가능한 데이터 전송을 요청해야 함을 나타내며, 하위 15 bits값은 실제 추가 전송가능한 데이터 사이즈를 나타내는 것을 특징으로 하는 데이터 처리 방법.
  7. 복수의 USB 장치와 연결된 USB 인터페이스부;
    서버와 통신하는 통신부;
    서버로부터 상기 복수의 USB 장치 중 하나의 USB 장치의 데이터를 요청하는 데이터 요청 메시지가 수신되면, 데이터 요청 메시지에 포함된 USB 장치로부터 판독될 데이터에 대한 데이터 사이즈의 데이터를 USB 장치로부터 획득하고, 상기 클라이언트 단말에 연결된 다른 USB 장치들의 동작 상태에 따라서, 상기 하나의 USB 장치로부터 판독될 데이터에 대한 추가로 전송가능한 데이터 사이즈를 결정하고, 상기 추가로 전송가능한 데이터 사이즈 정보 및 상기 획득된 데이터를 포함하는 데이터 전송 완료 메시지를 생성하여 상기 통신부를 통해 상기 서버로 전송하는 제어부; 를 포함하는 것을 특징으로 하는 클라이언트 단말.
  8. 제7항에 있어서,
    상기 제어부는, 상기 USB 인터페이스부를 통해 연결된 복수의 USB 장치의 동작 상태를 파악하고, 상기 복수의 USB 장치 중 동작하지 않는 USB 장치가 있는 경우, 동적 가상 채널에 할당된 클래스별 우선순위 값을 재계산하여 재계산된 우선순위 값에 따라 상기 하나의 USB 장치로부터 판독되는 데이터의 전송에 이용되는 대역폭을 결정하고, 결정된 대역폭에 따라 상기 추가로 전송가능한 데이터 사이즈를 결정하는 것을 특징으로 하는 클라이언트 단말.
  9. 제7항에 있어서,
    상기 데이터 전송 완료 메시지는 URB Completion 메시지이고, 상기 추가로 전송가능한 데이터 사이즈 정보는 상기 URB Completion 메시지의 Hresult 필드에 설정되는 것을 특징으로 하는 데이터 처리 방법.
  10. 제9항에 있어서,
    URB Completion 메시지의 HResult 필드의 값의 'C' 필드에 특정 값이 정의된 경우 HResult 필드의 Code 필드에 추가로 전송가능한 데이터 사이즈 정보가 포함되는 것을 특징으로 하는 데이터 처리 방법.
  11. 제10항에 있어서,
    상기 Code 필드 상위 1 bit값은 상기 서버에서 이후에 상기 클라이언트 단말로 전송되는 Transfer in Request 메시지가 상기 추가로 전송가능한 데이터 전송을 요청해야 함을 나타내며, 하위 15 bits값은 실제 추가 전송가능한 데이터 사이즈를 나타내는 것을 특징으로 하는 데이터 처리 방법.
KR1020120029537A 2012-03-22 2012-03-22 Usb 디바이스 장치의 데이터를 클라이언트 단말을 통해 서버로 전송하는 데이터 처리 방법 및 클라이언트 단말 KR20130107618A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020120029537A KR20130107618A (ko) 2012-03-22 2012-03-22 Usb 디바이스 장치의 데이터를 클라이언트 단말을 통해 서버로 전송하는 데이터 처리 방법 및 클라이언트 단말
US13/663,621 US8819125B2 (en) 2012-03-22 2012-10-30 Method of transmitting data of USB device to server, and client terminal performing the method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120029537A KR20130107618A (ko) 2012-03-22 2012-03-22 Usb 디바이스 장치의 데이터를 클라이언트 단말을 통해 서버로 전송하는 데이터 처리 방법 및 클라이언트 단말

Publications (1)

Publication Number Publication Date
KR20130107618A true KR20130107618A (ko) 2013-10-02

Family

ID=49213356

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120029537A KR20130107618A (ko) 2012-03-22 2012-03-22 Usb 디바이스 장치의 데이터를 클라이언트 단말을 통해 서버로 전송하는 데이터 처리 방법 및 클라이언트 단말

Country Status (2)

Country Link
US (1) US8819125B2 (ko)
KR (1) KR20130107618A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101686073B1 (ko) * 2015-07-22 2016-12-28 재단법인 실감교류인체감응솔루션연구단 클라이언트 단말이 제공받고자 하는 서비스 특성에 따라 네트워크 토폴로지를 적응적으로 변형하여 서비스를 제공받도록 지원하는 방법, 관리 서버 및 컴퓨터 판독 가능한 기록매체
WO2022114517A1 (ko) * 2020-11-27 2022-06-02 삼성전자 주식회사 전자 디바이스와 통신하는 호스트 디바이스 및 호스트 디바이스의 통신 방법

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104049552B (zh) * 2014-06-27 2017-06-20 北京奇艺世纪科技有限公司 终端远程控制方法、装置及***
CN106033398A (zh) * 2015-03-13 2016-10-19 联发科技(新加坡)私人有限公司 数据处理***、外接装置启动方法以及数据处理方法
CN104994179B (zh) * 2015-05-14 2018-12-11 深圳市腾讯计算机***有限公司 一种数据处理方法及服务器
US10114779B2 (en) * 2016-04-22 2018-10-30 Dell Products L.P. Isolating a redirected USB device to a set of applications
CN106027882A (zh) * 2016-05-16 2016-10-12 深圳市青葡萄科技有限公司 摄像头外设在虚拟化环境下的重定向方法
US10496590B2 (en) * 2017-01-23 2019-12-03 Wyse Technology L.L.C. Enabling redirection policies to be applied based on the windows class of a USB device
US10834164B2 (en) * 2017-02-08 2020-11-10 Wyse Technology L.L.C. Virtualizing audio and video devices using synchronous A/V streaming
US10742776B1 (en) * 2019-02-04 2020-08-11 Dell Products L.P. Accelerating isochronous endpoints of redirected USB devices
WO2020228650A1 (zh) 2019-05-14 2020-11-19 华为技术有限公司 一种虚拟机远程访问usb外设的数据的方法
CN112672091B (zh) * 2020-12-18 2023-05-09 厦门亿联网络技术股份有限公司 基于网络的视频通信方法、***、存储介质及uvc设备

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6408351B1 (en) * 1998-03-31 2002-06-18 Compaq Computer Corporation Host modem having a peripheral codec powered by a peripheral bus
US7797469B2 (en) * 2003-05-30 2010-09-14 Honeywell International Inc. Portable receiver and memory for remotely controlled presentations
US7606951B2 (en) * 2004-11-12 2009-10-20 Woodbridge Nancy G Memory reuse for multiple endpoints in USB device
US7912987B2 (en) 2005-01-14 2011-03-22 Microsoft Corporation USB devices in application server environments
KR100654465B1 (ko) * 2005-09-23 2006-12-06 삼성전자주식회사 무선 중계 장치 및 방법
US7574534B2 (en) * 2006-05-23 2009-08-11 International Business Machines Corporation Method for using device enumeration information to identify an operating system running on a computer system
US20080276009A1 (en) * 2007-05-04 2008-11-06 Joe Mesa Enabling Efficient Communication Between a Host and Multiple USB Devices
US20090006676A1 (en) * 2007-06-29 2009-01-01 Intel Corporation Method for Scheduling a Device Notification Time Slot for a Wireless USB System

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101686073B1 (ko) * 2015-07-22 2016-12-28 재단법인 실감교류인체감응솔루션연구단 클라이언트 단말이 제공받고자 하는 서비스 특성에 따라 네트워크 토폴로지를 적응적으로 변형하여 서비스를 제공받도록 지원하는 방법, 관리 서버 및 컴퓨터 판독 가능한 기록매체
WO2022114517A1 (ko) * 2020-11-27 2022-06-02 삼성전자 주식회사 전자 디바이스와 통신하는 호스트 디바이스 및 호스트 디바이스의 통신 방법

Also Published As

Publication number Publication date
US20130254263A1 (en) 2013-09-26
US8819125B2 (en) 2014-08-26

Similar Documents

Publication Publication Date Title
KR20130107618A (ko) Usb 디바이스 장치의 데이터를 클라이언트 단말을 통해 서버로 전송하는 데이터 처리 방법 및 클라이언트 단말
CN107209644B (zh) 一种数据处理方法以及NVMe存储器
JP4624110B2 (ja) 2つまたはそれ以上の機械の間でデータベース動作を行なうための直接メモリアクセスの用法
US9325530B2 (en) Management of virtual desktop infrastructure (VDI) sessions using real-time network conditions
TWI538501B (zh) 用於拓樸裝置中音訊/視訊串流的訊息傳遞架構
CN113485823A (zh) 数据传输方法、装置、网络设备、存储介质
JP6475256B2 (ja) コンピュータ、制御デバイス及びデータ処理方法
US7200641B1 (en) Method and system for encoding SCSI requests for transmission using TCP/IP
EP2882168B1 (en) Method, system and client device for mapping multiple virtual machines
CN108028833A (zh) 一种nas数据访问的方法、***及相关设备
JP2018513451A (ja) ユニバーサルシリアルバス用のプロトコルアダプテーションレイヤデータフロー制御
WO2023115852A1 (zh) 基于pcie的通信方法、装置、计算机设备和可读存储介质
KR101426217B1 (ko) 예약된 스트림의 최대 레이턴시를 감소시키는 방법
CN115357535A (zh) 一种虚拟串口设计方法及装置
US20230259479A1 (en) Data processing method and apparatus
CN112968919B (zh) 一种数据处理方法、装置、设备和存储介质
EP4008090A1 (en) Method and apparatus for processing data in a network
KR20120072134A (ko) 가상 데스크톱 가속 장치 및 방법
EP3051426A1 (en) Method, device, and system for accessing memory
US9760315B2 (en) Dynamic device allocation apparatus, dynamic device allocation system, dynamic device allocation method and storage medium storing dynamic device allocation program
US9306995B2 (en) Communicating data in flows between first and second computers connected over a network
CN113010381A (zh) 一种部件管理的方法和设备
KR100650271B1 (ko) 무선 유에스비 통신방법 및 무선 유에스비 호스트
CN111404842A (zh) 数据传输方法、装置及计算机存储介质
WO2015062390A1 (zh) 虚拟机迁移方法、装置及***

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid