KR101296531B1 - 데이터 통신 장치, 인쇄 제어 장치, 데이터 통신 방법 및 컴퓨터 판독가능 매체 - Google Patents

데이터 통신 장치, 인쇄 제어 장치, 데이터 통신 방법 및 컴퓨터 판독가능 매체 Download PDF

Info

Publication number
KR101296531B1
KR101296531B1 KR1020117029027A KR20117029027A KR101296531B1 KR 101296531 B1 KR101296531 B1 KR 101296531B1 KR 1020117029027 A KR1020117029027 A KR 1020117029027A KR 20117029027 A KR20117029027 A KR 20117029027A KR 101296531 B1 KR101296531 B1 KR 101296531B1
Authority
KR
South Korea
Prior art keywords
request
data
address
response
name
Prior art date
Application number
KR1020117029027A
Other languages
English (en)
Other versions
KR20120041170A (ko
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 캐논 가부시끼가이샤
Publication of KR20120041170A publication Critical patent/KR20120041170A/ko
Application granted granted Critical
Publication of KR101296531B1 publication Critical patent/KR101296531B1/ko

Links

Images

Classifications

    • 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]
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • 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/167Adaptation for transition between two IP versions, e.g. between IPv4 and IPv6
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/659Internet protocol version 6 [IPv6] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/103Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • H04L61/5014Internet protocol [IP] addresses using dynamic host configuration protocol [DHCP] or bootstrap protocol [BOOTP]
    • 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/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)
  • Communication Control (AREA)

Abstract

본 발명은, IPv6 프로토콜을 이용해서 네트워크 상의 디바이스와 통신이 수행될 때 패킷을 필터링하고, 트래픽을 감소시킨다. 이를 달성하기 위해, 퍼스널 컴퓨터에서 동작하는 프린터 드라이버는 통신 상대의 이름과, 이름 분석을 거친 어드레스 중에서 실제로 통신이 성공한 어드레스를 연관시켜 저장하고, 이후로 동일한 통신 상대와의 통신에는 저장된 어드레스를 사용한다.

Description

데이터 통신 장치, 인쇄 제어 장치, 데이터 통신 방법 및 컴퓨터 판독가능 매체 {DATA COMMUNICATION APPARATUS, PRINTING CONTROL APPARATUS, DATA COMMUNICATION METHOD AND COMPUTER READABLE MEDIUM}
본 발명은 예를 들어, 네트워크상의 디바이스와의 통신을 위하여 퍼스널 컴퓨터 상에서 동작하는 통신 기능에 관한 것이다. 특히, 본 발명은 통신 프로토콜로서 IPv6(Internet Protocol Version 6)을 사용하는 통신 기능에 관한 것이다.
현재 인터넷 프로토콜(IPv4)로 이용할 수 있는 어드레스의 고갈에 따라, 추가적인 보안을 제공하고 우선도에 따라 데이터를 송신하도록 어드레스 공간이 확대되고 개량된 차세대 인터넷 프로토콜로서 IPv6가 실용화되기 시작했다. IPv6 프로토콜의 사양은 단일 네트워크 인터페이스에 복수의 어드레스가 할당될 수 있는 것으로 되어 있다. 예를 들면, 링크 로컬 유니캐스트 어드레스(이하 "링크 로컬 어드레스"라고 칭함) 및 글로벌 유니캐스트 어드레스(이하, "글로벌 어드레스"라고 칭함)가 할당될 수 있는 어드레스로서 알려져 있다. 또한, 글로벌 어드레스로서 복수의 어드레스가 할당될 수 있으므로, 단일 호스트에 대하여 IPv4 어드레스와 복수의 IPv6 어드레스가 DNS(Domain Name System) 서버에 등록되는 경우가 있다.
통신 상대를 식별하기 위하여 통상적으로 "이름"이라고 칭하는 FQDN(Fully Qualified Domain Name)이 사용된다. FQDN은 DNS 도메인의 계층 구조에 따라 루트(root)로부터 나타낸 호스트 이름 또는 도메인 이름이라는 것에 유의해야 한다. FQDN을 이하에서는 간단히 "이름"이라고 칭할 것이다. DNS 서버가 이름을 지정함으로써 바이너리 어드레스에 대해 질의를 받는 경우, 복수의 IPv6 어드레스가 취득되는 경우가 있다. 이러한 어드레스 모두가 질의원(source of the inquiry)인 퍼스널 컴퓨터로부터 도달되는 것이 반드시 가능한 것은 아니다. IPv6을 사용하는 TCP 통신에서, DNS를 사용하는 이름 분석(name resolution)의 결과로서 얻어지는 복수의 어드레스에 접속하기 위한 시도가 순차적으로 이루어지고, 접속이 성공한 시점에서 유효한 어드레스가 상대 어드레스로서 사용된다. IPv6을 사용하는 UDP(User Datagram Protocol) 통신에서, 어플리케이션은 통신 상대에 대하여 패킷 재전송(resend)과 같은 방법을 사용해서 도달 가능성을 확인해야 한다. 따라서, 본질적으로 TCP 통신과 동일한 방식으로, 순차적인 양식으로 복수의 어드레스로 패킷을 송신하기 위한 시도가 이루어져야만 한다. 따라서, IPv6 통신은 네트워크 트래픽의 증가와 접속이 확립될 때까지의 시도 시간의 증가를 가져오며, 이는 본질적으로 복수 어드레스가 사용된다는 사실에 수반된다.
마찬가지로, 복수 어드레스가 통신 상대의 어드레스에 대향하는 로컬 어드레스로서도 존재한다. 통신 상대의 어드레스가 결정되면, 이 어드레스에 대응하는 로컬 어드레스는 RFC 3484["Default Address Selection for Internet Protocol version 6(IPv6)"]로서 규정된 알고리즘에 따라 선택된다. 이 어드레스 선택 알고리즘은 통상적으로 "프로토콜 스택"이라 칭해지며 운영 체제에 가까운 프로그램 내에서 실행되므로, 어플리케이션 프로그램은 선택되는 로컬 어드레스에 대해 관여할 수 없다.
복수의 IPv6 어드레스가 2개의 통신 종점 각각에 존재한다는 사실에 의해, 특히 UDP 프로토콜을 사용한 통신이 수행되는 경우에 후술하는 상황이 발생한다. 통신 종점 A 및 B 각각이 그들 자신의 IPv6 어드레스 3개를 갖고, 이들이 각각 Addr_A1, Addr_A2, Addr_A3과 Addr_B1, Addr_B2, Addr_B3인 것으로 상정한다. 통신 종점 B에 의해 소유되는 어드레스 중 2개의 어드레스 Addr_B1 및 Addr_B2가 DNS에 등록된 것으로 상정한다.
도 3a에 나타낸 바와 같이, 통신 종점 A가 통신 종점 B와 통신을 개시하는 경우에, 우선, 통신 종점 A가 통신 종점 B의 이름(여기에서 그 이름은 "통신 종점 B"임)을 지정해서 DNS 서버에 이름 분석을 요구(질의)한다. DNS 서버는 이름 분석의 결과로서 2개의 어드레스(Addr_B1 및 Addr_B2)를 회신(응답)한다.
이름 분석의 결과를 수신한 통신 종점 A는 Addr_B1에게 요구를 송신하고, 통신 종점 B에 도달한다. 통신 종점 B는 요구에 대응하는 응답을 회신한다. 하지만, 이 때, 통신 종점은, Addr_A1이 요구의 송신원에서의 어드레스임을 확인하였으므로, 이 어드레스에 그 응답을 회신한다. 그렇게 하면, 상술한 RFC 3484에 규정된 어드레스 선택 알고리즘이 기능하고, 통신 종점 B에 의해 소유되는 3개의 어드레스 중에서 최적의 어드레스로서 Addr_B1 대신에 Addr_B3이 선택되는 경우가 있다. 이렇게 하여, 통신 종점 B로부터의 응답이 Addr_B3으로부터 통신 종점 A의 Addr_A1로 전송된다. 따라서, 통신 종점 A의 관점으로부터, 알려지지 않은 어드레스로부터 데이터가 전송되는 상황이 발생한다.
통신 종점 A가 요구를 전송하는 상대가 통신 종점 B뿐이라는 것이 확인된 경우에는, 알려지지 않은 어드레스로부터의 데이터가 통신 종점 B로부터 전송된 응답이라고 판정될 수 있다. 그러나, 도 3b에 나타낸 바와 같이, 통신 종점 A가 거의 동시에 통신 종점 B 및 C에 있는 두 상대에 요구를 전송하는 경우를 고려해 보면 이러한 판정이 불가능하다는 것이 이해될 것이다. 도 3b에서의 통신 종점 A, B 및 C의 어드레스는 각각 Addr_A1, Addr_A2, Addr_A3; Addr_B1, Addr_B2, Addr_B3; Addr_C1, Addr_C2, Addr_C3이라고 상정한다. 또한, 통신 종점 B의 어드레스 중 DNS 서버에 등록되어 있는 어드레스는 Addr_B1 및 Addr_B2이며, 통신 종점 C의 이러한 어드레스는 Addr_C1 및 Addr_C2라고 상정한다. 또한, 통신 종점 A는 통신 종점 B와 C의 이름에 대해 DNS 서버에 질의하고, 종점당 2개의 어드레스를 응답으로서 수신하는 것으로 상정한다. 여기에서, 통신 종점 A는 통신 종점 B와 C에 요구를 전송하고, 통신 종점 B는 Addr_B3으로부터 Addr_A1로 응답을 전송하고, 통신 종점 C는 Addr_C3으로부터 Addr_A1로 응답을 전송한다.
이와 같이, 통신 종점 A는 알려지지 않은 어드레스 Addr_B3과 Addr_C3으로부터 데이터를 수신한다. 통신 종점 A는, 이 2개의 데이터 항목이 통신 종점 B와 C 중 어디로부터 응답 데이터로서 수신되었는지 판정할 수 없다. 요구의 송신처에서의 어드레스로부터 반드시 응답이 회신되는 것으로 예측될 수 있는 IPv4와 같은 프로토콜의 경우에, 양쪽 통신 종점의 포트 번호를 포함하는 어드레스의 세트에 의해 통신 상대가 식별될 수 있으므로, 이러한 문제는 발생할 수 없다. 이러한 상황에서는 응답 패킷의 송신원에서의 어드레스가 요구 패킷의 송신처에서의 어드레스와 일치하지 않을 경우에, 보안 관련 문제, 즉 수신을 거부하기 위한 어드레스 기반 패킷 필터링이 더 이상 수행되지 않는다고 하는 문제가 발생한다.
구체적으로, 알려지지 않은 어드레스로부터 전송된 데이터 패킷이 요구 패킷에 대한 허가된 응답일 가능성이 있으므로, 필터링되지 않고 파기될 수 없다. 이는 어떠한 패킷이라도 수신되어야만 한다는 것을 의미한다.
DNS 서버에서의 이름 분석에 수반하는 트래픽의 증가 및 처리 지연을 개선할 목적으로, IPv4와 IPv6 어드레스가 등록된 서버에 액세스하는 데 어느 프로토콜이 사용되어야 하는지에 대해 과거의 실적에 기초해서 결정하는 방법이 있다(일본 특허 공개 제2007-19612호 참조). 일본 특허 공개 제2007-19612호에 개시된 종래 기술은 주로 IPv4와 IPv6이 혼재하는 상황을 상정한다. 액세스되려고 하는 서버 프로세스와 과거에 통신이 가능했던 IP 프로토콜을 그 서버 프로세스와 연관시켜 캐싱하고, 다음번 액세스가 이루어질 때 이러한 IP 프로토콜 및 대응하는 어드레스를 이용하기를 시도한다. 이 종래 기술은 DNS 서버에의 액세스를 감소시키는 것과, 서버 프로세스가 DNS 서버에 등록되어 있는 모든 프로토콜 어드레스에 대해 대기하지 않는 경우에 불필요한 어드레스 액세스 시도를 감소시키는 것에 효과적이다.
그러나, 일본 특허 공개 제2007-19612호에 개시된 발명에 의해서도, 서버 프로세스로부터의 응답이 알려지지 않은 어드레스로부터 전송되는 상황에서는, 캐싱 자체가 수행되지 않고, 후술하는 문제점들이 해결될 수 없다.
1. 기본적으로, 송신처로서 선택된 어드레스 이외의 어드레스로부터의 응답 데이터가 수신되어야 한다. 즉, 어드레스 기반 패킷 필터링이 해제되어야만 하는 보안면에서의 문제가 있다.
2. IPv4 및 IPv6의 양쪽 프로토콜의 어드레스를 사용해서 통신을 행하는 어플리케이션에서는, DNS 서버가 이름 분석에 대해 질의받는 횟수가 증가한다. 이것은 트래픽을 증가시키고 응답 시간을 지연시킨다.
3. 단일 통신 종점에 대해 복수의 IPv6 어드레스가 DNS 서버에 등록되어 있는 경우에는, 복수의 어드레스 전부를 사용해서 패킷 송신이 수행될 가능성이 있다. 즉, 트래픽이 증가한다.
본 발명은 상술한 문제를 해결한다. 이를 달성하기 위해, 본 발명은, 하나의 이름마다 복수의 어드레스가 할당될 수 있는 네트워크 디바이스와 네트워크를 통해 통신하기 위한 데이터 통신 장치이며, 송신처의 이름에 대응하는 어드레스를 취득하기 위한 취득 수단; 송신 데이터를, 상기 송신 데이터를 식별하는 식별 정보와 함께, 취득된 어드레스로 송신하기 위한 송신 수단; 상기 송신 데이터에 대응하는 식별 정보를 갖는 응답 데이터를 수신하기 위한 수신 수단; 수신된 응답 데이터가 상기 송신 데이터에 대한 응답인지 여부를 상기 식별 정보에 기초해서 판정하기 위한 판정 수단; 및 상기 응답 데이터가 상기 송신 데이터에 대한 응답이 아닌 것으로 판정된 경우에는 그 응답 데이터를 파기하고, 상기 응답 데이터가 상기 송신 데이터에 대한 응답인 것으로 판정된 경우에는 그 응답 데이터에 포함된 데이터를 데이터 송신 요구원(source requesting the data transmission)에 전달하기 위한 응답 처리 수단을 포함하는, 데이터 통신 장치를 제공한다.
본 발명에 의해 제공되는 효과는, 어플리케이션이 상술한 문제를 해결한다는 것이다. 구체적으로, 보안 관련 문제, 즉, 어드레스 기반 패킷 필터링이 해제되어야만 한다는 문제가 해결될 수 있다. 또한, IPv4 및 IPv6 프로토콜의 양쪽 어드레스를 사용해서 통신을 수행하는 어플리케이션에서도, 트래픽의 증가와 응답 시간의 지연이 방지될 수 있다. 단일 통신 종점에 대해 복수의 IPv6 어드레스가 DNS 서버에 등록된 경우에도, 트래픽의 증가가 억제될 수 있다.
본 발명의 추가적인 특징은 첨부 도면을 참조하여 실시예의 후술하는 설명으로부터 명백해질 것이다.
도 1은 본 발명의 실시예에 따른 프린터 드라이버의 블록도이다.
도 2는 실시예에 따른 퍼스널 컴퓨터의 구성을 나타내는 블록도이다.
도 3a는 IPv6 어드레스를 다루는 통신 종점과 DNS 서버 사이의 관계를 나타내는 도면이다.
도 3b는 IPv6 어드레스를 다루는 복수의 통신 종점 중에서 사용되는 어드레스들 사이의 관계를 나타내는 도면이다.
도 4a는 실시예에 있어서의 데이터 취득 처리를 나타내는 흐름도이다.
도 4b는 실시예에 있어서의 요구 발행 처리를 나타내는 흐름도이다.
도 4c는 실시예에 있어서의 응답 수신 처리를 나타내는 흐름도이다.
도 5는 실시예에 있어서의 송수신 처리를 나타내는 흐름도이다.
도 6a는 실시예에 있어서의 통신 상대 어드레스 취득 처리를 나타내는 흐름도이다.
도 6b는 실시예에 있어서의 통신 상대 어드레스 등록 처리를 나타내는 흐름도이다.
도 7a는 실시예에 있어서의 요구 데이터의 구조를 나타내는 도면이다.
도 7b는 실시예에 있어서의 응답 데이터의 구조를 나타내는 도면이다.
도 2는 본 발명이 프린터 드라이버에 적용되는 경우에, 어플리케이션 프로그램을 로딩할 때 동작하는 데이터 통신 장치로서의 역할을 하는 퍼스널 컴퓨터의 구성을 나타내는 블록도이다. 이 프린터 드라이버가 인스톨된 퍼스널 컴퓨터는 프린터를 제어하기 위한 인쇄 제어 장치로서 기능한다. 퍼스널 컴퓨터의 운영 체제는 RAM(4), 하드 디스크 드라이브(5) 또는 후술하는 디스크 드라이브 내의 저장 매체 중 어느 하나일 수 있는 저장 수단에 저장되어 CPU(3)에 의해 실행된다. 운영 체제는 프린터 드라이버로부터의 요구에 응답하여 표시 유닛(6)에 표시를 나타내고, 입력 유닛(7)으로부터의 사용자 입력을 수취해서 프린터 드라이버에 이러한 입력을 통지한다. 운영 체제는 통신 유닛(8)을 제어하고, 통신 유닛(8)에 접속된 주변 장치 외에, 주변 디바이스(9)를 제어하고, 주변 디바이스로/로부터 신호를 입력 및 출력하고, 프린터 드라이버로/로부터 신호를 입력 및 출력한다. 제어될 수 있는 주변 디바이스의 예들은, PC 카드, 각종 디스크 드라이브, 프린터 및 네트워크 카드 등이다. 또한, 운영 체제는 파일 시스템 기능을 제공한다. 파일 저장 매체는 도 2의 하드 디스크 드라이브(5) 및 RAM(4)에 한정되지 않고, 통신 유닛(8)을 통해 접속된 네트워크 상의 다른 퍼스널 컴퓨터를 포함하는 외부 저장 디바이스도 포함한다. 운영 체제 및 프린터 드라이버는 퍼스널 컴퓨터의 시스템 버스(1, 2)를 통해 서로 연결된 하드웨어 모듈 군으로/로부터 데이터를 전달 및 수신한다.
프린터 드라이버는 운영 체제에 의해 제공되는 어플리케이션 프로그램 인터페이스(API)를 통해 퍼스널 컴퓨터의 리소스에 액세스하고, 운영 체제에 의해 제공되는 기능을 사용한다. 어플리케이션 프로그램에 로드되는 프린터 드라이버는 인쇄 데이터를 전달받고 그 인쇄 데이터를 프린터에 의해 이해될 수 있는 언어로 번역한다. 이것이 프린터 드라이버에 의해 수행되는 주요 처리이다. 또한, 프린터 드라이버는, 사용자를 위해 프린터에 장착된 스태플링 유닛, 스태커 유닛 및 용지 트레이와 같은 디바이스의 상태를 취득 및 표시하기 위한 기능을 제공한다. 또한, 프린터 드라이버는 프린터 내부에 축적되어 인쇄를 대기하는 잡 리스트를 취득 및 표시하기 위한 기능을 제공한다.
프린터 드라이버는, RAM(4), 하드 디스크 드라이브(5) 또는 후술하는 디스크 드라이브 내의 저장 매체 중 어느 것일 수 있는 저장 수단에 저장되어 CPU(3)에 의해 실행된다. 또한, 프린터 드라이버는 운영 체제에 의해 제공되는 파일 시스템에 저장된 파일을 참조한다. 후술하는 프린터 드라이버의 구성 및 동작에 대한 설명에서는, 인쇄 데이터의 번역에 대한 기능의 상세한 설명은 배제될 것이다. 본 실시예에 따른 프린터 드라이버는, 네트워크 프린터나 복사기와 같은 디바이스가 사용자에 의해 지정된 통신 상대의 네트워크 디바이스인 것으로 상정한다. 이하에서, 네트워크 프린터나 복사기와 같은 디바이스를 일반적으로 "프린터"라 칭할 것이다. 이하의 설명에서는, 네트워크를 통해 프린터에 액세스하고, 프린터의 모델명, 프린터에 탑재된 기능의 리스트 및 프린터 내부의 인쇄 잡 리스트를 취득하고, 도 2에 나타낸 표시 유닛(6)에 이러한 정보를 표시하기 위한 기능에 대해 상세하게 설명한다.
도 1은 본 발명에 따른 프린터 드라이버(10)의 구성을 나타내는 블록도이다. 프린터 드라이버(10)는, 어플리케이션 프로그램 등에 의해 작성된 데이터를, 사용자가 지정한 프린터에 의해 해석 및 실행될 수 있는 프린터 기술(description) 언어로 번역하고, 번역한 데이터를 이 프린터로 송신한다. 송신되는 데이터는 일반적으로 송신 데이터라고 칭해지지만, 프린터로 전송되는 상술한 번역된 데이터에 대해서는 "인쇄 데이터"라는 용어가 사용될 것이다. 프린터 드라이버(10)는 표시부(50), 입력부(60), 액세스 로직(20), 트랜스포트부(30) 및 드라이버 로직(40)을 포함한다. 우선, 프린터 드라이버(10) 내부에 존재하는 3개의 기능 블록이 정의될 것이다.
드라이버 로직(40)은, 액세스 로직(20)에 대하여 프린터의 이름을 지정하고 정보를 취득하라고 액세스 로직에 지시하기 위한 기능 블록이다. 드라이버 로직(40)은, 프린터 드라이버(10)의 인쇄 데이터를 번역하기 위한 처리를 실행하고, 퍼스널 컴퓨터의 표시 유닛 상에 화면을 표시한다. 또한, 드라이버 로직(40)은 사용자가 프린터를 선택하는 프린터 선택 수단 및 선택된 프린터의 기능을 취득하기 위한 특정 수단을 제어하고, 프린터로부터 취득된 정보가 화면 상에 표시되게 한다. 또한, 드라이버 로직(40)은 후술하는 액세스 로직(20)에 대하여 프린터의 이름을 지정하고, 원하는 정보의 취득을 요구하고 그 결과를 취득하기 위한 처리를 실행한다.
액세스 로직(20)은, 송신 데이터에 기초해서 요구 데이터를 작성하고, 도메인 이름이나 호스트 이름(즉, FQDN)에 의해 지정되는 요구의 송신처를 지정하고, 트랜스포트부(30)에 대하여 요구 송신을 수행하라고 요구하기 위한 처리를 실행하는 블록이다. 요구 송신처는 FQDN뿐만 아니라, IPv4나 IPv6(Internet Protocol version 6) 바이너리 어드레스 또는 컴퓨터 이름 등의 양식으로 지정될 수 있지만, 액세스 로직(20)은 적어도 FQDN을 지정한다.
트랜스포트부(30)는 요구된 요구 데이터를 요구된 송신처에 전송하고, 이러한 요구에 대한 응답을 수신하고 액세스 로직(20)으로 이 응답을 전달하기 위한 기능 블록이다. 트랜스포트부(30)는, 그 송신이 요구된 요구의 내용 및 응답의 내용에 대해 어떠한 지식도 갖지 않는 것으로 상정한다. 또한, 트랜스포트부(30)는, FQDN에 의해 지정된 송신처의 바이너리 어드레스를 특정하기 위하여 DNS 서버에 질의한다.
프린터 드라이버(10)는 네트워크 상에 존재하는 DNS 서버에 액세스한다. 프린터 드라이버(10)는 DNS 서버에 대하여 프린터 드라이버의 통신 대상인 프린터의 FQDN을 지정하고, 응답으로서 이 프린터에 할당된 어드레스를 수신한다.
입력부(60)는 도 2의 입력 유닛(7)을 통해 사용자 입력을 수신하고, 드라이버 로직(40)으로 입력을 전달한다. 통신 상대인 프린터의 FQDN과 어드레스 취득 개시 커맨드가 입력 정보로서 전달된다. 표시부(50)는 도 2의 표시 유닛(6)에 표시될 데이터를 작성하고 이 데이터를 표시하기 위한 처리를 실행한다. 표시되는 내용은 프린터로부터 취득된 정보, 즉 프린터의 모델 이름, 탑재된 기능의 리스트 및 프린터 내의 인쇄 잡의 리스트를 포함한다.
드라이버 로직(40)은 입력부(60)로부터 전달받은, 프린터의 FQDN과 어드레스 취득을 개시하라는 지시를 액세스 로직(20)에 전달한다.
액세스 로직(20)은, 요구 ID 생성부(201), 통신 상대 이름 및 요구 ID 사이의 관계를 저장하는 저장부(202), 요구 ID와 요구 사이의 관계를 저장하는 저장부(203) 및 제어부(200)를 포함한다. 어드레스 취득 개시 지시가 실시되면, 제어부(200)는 요구 ID 생성부(201)에 요구 ID를 생성하라는 요구를 전송한다. 요구 ID 생성부(201)는, 제어부(200)로부터의 요구에 응답하여, 고유 ID를 생성하고 ID를 회신한다. 요구 ID는 비교적 긴 주기에서 순회하는 ID를 사용한다. 그 결과, 어떤 프린터에 대하여 송신이 이루어질 때 생성된 요구 ID와 동일한 요구 ID가 동일 장치에 대한 별도의 요구 또는 다른 프린터에 대한 요구로서 동시에 사용될 가능성은 매우 낮다. 반대로, 요구 ID의 주기로서, 동일한 요구 ID가 동일한 시스템 내에서 사용되지 않을 정도의 충분히 긴 주기가 선택된다. 단일 요구 ID는 [송신처의 호스트 이름(본 예에서는 프린터)에 대하여 DNS에 등록된 어드레스 수] x (응답 대기 시간) + (슬립(sleep)으로부터의 각성(wake-up) 시간) + (응답에 필요한 시간)과 동등한 최대 시간 길이에 걸쳐 사용될 가능성이 있다. 이 시간 길이가 최대 ID 사용 시간으로서 채택되는 경우에, (요구 ID의 주기) > (최대 ID 사용 시간)/(송신 요구가 생성되는 평균 시간 간격)의 관계가 만족되면, 요구 ID의 고유성이 유지될 것이다.
제어부(200)는 통신 상대의 FQDN과 요구 ID를, 이들을 서로 연관시켜 저장하는 저장부(202)에 전달한다. 또한, 저장부(202)는, 요구 ID가 지정될 때 연관된 FQDN을 검색하고 발견된 FQDN을 회신하는 기능을 갖는다. 제어부(200)는 요구 ID 및 요구 데이터를, 이들을 서로 연관시켜 저장하는 저장부(203)에 전달한다. 또한, 저장부(203)는, 요구 ID가 지정될 때, 연관된 요구 데이터를 검색하고 발견된 요구 데이터를 회신하는 기능을 갖는다.
ID 생성부(201), 저장부(202), 저장부(203) 및 트랜스포트부(30)를 제어하는 제어부(200)는 통신 상대의 프린터로부터 필요한 정보를 취득한다.
제어부(200)는 외부에 위치된 DNS 서버(70) 및 프린터(80)의 네트워크에서의 위치(어드레스) 상세 사항에 대해서는 관여하지 않는다. 제어부(200)는 프린터와의 약정에 의해 결정된, 요구 데이터라 칭하는 프로토콜 데이터를 작성한다. 프로토콜 데이터에는 통신 상대를 고유하게 식별하기 위한 고유 ID인 요구 ID가 매립된다. 송신의 내용인 요구 데이터와, 송신처인 통신 상대의 이름(FQDN)은 제어부(200)로부터 트랜스포트부(30)로 전달되고, 트랜스포트부(30)가 송신을 수행하도록 요구받는다.
트랜스포트부(30)는 이름 분석부(301), 통신 상대의 이름과 어드레스 사이의 관계를 저장하는 저장부(304), 요구 송신부(302) 및 응답 수신부(303)를 포함한다. 요구 송신부(302)는 입력으로서 요구 데이터와 송신처인 프린터의 이름 즉, FQDN을 수신한다. 그 후에, 요구 송신부(302)는 이름 분석부(301)에게 수신된 FQDN을 어드레스로 변환시키라고 요구한다. 이름 분석부(301)는, 요구 송신부(302)로부터 전달된 FQDN과 연관된 어드레스가 저장부(304)에 의해 검색되게 한다. 연관된 어드레스가 발견되면, 이름 분석부(301)는 이 어드레스를 요구 송신부(302)로 전달한다. 저장부(304)는 FQDN으로부터 어드레스를 검색하고 이 어드레스를 회신하기 위한 이름 분석부(301)의 실행부로서 본질적으로 기능한다. 요구 송신부(302)는 이렇게 해서 송신처에서의 FQDN에 대응하는 어드레스(통신 상대의 어드레스)를 취득한다. 이름 분석을 위해 지정된 어드레스는 IPv4 어드레스와 IPv6 어드레스 양쪽 모두일 수 있다. 상술한 바와 같이, IPv6에서는, 단일 이름(FQDN)에 대하여 복수의 어드레스가 할당될 수 있다.
요구 송신부(302)는 취득된 통신 상대의 어드레스에 대하여 요구된 요구 데이터를 UDP(User Datagram Protocol)를 사용해서 송신한다. 복수의 어드레스가 이름 분석부(301)로부터 반환된 경우에는, 요구 데이터의 송신 후에 일정 시간 구간이 경과해도 응답이 수신되지 않으면 각 어드레스에 대하여 요구 데이터를 재전송하기 위한 처리가 실행된다.
응답 수신부(303)는, 프린터로부터의 응답 데이터를 수신하고, 이 응답 데이터를 응답 데이터로서 액세스 로직(20)에 전달하기 위한 기능을 제공한다. 또한, 응답 수신부(303)는 응답 데이터의 송신원의 어드레스를 취득하고, 이 어드레스를 응답 데이터와 함께 전달한다. 프린터는 UDP를 사용하여 응답 데이터를 송신한다는 것에 유의해야 한다. 요구는 패킷에 포함되는 요구 ID에 의해 연관된다.
도 7a 및 7b를 참조하여, 프린터 드라이버(10)와 프린터 사이에서 교환되는 요구 데이터(701)와 응답 데이터(702)의 패킷 구조에 대해 설명한다. 도 7a는 프린터 드라이버(10)로부터 프린터로 전송되는 요구 데이터(701)를 나타낸다. 요구 데이터(701)는 고정 사이즈의 패킷 헤더와 가변 길이의 본체를 포함한다. 패킷 헤더는 필드의 구성에 대해서는 응답 데이터(702)와 동일하다. 하지만, 요구 데이터(701)에서는, 요구를 의미하는 수치 "0"이 "종류" 필드에 지정되는 반면, 응답 데이터(702)의 패킷 헤더의 "종류" 필드에는 응답을 의미하는 수치 "1"이 지정된다. 패킷 헤더의 "패킷 사이즈" 필드에는 요구 데이터(701) 또는 응답 데이터(702)의 전체 사이즈(옥텟수)가 포함된다. 또한, 요구 데이터(701)에 의해 작성된 측에 지정된 요구 ID가 "ID" 필드에서 대응하는 응답에 포함된다. 즉, 응답 데이터(702)의 패킷 헤더의 "ID" 필드에는 대응하는 요구 데이터에 포함된 요구 ID가 그대로 기입된다. 요구 본체는, 수신측에 대하여 원하는 처리 내용을 지정하는 "커맨드" 필드를 갖는다. "커맨드" 필드에서 지정된 처리 내용의 종류로서, 장치의 모델 이름에 대한 요구, 장치에 탑재된 기능의 리스트에 대한 요구, 및 장치 내의 잡의 리스트에 대한 요구가 정의된다. 요구 본체의 "파라미터" 필드에는 커맨드마다 결정된 파라미터가 지정된다.
한편, 응답 본체는 처리 내용을 나타내는 "커맨드" 필드를 갖는다. 대응하는 요구 데이터에 포함된 "커맨드"의 내용은 이 필드에 그대로 저장된다. 응답 본체의 "결과" 필드에는 처리를 실행 결과를 의미하는 값이 포함된다. 성공, 부적합 파라미터, 또는 실행시 에러와 같은 처리의 결과를 의미하는 값이 정의된다.
도 4a 내지 도 6b에 나타낸 흐름도를 참조하여, 액세스 로직(20)과 트랜스포트부(30)에 의해 실행되는 처리에 대해 설명한다. 도 4a는 프린터로부터의 데이터를 취득하기 위한 처리를 나타내는 흐름도이다. 이것은 액세스 로직(20)의 주요 기능이다.
스텝 S10에서, 송신처에서 프린터를 지정하고, 지정된 프린터로 요구 데이터를 송신하기 위한 요구 발행 처리가 실행된다. 스텝 S20에서, 지정된 프린터로부터의 응답 데이터를, 통신 상대의 어드레스와 함께 수신하기 위한 응답 수신 처리가 실행된다. 스텝 S30에서, 요구 데이터와 함께 지정된 송신처(통신 상대) 이름인 FQDN과, 응답 데이터와 함께 수신된 어드레스(예를 들면, IP 어드레스)가 트랜스포트부(30)로 전달된다. 그 결과, 트랜스포트부(30)가 통신 상대의 이름(FQDN)과 어드레스를 연관시키게 된다.
스텝 S10의 데이터 취득 처리는 도 4b에 나타낸 바와 같이, 스텝 S11 내지 S13의 처리를 포함한다. 스텝 S11은, 프린터로 송신된 요구 데이터를 작성하는 요구 데이터 작성 스텝이다. 구체적으로, 스텝 S11의 처리는 요구 패킷에 요구 ID를 매립시킴으로써 요구 데이터를 작성한다. 요구 ID는 ID 생성부(201)에서 생성되었으며, 적어도 그 시점에 있어서는 고유한 요구 ID이다.
스텝 S12는 통신 상대와 요구 데이터를 연관시키는 연관 스텝이다. 여기에서, 통신 상대는 프린터의 이름(FQDN)이며, 요구 데이터의 내용은 응답이 수신될 때까지 도 1의 저장부(203)에 복사되어 저장된다. 스텝 S12에서, 요구 패킷은 요구 ID와 연관되어 저장부(203)에 저장된다.
스텝 S13에서, 작성된 요구 데이터(701)는 통신 상대인 프린터의 이름(FQDN)과 함께 트랜스포트부(30)로 전달되고, 트랜스포트부(30)는 이러한 정보를 송신하라고 요구받는다. 송신을 요구받는 것과 동시에, 프린터의 이름과 요구 ID가 연관되어 저장부(202)에 저장된다.
요구 데이터는 요구 ID 자체를 포함한다는 것에 유의해야 한다. 이것은 예를 들면, 스텝 S12에서 요구 ID와 요구 패킷을 저장하지 않고, 스텝 S13에서 통신 상대의 이름과 요구 패킷이 연관되어 저장될 수도 있음을 의미한다. 이러한 구성이 채용되는 경우에도, 특정 요구 ID를 갖는 요구 데이터가 검색될 수 있다.
다음으로, 도 4a의 스텝 S20의 응답 수신 처리, 즉 응답 처리에 대해 설명한다. 도 4c는 응답 수취 처리의 상세 사항을 나타내는 흐름도이다. 응답 수취 처리는 스텝 S21 내지 S23의 처리를 포함한다. 스텝 S21은 트랜스포트부(30)로부터 응답 데이터(702)를 수신하는 스텝이다. 액세스 로직(20)은 트랜스포트부(30)에 대하여 정기적으로 응답 데이터의 도착에 대해 질의하고, 수신되었으면 응답 데이터를 수취한다. 데이터가 아직 수신되지 않은 경우에, 액세스 로직(20)은 일정한 간격으로 트랜스포트부(30)에 대하여 데이터 도착에 대해 질의한다.
데이터가 수신될 수 있는 경우에는, 수신된 데이터의 송신원의 어드레스(IP 어드레스)가 동시에 취득된다. 이것은 후술하지만, 트랜스포트부(30)가 운영 체제에 포함된 프로토콜 스택으로부터 취득할 수 있는 정보이다. 그 후, 제어는 스텝 S22로 진행한다.
스텝 S22에서, 요구 ID가 응답 데이터(702)의 패킷 헤더로부터 추출된다. 추출된 요구 ID를 키로서 사용해서, 도 1의 저장부(203)가 질의를 받고, 요구 ID와 연관된 요구 데이터가 취득된다. 즉, 응답 패킷의 요구 ID와 과거에 송신된 요구의 요구 ID가 비교된다. 이 처리는 프린터로부터의 응답 데이터(702)가 프린터 드라이버(10)로부터 전송된 요구 데이터(701)에 대하여 허가된 응답인지 여부를 판정하기 위한 처리이다. 응답 데이터에 포함된 요구 ID를 갖는 요구 데이터가 저장되었다는 사실은 이러한 응답 데이터가 올바른 송신 상대로부터 회신되었다는 방증이다. 즉, 송신된 요구 데이터의 요구 ID를 갖는 응답 데이터가 허가된 응답이 되는 가능성이 높은 것으로 판정될 수 있다. 정보의 비교에 의해 요구와 응답이 연관되므로, 위조나 오류 응답을 완전하게 방지하는 것은 통상적으로 곤란하다. 이러한 이유로, 응답이 허가된 응답이라는 것은 확률의 정도를 사용하여 판정된다. 이것은 통상적인 요구/응답 시퀀스에도 마찬가지 양식으로 수행되는 것이다. 한편, 송신된 요구 데이터의 요구 ID를 갖지 않는 응답 데이터는 응답이 허가되지 않은 응답인 것으로 판정될 수 있다.
응답이 허가되지 않은 응답인 것으로 판정되었을 경우에는, 추가적인 내용의 해석은 수행하지 않고 응답 데이터는 파기된다. 이 처리에 의해, 네트워크 상의 악의가 있는 제3자로부터의 위조(bogus) 패킷을 어느 정도 검출 및 폐기하기 위한 필터링 기능이 실현될 수 있다. 다음으로, 응답 데이터의 내용이 해석되어 표시부(50)에 전달된다. 표시부(50)는 표시 데이터를 작성해서 도 2의 표시 유닛(6)에 이러한 표시를 나타낸다.
스텝 S23은 요구 ID에 기초하여 통신 상대의 이름을 검색하는 스텝이다. 스텝 S22에서 취득된 요구 ID가 지정되고, 지정된 요구 ID와 연관된 통신 상대 이름(FQDN)이 저장부(202)에 회신된다. 얻은 FQDN과 스텝 S21에서 취득된 응답 데이터의 송신원의 어드레스가 호출원에 회신되고, 응답 수취 처리가 종료된다.
스텝 S30에서, 스텝 S20에서 취득된 프린터의 FQDN과, 동일한 프린터의 어드레스가 입력되고, 트랜스포트부(30)의 이름 분석부(301)에 의해 수행되는, 이름과 어드레스를 연관시키기 위한 기능이 호출된다. 이름 분석부(301)는 도 6b의 처리를 실행한다. 이에 대해서는 후술한다. 그 후, 수신된 허가된 응답에 대응하는 요구 데이터 및 대응하는 요구 ID가 저장부(203)로부터 삭제된다. 또한, 올바른 응답이 수신될 수 없었던 요구에 대해, 대응하는 요구 데이터 및 대응하는 요구 ID가 마찬가지로 저장부(203)로부터 삭제된다.
도 5 및 도 6a, 6b는 트랜스포트부(30)에 의해 실행되는 처리를 나타내는 흐름도이다. 도 5의 송신 처리는 트랜스포트부(30)가 송신하라고 요구받는 결과로서 트랜스포트부(30)에 의해 실행되는 처리이다. 이것은 도 4b의 스텝 S13에서의 액세스 로직(20)에 의한 처리로서 설명되었다. 도 5의 송신 처리는 스텝 S50 및 스텝 S60 내지 S67을 갖는다. 통신 상대의 어드레스를 취득하기 위한 스텝 S50의 처리는 도 6a에 나타낸 상세한 스텝으로서 설명될 것이다. 스텝 S50에서, 통신 상대를 구성하는 프린터의 이름이 입력으로서 수신된다. 실제로, 요구가 송신되기 전에 통신 상대의 이름을 어드레스로 변환할 필요가 있으므로, 통신 상대의 이름과 어드레스 사이의 연관성을 저장하는 저장부(304)와 외부의 DNS 서버(70) 중 어느 한 쪽 또는 모두에 액세스해서 유효한 어드레스를 취득하기 위한 시도가 이루어진다. 그 상세 사항에 대해서는 도 6a를 참조하여 설명한다.
도 6a의 스텝 S51에서, 저장부(304)에 스텝 S50의 입력으로서 전달된 통신 상대의 이름이 키로서 이미 등록되었는지 여부가 판정된다. 그 이름이 이미 등록되었다면, 통신 상대의 이름과 연관된 어드레스는 저장부(304)로부터 취득되어 호출원으로 회신된다. 저장부(304)는 "캐쉬"라고 칭해질 수도 있다. 한편, 통신 상대의 이름이 등록되지 않은 경우에는, 스텝 S52에서 DNS 서버(70)가 이름 분석을 수행하라고 요구받는다. 요구가 이루어지면, IPv4과 IPv6 어드레스 모두에 대해 분석이 요구된다. 복수의 어드레스가 얻어지는 경우에는, 이들 모두가 리스트(어드레스 리스트)의 양식으로 호출원에 회신된다. 프린터 드라이버(10)가 어떤 프린터에 최초로 액세스하는 경우에, 스텝 S51에서 "아니오" 판정이 내려지고, DNS 서버(70)는 이름 분석을 실행한다. 스텝 S53에서 언급된 "캐쉬"는 DNS 서버(70)에 의한 이름 분석의 결과를 그대로 캐싱하지 않는다는 것에 유의해야 한다. 캐쉬 즉, 저장부(304)에 유지되는 것은, 후술하는 도 6b에서 나타내는 통신 상대 어드레스를 등록하기 위한 처리에 의해 입력된 정보이다.
스텝 S50에서 통신 상대를 구성하는 프린터의 어드레스가 취득된 후에, 도 5의 스텝 S60 이후로부터 요구 송신과 응답 수신을 위한 처리가 실행된다. 도 5의 송수신 처리는, 취득된 통신 상대의 어드레스에 대하여 요구 패킷을 송신하고, 규정된 응답 대기 시간 후에 응답이 수신되었는지를 확인하는 것을 본질적으로 포함한다. 복수의 패킷이 취득되는 경우에는, 그 중의 하나가 선택되고, 선택된 어드레스로 송신된다. 규정된 시간 주기 내에 응답이 없는 경우에는, 하나의 어드레스에 대해 규정된 횟수(예를 들면, 2회)로 재전송을 반복하면서, 스텝 S50에서 취득된 어드레스 모두에 대해 시도된다. 이름 분석에 의해 얻어진 모든 어드레스에 대하여 요구가 송신되었더라도, 응답이 수신될 수 없을 때 이러한 시도는 중단된다.
다음으로, 송수신 처리에 대해 스텝별로 설명한다. 도 5의 스텝 S60에서, 스텝 S50에서 취득된 통신 상대의 어드레스 리스트에서 아직 다루어지지 않은 어드레스가 존재하는지 여부가 판정된다. 즉, 스텝 S60의 처리는, 어드레스 리스트의 선두로부터 어드레스를 지시하는 인덱스를 증가시키고, 인덱스가 증가된 포인트에 어드레스가 존재하는지 여부를 판정하는 것을 포함한다. 아직 다루어지지 않은 어드레스가 존재하면, 다음에 취득될 수 있는 어드레스가 존재하는 것으로 판정된다. 이미 어드레스 리스트의 최후단에 도달된 경우에는, 스텝 S60에서 "아니오" 판정이 내려지고, 처리가 더 이상 계속될 수 없으므로, 처리가 종료된다. 최초에 스텝 S60에서 내려진 판정이 "아니오"인 경우, 즉 통신 상대를 구성하는 프린터의 이름이 DNS 서버에 등록되지 않은 경우와, 예를 들어, 프린터 전원이 오프되거나 프린터가 오프라인이어서 규정된 시간 주기 내에 응답이 회신되지 않은 경우의 두 경우가 있을 수 있다. 다음 어드레스가 존재하는 경우에는, 이 어드레스가 주목 어드레스로서 채택된다. 이 때, 송신 횟수를 카운트하기 위한 카운터가 예를 들면 제로(0)의 초기값으로 복귀된다. 그리고 제어는 스텝 S61로 진행한다. 여기에서, 어드레스마다 송신 시도의 소정 횟수가 초과되었는지 여부가 판정된다. 즉, 카운트 값이 소정 횟수를 초과하는 경우에, 제어는 스텝 S60으로 진행하고 다음 어드레스를 취득하기 위한 시도가 이루어진다.
스텝 S61에서 "아니오" 판정이 내려진 경우에는, 스텝 S62에서 요구 데이터를 송신하기 위한 처리가 실행된다. 스텝 S61은 트랜스포트부(30)의 요구 송신부(302)에 의해 실행되는 처리이다. 스텝 S61에서, 액세스 로직(20)으로부터 취득된 요구 데이터는 스텝 S60에서 주목 객체로서 채택된 어드레스로 송신된다.
다음으로, 스텝 S63에서, 시스템은 소정의 응답 대기 시간(예를 들면, 5초)만 응답을 대기한다. 프린터가 슬리핑(sleeping) 상태에 있었던 경우에, 응답 대기 시간은 각성(wake-up)에 필요한 시간과 각성 후에 응답하는 데 필요한 시간을 가산해서 규정된다.
스텝 S64에서, 프린터로부터의 응답 데이터의 수신하려는 시도가 이루어진다. 구체적으로, 운영 체제에 포함된 프로토콜 스택에 의해 제공되는 수신 데이터 취득 기능이 호출되고, 데이터가 도착되었는지 여부가 확인된다.
스텝 S65에서, 스텝 S64를 실행한 결과에 의해 수신 데이터가 수신되었는지 여부가 판정된다. "아니오" 판정이 내려지면, 제어는 스텝 S67로 진행하고, 송신 횟수가 증가되고, 제어는 스텝 S61로 복귀한다. 한편, 스텝 S65에서 "예" 판정이 내려지면, 프린터로부터 송신된 요구에 대응하는 응답이 수신되었을 가능성이 높다. 그 때문에, 스텝 S65에서 "예" 판정이 내려지면, 요구에 대응하는 응답을 수신된 것으로 판정된다. 스텝 S66에서, 수신 데이터는 송신 요구원인 액세스 로직(20)으로의 전달을 위한 정보로서 작성된다. 예를 들면, 이 정보는 수신된 응답 데이터와 이러한 응답 데이터를 송신한 프린터의 어드레스를 포함한다.
다음으로, 통신 상대의 어드레스를 등록하기 위한 도 6b의 처리에 대해 설명한다. 이 처리는 도 4a의 스텝 S30에서 액세스 로직(20)이 트랜스포트부(30)의 이름 분석부(301)의 이름―어드레스 연관 기능을 호출한 결과로서 실행되는 처리이다. 통신 상대의 어드레스를 등록하기 위한 도 6b의 처리에 대해 입력으로서 프린터의 FQDN과 그 어드레스로 구성되는 세트가 부여된다. 스텝 S71에서 이러한 FQDN과 어드레스가 연관되어 저장된다. 저장부(304)에 저장된 FQDN과 어드레스는 어드레스의 캐쉬로서 참조된다. 그 때문에, 무참조(non-consultation) 시간이 고정 시간 주기를 초과한 캐쉬의 레코드(FQDN과 어드레스로 이루어진 쌍)를 삭제하는 것이 바람직하다. 이것은, 어드레스가 갱신되었을 가능성이 있기 때문이며, 저장 용량이 제한되기 때문이다. 또한, 캐싱된 어드레스로 요구가 송신되고 응답이 수신되지 않는 경우에도, 이러한 레코드가 삭제되는 것이 바람직하다. 등록되는 어드레스는 정규의 응답이 회신된 요구의 송신처 어드레스이다. 또한, 예를 들면, 정규 응답을 송신한 소스의 어드레스일 수도 있다.
상술한 절차에 의해, 송신처의 이름(FQDN)과 패킷에 부가된 식별 정보(요구 ID)가 연관되어, 수신된 응답이 송신된 요구에 대응하는 응답으로서 식별될 수 있게 한다. 그 결과, 식별된 응답 외의 응답들을 폐기하기 위한 필터링 처리가 실현될 수 있다.
또한, IPv4와 IPv6 어드레스가 일회적으로 취득될 수 있고, 이름 분석이 수행되는 횟수를 줄일 수 있고 필요한 시간을 단축시킬 수 있다.
또한, 통신이 성공한 어드레스를 송신처의 이름(FQDN)과 연관지어 캐싱함으로써, 복수의 어드레스가 IPv6 DNS 서버에 등록된 경우에도, 패킷 송신이 시도되는 횟수가 감소될 수 있다. 그 결과, 네트워크 트래픽이 감소될 수 있다.
본 실시예는, 프린터 드라이버가 프린터로 인쇄 데이터 즉, 요구 데이터를 송신하는 경우를 예로 들어 설명했지만, 본 발명을 일반적인 데이터 송신에 적용할 수 있다. 즉, 프린터 드라이버(10) 대신에 다른 어플리케이션 프로그램이나 시스템 프로그램에 대하여 본 실시예를 포함하는 발명이 적용될 수 있다. 이 경우, 액세스 로직(20)과 트랜스포트부(30)가 대안적인 어플리케이션 프로그램 또는 시스템 프로그램에 대해 본 실시예와 마찬가지로 기능할 것이다.
또한, 본 실시예는, 액세스 로직(20)과 트랜스포트부(30)가 프린터 드라이버에 포함되는 양식으로 설명되었다. 그러나, 액세스 로직(20)과 트랜스포트부(30)는 프린터 드라이버의 외부에 배치될 수 있고, 드라이버 로직(40)에 대해서는, 기능 호출 인터페이스와 같은 적절한 인터페이스에 의해 호출될 수도 있다. 이러한 구성이 채용되면, 원하는 프로그램에 액세스 로직(20)과 트랜스포트부(30)와의 인터페이스를 기술함으로써, 액세스 로직(20)과 트랜스포트부(30)가 이용될 수 있다.
또한, 요구 패킷 즉, 송신 데이터에 포함된 ID는 순회적으로 생성된 코드이다. 하지만, 시점(point in time)이나 송신원 어드레스와 시점의 조합과 같은 패킷을 고유하게 식별하는 임의의 코드이면 충분할 것이다.
또한, 본 실시예에서는, 응답 데이터와 동일한 요구 ID를 갖는 요구 데이터가 저장된 경우, ID만을 식별 정보로서 사용해서 정규의 응답이 판정된다. 그러나, 데이터의 내용이 비교될 수 있다. 예를 들면, 도 7a 및 7b에 나타낸 커맨드와 같은, 대응하는 요구와 응답에 공통되는 값을 갖는 필드가 비교될 수 있고, 비교된 필드가 일치하면 응답이 허가된 응답인 것으로 판정될 수 있다. 즉, 이 경우에는, ID 외에 요구와 응답의 공통 필드를 식별 정보로서 사용해서, 응답이 허가된 응답인 것으로 판정된다.
본 발명은, 복수의 디바이스(예를 들면, 호스트 컴퓨터, 인터페이스, 리더, 프린터 등)에 의해 구성되는 시스템에 적용될 수 있거나, 단일 디바이스로 이루어지는 장치(예를 들면, 복사기 또는 팩시밀리 머신 등)에 적용될 수 있다.
본 발명의 각 프로세스 스텝은, 네트워크 또는 각종 저장 매체를 통해 취득된 소프트웨어(프로그램)를 퍼스널 컴퓨터와 같은 처리 장치(CPU 또는 프로세서)가 실행함으로써 실현될 수도 있다.
다른 실시예
본 발명의 양태들은, 메모리 디바이스 상에 기록된 프로그램을 판독 및 실행하여 상술한 실시예(들)의 기능을 수행하는 컴퓨터 시스템 또는 장치 (또는, CPU나 MPU와 같은 디바이스), 및 예를 들어, 메모리 디바이스 상에 기록된 프로그램을 판독 및 실행하여 상술한 실시예(들)의 기능을 수행함으로써 컴퓨터 시스템 또는 장치에 의해 그 스텝들이 수행되는 방법에 의해 실현될 수도 있다. 이를 위해, 예를 들면 메모리 디바이스로서의 역할을 하는 각종 기록 매체(예를 들어, 컴퓨터 판독가능 매체)를 통해 또는 네트워크를 통해 프로그램이 컴퓨터에 제공된다.
실시예들을 참조하여 본 발명을 설명하였지만, 본 발명이 개시된 실시예들에 한정되지 않는다는 것이 이해되어야 한다. 이하의 청구항의 범위는 이러한 모든 변형 및 동등한 구성 및 기능을 포함하도록 최광의의 해석에 따라야 한다.
본 출원은 본 명세서에 그 전체가 참조로써 통합되어 있는, 2009년 5월 13일자로 출원된 일본 특허 출원 제2009-117049호를 우선권 주장한다.

Claims (9)

  1. 복수의 어드레스가 할당된 네트워크 디바이스와 네트워크를 통해 통신할 수 있는 데이터 통신 장치이며,
    상기 네트워크 디바이스의 이름을 송신하여 이름 분석 서버(name resolution server)로부터 상기 네트워크 디바이스의 어드레스를 질의(inquire)하기 위한 질의 수단;
    상기 이름에 연관된 복수의 어드레스를 저장하는 상기 이름 분석 서버로부터 어드레스를 취득하기 위한 취득 수단;
    통신 상대를 식별하기 위한 요구 ID를 포함하는 요구 데이터를 상기 취득 수단에 의해 취득된 상기 어드레스로 송신하기 위한 송신 수단;
    응답 데이터를 수신하기 위한 수신 수단;
    상기 수신 수단에 의해 수신된 응답 데이터에 포함된 요구 ID가 상기 송신 수단에 의해 송신된 요구 데이터에 포함된 요구 ID에 대응하지 않는 경우에는, 상기 응답 데이터를 요구원(requesting source)에 전달하지 않고, 상기 수신 수단에 의해 수신된 응답 데이터에 포함된 요구 ID가 상기 송신 수단에 의해 송신된 요구 데이터에 포함된 요구 ID에 대응하는 경우에는, 상기 응답 데이터를 요구원에 전달하도록, 상기 데이터 통신 장치를 제어하기 위한 제어 수단
    을 포함하는 데이터 통신 장치.
  2. 제1항에 있어서,
    상기 취득 수단은 상기 데이터 통신 장치에 설치된 프로그램으로부터 송신된 데이터 처리를 위한 요구를 더 취득하도록 구성되고,
    상기 송신 수단은, 상기 취득 수단에 의한 데이터 처리를 위한 요구의 취득에 응답하여, 통신 상대를 식별하기 위한 요구 ID를 포함하는 요구 데이터를 상기 네트워크 디바이스에 할당된 복수의 어드레스 중 하나의 어드레스로 송신하도록 구성된 데이터 통신 장치.
  3. 제2항에 있어서,
    상기 데이터 통신 장치에 설치된 프로그램은 프린터 드라이버 프로그램이며, 상기 제어 수단은, 상기 수신 수단에 의해 수신된 응답 데이터에 포함된 요구 ID가 상기 송신 수단에 의해 송신된 요구 데이터에 포함된 요구 ID에 대응하는 경우, 상기 요구 데이터의 요구원인 상기 프린터 드라이버 프로그램에 상기 응답 데이터를 전달하도록 상기 데이터 통신 장치를 제어하도록 구성된, 데이터 통신 장치.
  4. 제3항에 있어서,
    상기 취득 수단은 상기 프린터 드라이버 프로그램으로부터의 데이터 처리를 위한 요구를 가지는 프린터의 이름을 더 취득하도록 구성되고, 상기 질의 수단은 상기 취득 수단에 의해 취득된 프린터의 이름을 상기 이름 분석 서버에 송신하도록 구성된, 데이터 통신 장치.
  5. 삭제
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
KR1020117029027A 2009-05-13 2010-04-28 데이터 통신 장치, 인쇄 제어 장치, 데이터 통신 방법 및 컴퓨터 판독가능 매체 KR101296531B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2009117049A JP5328472B2 (ja) 2009-05-13 2009-05-13 ネットワーク通信装置及び方法とプログラム
JPJP-P-2009-117049 2009-05-13
PCT/JP2010/057921 WO2010131633A1 (en) 2009-05-13 2010-04-28 Network communication apparatus, method and program

Publications (2)

Publication Number Publication Date
KR20120041170A KR20120041170A (ko) 2012-04-30
KR101296531B1 true KR101296531B1 (ko) 2013-08-13

Family

ID=43085005

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117029027A KR101296531B1 (ko) 2009-05-13 2010-04-28 데이터 통신 장치, 인쇄 제어 장치, 데이터 통신 방법 및 컴퓨터 판독가능 매체

Country Status (8)

Country Link
US (2) US8165042B2 (ko)
EP (1) EP2430803B1 (ko)
JP (1) JP5328472B2 (ko)
KR (1) KR101296531B1 (ko)
CN (1) CN102422606B (ko)
BR (1) BRPI1011364B1 (ko)
RU (1) RU2515552C2 (ko)
WO (1) WO2010131633A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106850710B (zh) * 2015-12-03 2020-02-28 杭州海康威视数字技术股份有限公司 一种数据云存储系统、客户终端、存储服务器及应用方法
US10412177B2 (en) * 2016-03-30 2019-09-10 Konica Minolta Laboratory U.S.A., Inc. Method and system of using IPV6 neighbor discovery options for service discovery
JP7022508B2 (ja) * 2017-01-30 2022-02-18 キヤノン株式会社 通信装置、通信方法、及びプログラム
EP3805938B1 (en) * 2018-08-28 2023-11-01 Petal Cloud Technology Co., Ltd. Server node selection method and terminal device
JP7341765B2 (ja) * 2019-07-16 2023-09-11 キヤノン株式会社 印刷装置、その制御方法およびプログラム
RU2740159C1 (ru) * 2019-10-14 2021-01-12 Федеральное государственное бюджетное образовательное учреждение высшего образования "Российский государственный университет физической культуры, спорта, молодежи и туризма (ГЦОЛИФК)" (РГУФКСМиТ) Способ копирования или перемещения иерархически структурированных данных с устройства-носителя информации на устройство-потребитель информации

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060224774A1 (en) 2005-04-05 2006-10-05 Masamichi Tanji Communication apparatus and communication control method
US20070047549A1 (en) 2005-08-25 2007-03-01 Samsung Electronics Co., Ltd. Dual-stack network apparatus and broadcasting method thereof
US7490351B1 (en) * 2003-03-12 2009-02-10 Occam Networks Controlling ARP traffic to enhance network security and scalability in TCP/IP networks

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09275418A (ja) * 1996-04-05 1997-10-21 Hitachi Ltd ネットワーク接続装置
JPH11110365A (ja) 1997-10-03 1999-04-23 Hitachi Ltd ネットワーク計算機システム、該システムで用いる計算機、および該システムに係る方法
JP2000156707A (ja) * 1998-11-19 2000-06-06 Nec Corp パケット交換局及びパケット交換ネットワークシステム
JP2002252641A (ja) 2001-02-26 2002-09-06 Nippon Telegr & Teleph Corp <Ntt> 通信接続処理方法及びその実施装置並びにその処理プログラムと記録媒体
JP2002354005A (ja) 2001-05-24 2002-12-06 Fujitsu Ltd 通信宛先の名前からアドレスを得る名前解決方法、名前解決装置及びアドレス選択装置
WO2002103547A1 (en) * 2001-06-15 2002-12-27 Advanced Network Technology Laboratories Pte Ltd. Computer networks
US7134012B2 (en) * 2001-08-15 2006-11-07 International Business Machines Corporation Methods, systems and computer program products for detecting a spoofed source address in IP datagrams
JP2003348116A (ja) * 2002-05-28 2003-12-05 Hitachi Ltd 家庭内ネットワーク向けアドレス自動設定方式
CA2403074A1 (en) * 2002-09-13 2004-03-13 Barry W. Jackson Column hung shoring system
US8260961B1 (en) * 2002-10-01 2012-09-04 Trustwave Holdings, Inc. Logical / physical address state lifecycle management
US7356009B1 (en) * 2002-10-02 2008-04-08 Cisco Technology, Inc. Method and apparatus for configuring a mobile node to retain a “home” IP subnet address
JP3813571B2 (ja) * 2002-11-13 2006-08-23 株式会社東芝 境界ルータ装置、通信システム、ルーティング方法、及びルーティングプログラム
FR2851867B1 (fr) 2003-02-28 2005-06-24 Cit Alcatel Ordonnancement d'adresses dans serveur de noms de domaine
US7562390B1 (en) * 2003-05-21 2009-07-14 Foundry Networks, Inc. System and method for ARP anti-spoofing security
FR2855697B1 (fr) * 2003-05-26 2005-09-23 At & T Corp SYSTEME DE CONVERSION DE DONNEES BASEE SUR IPv4 EN DONNEES BASEES SUR IPv6 A TRANSMETTRE A TRAVERS UN RESEAU COMMUTE IP
JP2005295217A (ja) * 2004-03-31 2005-10-20 Toshiba Corp 通信装置、名前解決方法およびプログラム
JP2006050286A (ja) * 2004-08-05 2006-02-16 Seiko Epson Corp ネットワークシステム、ネットワークシステムにおける通信方法、およびホスト装置
RU2392770C2 (ru) * 2004-08-16 2010-06-20 Квэлкомм Инкорпорейтед Способы и устройство для управления членством в группе при групповом обмене
US7796614B1 (en) * 2004-11-30 2010-09-14 Symantec Corporation Systems and methods for message proxying
KR20080037605A (ko) * 2005-03-17 2008-04-30 마크 이. 딜런 대량 전송 전자 메시지를 트래핑하기 위한 시스템, 방법 및장치
US7436783B2 (en) * 2005-04-04 2008-10-14 Apple Inc. Method and apparatus for detecting a router that improperly responds to ARP requests
JP2006324946A (ja) 2005-05-19 2006-11-30 Matsushita Electric Ind Co Ltd 通信装置、通信方法及び通信識別子選択プログラム
JP4241681B2 (ja) 2005-07-05 2009-03-18 ブラザー工業株式会社 情報処理装置、およびプログラム
JP2007104137A (ja) * 2005-09-30 2007-04-19 Matsushita Electric Ind Co Ltd データ通信装置
US8284782B1 (en) * 2005-11-15 2012-10-09 Nvidia Corporation System and method for avoiding ARP cache pollution
JP3920305B1 (ja) * 2005-12-12 2007-05-30 株式会社日立コミュニケーションテクノロジー パケット転送装置
KR100694231B1 (ko) * 2006-01-16 2007-03-14 삼성전자주식회사 패킷 처리 장치 및 그 방법
JP4732257B2 (ja) * 2006-07-07 2011-07-27 富士通株式会社 中継装置、経路制御方法、及び経路制御プログラム
US7885180B2 (en) * 2006-12-15 2011-02-08 Check Point Software Technologies Inc. Address resolution request mirroring
US7689671B2 (en) 2007-03-09 2010-03-30 International Business Machines Corporation System and method for multiple IP addresses during domain name resolution
KR100992968B1 (ko) * 2007-04-06 2010-11-08 삼성전자주식회사 네트워크 스위치 및 그 스위치의 주소충돌방지방법
US8495224B2 (en) * 2007-06-29 2013-07-23 Apple Inc. Network management
US7734792B2 (en) 2007-07-25 2010-06-08 Novell, Inc. Secure tunnel domain name management
JP4780418B2 (ja) * 2007-09-21 2011-09-28 富士ゼロックス株式会社 クライアント装置、データ処理プログラム
CA2619092C (en) * 2008-01-29 2015-05-19 Solutioninc Limited Method of and system for support of user devices roaming between routing realms by a single network server
US7869389B2 (en) * 2008-09-26 2011-01-11 O2Micro, Inc. Network device with proxy address resolution protocol

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7490351B1 (en) * 2003-03-12 2009-02-10 Occam Networks Controlling ARP traffic to enhance network security and scalability in TCP/IP networks
US20060224774A1 (en) 2005-04-05 2006-10-05 Masamichi Tanji Communication apparatus and communication control method
US20070047549A1 (en) 2005-08-25 2007-03-01 Samsung Electronics Co., Ltd. Dual-stack network apparatus and broadcasting method thereof

Also Published As

Publication number Publication date
US20120140281A1 (en) 2012-06-07
EP2430803A1 (en) 2012-03-21
CN102422606A (zh) 2012-04-18
JP2010268164A (ja) 2010-11-25
RU2011150473A (ru) 2013-08-27
EP2430803A4 (en) 2015-01-07
CN102422606B (zh) 2015-04-22
KR20120041170A (ko) 2012-04-30
WO2010131633A1 (en) 2010-11-18
JP5328472B2 (ja) 2013-10-30
US20110064076A1 (en) 2011-03-17
US8165042B2 (en) 2012-04-24
US8964602B2 (en) 2015-02-24
RU2515552C2 (ru) 2014-05-10
BRPI1011364A2 (pt) 2016-03-15
BRPI1011364B1 (pt) 2021-01-19
EP2430803B1 (en) 2016-07-13

Similar Documents

Publication Publication Date Title
KR101296531B1 (ko) 데이터 통신 장치, 인쇄 제어 장치, 데이터 통신 방법 및 컴퓨터 판독가능 매체
US8001270B2 (en) Method and apparatus for discovering a network address
US8463915B1 (en) Method for reducing DNS resolution delay
EP1441487A2 (en) Address query response method, program, and apparatus
US7720097B2 (en) Communication apparatus, communication method, communication program and recording medium
EP1783954A1 (en) System and method for discovering network resources
JP4297792B2 (ja) Webサーバ組み込みビジネス機器
WO2006072222A1 (fr) Procede permettant de mettre en oeuvre la synchronisation de donnees du serveur et du cote client dans le mecanisme du systeme de nom de domaine
US20070220256A1 (en) Electronic mechanical device
KR20110028223A (ko) 송신원을 식별하는 정보 처리 장치 및 그 제어 방법
US20110235641A1 (en) Communication apparatus, method of controlling the communication apparatus,and program
JP2008311939A (ja) ネットワーク通信機器
JP4921864B2 (ja) 通信制御装置、認証システムおよび通信制御プログラム
US9442779B2 (en) Information-processing apparatus, information-processing method, and program
JP4443482B2 (ja) インターネット印刷システム及びそれを実現するためのプログラム
JP2003163681A (ja) パケット転送装置、パケット転送方法およびプログラム
JP4905376B2 (ja) 複数のネットワークプロトコルに対応した通信システムおよび通信方法
JP5591380B2 (ja) ネットワーク通信装置及び方法とプログラム
WO2009110327A1 (ja) ネットワーク監視システム、ネットワーク監視方法、及びネットワーク監視プログラム
CN107888651B (zh) 用于多简档创建以减轻剖析的方法和系统
WO2014125708A1 (ja) 受信装置、受信装置制御方法、受信装置制御プログラム、ネットワークシステム、ネットワークシステム制御方法、及びネットワークシステム制御プログラム
EP0980616B1 (en) Network printer auto-detection method and system
JP2006238107A (ja) 情報処理システム、情報処理装置、サーバ装置、及び情報処理方法
JP3826906B2 (ja) 通信管理装置
US20220200958A1 (en) Network security configuration of image forming apparatus

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160725

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170725

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180725

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190808

Year of fee payment: 7