


















아래의 실시예들은 컨텐츠 중심 네트워크(Content Centric Networking; CCN))에서 노드의 통신 방법 및 그 노드에 관한 것이다.The following embodiments relate to a node's communication method and its node in a content-centric network (CCN).
컨텐츠 중심 네트워크(CCN)는 이름 기반의 라우팅(name-based routing), 네트워크 내의 캐싱(in-network caching) 및 패킷마다의 보안성을 제공하는 네트워킹 토폴로지이다. 컨텐츠 중심 네트워크는 피어-투-피어(peer-to-peer) 컨텐츠 공유를 위한 실용적인 기술 및 컴퓨터 네트워크의 아키텍쳐에 대한 대안이 될 수 있다. 컨텐츠 중심 네트워크는 인터넷 프로토콜(Internet Protocol; IP)의 호스트 주소들(host addresses)을 대체할 수 있는 컨텐츠 이름을 사용하여 효율적인 정보 공유를 위한 새로운 네트워킹 원리를 제공할 수 있다.Content-centric networks (CCNs) are networking topologies that provide name-based routing, in-network caching, and per-packet security. Content-centric networks can be an alternative to practical technology and computer network architectures for peer-to-peer content sharing. Content-centric networks can provide new networking principles for efficient information sharing by using content names that can replace host addresses of Internet Protocol (IP).
컨텐츠 중심 네트워크(CCN)는, 수신된 컨텐츠의 물리적 위치, 특정 참조(specific reference)를 가지기 보다는, 사용자로 하여금 사용자에 의해 요청된 데이터에 집중하도록 하는 통신 네트워크를 제공한다.A content-centric network (CCN) provides a communication network that allows a user to focus on data requested by a user rather than having a physical location, specific reference to the received content.
일 실시예에 따르면, 노드의 통신 방법은 컨텐츠 중심 네트워크에서 이전 노드(previous node)로부터 컨텐츠를 요청하는 제1 인터레스트(Interest)를 수신하는 단계; 상기 제1 인터레스트에 응답하여, 상기 제1 인터레스트의 수신을 나타내는 제1 ACK 메시지(ACKnowledgement message)를 생성하는 단계; 및 상기 이전 노드에게 상기 제1 ACK 메시지를 전송하는 단계를 포함한다.According to one embodiment, a method of communicating a node includes receiving a first interest requesting content from a previous node in a content-centric network; In response to the first interlace, generating a first acknowledgment message indicating reception of the first interlace; And transmitting the first ACK message to the previous node.
상기 제1 ACK 메시지를 생성하는 단계는 상기 제1 인터레스트와 관련된 고유의 시퀀스 넘버에 기초하여 상기 제1 ACK 메시지를 생성하는 단계를 포함할 수 있다.The generating of the first ACK message may include generating the first ACK message based on a unique sequence number associated with the first interlace.
상기 노드의 통신 방법은 상기 제1 ACK 메시지를 전송한 후, 상기 노드의 PIT(Propagating Interest Table)에 상기 제1 인터레스트와 관련된 PIT 엔트리를 생성하는 단계; 및 상기 PIT 엔트리에 상기 제1 인터레스트와 관련된 시퀀스 넘버를 저장하는 단계를 더 포함할 수 있다.The method comprising: generating a PIT entry associated with the first inter- est in a propagation interest table (PIT) of the node after transmitting the first ACK message; And storing the sequence number associated with the first interlace in the PIT entry.
상기 노드의 통신 방법은 상기 제1 ACK 메시지를 전송한 후, 상기 제1 인터레스트와 관련된 컨텐츠가 상기 노드의 컨텐츠 스토어에 존재하지 않는 경우, 제2 인터레스트를 생성하는 단계; 다음 노드(next node)에게 상기 제2 인터레스트를 전송함에 따라, ACK 타이머(acknowledgement timer)를 시작하는 단계; 및 상기 다음 노드로부터 상기 제2 인터레스트에 응답한 제2 ACK 메시지를 수신한 경우, 상기 ACK 타이머를 정지하는 단계를 더 포함할 수 있다.The method comprising the steps of: generating a second interlace when a content related to the first interlace is not present in the content store of the node after transmitting the first ACK message; Initiating an ACK timer by sending the second interlace to a next node; And stopping the ACK timer when receiving a second ACK message in response to the second interlace from the next node.
상기 제2 인터레스트를 생성하는 단계는 넌스(Nonce)를 가지는 상기 제2 인터레스트를 생성하는 단계를 포함할 수 있다.The step of generating the second interlace may include generating the second interlace having a nonce.
상기 제2 인터레스트는 파라미터들을 포함하고, 상기 파라미터들은 상기 노드에서 상기 제2 인터레스트에 대응하는 컨텐츠의 이용 가능성(availability)에 기초하여 변경될 수 있다.The second interrest includes parameters, and the parameters can be changed based on availability of content corresponding to the second interrest at the node.
상기 노드의 통신 방법은 상기 제2 ACK 메시지가 상기 ACK 타이머의 만료 시까지 수신되지 않는 경우, 상기 다음 노드에게 상기 제2 인터레스트를 재전송하는 단계를 더 포함할 수 있다.The method of communication of the node may further include retransmitting the second interlace to the next node if the second ACK message is not received until the expiration of the ACK timer.
상기 노드의 통신 방법은 상기 제2 인터레스트를 재전송함에 따라, 상기 ACK 타이머를 일정한 백 오프 타임 아웃 값(back-off timeout value)으로 다시 시작하는 단계를 더 포함할 수 있다.The method of communication of the node may further include restarting the ACK timer with a constant back-off timeout value as the second interlace is retransmitted.
상기 제2 인터레스트는 상기 제2 인터레스트를 식별할 수 있는 고유의 시퀀스 넘버와 관련되고, 상기 고유의 시퀀스 넘버는 IN 시퀀스 넘버(IN Sequence Number; ISN) 및 OUT 시퀀스 넘버(OUT Sequence Number; OSN)를 포함할 수 있다.The second interlace is associated with a unique sequence number that can identify the second interlace and the unique sequence number includes an IN Sequence Number (ISN) and an OUT Sequence Number (OSN) ).
상기 노드의 통신 방법은 상기 제1 인터레스트가 수신되면, 상기 노드의 PIT에 상기 IN 시퀀스 넘버를 저장하는 단계를 더 포함할 수 있다.The communication method of the node may further include storing the IN sequence number in the PIT of the node when the first interlace is received.
상기 노드의 통신 방법은 상기 제2 인터레스트를 상기 다음 노드에게 전송할 때, 상기 노드의 PIT에 상기 OUT 시퀀스 넘버를 저장하는 단계를 더 포함할 수 있다.The communication method of the node may further include storing the OUT sequence number in the PIT of the node when the second interlace is transmitted to the next node.
상기 제1 ACK 메시지를 전송하는 단계는 상기 제1 인터레스트가 수신된 인커밍 페이스(incoming face)가 원거리(remote)인지 여부를 판단 하는 단계; 및 상기 인커밍 페이스가 원거리로 판단되면, 상기 제1 인터레스트에 응답하여 상기 제1 ACK 메시지를 전송하는 단계를 포함할 수 있다.Wherein the transmitting the first ACK message comprises: determining whether an incoming face received by the first interlace is remote; And transmitting the first ACK message in response to the first interlace if the incoming face is determined to be distant.
상기 노드의 통신 방법은 상기 인커밍 페이스가 근거리로 판단되면, 상기 제1 인터레스트에 상기 이전 노드에 의해 생성된 복제된 넌스(duplicated Nonce)가 있는지 여부를 판단하는 단계; 상기 복제된 넌스가 있다고 판단되는 경우, 상기 제1 인터레스트의 IN 시퀀스 넘버가 상기 노드의 PIT에 포함된 엔트리(entry)의 IN 시퀀스 넘버와 일치하는지 여부에 기초하여, 상기 제1 인터레스트를 상기 이전 노드에 의해 재전송된 인터레스트로 선언하는 단계를 더 포함할 수 있다.Wherein the communication method of the node includes the steps of: determining whether there is a duplicated Nonce generated by the previous node in the first interlace if the incoming face is determined as a short distance; Based on whether or not the IN sequence number of the first interlace coincides with the IN sequence number of an entry included in the PIT of the node, And declaring it as an interlace retransmitted by the previous node.
상기 노드의 통신 방법은 상기 다음 노드로부터 컨텐츠 를 수신함에 따라 상기 노드의 PIT 엔트리를 STALE 플래그에 의해 표시(mark)하는 단계; 상기 PIT 엔트리에 대응하는 PIT 타이머를 시작하는 단계; 및 상기 PIT 타이머가 만료되는 경우, 상기 노드의 PIT에서 상기 PIT 엔트리를 제거하는 단계를 더 포함할 수 있다.The method comprising: marking a PIT entry of the node with a STALE flag upon receiving content from the next node; Initiating a PIT timer corresponding to the PIT entry; And if the PIT timer expires, removing the PIT entry from the PIT of the node.
상기 PIT 타이머의 값은 상기 노드의 Round Trip Time(RTT)에 기초하여 계산될 수 있다.The value of the PIT timer may be calculated based on the Round Trip Time (RTT) of the node.
일 실시예에 따르면, 노드는 컨텐츠 중심 네트워크에서 이전 노드(previous node)로부터 컨텐츠를 요청하는 제1 인터레스트를 수신하는 수신부; 상기 제1 인터레스트에 응답하여, 상기 제1 인터레스트의 수신을 나타내는 제1 ACK 메시지를 생성하는 처리부; 및 상기 이전 노드에게 상기 제1 ACK 메시지를 전송하는 전송부를 포함한다.According to one embodiment, the node comprises: a receiver for receiving a first interlace requesting content from a previous node in a content-oriented network; A processing unit responsive to the first interlace to generate a first ACK message indicating receipt of the first interlace; And a transmitter for transmitting the first ACK message to the previous node.
상기 노드는 PIT 엔트리들을 포함하는 PIT를 더 포함하고, 상기 처리부는 상기 PIT에 상기 제1 인터레스트와 관련된 PIT 엔트리를 생성하고, 상기 PIT 엔트리에 상기 제1 인터레스트와 관련된 시퀀스 넘버를 저장할 수 있다.The node may further comprise a PIT containing PIT entries and the processing unit may generate a PIT entry associated with the first interlace in the PIT and store a sequence number associated with the first interlace in the PIT entry .
상기 노드는 컨텐츠를 저장하는 컨텐츠 스토어를 더 포함하고, 상기 처리부는 상기 전송부가 상기 제1 ACK 메시지를 전송한 후, 상기 제1 인터레스트와 관련된 컨텐츠가 상기 컨텐츠 스토어에 존재하지 않는 경우에 제2 인터레스트를 생성하여 다음 노드에게 전송할 수 있다.Wherein the node further comprises a content store for storing content, and after the transmitting unit transmits the first ACK message, if the content related to the first interlace is not present in the content store, An interlace can be generated and transmitted to the next node.
상기 처리부는 상기 제2 인터레스트를 생성하여 다음 노드에게 전송함에 따라 ACK 타이머를 시작하고, 상기 다음 노드로부터 상기 제2 인터레스트에 응답한 제2 ACK 메시지를 수신한 경우에 상기 ACK 타이머를 정지할 수 있다.The processing unit starts the ACK timer according to the generation of the second interlace and transmits the second interlace to the next node and stops the ACK timer when receiving the second ACK message responding to the second interlace from the next node .
상기 처리부는 상기 제2 ACK 메시지가 상기 ACK 타이머의 만료 시까지 수신되지 않는 경우, 상기 다음 노드에게 상기 제2 인터레스트를 재전송하고, 상기 ACK 타이머를 일정한 백 오프 타임 아웃 값으로 다시 시작할 수 있다.The processing unit may resend the second interlace to the next node if the second ACK message is not received until the expiration of the ACK timer and resume the ACK timer with a constant backoff timeout value.
상기 제2 인터레스트는 상기 제2 인터레스트를 식별할 수 있는 고유의 시퀀스 넘버와 관련되고, 상기 고유의 시퀀스 넘버는 IN 시퀀스 넘버 및 OUT 시퀀스 넘버를 포함할 수 있다.The second interlace may be associated with a unique sequence number that can identify the second interlace, and the unique sequence number may include an IN sequence number and an OUT sequence number.
상기 처리부는 상기 다음 노드로부터 컨텐츠 를 수신함에 따라 상기 노드의 PIT 엔트리를 STALE 플래그에 의해 표시하고, 상기 PIT 엔트리에 대응하는 PIT 타이머를 시작하며, 상기 PIT 타이머가 만료되면 상기 노드의 전파 인터레스트 테이블(PIT)에서 상기 PIT 엔트리를 제거할 수 있다.The processing unit displays the PIT entry of the node by the STALE flag as it receives the content from the next node, starts the PIT timer corresponding to the PIT entry, and when the PIT timer expires, The PIT entry may be removed from the PIT.
일 실시예에 따르면, 노드의 통신 방법은 인터레스트 소유자- 상기 인터레스트 소유자는 상기 컨텐츠 중심 네트워크에서 상기 인터레스트의 신뢰성 있는 전송을 보증(ensure)하는 ACK 타이머(acknowledgement timer)를 유지함-가 노드에게 컨텐츠를 요청하는 인터레스트를 전송하는 단계; 및 상기 인터레스트 소유자가, 상기 ACK 타이머의 만료 전에 상기 노드에 의해 상기 인터레스트의 수신을 알리는 ACK 메시지를 수신하는 단계를 포함한다.According to one embodiment, a method of communicating with a node comprises the steps of: maintaining an acknowledgment timer for ensuring reliable transmission of the inter- est in the content-centric network by the inter- Transmitting an interlace requesting content; And receiving, by the interleaving owner, an ACK message informing receipt of the interlace by the node prior to expiration of the ACK timer.
상기 노드의 통신 방법은 상기 ACK 타이머의 만료 이후에 상기 노드에게 상기 인터레스트 소유자에 의해 상기 인터레스트를 재전송하는 단계를 더 포함할 수 있다.The method of communication of the node may further comprise retransmitting the interlace by the interleaving owner to the node after expiration of the ACK timer.
상기 인터레스트 소유자는 상기 인터레스트를 상기 노드에게 전송하기 위해 상기 인터레스트 소유자의 전달 인터레스트 테이블에서 상기 인터레스트의 엔트리를 생성할 수 있다.The interpreter owner may generate an entry of the interpreter in the transferring interest table of the interpreter owner to transfer the interpreter to the node.
상기 노드의 통신 방법은 상기 컨텐츠가 상기 노드의 컨텐츠 스토어에서 유용한지 여부를 결정하는 단계; 상기 결정에 응답하여 상기 인터레스트 소유자에게 상기 컨텐츠를 전송하는 단계; 상기 인터레스트 소유자가 상기 컨텐츠를 수신함에 응답하여 STALE 플래그에 의해 상기 펜딩 엔트리(pending entry)를 표시하는 단계-상기 인터레스트 소유자는 상기 컨텐츠를 수신함에 응답하여 PIT 타이머를 유지함-; 및 상기 PIT 타이머가 만료되었다는 결정에 응답하여 상기 PIT로부터 상기 STALE 플래그에 해당하는 펜딩 엔트리를 삭제하는 단계를 더 포함할 수 있다.The communication method of the node comprising the steps of: determining whether the content is available in the content store of the node; Sending the content to the owner of the intercept in response to the determination; Displaying the pending entry by a STALE flag in response to the content owner receiving the content, the interpreter owner maintaining a PIT timer in response to receiving the content; And deleting the pending entry corresponding to the STALE flag from the PIT in response to the determination that the PIT timer has expired.
상기 노드의 통신 방법은 상기 스테일 플래그에 의해 해당 PIT가 표시되고, 상기 PIT 타이머가 만료되기 전에 상기 컨텐츠를 수신함에 응답하여 상기 컨텐츠가 중복되었음을 선언하는 단계를 더 포함할 수 있다.The communication method of the node may further include a step of declaring that the content is duplicated in response to receipt of the content before the PIT timer is expired and the PIT is indicated by the stall flag.
상기 인터레스트는 IN 시퀀스 넘버 및 OUT 시퀀스 넘버와 연관되고, 상기 인터레스트의 상기 IN 시퀀스 넘버는 상기 인터레스트가 상기 노드에 수신될 때, 상기 노드의 PIT에 저장되고, 상기 인터레스트의 상기 OUT 시퀀스 넘버는 상기 인터레스트가 상기 컨텐츠 중심 네트워크의 다른 노드로부터 포워딩될 때, 상기 노드의 상기 PIT에 저장될 수 있다.Wherein the IN sequence number is associated with an IN sequence number and an OUT sequence number, the IN sequence number of the interlace being stored in a PIT of the node when the INTEREST is received at the node, The number may be stored in the PIT of the node when the inter- est is forwarded from another node of the content-centric network.
상기 ACK 메시지는 시퀀스 넘버와 관련되고, 상기 인터레스트와 관련된 고유 식별자(unique identifier)는 상기 ACK 메시지가 상기 인터레스트에 대응됨을 식별하기 위해 상기 ACK 메시지와 관련된 상기 고유 식별자와 매칭될 수 있다.The ACK message may be associated with a sequence number and a unique identifier associated with the intercept may be matched with the unique identifier associated with the ACK message to identify that the ACK message corresponds to the interlace.
도 1은 일 실시예에 따른 컨텐츠 중심 네트워크(CCN)의 구조를 나타낸 도면이다.
도 2는 일 실시예에 따른 컨텐츠 중심 네트워크에서 노드의 블록 다이어그램이다.
도 3은 일 실시예에 따른 노드의 통신 방법을 나타낸 흐름도이다.
도 4는 다른 실시예에 따른 노드의 통신 방법을 나타낸 흐름도이다.
도 5는 다른 실시예에 따른 노드의 통신 방법을 나타낸 흐름도이다.
도 6은 일 실시예에 따른 컨텐츠 중심 네트워크에서 인터레스트의 전송을 보장하기 위해 각 노드에서 ACK 타이머(Acknowledgement timer)와 PIT 타이머(PIT timer)가 유지되는 과정을 나타낸 도면이다.
도 7은 일 실시예에 따른 컨텐츠 중심 네트워크에서 노드들 간에 전송된 ACK 패킷이 삭제(drop)된 경우의 동작을 나타낸 도면이다.
도 8은 다른 실시예에 따른 컨텐츠 중심 네트워크에서 노드들 간에 전송된 ACK 패킷이 삭제된 경우의 동작을 나타낸 도면이다.
도 9는 일실시예에 따른 컨텐츠 중심 네트워크에서 노드들간의 인터레스트가 삭제된 경우, ACK 타이머의 종료 후에 인터레스트가 재전송되는 과정을 나타낸 도면이다.
도 10은 일실시예에 따른 컨텐츠 중심 네트워크의 각 노드에서 인터레스트를 처리하는 방법을 나타낸 도면이다.
도 11은 일 실시예에 따른 컨텐츠 중심 네트워크에서 노드가 인접 노드들부터 수신되는 컨텐츠(incoming content)를 처리하는 방법을 나타낸 도면이다.
도 12는 일 실시예에 따른 컨텐츠 중심 네트워크에서 노드들 간에 인터레스트가 삭제된 경우를 나타낸 도면이다.
도 13은 일 실시예에 따라 다수의 CCN 클라이언드들을 포함하는 컨텐츠 중심 네트워크에서 두 노드들 중 어느 하나에서 인터레스트가 삭제된 경우를 나타낸 도면이다.
도 14는 일 실시예에 따라 두 개의 모바일 디바이스들 중 어느 하나의 모바일 디바이스와 액세스 포인트 간에 전송되는 인터레스트가 삭제되는 경우를 나타낸 도면이다.
도 15은 도 12에 도시된 경우에 대하여 일실시예에 따른 ACK 메커니즘을 사용한 경우 및 ACK 메커니즘을 사용하지 않은 경우의 처리율 비교 결과를 나타낸 그래프이다.
도 16는 노드들의 개수 증가를 통해 확률을 변화시키는 도 13에 도시된 경우에 대한 처리율 비교 결과를 나타낸 그래프이다.
도 17은 도 14에 도시된 경우에 대하여 일실시예에 따른 ACK 메커니즘을 사용한 경우 및 ACK 메커니즘을 사용하지 않은 경우의 처리율 비교 결과를 나타낸 그래프이다.
도 18은 일 실시예에 따른 노드의 블록도이다.
도 19는 일 실시예에 따른 컨텐츠 중심 네트워크에서 인터레스트의 전송을 제어하는 방법 및 시스템을 구현하는 컴퓨팅 환경을 설명하기 위한 도면이다.FIG. 1 is a diagram illustrating a structure of a content center network (CCN) according to an exemplary embodiment of the present invention.
2 is a block diagram of a node in a content-centric network according to one embodiment.
3 is a flowchart illustrating a method of communicating a node according to an embodiment.
4 is a flowchart illustrating a method of communicating a node according to another embodiment.
5 is a flowchart illustrating a method of communicating a node according to another embodiment.
FIG. 6 is a diagram illustrating a process of maintaining an ACK timer and a PIT timer at each node in order to guarantee the transmission of an interlace in a content-centered network according to an exemplary embodiment of the present invention.
7 is a diagram illustrating an operation in a case where an ACK packet transmitted between nodes in a content-centric network according to an embodiment is dropped.
FIG. 8 is a diagram illustrating an operation when an ACK packet transmitted between nodes in a content-centered network according to another embodiment is deleted.
9 is a diagram illustrating a process in which an interrest is retransmitted after an end of an ACK timer when an inter-node between nodes is deleted in a content-centered network according to an exemplary embodiment.
FIG. 10 is a diagram illustrating a method of processing an advertisement in each node of the content-centric network according to an exemplary embodiment of the present invention.
FIG. 11 is a diagram illustrating a method for a node to process incoming content from neighboring nodes in a content-centric network according to an exemplary embodiment of the present invention.
FIG. 12 is a diagram illustrating a case where an interpreter is deleted between nodes in a content-centric network according to an exemplary embodiment of the present invention.
FIG. 13 is a diagram illustrating a case in which an interlace is deleted from one of two nodes in a content-centric network including a plurality of CCN clients according to an exemplary embodiment of the present invention.
FIG. 14 is a diagram illustrating a case in which an interlace transmitted between a mobile device and an access point of one of two mobile devices is deleted according to an embodiment.
FIG. 15 is a graph illustrating a throughput comparison result in the case shown in FIG. 12 when the ACK mechanism according to an embodiment is used and when the ACK mechanism is not used.
FIG. 16 is a graph showing the throughput comparison result for the case shown in FIG. 13 in which the probability is changed by increasing the number of nodes.
FIG. 17 is a graph showing the throughput comparison result when the ACK mechanism according to an embodiment is used and when the ACK mechanism is not used with respect to the case shown in FIG. 14. FIG.
18 is a block diagram of a node according to one embodiment.
19 is a diagram for describing a computing environment for implementing a method and system for controlling transmission of an interlace in a content-oriented network according to an embodiment.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.In the following, embodiments will be described in detail with reference to the accompanying drawings. Like reference symbols in the drawings denote like elements.
아래 설명하는 실시예들에는 다양한 변경이 가해질 수 있다. 아래 설명하는 실시예들은 실시 형태에 대해 한정하려는 것이 아니며, 이들에 대한 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Various modifications may be made to the embodiments described below. It is to be understood that the embodiments described below are not intended to limit the embodiments, but include all modifications, equivalents, and alternatives to them.
실시예에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 실시예를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in the examples are used only to illustrate specific embodiments and are not intended to limit the embodiments. The singular expressions include plural expressions unless the context clearly dictates otherwise. In this specification, the terms "comprises" or "having" and the like refer to the presence of stated features, integers, steps, operations, elements, components, or combinations thereof, But do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or combinations thereof.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this embodiment belongs. Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the contextual meaning of the related art and are to be interpreted as either ideal or overly formal in the sense of the present application Do not.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
In the following description of the present invention with reference to the accompanying drawings, the same components are denoted by the same reference numerals regardless of the reference numerals, and redundant explanations thereof will be omitted. In the following description of the embodiments, a detailed description of related arts will be omitted if it is determined that the gist of the embodiments may be unnecessarily blurred.
이하에서는 컨텐츠 중심 네트워크(CCN)의 구조를 살펴보기에 앞서, 컨텐츠 중심 네트워크에 대하여 살펴본다.Before explaining the structure of the content-centric network (CCN), a content-centric network will be described below.
컨텐츠 중심 네트워크에서, 요청 패킷은 인터레스트(Interest)로, 응답 패킷은 컨텐츠(또는 컨텐츠 객체(Content Object))로 알려져 있다. 컨텐츠는 적절한 크기의 청크들(chunks)(즉, 컨텐츠들)로 구분되고, 각각의 인터레스트는 청크를 요청한다.In the content-oriented network, the request packet is known as an interest and the response packet is known as a content (or a content object). The content is divided into chunks of appropriate size (i.e., content), and each of the interrests requests a chunk.
컨텐츠를 요청하는 노드는 순차적인 방식으로 복수 개의 인터레스트들을 전송한다. 이때, 인터레스트 각각은 컨텐츠와 연관될 수 있다.The node requesting the content transmits a plurality of interlaces in a sequential manner. At this time, each of the interrests may be associated with the content.
컨텐츠 중심 네트워크에서, 모든 인터레스트들을 위해, 최대 하나의 컨텐츠가 수신될 수 있다. 또한, 전송된 인터레스트는 적당한 이름 기반 라우팅 기술을 적용함으로써 컨텐츠 소스(content source)를 향해 전파될 수 있다.In a content-centric network, for all interrupts, a maximum of one content can be received. In addition, the transmitted interrest can be propagated towards a content source by applying an appropriate name-based routing technique.
인터레스트를 수신한 컨텐츠 중심 네트워크의 각 중간 노드(intermediate node)는 컨텐츠 스토어(Content Store; CS)로 알려진 컨텐츠 캐시(content cache)에 있는 컨텐츠에 대한 인터레스트의 수신을 체크한다.Each intermediate node of the content-centric network receiving the interrest checks the receipt of the inter-content for the content in the content cache known as the content store (CS).
요청된 컨텐츠가 컨텐츠 스토어에서 발견되면, 노드는 컨텐츠로 응답할 수 있다. 요청된 컨텐츠가 컨텐츠 스토어에서 발견되지 않으면, 노드는 인터레스트를 컨텐츠 중심 네트워크의 다음 노드(또는 인접 노드)에게 전달할 수 있다.If the requested content is found in the content store, the node may respond with the content. If the requested content is not found in the content store, the node may forward the inter- est to the next node (or neighbor node) of the content-centric network.
인터레스트를 전달하기 전에, 중간 노드는 인터레스트 정보를 전파 인터레스트 테이블(Propagating Interest Table; 이하 'PIT')로 알려진 인터레스트 테이블에 저장할 수 있다.Before delivering the inter- est, the intermediate node may store the inter- est information in an inter- pretast table known as a Propagating Interest Table (PIT).
포워딩 정보는 수동으로 또는 적절한 라우팅 기술을 통해 알려지고, FIB (Forwarding Information Base) 테이블에 저장될 수 있다.The forwarding information is known either manually or through an appropriate routing technique, and may be stored in a Forwarding Information Base (FIB) table.
컨텐츠를 포함하는 노드는 중간 노드들에서 생성된 PIT 엔트리에 의해 형성된 역 방향 경로(reverse path)를 사용하여 컨텐츠를 요청한 노드에게 응답할 수 있다. 컨텐츠가 노드 내에 있는 경우에 컨텐츠가 컨텐츠를 요청한 노드를 향해 중간 노드들을 통과하면, PIT 엔트리는 (엔드 노드들을 포함하는) 중간 노드들에서 제거될 수 있다.The node containing the content may respond to the node requesting the content using a reverse path formed by the PIT entries generated at the intermediate nodes. If the content is within a node, the PIT entry may be removed from the intermediate nodes (including the end nodes) if the content passes through the intermediate nodes towards the node that requested the content.
한번에 하나의 인터레스트를 전송하는 비효율적인 방법을 사용하는 대신에, 복수의 요청들이 인터레스트를 형성하기 위해 응집될 수 있다.Instead of using an inefficient method of transmitting one interlace at a time, multiple requests can be aggregated to form an interlace.
인터레스트는 인터레스트의 윈도우 사이즈(window size)라고 알려진 동적으로 변경된 엔티티(entity)에 의해 감시되는 하나 이상의 컨텐츠들을 요청한다. 윈도우 사이즈 'w_max'를 가지는 인터레스트는 인터레스트와 연관된 컨텐츠를 수신하기 위해 컨텐츠 중심 네트워크에서 노드에게 전송된다. 'w_max' 는 미리 정의된 최대 값일 수 있다.An interrest requests one or more content to be watched by a dynamically altered entity known as the window size of the interlace. An interrest with a window size of 'w_max' is sent to the node in the content-centric network to receive the content associated with the interlace. 'w_max' may be a predefined maximum value.
컨텐츠 전송자(content sender)가 인터레스트를 수신하면, 컨텐츠 전송자는 인터레스트의 윈도우 사이즈를 판독하고, 요청 노드에게 컨텐츠를 전송할 수 있다. 또한, 인터레스트 정보는 세그먼트 시작 범위(segment start range)를 포함한다.When the content sender receives the inter- est, the content sender can read the window size of the inter- est and send the content to the requesting node. In addition, the interleaved information includes a segment start range.
첫번째 누락 컨텐츠는 새로운 인터레스트가 구성되고, 다음 노드로 전송되는 지점(point)으로 간주될 수 있다. 이러한 방식으로, 인터레스트의 윈도우 사이즈는 각 노드에서의 컨텐츠의 이용 가능성에 기초하여 각 노드에서 감소될 수 있다.The first missing content can be regarded as a point at which a new interlace is constructed and sent to the next node. In this way, the window size of the interlace can be reduced at each node based on the availability of the content at each node.
인터레스트가 컨텐츠 중심 네트워크의 임의의 노드들에서 삭제(drop)된 경우, 요청하는 노드에서의 컨텐츠 복구 시간은 길어질 수 있다. 그러므로, 요청자 노드(requester node)에서 인터레스트에 대응하는 컨텐츠를 가지는 각 노드에 대하여 인터레스트의 신뢰성 있는 전송을 보장하는 것이 중요하다. 컨텐츠 중심 네트워크의 중간 노드들 중 임의의 중간 노드에서의 인터레스트의 삭제는 요청자 노드에서의 처리율에 영향을 미칠 수 있다.
If the interrest is dropped at any of the nodes in the content-centric network, the content recovery time at the requesting node may be long. Therefore, it is important to ensure reliable transmission of the inter- est for each node having content corresponding to the inter- est at the requester node. Deletion of an interlace at any intermediate node among the intermediate nodes of the content-oriented network may affect the throughput at the requestor node.
도 1은 일 실시예에 따른 컨텐츠 중심 네트워크(CCN)의 구조를 나타낸 도면이다.FIG. 1 is a diagram illustrating a structure of a content center network (CCN) according to an exemplary embodiment of the present invention.
도 1에 도시된 바와 같이, 컨텐츠 중심 네트워크(CCN)(100)는 초기 노드(initial node)(110), 및 복수의 노드들(120,130)을 포함한다. 초기 노드(110)는 'CCN 클라이언트'라고도 불릴 수 있다.As shown in FIG. 1, a content-centric network (CCN) 100 includes an
일 실시예에서 '노드'는 컨텐츠 중심 네트워크에서 인터레스트 패킷을 전송하고, 컨텐츠를 수신할 수 있는 모바일 디바이스 및 액세스 포인트 등을 포함하는 모든 통신 장치를 의미하는 것으로서 본 명세서에서 기재하고 있는 초기 노드, CCN 클라이언트, 인터레스트 소유자, 중간 노드 등을 모두 포함하는 의미로 이해될 수 있다.In one embodiment, a 'node' refers to all communication devices, including mobile devices and access points, that are capable of transmitting and receiving content in a content-centric network and receiving content, such as an initial node, A CCN client, an owner of an interface, an intermediate node, and the like.
초기 노드(110)는 인접 노드(예를 들어, 노드(102))에게 컨텐츠를 요청하는 인터레스트(Interest)를 전송한다. '인터레스트'는 컨텐츠를 요청하는 패킷으로 이해될 수 있다.The initiating
인터레스트는 예를 들어, 요청들의 수 및 요청 시작 세그먼트 번호(request start segment number) 등과 같이 포함 가능한 파라미터들을 포함할 수 있지만, 반드시 이에 한정되지는 않는다.The interrest can include, but is not necessarily limited to, include parameters, such as, for example, the number of requests and the request start segment number.
초기 노드(110)로부터 수신한 인터레스트에 응답하여, 제2 노드(120)는 초기 노드(110)에게 ACK 메시지(Acknowledgement message)를 전송한다. 또한, 인터레스트는 제2 노드(120)로부터 제3 노드(130)에게 전송될 수 있다.The
인터레스트는 인접 노드들에게 전송되기 전에 변경될 수 있다. 도 1의 실시예에서 초기 노드(110)의 인접 노드들은 제2 노드(120) 및 제3 노드(130)이다. 이때 각 노드에게 전송되는 인터레스트에 포함된 파라미터들은 인터레스트의 적어도 하나의 요청과 관련된 컨텐츠의 이용 가능성(availability)에 기초하여 변경될 수 있다.The interrest may be changed before being transmitted to neighboring nodes. In the embodiment of FIG. 1, the neighbor nodes of the
실시예에서, 초기 노드(110)는 인터레스트를 생성하고, 생성된 인터레스트를 제2 노드(120)에게 전송할 수 있다. 컨텐츠 중심 네트워크에서 제2 노드(120)가 인터레스트를 수신하는 경우, 제2 노드(120)는 인터레스트를 처리하기 전에 즉시 ACK 메시지를 전송할 수 있다. 이와 유사하게, 제3 노드(130)가 초기 노드(110) 또는 제2 노드(120)로부터 인터레스트를 수신하는 경우, 제3 노드(130)은 인터레스트에 응답하여 즉시 초기 노드(110) 또는 제2 노드(120)에게 ACK 메시지를 전송할 수 있다.In an embodiment, the initiating
이하의 상세한 설명에서 사용되는 용어 '인터레스트 소유자'는 컨텐츠 중심 네트워크에서 인접 노드에게 인터레스트를 전송하는 노드를 의미한다. 따라서, 컨텐츠 중심 네트워크에서 인터레스트를 전송하는 각 노드는 아래에서 기술하는 설명의 맥락에서 인터레스트 소유자로 이해될 수 있다.As used in the following detailed description, the term " inter-owner " refers to a node that transmits an inter- est to a neighboring node in a content-centric network. Thus, each node transmitting an interrest in a content-centric network can be understood as an inter-owner in the context of the description described below.
일 실시예에서 인터레스트 소유자를 포함하는 각 노드는 컨텐츠 중심 네트워크에서 인터레스트의 신뢰성 있는 전송을 보장하기 위한 ACK 타이머(Acknowledgement timer)를 유지할 수 있다. 인터레스트 소유자는 다른 노드(들)에게 인터레스트를 전송한 후에 ACK 타이머를 초기화할 수 있다.In one embodiment, each node, including the owner of the interrest, may maintain an ACK timer to ensure reliable transmission of the inter- view in the content-centric network. The owner of the interrest can initialize the ACK timer after transmitting the inter- est to the other node (s).
인터레스트 소유자는 인터레스트에 응답하여, 인터레스트를 수신한 노드로부터 ACK 메시지를 수신할 수 있다. ACK 메시지가 수신되면, 인터레스트 소유자에서의 ACK 타이머는 정지할 수 있다. ACK 타이머의 만료 시까지 인터레스트를 전송한 노드로부터 ACK 메시지가 수신되지 않으면, 인터레스트 소유자는 노드에게 인터레스트를 재전송할 수 있다.The interrest owner may, in response to the interrest, receive an ACK message from the node that received the interrest. When an ACK message is received, the ACK timer at the owner of the intercept can be stopped. If the ACK message is not received from the node that transmitted the inter- est until the expiration of the ACK timer, the inter- view owner can retransmit the inter- view to the node.
일 실시예에서 인터레스트 소유자는 인터레스트를 생성하고, 생성된 인터레스트를 다음 노드에게 전송할 수 있다. 컨텐츠 중심 네트워크에서 노드가 인터레스트를 수신하는 경우, 노드는 인터레스트를 처리하기 전에 즉시 ACK 메시지를 전송할 수 있다. 이와 마찬가지로, 인접 노드가 인터레스트를 수신하는 경우, 인접 노드 또한 즉시 ACK 메시지를 전송할 수 있다. 일 실시예에서는 이처럼 컨텐츠 중심 네트워크에 포함된 각 노드가 전송된 모든 인터레스트에 대하여 ACK 메시지를 제공하는 ACK 메커니즘을 수행함으로써 인터레스트의 신뢰성 있는 전달을 보장할 수 있다.In one embodiment, the interrest owner can create an interrest and send the generated interrest to the next node. In a content-centric network, when a node receives an inter- est, the node may send an ACK message immediately before processing the inter- est. Likewise, if the neighboring node receives an interlace, the neighboring node may also immediately transmit an ACK message. In one embodiment, each node included in the content-centric network can ensure reliable delivery of the interleaves by performing an ACK mechanism for providing an ACK message to all the transmitted inter-nodes.
일 실시예에 따른 ACK 메커니즘은 인터레스트들이 삭제(drop)되지 않은 경우에는 일반적인 ACK 메커니즘과 유사하게 수행될 수 있다. 인터레스트들이 삭제된다면, 일 실시예에 따른 ACK 메커니즘은 일반적인 ACK 메커니즘과 비교할 때에 처리량을 크게 향상시킬 수 있다.The ACK mechanism according to an exemplary embodiment may be performed in a manner similar to a general ACK mechanism when the interleaves are not dropped. If the interrests are deleted, the ACK mechanism according to an embodiment can greatly improve the throughput when compared with a general ACK mechanism.
일 실시예에 따른 ACK 메커니즘은 TCP(Transport Control Protocol)의 요청 ACK 메커니즘과 비교할 때 다음과 같은 차이점을 가질 수 있다.The ACK mechanism according to an exemplary embodiment may have the following differences when compared with the request ACK mechanism of the TCP (Transport Control Protocol).
TCP에서 ACK 메커니즘은 컨텐츠 수신을 승인하고, 또한 새로운 컨텐츠를 요청한다. 일 실시예에 따른 ACK 메커니즘은 컨텐츠 중심 네트워크에서 다음 노드로의 인터레스트의 전송을 보장하고, 컨텐츠와 어떠한 관련성도 가지지 않는다.In TCP, the ACK mechanism acknowledges the receipt of content and also requests new content. The ACK mechanism according to an exemplary embodiment guarantees the transmission of an interrest from a content-centered network to a next node, and has no relation to contents.
TCP에서 ACK 시퀀스 넘버는 요청된 다음 세그먼트 번호를 (바이트의 형태로) 식별하는 데에 이용된다. 일 실시예에 따른 ACK 메커니즘에서, 시퀀스 넘버는 두 개의 유사한 인터레스트들을 구별하기 위해 사용된다.In TCP, an ACK sequence number is used to identify the next requested segment number (in the form of bytes). In the ACK mechanism according to an embodiment, the sequence number is used to distinguish between two similar interlaces.
또한, TCP는 오직 하나의 시퀀스를 사용하는 반면에 일 실시예에 따른 ACK 메커니즘은 그 동작을 위해 IN 및 OUT 시퀀스 넘버를 요구한다. 또한, TCP에서는 PIT(Propagation Interest Table)의 개념이 없고, TCP에는 PIT 타이머가 존재하지 않는다.
Also, while TCP uses only one sequence, the ACK mechanism according to one embodiment requires IN and OUT sequence numbers for its operation. In TCP, there is no concept of PIT (Propagation Interest Table), and there is no PIT timer in TCP.
도 2는 일 실시예에 따른 컨텐츠 중심 네트워크에서 노드의 블록 다이어그램이다.2 is a block diagram of a node in a content-centric network according to one embodiment.
도 2에 도시된 바와 같이, 컨텐츠 중심 네트워크의 노드(200)는 노드(200) 내에서 존재하는 복수의 응용 프로그램들(예를 들어, 응용 프로그램 1 내지 응용 프로그램 n)이 존재하는 응용 계층(application layer)(201)을 포함할 수 있다. 여기서, 노드(200)는 도 1에 도시된 초기 노드(110)일 수도 있고, 제2 노드(120) 또는 제3 노드(103)일 수 있다. 일 실시예에서, 응용 프로그램은 노드(200)에 설치된 브라우저(browser)일 수도 있다.2, the
컨텐츠 중심 네트워크에서 노드(200)는 예를 들어, 센서들(Sensors), 네트워크 코어(Network Core), 미디어 프레임워크(Media Framework), CCN 라이브러리(CCN library) 등을 포함하는 라이브러리들(libraries)(203)을 포함하지만, 이에 한정되지 않는다.In the content-centric network, the
또한, 노드(200)는 CCN 엔진(210)을 포함할 수 있다.In addition, the
CCN 엔진(210)은 컨텐츠 스토어(CS)(211), 전파 인터레스트 테이블(PIT)(213) 및 ACK 타이머(217)를 포함할 수 있다.The
노드(200)는 컨텐츠에 대응하는 적어도 하나의 요청을 인터레스트와 함께 전송할 수 있다.
전송된 인터레스트는 적절한 이름 기반의 라우팅 기술을 적용함으로써 컨텐츠 소스를 향해 전파될 수 있다.The transmitted interrest can be propagated towards the content source by applying appropriate name-based routing techniques.
인터레스트를 수신한 각 중간 노드는 자신의 컨텐츠 스토어(컨텐츠 캐시라고도 함)(211)에 있는 컨텐츠를 체크할 수 있다. 컨텐츠 스토어(211)에서 요청된 컨텐츠가 발견되면, 노드(200)는 컨텐츠로 응답하고, 발견되지 않은 경우에는 인터레스트를 다음 노드 또는 인접 노드에게 포워딩할 수 있다.Each intermediate node that has received the interrest can check the content in its content store (also referred to as a content cache) When the requested content is found in the
포워딩하기 전에, 노드(200)는 전파 인터레스트 테이블(PIT)(213)로 알려진 인터레스트 테이블에 인터레스트 정보를 저장할 수 있다.Prior to forwarding, the
전파 인터레스트 테이블(PIT)(213)은 PIT 타이머(215)를 포함할 수 있다. PIT 타이머(215)는 노드에 컨텐츠가 도착하면 카운트를 시작할 수 있다.The propagation interference table (PIT) 213 may include a
일 실시예에서, 전파 인터레스트 테이블(PIT)(213)의 엔트리(entry)는 PIT 타이머(215)의 만료 시에 전파 인터레스트 테이블(PIT)(213)로부터 제거될 수 있다.In one embodiment, an entry in the propagation interference table (PIT) 213 may be removed from the propagation interference table (PIT) 213 upon expiration of the
또한, CCN 엔진(210)은 전송 계층(transport layer)(205)을 통해 네트워크 계층(network layer)(207)으로 인터레스트를 전송할 수 있다. 전송 계층(205)은 예를 들어, UDP(User Datagram Protocol) 또는 TCP(Transport Control Protocol)을 사용할 수 있다. 네트워크 계층(207)은 IP(Internet Protocol)를 이용할 수 있다.
In addition, the
도 3은 일 실시예에 따른 노드의 통신 방법을 나타낸 흐름도이다.3 is a flowchart illustrating a method of communicating a node according to an embodiment.
도 3을 참조하면, 일 실시예에 따른 노드는 컨텐츠 중심 네트워크에서 이전 노드(previous node)로부터 컨텐츠를 요청하는 제1 인터레스트를 수신한다(310).Referring to FIG. 3, a node receives a first interlace requesting content from a previous node in a content-centric network (310).
제1 인터레스트는 제1 인터레스트를 식별할 수 있는 고유의 시퀀스 넘버와 관련될 수 있다. 고유의 시퀀스 넘버는 IN 시퀀스 넘버(IN Sequence Number; ISN) 및 OUT 시퀀스 넘버(OUT Sequence Number; OSN)를 포함할 수 있다.The first interlace may be associated with a unique sequence number that can identify the first interlace. The unique sequence number may include an IN Sequence Number (ISN) and an OUT Sequence Number (OSN).
노드는 제1 인터레스트가 수신되면, 노드의 PIT에 IN 시퀀스 넘버를 저장할 수 있다.The node may store the IN sequence number in the PIT of the node when the first interlace is received.
노드는 제1 인터레스트에 응답하여, 제1 인터레스트의 수신을 나타내는 제1 ACK 메시지(ACKnowledgement message)를 생성한다(320). 노드는 제1 인터레스트와 관련된 고유의 시퀀스 넘버에 기초하여 제1 ACK 메시지를 생성할 수 있다.In response to the first interlace, the node generates a first acknowledgment message (ACKnowledgment message) indicating receipt of the first interlace (320). The node may generate a first ACK message based on a unique sequence number associated with the first interlace.
노드는 이전 노드에게 제1 ACK 메시지를 전송한다(330). 노드는 제1 인터레스트를 처리하기 전에 제1 ACK 메시지를 먼저 전송할 수 있다. 제1 ACK 메시지는 제1 인터레스트의 고유 식별자(unique identifier)에 해당하는 시퀀스 넘버와 관련될 수 있다. 제1 인터레스트의 시퀀스 넘버는 제1 ACK 메시지가 제1 인터레스트에 대응됨을 나타내기 위해 제1 ACK 메시지에서도 동일한 값으로 일치될 수 있다.
The node sends a first ACK message to the previous node (330). The node may first transmit the first ACK message before processing the first interlace. The first ACK message may be associated with a sequence number corresponding to a unique identifier of the first interlace. The sequence number of the first interlace may be matched with the same value in the first ACK message to indicate that the first ACK message corresponds to the first interlace.
도 4는 다른 실시예에 따른 노드의 통신 방법을 나타낸 흐름도이다.4 is a flowchart illustrating a method of communicating a node according to another embodiment.
도 4를 참조하면, 일 실시예에 따른 노드는 컨텐츠 중심 네트워크에서 이전 노드로부터 컨텐츠를 요청하는 제1 인터레스트를 수신한다(405).Referring to FIG. 4, a node receives a first interlace requesting content from a previous node in a content-centric network (405).
노드는 제1 인터레스트에 응답하여, 제1 인터레스트의 수신을 나타내는 제1 ACK 메시지를 생성한다(410).The node, in response to the first interlace, generates a first ACK message indicating receipt of the first interlace (410).
노드는 이전 노드에게 제1 ACK 메시지를 전송한다(415).The node sends a first ACK message to the previous node (415).
노드는 PIT에 제1 인터레스트와 관련된 PIT 엔트리를 생성할 수 있다(420).The node may generate a PIT entry associated with the first interlace in the PIT (420).
노드는 PIT 엔트리에 제1 인터레스트와 관련된 시퀀스 넘버를 저장한다(425).The node stores the sequence number associated with the first interlace in the PIT entry (425).
노드는 제1 인터레스트와 관련된 컨텐츠가 노드의 컨텐츠 스토어에 존재하는지 여부를 판단할 수 있다(430).The node may determine whether the content associated with the first inter- est is present in the node's content store (430).
단계(430)의 판단 결과, 제1 인터레스트와 관련된 컨텐츠가 노드의 컨텐츠 스토어에 존재하는 경우, 노드는 컨텐츠를 이전 노드에게 전송할 수 있다(460).If it is determined in
단계(430)의 판단 결과, 제1 인터레스트와 관련된 컨텐츠가 노드의 컨텐츠 스토어에 존재하는지 않는 경우, 노드는 제2 인터레스트를 생성할 수 있다(435). 이때, 제2 인터레스트는 제1 인터레스트가 요청하는 것과 동일한 컨텐츠를 요청하는 것일 수 있다. 제1 인터레스트에 포함된 일부 파라미터들의 값은 노드에 의해 변경되어 제2 인터레스트에 반영될 수 있다. 제2 인터레스트는 파라미터들을 포함하고, 파라미터들은 노드에서 제2 인터레스트에 대응하는 컨텐츠의 이용 가능성에 기초하여 변경될 수 있다.As a result of the determination in
제2 인터레스트는 제2 인터레스트를 식별할 수 있는 고유의 시퀀스 넘버와 관련되고, 고유의 시퀀스 넘버는 IN 시퀀스 넘버 및 OUT 시퀀스 넘버를 포함할 수 있다. 노드는 넌스(Nonce)를 가지는 제2 인터레스트를 생성할 수 있다.The second interlace may be associated with a unique sequence number that can identify the second interlace, and the unique sequence number may include an IN sequence number and an OUT sequence number. The node can generate a second interlace having a nonce.
노드는 단계(435)에서 생성한 제2 인터레스트를 다음 노드에게 전송할 수 있다(440). 노드는 제2 인터레스트를 다음 노드에게 전송할 때, 노드의 PIT에 OUT 시퀀스 넘버를 저장할 수 있다.The node may send the second interrece generated in
노드는 다음 노드에게 제2 인터레스트를 전송함에 따라, ACK 타이머를 시작할 수 있다(445). 노드는 예를 들어, 제2 인터레스트의 전송과 동시에 ACK 타이머를 시작할 수 있다. ACK 타이머는 제2 인터레스트의 신뢰성 있는 전송을 보장하기 위한 것이다.The node may initiate an ACK timer (445) as it transmits the secondinterest to the next node. The node may initiate an ACK timer, for example, concurrently with the transmission of the second interlace. The ACK timer is for ensuring reliable transmission of the second inter- est.
노드는 ACK 타이머의 만료 시까지 제2 ACK 메시지가 수신되었는지를 판단할 수 있다(450). 제2 ACK 메시지는 제2 인터레스트에 응답한 것일 수 있다.The node may determine whether a second ACK message has been received until the expiration of the ACK timer (450). The second ACK message may be in response to the second interlace.
단계(450)의 판단 결과, ACK 타이머의 만료 시까지 제2 ACK 메시지가 수신된 경우, 노드는 단계(445)에서 시작한 ACK 타이머를 정지할 수 있다(455).As a result of the determination in
단계(450)의 판단 결과, ACK 타이머의 만료 시까지 제2 ACK 메시지가 수신되지 않는 경우, 노드는 다음 노드에게 제2 인터레스트를 재전송할 수 있다(465). 단계(465)에서 제2 인터레스트의 재전송 시에, 노드는 ACK 타이머를 일정한 백 오프 타임 아웃 값(back-off timeout value)으로 다시 시작할 수 있다.
If it is determined in
도 5는 다른 실시예에 따른 노드의 통신 방법을 나타낸 흐름도이다.5 is a flowchart illustrating a method of communicating a node according to another embodiment.
도 5를 참조하면, 일 실시예에 따른 노드는 컨텐츠 중심 네트워크에서 이전 노드로부터 컨텐츠를 요청하는 제1 인터레스트를 수신한다(510).Referring to FIG. 5, a node receives a first interlace requesting content from a previous node in a content-centric network (510).
노드는 제1 인터레스트에 응답하여, 제1 인터레스트의 수신을 나타내는 제1 ACK 메시지를 생성한다(515).The node, in response to the first interlace, generates a first ACK message indicating receipt of the first interlace (515).
노드는 이전 노드에게 제1 ACK 메시지를 전송한다(520).The node transmits a first ACK message to the previous node (520).
노드는 제1 인터레스트와 관련된 컨텐츠가 노드의 컨텐츠 스토어에 존재하는지 여부를 판단할 수 있다(525).The node may determine whether content associated with the first inter- est is present in the content store of the node (525).
단계(525)의 판단 결과, 제1 인터레스트와 관련된 컨텐츠가 노드의 컨텐츠 스토어에 존재하는 경우, 노드는 이전 노드에게 컨텐츠를 전송할 수 있다(545).If it is determined in
단계(525)의 판단 결과, 제1 인터레스트와 관련된 컨텐츠가 노드의 컨텐츠 스토어에 존재하지 않는 경우, 노드는 제2 인터레스트를 생성할 수 있다(530).If it is determined in
노드는 다음 노드에게 제2 인터레스트를 전송할 수 있다(535).The node may send a second interlace to the next node (535).
노드는 다음 노드로부터 컨텐츠를 수신할 수 있다(540). 이때, 컨텐츠는 제2 인터레스트에 대응되는 것일 수 있다. 여기서, '대응된다'는 의미는 제2 인터레스트를 통해 요청한 컨텐츠에 해당한다는 것으로 이해될 수 있다.The node may receive the content from the next node (540). At this time, the content may correspond to the second interlace. Here, it can be understood that the meaning of 'corresponded' corresponds to the content requested through the secondinterest.
노드는 제1 인터레스트를 통해 해당 컨텐츠의 전송을 요청한 이전 노드에게 단계(540)에서 수신한 컨텐츠를 전송할 수 있다(545).The node may transmit the content received in
노드는 PIT 엔트리를 STALE 플래그에 의해 표시(mark)할 수 있다(550). 이때, PIT 엔트리는 단계(545)에서 전송한 컨텐츠에 대응되는 것일 수 있다. STALE 플래그는 인터레스트에 의해 응답하여 수신한 컨텐츠에 해당하는 PIT 엔트리를 나타내는 것이다. STALE 플래그에 의해 표시된 PIT 엔트리는 일정 시간 후에 PIT에서 제거될 수 있다.The node may mark the PIT entry with the STALE flag (550). At this time, the PIT entry may correspond to the content transmitted in
노드는 PIT 엔트리에 대응하는 PIT 타이머(PIT timer)를 시작할 수 있다(555).The node may start a PIT timer (PIT timer) corresponding to the PIT entry (555).
노드는 단계(555)에서 시작한 PIT 타이머가 만료되는 경우, 노드의 PIT에서 PIT 엔트리를 제거할 수 있다(560).The node may remove the PIT entry from the node's PIT if the PIT timer started in
예를 들어, 인터레스트가 정상적으로 노드에 도달하였으나, 노드가 인터레스트에 응답하여 전송한 ACK 메시지가 네트워크 정체 등으로 인해 삭제된 경우, ACK 메시지를 수신하지 못한 상대편 노드는 인터레스트를 재전송할 수 있다. 이러한 경우, 일반적으로 노드는 이전에 도달한 인터레스트가 요청하는 컨텐츠를 전송하고, 전송한 컨텐츠에 해당하는 PIT 엔트리를 자신의 PIT에서 즉시 삭제할 수 있다.For example, if an ACK message transmitted by a node in response to an interlace is successfully removed from the node due to a network congestion or the like, the opposite node that has not received the ACK message can retransmit the interlace . In this case, in general, the node can transmit the content requested by the previously arrivinginterest, and can immediately delete the PIT entry corresponding to the transmitted content from its PIT.
이때, 노드에는 상대편 노드가 재전송한 인터레스트에 대한 ACK 메시지 및 재전송 인터레스트와 관련된 컨텐츠가 다른 노드로부터 수신될 수 있다. 하지만, 컨텐츠에 일치하는 PIT 엔트리는 이미 노드의 PIT로부터 제거되었으므로, 노드는 PIT에서 일치하는 PIT 엔트리를 발견할 수 없어 전송된 컨텐츠를 삭제할 수 있다.At this time, the node can receive the contents related to the ACK message and the retransmission request for the interlace transmitted by the remote node from another node. However, since the PIT entry corresponding to the content has already been removed from the PIT of the node, the node can not find the matching PIT entry in the PIT and can delete the transmitted content.
이러한 상황을 회피하기 위해, 일 실시예에서는 컨텐츠 중심 네트워크의 노드들 각각에서 PIT 타이머를 유지할 수 있다. 노드는 컨텐츠의 수신 시에 PIT에서 즉시 PIT 엔트리를 삭제하는 대신에 PIT 타이머의 카운트를 시작하고, PIT 타이머가 만료됨에 따라 PIT에 대응하는 PIT 엔트리를 제거할 수 있다. 이를 통해 일 실시예에서는 불필요한 중복 컨텐츠의 재전송에 의한 노드들 간의 링크 낭비를 줄일 수 있다.
To avoid this situation, in one embodiment, a PIT timer may be maintained at each of the nodes of the content-centric network. The node may start counting the PIT timer instead of immediately deleting the PIT entry in the PIT upon receipt of the content and may remove the PIT entry corresponding to the PIT as the PIT timer expires. Thus, in one embodiment, it is possible to reduce the waste of links between nodes due to retransmission of unnecessary duplicate contents.
도 6은 일 실시예에 따른 컨텐츠 중심 네트워크에서 인터레스트의 전송을 보장하기 위해 각 노드에서 ACK 타이머와 PIT 타이머가 유지되는 과정을 나타낸 도면이다.6 is a diagram illustrating a process of maintaining an ACK timer and a PIT timer in each node in order to guarantee the transmission of an interlace in a content-centered network according to an exemplary embodiment of the present invention.
일 실시예에서는 컨텐츠 중심 네트워크의 각 노드들이 인터레스트를 수신함에 응답하여 ACK 메시지를 제공하도록 함으로써 인터레스트들의 신뢰성 있는 전송을 보장한다. 일 실시예에서, ACK 메시지(또는 ACK 패킷)은 타입 필드(type field)가 'CCN_ACK'로 설정된 CCN 컨텐츠의 일 유형일 수 있다. ACK 메시지에 대한 정보(즉, 페이로드(payload))의 존재는 선택적일 수 있다.In one embodiment, each node of the content-centric network provides an ACK message in response to receiving the interrest, thereby ensuring reliable transmission of the interrests. In one embodiment, the ACK message (or ACK packet) may be a type of CCN content whose type field is set to 'CCN_ACK'. The presence of information on the ACK message (i.e., payload) may be optional.
도 6에 도시된 바와 같이, CCN 클라이언트(601)는 넌스를 가지는 인터레스트를 생성할 수 있다(610). 일반적으로, 넌스는 인터레스트가 다시 수신되지 않음을 보장하기 위해, CCN 클라이언트(601)에서 생성될 수 있다.As shown in FIG. 6, the
CCN 클라이언트(601)은 CCN 클라이언트(601)과 관련된 PIT의 엔트리를 생성한다(615). 일 실시예에서, CCN 클라이언트(601)에서 생성된 인터레스트는 OUT 시퀀스 넘버(OSN)와 연관될 수 있다. 이때, OUT 시퀀스 넘버는 노드로부터 나가는(outgoing) 인터레스트의 시퀀스 넘버를 나타낸다. OUT 시퀀스 넘버는 예를 들어, 9와 같이 무작위로 생성된 번호일 수 있다. OUT 시퀀스 넘버는 임의로 생성되거나, 또는 노드에서 실행되는 일정 논리에 기초하여 생성될 수 있다.The
도 6에서, CCN 클라이언트(601)가 전송하는 인터레스트의 OUT 시퀀스 넘버는 9이고, 이 값은 컨텐츠 중심 네트워크의 각 노드에서 컨텐츠의 이용 가능성에 기초하여 각 노드에 의해 변경될 수 있다.In FIG. 6, the OUT sequence number of the inter- est that the
CCN 클라이언트(601)은 노드(603)에게 인터레스트를 전송할 수 있다(620).The
또한, CCN 클라이언트(601)은 도 3에 도시된 바와 같이 노드(603)에게 인터레스트를 전송한 후에 자신(CCN 클라이언트(601))의 ACK 타이머를 시작할 수 있다.In addition, the
인터레스트를 수신한 경우, 노드(603)는 수신한 인터레스트를 처리하기 전에 즉시 ACK 메시지를 전송할 수 있다(625). CCN 클라이언트(601)의 ACK 타이머는 노드(603)로부터 ACK 메시지를 수신하면 정지될 수 있다.If an interlace is received, the
이와 유사하게, 노드(605)가 인터레스트를 수신한 경우, 노드(605)은 즉시 ACK 메시지를 전송할 수 있다. 일 실시예에서, 인터레스트는 CCN 클라이언트(601)로부터 노드(605)까지 전송되는 인터레스트를 고유하게 식별할 수 있는 고유의 시퀀스 넘버와 연관될 수 있다. 시퀀스 넘버는 인터레스트 경로를 따라 위치하는 모든 노드 페어들에 대해 고유하다.Similarly, if the
일 실시예에서, 노드(603)로부터 ACK 메시지를 수신한 경우, CCN 클라이언트(601)는 OUT 시퀀스 넘버(OSN)에 매칭하기 위해 자신(CCN 클라이언트(601))의 PIT를 검색할 수 있다. 이때, CCN 클라이언트(601)는 노드(603)가 클라이언트(601)로부터 전송된 인터레스트의 수신을 확인하기 전에 자신(CCN 클라이언트(601)의 PIT를 검색할 수 있다.In one embodiment, upon receiving an ACK message from a
인터레스트가 노드(603)에 수신되면, 노드(603)는 인터레스트와 관련된 IN 시퀀스 넘버(ISN) 9가 노드(603)의 PIT에 저장되도록 PIT의 엔트리를 생성할 수 있다(630). IN 시퀀스 넘버는 예를 들어, 9와 같이, 임의로 생성되거나 노드에서 실행되는 일정 논리에 기초하여 생성될 수 있다.When an interlace is received at
또한, 노드(603)는 CCN 클라이언트(601)로부터 수신한 인터레스트를 처리한 후에 노드(605)에게 인터레스트를 전송할 수 있다(635). 인터레스트를 처리하는 방법에 따르면, 노드(603)는 자신의 컨텐츠 스토어에서 CCN 클라이언트(601)로부터 수신한 인터레스트와 관련된 이용 가능한 컨텐츠의 존재 여부를 체크할 수 있다. 인터레스트와 관련된 컨텐츠가 컨텐츠 스토어에 존재하는 경우, 노드(603)는 인터레스트와 관련된 컨텐츠를 CCN 클라이언트(601)에게 전송할 수 있다. 이때, 인터레스트의 시퀀스 넘버는 인터레스트를 노드(605)에게 전송하기 전에 OUT 시퀀스 넘버(OSN) 17로서 노드(603)의 PIT에 저장될 수 있다.Also, the
일 실시예에서, 노드(605)는 노드(603)가 전송한 인터레스트의 수신을 확인하는 ACK 메시지를 생성하고, 노드(603)에게 ACK 메시지를 전송할 수 있다(640). ACK 메시지는 인터레스트와 관련된 시퀀스 넘버에 기초하여 노드(605)에서 생성될 수 있다.In one embodiment, the
일 실시예에서, ACK 타이머는 각 노드가 인터레스트를 이웃 노드(노드(603) 또는 노드(605))에게 포워딩 할 때 시작될 수 있다. 또한, ACK 메시지는, 각 노드의 ACK 타이머가 만료되기 전에, 노드들 중 어느 하나의 노드에 수신될 수 있다. 노드의 ACK 타이머가 만료되기 전까지 ACK 메시지가 수신되지 않으면, 노드는 인터레스트를 재전송할 수 있다. 이때, 인터레스트를 재전송한 노드의 ACK 타이머는 일정한 백-오프 타임 아웃 값으로 인터레스트의 재전송 시에 다시 카운트를 시작할 수 있다.In one embodiment, an ACK timer may be initiated when each node forwards an interrest to a neighboring node (
도 6에 도시된 바와 같이, CCN 클라이언트(601), 노드(603) 및 노드(605) 각각은 인터레스트를 다음 노드(인접 노드)로 포워딩함과 동시에 각자의 ACK 타이머의 카운트를 시작할 수 있다. 각 노드에서 ACK 메시지가 ACK 타이머의 만료 전에 수신된 경우, 각 노드는 인터레스트를 재전송하지 않는다.As shown in FIG. 6, each of the
노드(603)로부터 인터레스트를 수신한 후, 노드(605)은 자신의 PIT에 IN 시퀀스 넘버(ISN) 17로서 인터레스트의 엔트리를 생성하고, 인터레스트에 대한 처리를 시작할 수 있다(645).After receiving the interlace from
인터레스트를 처리한 후에, 노드(605)는 인터레스트의 OUT 시퀀스 넘버(OSN)를 13으로 변경하여 CCN 서버(607)에게 전송할 수 있다(650).After processing the interlace, the
노드(605)로부터 인터레스트가 수신됨에 응답하여, CCN 서버(607)는 노드(605)에게 인터레스트의 수신을 확인하는 ACK 메시지를 전송할 수 있다(655). ACK 메시지는 노드(605)의 ACK 타이머가 만료되지 이전에 노드(605)에게 전송될 수 있다. ACK 메시지를 전송한 후에 CCN 서버(607)는 인터레스트에 대한 처리를 시작할 수 있다.In response to the receipt of the inter- view from
CCN 서버(607)는 인터레스트를 처리한 후에, 노드(605)에게 (인터레스트에 일치하는) 컨텐츠를 전송할 수 있다(660). 일 실시예에서, 노드(605)가 CCN 서버(607)로부터 컨텐츠를 수신한 경우, 노드(605)는 STALE 플래그에 의해 해당 PIT 엔트리를 표시할 수 있다. 노드(605)은 PIT 타이머를 초기화할 수 있다. 인터레스트와 일치하는 컨텐츠를 수신함에 따른 노드의 PIT 타이머 초기화를 위한 요구 사항을 도 7의 실시예를 통해 설명한다.After the
PIT 타이머가 만료된 경우, 노드(605)은 해당 PIT 엔트리를 자신의 PIT에서 제거할 수 있다(665).If the PIT timer has expired, the
CCN 서버(607)로부터 수신된 컨텐츠는 노드(605)에 저장(cash)되고, 노드(605)은 노드(603)에게 컨텐츠를 전송할 수 있다(670).The content received from the
컨텐츠가 수신되면, 노드(603)는 자신의 PIT 타이머 만료 후에 노드 노드(603)의 PIT에서 대응되는 PIT 엔트리를 제거할 수 있다 (675). 노드(603)는 PIT 타이머를 다시 초기화할 수 있다.When the content is received, the
노드(603)는 노드(605)로부터 수신된 컨텐츠를 저장하고, 저장된 컨텐츠를 CCN 클라이언트(601)에게 전송할 수 있다(680).The
CCN 클라이언트(601)은 노드(603)로부터 컨텐츠를 수신한 후에 자신의 PIT 타이머가 만료되면 자신(CCN 클라이언트(601))의 PIT에서 해당 PIT 엔트리를 제거한다(685). CCN 클라이언트(601)은 PIT 타이머를 다시 초기화할 수 있다.
After the
도 7은 일 실시예에 따른 컨텐츠 중심 네트워크에서 노드들 간에 전송된 ACK 패킷이 삭제(drop)된 경우의 동작을 나타낸 도면이다.7 is a diagram illustrating an operation in a case where an ACK packet transmitted between nodes in a content-centric network according to an embodiment is dropped.
도 7을 참조하면, 인터레스트 소유자로 알려진 CCN 클라이언트(701)는 넌스를 가지는 인터레스트를 생성하고(710), 자신(CCN 클라이언트(701))의 PIT에 엔트리를 생성할 수 있다(715).Referring to FIG. 7, a
일 실시예에서, CCN 클라이언트(701)에서 생성된 인터레스트는 OUT 시퀀스 넘버(OSN)와 연관될 수 있다. 인터레스트의 OUT 시퀀스 넘버는 9일 수 있다. 인터레스트의 OUT 시퀀스 넘버는 컨텐츠 중심 네트워크에 있는 각 노드에서의 컨텐츠의 이용 가능성에 기초하여 각 노드에 의해 변경될 수 있다.In one embodiment, the interleaves generated in the
CCN 클라이언트(701)는 노드(703)에게 인터레스트를 전송할 수 있다(720). CCN 클라이언트(701)는 노드(703)에게 인터레스트를 전송한 후에 ACK 타이머를 초기화할 수 있다. 노드(703)는 클라이언트 노드(701)로부터 OUT 시퀀스 넘버(OSN) 9를 가진 인터레스트를 수신할 수 있다. 노드(703)에서 인터레스트의 IN 시퀀스 넘버(ISN)은 9일 수 있다.The
노드(703)는 클라이언트 노드(701)로부터 수신한 인터레스트를 처리하기 전에 즉시 CCN 클라이언트(701)에게 ACK 메시지를 전송할 수 있다(725). 이때, CCN 클라이언트(701)의 ACK 타이머는 노드(703)로부터 ACK 메시지를 수신한 후에 정지될 수 있다.The
클라이언트 노드(701)로부터 인터레스트가 수신되면, 노드(703)는 자신의 PIT에 엔트리를 생성할 수 있다(730). 예를 들어, 노드(703)는 PIT에 엔트리를 생성하고, PIT에 인터레스트와 관련된 시퀀스 넘버로서 IN 시퀀스 넘버(ISN) 9를 저장할 수 있다.When an interlude is received from the
노드(703)는 단계(720)에서 CCN 클라이언트(701)로부터 수신한 인터레스트를 처리한 후에 노드(705)에게 인터레스트를 전송할 수 있다(735). 이때, 노드(703)가 노드(705)에게 전송하는 인터레스트의 시퀀스 넘버는 OUT 시퀀스 넘버(OSN) 17로서 노드(703)의 PIT에 저장될 수 있다. 또한, 노드(705)가 수신한 인터레스트의 IN 시퀀스 넘버는 17일 수 있다.The
노드(703)로부터 인터레스트를 수신한 노드(705)는 인터레스트의 수신을 확인하는 ACK 메시지를 생성하여 노드(703)에게 전송할 수 있다. 이때, ACK 메시지는 예를 들어, 네트워크 정체 등으로 인해 노드들(705 및 703) 간에 삭제될 수 있다(740).The
단계(740)에서와 같이, 노드(705)가 전송한 ACK 메시지가 노드들(705 및 703) 간에 삭제된 경우, 노드(703)는 노드(703)의 ACK 타이머의 만료 후에 OUT 시퀀스 넘버 17으로 인터레스트를 재전송할 수 있다(745). 노드(705)로 재전송된 인터레스트의 IN 시퀀스 넘버는 17일 수 있다.If the ACK message transmitted by the
노드(703)는 단계(745)에서 ACK 타이머의 만료에 따라 인터레스트를 재전송한 후, 노드(705)로부터 컨텐츠를 수신할 수 있다(750).
단계(745)에서의 인터레스트의 재전송과, 단계(750)에서 노드(705)로부터 중복 컨텐츠(duplicate content)의 수신을 초래한 인터레스트 때문에 노드(705)에서는 새로운 PIT 엔트리가 생성될 수 있다.A new PIT entry may be generated at
도 7에서, 노드(703)가 노드(705)에게 인터레스트를 전송한 후, 노드(705)에 의해 노드(703)로 전송되는 ACK 메시지는 예를 들어, 네트워크 정체(network congestion) 등으로 인해 삭제될 수 있다. 이때, 노드(703)는 자신의 ACK 타이머가 만료될 때까지 ACK 메시지의 수신을 대기할 수 있다. 노드(703)는 ACK 타이머의 만료 시까지 ACK 메시지가 수신되지 않으면 노드(705)에게 인터레스트를 재전송할 수 있다. 이후, 단계(750)에서 이전에 전송된 인터레스트(즉, 단계(435)에서 전송한 인터레스트)에 일치하는 컨텐츠가 노드(703)에게 수신될 수 있다.7, an ACK message sent by a
단계(750)에서 수신된 컨텐츠에 대해 일치하는 PIT 엔트리가 노드(703)의 PIT에서 발견된 경우, 노드(703)에 의해 PIT 엔트리는 제거되고(755), 컨텐츠는 CCN 클라이언트(701)에게 전달될 수 있다(760).If a matching PIT entry for content received in
단계(755)에서 노드(703)의 PIT 엔트리가 제거된 후, 노드(703)는 단계(745)에서 재전송한 인터레스트에 대한 ACK 메시지를 수신할 수 있다(765).After the PIT entry of
이후, 노드(705)에 의해 전송된, 재전송 인터레스트와 관련된 컨텐츠가 노드(703)에 도착할 수 있다(770).Thereafter, content associated with the retransmission interpreter transmitted by the
단계(770)에서 수신된 컨텐츠에 일치하는 PIT 엔트리는 단계(755)에서 노드(703)의 PIT로부터 제거되었으므로, 노드(703)에서는 일치하는 PIT 엔트리가 발견되지 않고, 컨텐츠는 삭제될 수 있다(775). 상기 처리 과정에서, 노드(703)와 노드(705) 간의 링크는 불필요한 중복 컨텐츠의 재전송에 의해 낭비될 수 있다.Since the PIT entry matching the content received in
일 실시예에서는 이러한 상황을 회피하기 위해, 컨텐츠 중심 네트워크의 노드들(노드(701), 노드(703) 및 노드(705)) 각각에서 PIT 타이머를 유지할 수 있다.In one embodiment, to avoid this situation, a PIT timer may be maintained at each of the nodes (
노드들(노드(701), 노드(703) 및 노드(705)) 각각은 컨텐츠의 수신 시에 즉시 PIT 엔트리를 삭제하는 대신에 PIT 타이머의 카운트를 시작하고, PIT 타이머가 만료됨에 따라 PIT에 대응하는 PIT 엔트리를 제거할 수 있다. 일 실시예에서, PIT 타이머의 값은 각 노드에서의 Round Trip Time(RTT) 추정에 기초하여 동적으로 계산될 수 있다.Each of the nodes (
일 실시예에서, 컨텐츠가 수신되면 컨텐츠에 대응되는 PIT의 엔트리는 CCN_PR_STALE 플래그로 표시될 수 있다. 정상적인 동작을 위해, 각 노드에서는 CCN_PR_STALE 플래그가 설정되지 않은 PIT 엔트리들만이 이용될 수 있다.In one embodiment, when the content is received, the entry of the PIT corresponding to the content may be indicated with the CCN_PR_STALE flag. For normal operation, only PIT entries that do not have the CCN_PR_STALE flag set in each node can be used.
인터레스트가 노드에게 수신되고, 노드 내의 컨텐츠 스토어에서 인터레스트에 해당하는 컨텐츠가 발견되면, 노드는 해당 인터레스트에 대한 PIT 엔트리를 생성하지 않을 수 있다.If the intercept is received by the node and content corresponding to the intercept is found in the content store in the node, the node may not generate a PIT entry for that inter- est.
상술한 바와 같이, 네트워크 정체 등으로 인해 노드가 ACK 메시지를 수신하지 못하여 인터레스트를 재전송하는 경우, 이것은 중복 컨텐츠 전송을 초래할 수 있다. 일 실시예에서는 이러한 경우에 노드가 PIT 엔트리를 생성하도록 할 수 있다. 이 경우, PIT 엔트리는 CCN_PR_STALE 플래그로 표시되고, 이러한 PIT 엔트리는 PIT 타이머의 만료 후에 순차적으로 제거될 수 있다.
As described above, when a node fails to receive an ACK message due to a network congestion or the like and retransmits an interlace, this may result in duplicate content transmission. In one embodiment, in this case, the node may cause the PIT entry to be generated. In this case, the PIT entry is marked with the CCN_PR_STALE flag, and this PIT entry can be removed sequentially after the expiration of the PIT timer.
도 8은 다른 실시예에 따른 컨텐츠 중심 네트워크에서 노드들 간에 전송된 ACK 패킷이 삭제된 경우의 동작을 나타낸 도면이다.FIG. 8 is a diagram illustrating an operation when an ACK packet transmitted between nodes in a content-centered network according to another embodiment is deleted.
도 8을 참조하면, CCN 클라이언트(801)는 인터레스트를 생성하고(810), CCN 클라이언트(801)와 관련된 PIT에 엔트리를 생성(또는 표시)할 수 있다(815). 일 실시예에서, CCN 클라이언트(801)에서 생성된 인터레스트는 노드로부터 나가는 인터레스트의 시퀀스 넘버인 OUT 시퀀스 넘버와 연관될 수 있다. 인터레스트의 OUT 시퀀스 넘버는 예를 들어, 9일 수 있다.8, the
인터레스트의 OUT 시퀀스 넘버는 컨텐츠 중심 네트워크의 각 노드에서 컨텐츠의 이용 가능성에 기초하여 각 노드에서 변경될 수 있다.The OUT sequence number of the interlace may be changed at each node based on the availability of content at each node of the content-centric network.
CCN 클라이언트(801)는 노드(803)에게 인터레스트를 전송할 수 있다(820). CCN 클라이언트(801)는 인터레스트를 노드(803)에게 전송한 후에 자신(CCN 클라이언트(801))의 ACK 타이머를 초기화할 수 있다.The
노드(803)는 CCN 클라이언트(801)로부터 OUT 시퀀스 넘버 9를 가진 인터레스트를 수신할 수 있다. 노드(803)로 수신된 인터레스트의 IN 시퀀스 넘버는 9일 수 있다.
노드(803)가 CCN 클라이언트(801)로부터 인터레스트를 수신한 경우, 노드(803)는 인터레스트를 처리하기에 앞서 ACK 메시지로 즉시 응답할 수 있다(825). 노드(803)로부터 ACK 메시지가 수신된 경우, CCN 클라이언트(801)의 ACK 타이머는 정지될 수 있다.If the
인터레스트가 수신되면, 노드(803)는 PIT에 엔트리를 생성(또는 표시)할 수 있다(830). 예를 들어, 노드(803)의 PIT에서 엔트리가 생성되면, 인터레스트와 관련된 IN 시퀀스 넘버 9가 PIT에 저장될 수 있다.When an interrest is received, the
노드(803)는 인터레스트를 처리한 후에 다음 노드(노드(805)에게 인터레스트를 전송할 수 있다(835). 이때, 인터레스트의 시퀀스 넘버는 인터레스트를 다음 노드(노드(805))에게 전송하기 전에 노드(803)의 PIT에 OUT 시퀀스 넘버는 17 로 저장될 수 있다.The
노드(803)로부터 노드(805)에게 수신된 인터레스트의 IN 시퀀스 넘버는 17일 수 있다.The IN sequence number of the intercept received from the
일 실시예에에서, 노드(805)는 인터레스트의 수신을 확인하는 ACK 메시지를 생성하고, 노드(803)에게 ACK 메시지를 전송할 수 있다. 도 8에 도시된 실시예에서, ACK 메시지는 노드(803)와 노드(805) 간의 전송 중에 예를 들어, 네트워크 정체 등으로 인해 삭제(drop)될 수 있다(840).In one embodiment, the
ACK 메시지가 전송 중에 삭제되어 ACK 메시지를 수신하지 못한 경우, 노드(803)는 ACK 타이머의 만료 후에 노드(805)에게 OUT 시퀀스 넘버 17을 가진 인터레스트를 재전송할 수 있다(845). 노드(805)에게 재전송된 인터레스트의 IN 시퀀스 넘버는 17일 수 있다. 단계(845)에서 재전송된 인터레스트는 CCN 클라이언트 노드(801)에서 생성된 것과 동일한 넌스를 포함할 수 있다.If the ACK message is deleted during transmission and the ACK message is not received, the
단계(845)에서 재전송한 인터레스트에 응답하여, 노드(803)는 노드(805)로부터 ACK 메시지를 수신할 수 있다(850). 이때, 노드(805)은 노드(803)의 ACK 타이머의 만료 전에 ACK 메시지는 노드(805)에게 전송할 수 있다.In response to the re-transmitted interstage at
일 실시예에서, 단계(835)에서 전송된 인터레스트를 위한 PIT 엔트리가 노드(805)의 PIT에 생성되었기 때문에, 노드(805)는 PIT 엔트리를 생성하지 않을 수 있다(855).In one embodiment, the
단계(845)에서 노드(803)로부터 노드(805)로 재전송된 인터레스트는 이전의 단계(835)에서 전송된 인터레스트와 동일한 IN 시퀀스 넘버 17을 보유할 수 있다.The interret resent from
노드(805)가 재전송 인터레스트를 수신하면, 노드(805)은 시퀀스 넘버에 일치하는 엔트리들을 위해 자신의 PIT를 검색하여 일치하는 엔트리를 발견할 수 있다.When the
단계(835)에서 전송된 인터레스트로 인해 PIT에 이미 존재하던 PIT 엔트리로 인해, 노드(805)은 노드(803)에게 ACK 메시지를 전송할 수 있다. 노드(805)는 추가적인 인터레스트 처리를 수행하지 않고, 인터레스트를 삭제할 수 있다.The
노드(805)은 CCN 서버(807)에게 인터레스트를 전송할 수 있다(860). 노드(805)에 의해 전송된 인터레스트의 OUT 시퀀스 넘버는 13이고, CCN 서버(807)에서 수신된 인터레스트의 IN 시퀀스 넘버는 13일 수 있다.The
노드(805)로부터 수신한 인터레스트에 응답하여, CCN 서버(807)는 노드(805)에게 ACK 메시지를 전송할 수 있다(865). CCN 서버(807)은 노드(805)에게 ACK 메시지를 전송한 후에, 인터레스트의 처리를 시작할 수 있다.In response to the intercept received from the
인터레스트를 처리한 후에 CCN 서버(807)는 노드(805)에게 인터레스트에 일치하는 컨텐츠를 전송할 수 있다(870).After processing the interlace, the
일 실시예에서, CCN 서버(807)로부터 컨텐츠가 수신된 경우, 노드(805)는 해당 PIT 엔트리를 STALE 플래그에 의해 표시할 수 있다. 노드(805)는 CCN 서버(807)로부터 컨텐츠를 수신함에 따라 노드(805)의 PIT 타이머를 초기화할 수 있다.In one embodiment, when content is received from the
PIT 타이머가 만료되면, 노드(805)은 PIT에서 해당 PIT 엔트리를 제거할 수 있다(875).When the PIT timer expires, the
CCN 서버(807)로부터 컨텐츠를 수신한 노드(805)는 컨텐츠를 저장한 후, 노드(803)에게 컨텐츠를 전송할 수 있다(880).After receiving the content from the
노드(803)에 컨텐츠가 수신되면, 노드(803)는 STALE 플래그에 의해 해당 PIT 엔트리를 표시할 수 있다. 노드(803)는 PIT 타이머의 만료에 따라, 노드(803)의 PIT에서 해당 PIT 엔트리를 제거할 수 있다(885). 이후, 노드(803)는 PIT 타이머를 초기화할 수 있다.When the contents are received in the
노드(803)는 노드(805)로부터 수신한 컨텐츠를 저장하고, CCN 클라이언트(801)에게 컨텐츠를 전송할 수 있다(890).The
CCN 클라이언트(801)는 STALE 플래그에 의해 해당 PIT 엔트리를 표시하고, 노드(803)로부터 컨텐츠를 수신한 후에 자신의 PIT 타이머를 초기화할 수 있다. CCN 클라이언트(801)는 PIT 타이머가 만료됨에 따라 해당 PIT 엔트리를 제거할 수 있다(895).
The
도 9는 일실시예에 따른 컨텐츠 중심 네트워크에서 노드들간의 인터레스트가 삭제된 경우, ACK 타이머의 종료 후에 인터레스트가 재전송되는 과정을 나타낸 도면이다.9 is a diagram illustrating a process in which an interrest is retransmitted after an end of an ACK timer when an inter-node between nodes is deleted in a content-centered network according to an exemplary embodiment.
도 9를 참조하면, 인터레스트가 ACK 타이머의 만료 후에 ACK 메시지의 응답에 실패한 노드에게 재전송되는 경우가 도시된다.Referring to FIG. 9, it is shown that the interlace is retransmitted to the node that failed to respond to the ACK message after expiration of the ACK timer.
도 9에서 CCN 클라이언트(901)와 노드(905) 간에 수행되는 동작은 도 8의 단계(810) 내지 단계(835)의 과정과 동일하므로 해당 부분의 설명을 참조한다. 또한, 도 9에서는 도 8의 단계(840)에서 노드(805)이 노드(803)에게 전송한 ACK 메시지가 정상적으로 수신된 것으로 가정하고, 노드(905)에서 PIT 엔트리가 생성된 이후에 노드(905)과 CCN 서버(907) 간의 동작을 설명한다.The operations performed between the
도 9에서 노드(905)와 CCN 서버(907) 간에서 노드(905)로부터 전송된 OUT 시퀀스 넘버 13을 가진 인터레스트가 삭제될 수 있다(910).In FIG. 9, an interlace with
인터레스트가 삭제되면, 노드(905)에서는 ACK 타이머의 만료 전에 인터레스트에 응답하여 ACK 메시지가 수신되지 않는다. 이러한 경우, 노드(905)은 OUT 시퀀스 넘버 13을 가진 인터레스트를 CCN 서버(907)에게 재전송할 수 있다(920).If the interlace is deleted, the
CCN 서버(907)는 노드(905)로부터 IN 시퀀스 넘버 13을 가진 재전송된 인터레스트를 수신할 수 있다.The
노드(905)에 의해 재전송된 인터레스트가 CCN 서버(907)에서 수신되면, CCN 서버(907)는 노드(905)에게 인터레스트에 대응하는 ACK 메시지를 전송할 수 있다(930).When the
이후, CCN 서버(907)와 CCN 클라이언트(901) 간에 수행되는 동작은 도 8의 단계(870) 내지 단계(895)와 동일하므로 해당 부분의 설명을 참조하도록 한다.
Hereinafter, the operations performed between the
도 10은 일실시예에 따른 컨텐츠 중심 네트워크의 각 노드에서 인터레스트를 처리하는 방법을 나타낸 도면이다.FIG. 10 is a diagram illustrating a method of processing an advertisement in each node of the content-centric network according to an exemplary embodiment of the present invention.
도 10을 참조하면, 일 실시예에 따른 노드는 컨텐츠 중심 네트워크에서 인터레스트 소유자로부터 인터레스트를 전송받을 수 있다(1001). 여기서, 인터레스트 소유자는 컨텐츠 중심 네트워크에서 인터레스트를 생성하여 전송한 노드로 이해될 수 있다.Referring to FIG. 10, a node according to an exemplary embodiment may receive (1001) an interest from an owner of an interest in a content-centric network. Here, the owner of the interrest can be understood as a node that has generated and transmitted an interrest in the content-oriented network.
노드는 인터레스트가 수신된 인커밍 페이스가 원거리(remote)인지 여부를 판단한다(1002). 여기서, '페이스(face)'는 통신 패킷이 전달되는 경로(path)를 의미하며, '인터페이스(interface)'로도 표현할 수 있다.The node determines whether the incoming face received by the interlace is remote (1002). Here, 'face' refers to a path through which a communication packet is transmitted, and can also be expressed as an 'interface'.
단계(1002)에서 인커밍 페이스가 원거리로 판단되는 경우, 노드는 인커밍 페이스를 통해 수신된 인터레스트에 응답하여 ACK 메시지를 전송할 수 있다(1003).In
단계(1002)에서 인커밍 페이스가 원거리가 아닌 근거리로 판단되면, 노드는 인터레스트에 인터레스트 소유자에 의해 생성된 복제된 넌스(duplicate Nonce)가 있는지 여부를 판단할 수 있다(1004).If it is determined at
단계(1004)에서 인터레스트 소유자에 의해 생성된 중복 넌스가 있다고 판단되는 경우, 노드는 인터레스트의 시퀀스 넘버(ISN)가 PIT 엔트리의 ISN과 일치하는지 여부를 판단할 수 있다(1021).If it is determined in
단계(1021)에서, 인터레스트의 시퀀스 넘버(ISN)가 PIT 엔트리의 ISN과 일치한다고 판단되는 경우, 노드는 단계(1001)에서 수신한 인터레스트를 인터레스트 소유자에 의해 재전송된 인터레스트로 선언할 수 있다(1022).In
단계(1021)에서, 인터레스트의 시퀀스 넘버(ISN)가 PIT 엔트리의 ISN과 일치하지 않는다고 판단되는 경우, 노드는 단계(1001)에서 수신한 인터레스트를 복제되거나 중복된 인터레스트들이라고 선언할 수 있다(1023). 단계(1022) 및 단계(1023)의 선언 후에 노드는 동작을 종료할 수 있다.In
단계(1004)에서, 인터레스트 소유자에 의해 생성된 중복 넌스가 없다고 판단되는 경우, 노드는 인터레스트에 있는 세그먼트들을 찾기 위해 노드의 컨텐츠 스토어를 검색할 수 있다(1005). 또한, 노드는 컨텐츠 스토어에서 인터레스트에 있는 다음 세그먼트를 검색할지 여부를 판단할 수 있다(1006).At
단계(1006)에서, 컨텐츠 스토어에서 검색할 다음 세그먼트가 존재하는 것으로 판단되면, 노드는 인터레스트에서 다음 세그먼트에 일치하는 것(즉, 컨텐츠 혹은 세그먼트)가 컨텐츠 스토어에서 발견되었는지를 판단할 수 있다(1007).At
단계(1007)에서, 다음 세그먼트에 일치하는 컨텐츠가 컨텐츠 스토어에서 발견된 경우, 노드는 인커밍 페이스로 컨텐츠를 전송(1008)한 다음, 단계(1006)으로 되돌아 갈 수 있다.If, at
단계(1006)에서, 컨텐츠 스토어에서 검색할 다음 세그먼트가 존재하지 않는다고 판단되면, 노드는 노드의 인커밍 페이스가 원거리인지 여부를 판단할 수 있다(1009).At
단계(1007)에서, 인터레스트에서 다음 세그먼트와 일치하는 컨텐츠가 컨텐츠 스토어에 존재하지 않는다고 판단되면, 노드는 노드의 인커밍 페이스가 원거리인지 여부를 판단할 수 있다(1009).In
단계(1009)에서, 인커밍 페이스가 원거리라고 판단된 경우, 노드는 컨텐츠 스토어로부터 제공된 컨텐츠가 있는지 여부를 판단할 수 있다(1010).In
단계(1010)에서, 컨텐츠 스토어로부터 제공된 컨텐츠가 있다고 판단되면, 노드는 재전송된 인터레스트들에 대한 답변을 회피하기 위해 타임 아웃 값을 가지는 false PIT 엔트리를 생성할 수 있다(1011). 또한, 노드는 인커밍 페이스로 컨텐츠를 재전송하는 것을 피하기 위해서 STALE 플래그에 의해 PIT 엔트리를 표시할 수 있다(1012). 노드는 재전송된 인터레스트들에 대한 답변을 회피하기 위해서 PIT 타이머를 시작할 수 있다(1013).At
단계(1010)에서, 컨텐츠 스토어로부터 제공된 컨텐츠가 없다고 판단되면, 노드는 인터레스트의 각 세그먼트를 위한 PIT 엔트리들을 생성할 수 있다(1015). 단계(1015)에서 인터레스트의 각 세그먼트에 대해 PIT 엔트리들이 생성된 경우, 노드는 변경된(modified) 인터레스트의 OSN을 갱신할 수 있다(1016).In
노드는 변경된 인터레스트를 컨텐츠 중심 네트워크에서 인접한 노드에게 전송하기 전에, 변경된 인터레스트에 대한 ACK 타이머를 시작할 수 있다(1017).The node may initiate an ACK timer for the changed interlace (1017) before sending the changed interlace to the neighboring node in the content-centric network.
단계(1017)에서 노드가 ACK 타이머를 시작한 경우, 노드는 ACK 타이머의 만료 전에 컨텐츠 중심 네트워크에서 인접 노드로부터 ACK 메시지가 수신되었는지 여부를 판단할 수 있다(1018). 단계(1018)에서 ACK 타이머의 만료 전에 인접 노드로부터 ACK 메시지가 수신된 경우, 노드는 ACK 타이머를 정지시킬 수 있다(1019). ACK 타이머의 만료 전에 인접 노드로부터 ACK 메시지가 수신되지 않은 경우, 노드는 컨텐츠 중심 네트워크에서 인접 노드로 인터레스트를 재전송할 수 있다(1020). 단계(1019) 또는 단계(1020)의 수행 후, 노드는 동작을 종료할 수 있다.If the node initiated the ACK timer in
단계(1009)에서, 인커밍 페이스가 원거리가 아니라고(즉, 근거리로) 판단된 경우, 노드는 다시 단계(1014)로 가서 이후 동작을 수행할 수 있다.In
일 실시예에서 노드는 인접 노드에게 인터레스트를 재전송한 후에 ACK 타이머를 시작할 수도 있다. 이때, 노드에 의해 재전송된 인터레스트의 개수는 3개가 될 수 있다. 인터레스트가 인접 노드로 재전송되고, ACK 타이머의 만료 전에 ACK 메시지가 노드에서 수신되지 않은 경우, 노드는 컨텐츠 중심 네트워크에서 인접 노드에게 인터레스트를 재전송할 수 있다. 인터레스트는 ACK 타이머의 만료 전에 노드에서 ACK 메시지가 수신되지 않은 경우, 일 실시예에 따르면, 3번 인접 노드에게 재전송될 수 있다. ACK 메시지가 3번의 인터레스트 재전송 시도 후에도 노드에 수신되지 않은 경우, 노드는 ACK 타이머를 중지할 수 있다.In one embodiment, a node may initiate an ACK timer after retransmitting an interlace to a neighboring node. At this time, the number of interrests retransmitted by the node may be three. If the intercept is retransmitted to the neighboring node and the ACK message is not received at the node before the expiration of the ACK timer, the node may retransmit the intercept to the neighboring node in the content-centric network. The interrest may be retransmitted to the neighboring
도 10의 실시예에서 기술된 다양한 동작들, 유닛들, 블록들, 또는 행위들은 제시된 순서대로, 또는 다른 순서로, 동시에 또는 이들의 조합으로 수행될 수 있다. 또한, 실시예에 따라서, 도 10에서 나열된 동작들, 유닛들, 단계들, 블록들 또는 행위들은 생략될 수 있다.
The various operations, units, blocks, or acts described in the embodiment of FIG. 10 may be performed in the order presented, or in another order, concurrently, or a combination thereof. Also, depending on the embodiment, the operations, units, steps, blocks or behaviors listed in FIG. 10 may be omitted.
도 11은 일 실시예에 따른 컨텐츠 중심 네트워크에서 노드가 인접 노드들부터 수신되는 컨텐츠(incoming content)를 처리하는 방법을 나타낸 도면이다.FIG. 11 is a diagram illustrating a method for a node to process incoming content from neighboring nodes in a content-centric network according to an exemplary embodiment of the present invention.
도 11을 참조하면, 일 실시예에 따른 노드는 컨텐츠 중심 네트워크에서 인접 노드(들)로부터 컨텐츠를 수신할 수 있다(1101).11, a node according to one embodiment may receive
노드는 컨텐츠 중심 네트워크에서 인접 노드로부터 수신된 컨텐츠의 타입을 결정할 수 있다(1102). 단계(1102)에서 노드로부터 수신된 컨텐츠의 타입이 ACK 메시지라고 판단되면, 노드는 컨텐츠 스토어에 ACK 메시지를 저장하지 않는다(1103). 노드는 ACK 메시지에 대응하는 인터레스트를 PIT에서 검색한다(1104).The node may determine the type of content received from the neighboring node in the content-centric network (1102). If it is determined in
노드는 PIT에서 PIT 엔트리가 ACK 메시지에 대응하는 인터레스트와 일치하는지 여부를 판단할 수 있다(1105).The node may determine whether the PIT entry in the PIT matches the corresponding corresponding to the ACK message (1105).
단계(1105)에서 PIT 엔트리가 일치하는 경우, 노드는 ACK 메시지의 시퀀스 넘버가 PIT의 OUT 시퀀스 넘버와 일치하는지를 판단할 수 있다(1106). 단계(1106)에서, ACK 시퀀스 넘버와 PIT의 OUT 시퀀스 넘버가 일치하는 경우, 노드는 ACK 타이머를 정지시킨다(1107).If the PIT entry matches in
단계(1105)에서 PIT 엔트리가 일치하지 않는 경우, 노드는 PIT에 PIT 엔트리들이 더 존재하는지 여부를 판단할 수 있다(1108). 단계(1108)에서 PIT에 PIT 엔트리들이 더 존재하는 경우, 노드는 단계(1105)를 수행할 수 있다. 단계(1108)에서 PIT에 PIT 엔트리들이 더 존재하지 않는 경우, 노드는 동작을 종료할 수 있다(1109).If the PIT entry does not match in
단계(1106)에서, ACK 시퀀스 넘버와 PIT의 OUT 시퀀스 넘버가 일치하지 않는 경우, 노드는 PIT에 PIT 엔트리들이 존재하는지 여부를 결정할 수 있다(1108). 노드는 PIT에 PIT 엔트리들이 존재하는지 여부에 기초하여, 동작을 종료(1109)하던지, 또는 단계(1105)로 되돌아 갈 수 있다.In
단계(1102)에서 노드로부터 수신된 컨텐츠의 타입이 데이터라고 판단되면, 노드는 노드의 컨텐츠 스토어에 수신된 데이터를 저장할 수 있다(1110). 노드는 수신된 컨텐츠를 인터레스트와 일치시키기 위하여 자신의 PIT의 PIT 엔트리를 검색할 수 있다(1111). 노드는 PIT 엔트리가 인터레스트와 일치하는지 여부를 결정할 수 있다(1112). 일 실시예에서, 인터레스트의 OUT 시퀀스 넘버는 PIT 엔트리와 노드에서 수신된 인터레스트 간에 일치가 존재하는지 여부를 결정하기 위해 PIT 엔트리와 매칭될 수 있다.If it is determined in
단계(1112)에서 PIT 엔트리와 인터레스트가 일치하는 것으로 결정되면, 노드는 PIT에서 PIT 엔트리가 STALE 플래그에 의해 표시되었는지 여부를 판단할 수 있다(1113). 단계(1113)에서 PIT 엔트리가 STALE 플래그에 의해 표시되는지 않는 경우, 노드는 PIT 엔트리의 페이스로 컨텐츠를 전송할 수 있다(1114).If it is determined in step 1112 that the PIT entry and the interrelation match, the node may determine 1113 whether the PIT entry is indicated by the STALE flag in the PIT. If the PIT entry is not indicated by the STALE flag in
또한, 노드는 PIT 엔트리의 페이스가 원거리인지 여부를 판단할 수 있다(1115). 단계(1115)에서 PIT 엔트리의 페이스가 원거리로 판단되면, 노드는 컨텐츠의 재전송을 회피하기 위해 STALE 플래그에 의해 PIT 엔트리를 표시할 수 있다(1116). 노드는, 예를 들어, 도 7 및 도 9에서 ACK 메시지가 삭제되거나 인터레스트가 삭제된 경우와 같이, 재전송된 인터레스트들에 대한 응답을 회피하기 위해 PIT 타이머를 시작할 수 있다(1117).The node may also determine whether the face of the PIT entry is remote (1115). If the pace of the PIT entry is determined to be remote at
노드는 PIT 타이머가 만료되었는지를 판단할 수 있다(1118). 단계(1118)에서 PIT 타이머가 만료되지 않은 경우, 노드는 PIT 타이머의 만료를 대기할 수 있다.The node may determine 1118 whether the PIT timer has expired. If, in
단계(1118)에서 PIT 타이머가 만료된 경우, 노드는 PIT에서 PIT 엔트리를 제거(1119)한 후, 동작을 종료할 수 있다.If the PIT timer expires in
단계(1115)에서 PIT 엔트리의 페이스가 근거리로 판단되면, 노드는 PIT에서 PIT 엔트리를 제거할 수 있다(1118).If the pace of the PIT entry is determined to be short in
단계(1112)에서, PIT 엔트리와 인터레스트가 일치하지 않는 것으로 결정되면, 노드는 PIT에 PIT 엔트리들이 더 존재하는지 여부를 판단할 수 있다(1120). 단계(1120)에서, PIT 엔트리들이 더 존재하는 경우, 노드는 단계(1112)로 돌아가서 PIT 엔트리가 인터레스트와 일치하는지 여부를 결정할 수 있다. 단계(1120)에서, PIT에 PIT 엔트리들이 더 존재하지 않는 경우, 노드는 동작을 종료할 수 있다(1121).At step 1112, if it is determined that the PIT entry and the intercept do not match, then the node may determine whether there are more PIT entries in the PIT (1120). In
도 11의 실시예에서 기술된 다양한 동작들, 유닛들, 블록들, 또는 행위들은 제시된 순서대로, 또는 다른 순서로, 동시에 또는 이들의 조합으로 수행될 수 있다. 또한, 실시예에 따라서, 도 11에서 나열된 동작들, 유닛들, 단계들, 블록들 또는 행위들은 생략될 수 있다.
The various operations, units, blocks, or acts described in the embodiment of Fig. 11 may be performed in the order presented, or in another order, concurrently, or a combination thereof. Further, according to the embodiment, the operations, units, steps, blocks or behaviors listed in Fig. 11 may be omitted.
도 12는 일 실시예에 따른 컨텐츠 중심 네트워크에서 노드들 간에 인터레스트가 삭제된 경우를 나타낸 도면이다.FIG. 12 is a diagram illustrating a case where an interpreter is deleted between nodes in a content-centric network according to an exemplary embodiment of the present invention.
도 12를 참조하면, 일 실시예에 따른 컨텐츠 중심 네트워크는 CCN 클라이언트(1210) 및 CCN 노드들(즉, CCN 노드(1220) 및 CCN 노드(1230)), 및 CCN 서버(1240)를 포함할 수 있다.12, a content-centric network according to one embodiment may include a
CCN 클라이언트(910)는 컨텐츠 중심 네트워크의 각 노드에게 인터레스트의 신뢰성 있는 전달을 보장하는 일 실시예에 따른 ACK 메커니즘과 UDP(User Datagram Protocol)의 접속을 통해 100MB 파일을 요청할 수 있다.The
도 12에서, 인터레스트는 CCN 노드(1220) 및 CCN 노드(1230) 간에 일정 삭제 확률(drop probability)로 삭제될 수 있다. 이때, CCN 노드(1220) 및 CCN 노드(1230) 간에는 인터레스트만이 삭제되고, 컨텐츠은 삭제되지 않는다.In FIG. 12, the interlace may be deleted with a constant drop probability between the
인터레스트의 삭제 확률이 0에서 0.5로 변화되면, 노드는 해당 처리량을 측정할 수 있다. 도 12의 설정에서 ACK 메커니즘이 사용되지 않고, 노드가 전달할 수 있는 최대 중복 인터레스트는 3에서 10000으로 증가될 수 있다. 여기서, 숫자 10000은 노드들에게 전달되는 유사한 인터레스트들의 다수 허용하기 위해 임의로 선택된 값일 수 있다.
If the deletion probability of the intercept changes from 0 to 0.5, the node can measure the throughput. In the configuration of FIG. 12, the ACK mechanism is not used, and the maximum redundant intercept that a node can deliver may be increased from 3 to 10000. Here, the number 10000 may be a value that is arbitrarily selected to allow a number of similar interlaces to be delivered to the nodes.
도 13은 일 실시예에 따라 다수의 CCN 클라이언드들을 포함하는 컨텐츠 중심 네트워크에서 두 노드들 중 어느 하나에서 인터레스트가 삭제된 경우를 나타낸 도면이다.FIG. 13 is a diagram illustrating a case in which an interlace is deleted from one of two nodes in a content-centric network including a plurality of CCN clients according to an exemplary embodiment of the present invention.
도 13을 참조하면, 일 실시예에 따른 컨텐츠 중심 네트워크는 다수의 CCN 클라이언트 노드들(1310), 두 개의 CCN 노드들(CCN 노드(1320) 및 CCN 노드(1330)) 및 CCN 서버(1340)를 포함할 수 있다.13, a content-centric network according to an exemplary embodiment includes a plurality of
일 실시예에 따른 ACK 메커니즘은 동일한 컨텐츠를 동시에 요청하는 다수의 클라이언트들에 대하여 공정성(fairness)을 유지할 수 있다. 도 13의 상황에서 다양한 삭제 확률에 대한 행동이 분석되고, 이에 대응되는 결과는 도 16에 도시될 수 있다. 일 실시예에서 인터레스트에 대한 서로 다른 삭제 확률들에 대하여 서로 다른 클라이언트들에 대하여 공정성이 유지되는 것을 도 16을 통해 관찰할 수 있다.
The ACK mechanism according to an exemplary embodiment may maintain fairness for a plurality of clients simultaneously requesting the same contents. In the situation shown in FIG. 13, the actions for various deletion probabilities are analyzed, and the corresponding results can be shown in FIG. It can be observed from Fig. 16 that fairness is maintained for different clients for different deletion probabilities for the intercept in one embodiment.
도 14는 일 실시예에 따라 두 개의 모바일 디바이스들 중 어느 하나의 모바일 디바이스와 액세스 포인트 간에 전송되는 인터레스트가 삭제되는 경우를 나타낸 도면이다.FIG. 14 is a diagram illustrating a case in which an interlace transmitted between a mobile device and an access point of one of two mobile devices is deleted according to an embodiment.
도 14를 참조하면, 두 개의 모바일 기기들(1410, 1430)이 액세스 포인트(1450)와 연결되어 있는 것을 볼 수 있다. 모바일 기기들(1410, 1430) 중 하나는 CCN 클라이언트(1410)이고, 다른 하나는 CCN 서버(1430)일 수 있다. 일정 확률로의 인터레스트 삭제는 CCN 서버(1430)의 인터페이스에서 수행될 수 있다.Referring to FIG. 14, it can be seen that two
이러한 상황에서 일 실시예에 따른 ACK 메커니즘을 사용한 경우 및 ACK 메커니즘을 사용하지 않은 경우(비-ACK 메커니즘)들 각각에 대한 테스트 결과들은 도 17에 도시된다.Test results for the case of using the ACK mechanism according to one embodiment and the case of not using the ACK mechanism (non-ACK mechanism) in this situation are shown in Fig.
상기 두 경우들은 삭제된 인터레스트가 없는 경우에 거의 동일한 방식으로 수행되므로, ACK 메시지 전송으로 인해 발생하는 오버헤드(overhead)를 확인할 수 있지만, 처리량 측면에서 유리하다.Since the above two cases are performed in almost the same manner in the absence of the deleted interleaves, it is possible to check the overhead caused by transmission of the ACK message, but it is advantageous in terms of throughput.
예를 들어, 인터레스트의 60%가 삭제된 경우, 일 실시예에 따른 ACK 메커니즘에 따르면, 인터레스트의 삭제가 없는 경우의 처리율에 비해 19.52%의 처리율을 제공할 수 있다(도 17 참조). 도 17에 도시된 바와 같이 인터레스트들의 20%만이 삭제된 경우, 비-ACK 메커니즘은 이상적인 무삭제 처리율의 20.5%를 제공할 수 있다. 또한, 비-ACK 메커니즘은 인터레스트들이 20% 이상 삭제된 경우, 파일 다운로드 완료에 실패할 수 있다.For example, when 60% of the interleaves are deleted, according to the ACK mechanism according to an embodiment, it is possible to provide a throughput of 19.52% compared to the case where there is no deletion of the interlace (see FIG. 17). If only 20% of the interrests are deleted, as shown in FIG. 17, the non-ACK mechanism can provide 20.5% of the ideal unprocessed throughput. In addition, the non-ACK mechanism may fail to complete the file download if the interrests are deleted by 20% or more.
PIT 엔트리에 대한 STALE 플래그 및 PIT 엔트리 타이머의 시작의 도입 결과, 필요한 메모리의 전반적인 증가가 있을 수 있다. ACK 메커니즘에서의 높은 처리율을 고려할 때 메모리의 증가는 수용할만하다.
As a result of introducing the STALE flag for the PIT entry and the start of the PIT entry timer, there may be an overall increase in memory required. Considering the high throughput in the ACK mechanism, the increase in memory is acceptable.
도 15은 도 12에 도시된 경우에 대하여 일실시예에 따른 ACK 메커니즘을 사용한 경우 및 ACK 메커니즘을 사용하지 않은 경우의 처리율 비교 결과를 나타낸 그래프이다.FIG. 15 is a graph illustrating a throughput comparison result in the case shown in FIG. 12 when the ACK mechanism according to an embodiment is used and when the ACK mechanism is not used.
도 15에서는 각 노드에서 세 개의 중복 인터레스트들이 Non-ACK 메커니즘을 통해 전송되도록 허용할 수 있다.In Figure 15, three redundant interlaces at each node may be allowed to be transmitted via the Non-ACK mechanism.
도 12에 도시된 상황으로부터 획득된 결과는 컨텐츠 중심 네트워크에서 일 실시예에 따른 ACK 메커니즘 및 두 개의 다른 ACK 메커니즘 간에 비교될 수 있다.The results obtained from the situation shown in FIG. 12 can be compared between the ACK mechanism according to an embodiment and two different ACK mechanisms in the content-based network.
제1 Non-ACK 메커니즘에서 최대 중복 인터레스트는 3 개이고, 제2 Non-ACK 메커니즘에서 최대 중복 인터레스트는 10000개일 수 있다.In the first non-ACK mechanism, there are three maximum redundant interrests, and in the second non-ACK mechanism, the maximum redundant interrests may be 10,000.
일 실시예에 따른 ACK 메커니즘에 대한 처리율을 나타내는 그래프 A에서 0.5의 인터레스트 삭제 확률, 및 200Mbps의 처리율이 달성된 것을 관찰할 수 있다. 반면에, 0.3의 인터레스트 삭제 확률의 최대 중복 인터레스트 개수 3개를 가지는 Non-ACK 메커니즘에 대한 그래프 B에서 처리율은 그래프에 나타난 바와 같이 O으로 내려간다.It can be seen that a probability of an interlace deletion of 0.5 and a throughput of 200 Mbps are achieved in the graph A showing the throughput for the ACK mechanism according to an embodiment. On the other hand, in graph B for the non-ACK mechanism with a maximum number of three interleaving of the interlace deletion probability of 0.3, the throughput goes down to O as shown in the graph.
또한, 최대 중복 인터레스트 개수 10000개를 가지는 Non-ACK 메커니즘에 대한 그래프 C에서 처리율은 그래프에 보여지는 바와 같이 0.5의 인터레스트 삭제 확률로 매우 낮음을 알 수 있다.
Also, in the graph C for the non-ACK mechanism having the maximum number of redundant interrupts of 10000, the throughput is very low, as shown in the graph, with a probability of dropping an interlace of 0.5.
도 16는 노드들의 개수 증가를 통해 확률을 변화시키는 도 13에 도시된 경우에 대한 처리율 비교 결과를 나타낸 그래프이다.FIG. 16 is a graph showing the throughput comparison result for the case shown in FIG. 13 in which the probability is changed by increasing the number of nodes.
도 16에 도시된 그래프로부터, 도 13에 도시된 모든 CCN 클라이언트들이 서로 다른 인터레스트 삭제 확률들(drop probabiliites)에 대하여 유사한 처리량을 달성해 왔음을 관찰할 수 있다. 그래프에 나타난 바와 같이, 인터레스트의 삭제 확률 제로(0)부터 인터레스트 삭제 확률(0.4)까지에 대응되는 처리율은 모든 CCN 클라이언트들에 대하여 선형일 수 있다. 처리율은 모든 CCN 클라이언트들에 대하여 동일하게 유지될 수 있다.From the graph shown in FIG. 16, it can be observed that all the CCN clients shown in FIG. 13 have achieved similar throughputs for different intra-probe deletion probabilities. As shown in the graph, the throughput corresponding to the intercept deletion probability (0) to the intercept deletion probability (0.4) may be linear for all CCN clients. The throughput can remain the same for all CCN clients.
도 16에서 인터레스트에 대한 서로 다른 삭제 확률들에 대하여도 서로 다른 클라이언트들에서 공정성이 유지됨을 알 수 있다.
In FIG. 16, fairness is maintained in different clients for different deletion probabilities for the interlace.
도 17은 도 14에 도시된 경우에 대하여 일실시예에 따른 ACK 메커니즘을 사용한 경우 및 ACK 메커니즘을 사용하지 않은 경우의 처리율 비교 결과를 나타낸 그래프이다.FIG. 17 is a graph showing the throughput comparison result when the ACK mechanism according to an embodiment is used and when the ACK mechanism is not used with respect to the case shown in FIG. 14. FIG.
도 17에서, 그래프 A는 일 실시예에 따른 ACK 메커니즘에 대한 처리율을 나타내고, 그래프 B는 Non-ACK 메커니즘에 대한 처리율을 나타낸다.In FIG. 17, Graph A represents the throughput for the ACK mechanism according to one embodiment, and Graph B represents the throughput for the Non-ACK mechanism.
그래프 A로부터, ACK 메커니즘을 사용하여 0.6의 삭제 확률으로 19.25%의 처리율이 달성되는 반면에, 그래프 B에서 Non-ACK 메커니즘을 사용하여 0.2의 삭제 확률로 20%의 처리율이 달성되는 것을 볼 수 있다. 그래프 B에서, 삭제 확률이 0.2를 초과하는 경우 처리율이 달성되지 않는 것을 관찰할 수 있다.
From the graph A, it can be seen that a throughput of 19.25% is achieved with an erasure probability of 0.6 using the ACK mechanism while a 20% throughput with a erasure probability of 0.2 is achieved using the Non-ACK mechanism in graph B . In graph B, it can be observed that the throughput is not achieved when the deletion probability exceeds 0.2.
도 18은 일 실시예에 따른 노드의 블록도이다.18 is a block diagram of a node according to one embodiment.
도 18을 참조하면, 일 실시예에 따른 노드(1800)는 수신부(1810), 처리부(1820), 전송부(1830)를 포함한다. 노드(1800)는 컨텐츠 스토어(CS)(1840), PIT(1850), 및 FIB(1860)를 더 포함할 수 있다.18, a
수신부(1810)는 컨텐츠 중심 네트워크에서 이전 노드로부터 컨텐츠를 요청하는 제1 인터레스트를 수신한다.The
처리부(1820)는 제1 인터레스트에 응답하여, 제1 인터레스트의 수신을 나타내는 제1 ACK 메시지를 생성한다.The
전송부(1830)는 이전 노드에게 제1 ACK 메시지를 전송한다.The
컨텐츠 스토어(CS)(1840)는 컨텐츠를 저장한다. 처리부(1820)는 전송부(1830)가 제1 ACK 메시지를 전송한 후, 제1 인터레스트와 관련된 컨텐츠가 컨텐츠 스토어(1840)에 존재하지 않는 경우에 제2 인터레스트를 생성할 수 있다. 처리부(1820)는 전송부(1830)를 통해 다음 노드에게 제2 인터레스트를 전송할 수 있다.Content store (CS) 1840 stores the content. The
PIT(1850)는 PIT 엔트리들을 포함한다. 처리부(1820)는 PIT(1850)에 제1 인터레스트와 관련된 PIT 엔트리를 생성하고, PIT 엔트리에 제1 인터레스트와 관련된 시퀀스 넘버를 저장할 수 있다.
처리부(1820)는 PIT(1850) 내에서 검새하고자 하는 엔트리가 존재하지 않는 경우, FIB(Forwarding Information Base)(1860)를 검색할 수 있다. 이때, 처리부(1820)는 예를 들어, 최장 프리픽스 매칭(longest prefix matching)을 기초로 프리픽스와 FIB(1860)의 엔트리에 등록된 프리픽스에 대한 정보에 대한 검색을 수행할 수 있다.The
처리부(1820)는 제2 인터레스트를 생성하여 다음 노드(next node)에게 전송함에 따라 ACK 타이머를 시작하고, 수신부(1810)를 통해 다음 노드로부터 제2 인터레스트에 응답한 제2 ACK 메시지를 수신한 경우에 ACK 타이머를 정지할 수 있다.The
처리부(1820)는 제2 ACK 메시지가 ACK 타이머의 만료 시까지 수신되지 않는 경우, 다음 노드에게 제2 인터레스트를 재전송하고, ACK 타이머를 일정한 백 오프 타임 아웃 값으로 다시 카운트를 시작할 수 있다.If the second ACK message is not received until the expiration of the ACK timer, the
처리부(1820)는 다음 노드로부터 컨텐츠를 수신함에 따라 노드의 PIT 엔트리를 STALE 플래그에 의해 표시하고, PIT 엔트리에 대응하는 PIT 타이머를 시작하며, PIT 타이머가 만료되면 노드의 전파 인터레스트 테이블(PIT)에서 PIT 엔트리를 제거할 수 있다.
Upon receiving the content from the next node, the
도 19는 일 실시예에 따른 컨텐츠 중심 네트워크에서 인터레스트의 전송을 제어하는 방법 및 시스템을 구현하는 컴퓨팅 환경을 설명하기 위한 도면이다.19 is a diagram for describing a computing environment for implementing a method and system for controlling transmission of an interlace in a content-oriented network according to an embodiment.
도시된 바와 같이 컴퓨팅 환경(1900)은 적어도 하나의 처리부(Processing Unit)(1910), 메모리(Memory)(1920), 저장부(Storage)(1930), 복수의 네트워킹 장치들(Networking Devices)(1950) 및 복수의 입출력 장치들(I/O Devices)(1940)를 포함한다.As shown, the
컴퓨팅 환경(1900)은 다수의 동종 및/또는 이종의 코어, 다른 종류들의 다수의 CPU들, 특정 미디어 및 다른 가속기들로 구성될 수 있다.The
처리부(1910)는 제어부(Control Unit)(1913), 및 산술 논리 유닛(Arithmetic Logic Unit; ALU)(1916)을 포함할 수 있다.The
처리부(1910)는 알고리즘의 명령들을 처리할 수 있다.The
처리부(1910)는 그 처리를 수행하기 위해서 제어부(1913)로부터 명령들을 수신한다. 또한, 명령들의 실행에 관련된 논리 및 산술 연산들은 산술 논리 유닛(ALU)(1916)의 도움으로 계산된다.The
처리부(1910)는 단수 또는 복수 일 수 있으며, 단일 칩 또는 복수 개의 칩들에 위치할 수 있다.The
구현을 위해 요구되는 명령들 및 코드들은 메모리(1920) 또는 저장부(1930) 중 어느 하나 또는 둘 다에 저장될 수 있다. 실행 시에, 처리부(1910)는 명령들을 메모리(1920) 및/또는 저장부(1930)로부터 가져올 수 있고, 가져온 명령들을 실행할 수 있다.The instructions and codes required for implementation may be stored in either
하드웨어 구현의 경우에 다양한 네트워킹 장치들(1950) 또는 외부 I/O 장치들(1940)은 네트워킹부 및 I/O 장치부를 통한 구현을 지원하는 컴퓨팅 환경에 연결될 수 있다. 실시예들은 적어도 하나의 하드웨어 장치에서 구동하고, 구성 요소들을 제어하기 위한 네트워크 관리 기능들을 수행하는 적어도 하나의 소프트웨어 프로그램을 통해 구현될 수 있다.In the case of a hardware implementation,
일 실시예에서 도시된 구성 요소들은 하드웨어 장치들 중 적어도 하나의 하드웨어 장치 및 소프트웨어 모듈의 조합이 될 수 있는 블록들을 포함할 수 있다.
The components shown in one embodiment may include blocks that may be a combination of at least one of the hardware devices and a software module.
이상에서 설명된 장치는 하드웨어 구성 요소, 소프트웨어 구성 요소, 및/또는 하드웨어 구성 요소 및 소프트웨어 구성 요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성 요소는, 예를 들어, 프로세서, 컨트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The apparatus described above may be implemented as a hardware component, a software component, and / or a combination of hardware components and software components. For example, the apparatus and components described in the embodiments may be implemented within a computer system, such as, for example, a processor, controller, arithmetic logic unit (ALU), digital signal processor, microcomputer, field programmable array (FPA) A programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For ease of understanding, the processing apparatus may be described as being used singly, but those skilled in the art will recognize that the processing apparatus may have a plurality of processing elements and / As shown in FIG. For example, the processing apparatus may comprise a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as a parallel processor.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성 요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of the foregoing, and may be configured to configure the processing device to operate as desired or to process it collectively or collectively Device can be commanded. The software and / or data may be in the form of any type of machine, component, physical device, virtual equipment, computer storage media, or device , Or may be permanently or temporarily embodied in a transmitted signal wave. The software may be distributed over a networked computer system and stored or executed in a distributed manner. The software and data may be stored on one or more computer readable recording media.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to an embodiment may be implemented in the form of a program command that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions to be recorded on the medium may be those specially designed and configured for the embodiments or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다. 그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. For example, it is to be understood that the techniques described may be performed in a different order than the described methods, and / or that components of the described systems, structures, devices, circuits, Lt; / RTI > or equivalents, even if it is replaced or replaced. Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.
1800: 노드
1810: 수신부
1820: 처리부
1830: 전송부
1840: 컨텐츠 스토어(CS)
1850: PIT(Propagating Interest Table)
1860: FIB(Forwarding Information Base)1800: node
1810:
1820:
1830:
1840: Contents Store (CS)
1850: Propagating Interest Table (PIT)
1860: Forwarding Information Base (FIB)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US14/803,323US10305640B2 (en) | 2014-07-18 | 2015-07-20 | Communication method of node in content centric network (CCN) and the node |
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| IN3541/CHE/2014 | 2014-07-18 | ||
| IN3541CH2014 | 2014-07-18 |
| Publication Number | Publication Date |
|---|---|
| KR20160010293Atrue KR20160010293A (en) | 2016-01-27 |
| KR102337119B1 KR102337119B1 (en) | 2021-12-09 |
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020150038852AActiveKR102337119B1 (en) | 2014-07-18 | 2015-03-20 | Communication method of node in content centric network(ccn) and node |
| Country | Link |
|---|---|
| KR (1) | KR102337119B1 (en) |
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR102218325B1 (en)* | 2019-10-29 | 2021-02-22 | 숭실대학교산학협력단 | Mobility management method for producer mobility in information-centric networking, recording medium and device for performing the method |
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20040100964A1 (en)* | 2002-11-27 | 2004-05-27 | Robotham Robert E. | System and method for detecting lost messages transmitted between modules in a communication device |
| US20070274267A1 (en)* | 1992-03-05 | 2007-11-29 | Qualcomm Incorporated | Apparatus and method for reducing message collision between mobile stations simultaneously accessing a base station in a cdma cellular communications system |
| US20130060962A1 (en)* | 2011-09-01 | 2013-03-07 | Futurewei Technologies, Inc. | Generalized Dual-Mode Data Forwarding Plane for Information-Centric Network |
| US20130282860A1 (en)* | 2012-04-20 | 2013-10-24 | Futurewei Technologies, Inc. | Name-Based Neighbor Discovery and Multi-Hop Service Discovery in Information-Centric Networks |
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20070274267A1 (en)* | 1992-03-05 | 2007-11-29 | Qualcomm Incorporated | Apparatus and method for reducing message collision between mobile stations simultaneously accessing a base station in a cdma cellular communications system |
| US20040100964A1 (en)* | 2002-11-27 | 2004-05-27 | Robotham Robert E. | System and method for detecting lost messages transmitted between modules in a communication device |
| US20130060962A1 (en)* | 2011-09-01 | 2013-03-07 | Futurewei Technologies, Inc. | Generalized Dual-Mode Data Forwarding Plane for Information-Centric Network |
| US20130282860A1 (en)* | 2012-04-20 | 2013-10-24 | Futurewei Technologies, Inc. | Name-Based Neighbor Discovery and Multi-Hop Service Discovery in Information-Centric Networks |
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR102218325B1 (en)* | 2019-10-29 | 2021-02-22 | 숭실대학교산학협력단 | Mobility management method for producer mobility in information-centric networking, recording medium and device for performing the method |
| Publication number | Publication date |
|---|---|
| KR102337119B1 (en) | 2021-12-09 |
| Publication | Publication Date | Title |
|---|---|---|
| US11641387B2 (en) | Timely delivery of real-time media problem when TCP must be used | |
| CN109936510B (en) | Multipath RDMA transport | |
| US9590923B2 (en) | Reliable link layer for control links between network controllers and switches | |
| JP6282293B2 (en) | Method, computer system and computer program for performing integrity check and selective deduplication based on network parameters | |
| US9003053B2 (en) | Message acceleration | |
| CN107925674B (en) | Method and apparatus for pushing data in a content-centric network (CCN) | |
| US10798199B2 (en) | Network traffic accelerator | |
| KR100772528B1 (en) | Efficient Packet Retransmission Method and Device in Wired / Wireless Networks | |
| JP5585591B2 (en) | Packet retransmission control system, method, and program | |
| CN105721536A (en) | Interest acknowledgements for information centric networking | |
| CN103546258B (en) | Method and device for data transmission | |
| US20070291782A1 (en) | Acknowledgement filtering | |
| CN108234089B (en) | Method and system for low latency communication | |
| Dong et al. | In-packet network coding for effective packet wash and packet enrichment | |
| EP3574600A1 (en) | Communication protocol packet retransmission | |
| JP2010213150A (en) | Transmitter, file distribution system, file distribution control method and file distribution control program in system | |
| EP2876832B1 (en) | Communication method and apparatus | |
| US10305640B2 (en) | Communication method of node in content centric network (CCN) and the node | |
| US11444882B2 (en) | Methods for dynamically controlling transmission control protocol push functionality and devices thereof | |
| KR102337119B1 (en) | Communication method of node in content centric network(ccn) and node | |
| JP6802295B2 (en) | Transfer device, transfer method and program | |
| CN109792444B (en) | Playout Buffering in Live Content Distribution Systems | |
| KR100396921B1 (en) | Error control method in the multicasting transmission system using repeater server | |
| CN109155792B (en) | Updating a transport stack in a content-centric network | |
| KR101151615B1 (en) | WD-based P2P data transmission method and system |
| Date | Code | Title | Description |
|---|---|---|---|
| PA0109 | Patent application | Patent event code:PA01091R01D Comment text:Patent Application Patent event date:20150320 | |
| PG1501 | Laying open of application | ||
| PA0201 | Request for examination | Patent event code:PA02012R01D Patent event date:20200320 Comment text:Request for Examination of Application Patent event code:PA02011R01I Patent event date:20150320 Comment text:Patent Application | |
| E902 | Notification of reason for refusal | ||
| PE0902 | Notice of grounds for rejection | Comment text:Notification of reason for refusal Patent event date:20210127 Patent event code:PE09021S01D | |
| E90F | Notification of reason for final refusal | ||
| PE0902 | Notice of grounds for rejection | Comment text:Final Notice of Reason for Refusal Patent event date:20210707 Patent event code:PE09021S02D | |
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration | Patent event code:PE07011S01D Comment text:Decision to Grant Registration Patent event date:20210903 | |
| PR0701 | Registration of establishment | Comment text:Registration of Establishment Patent event date:20211203 Patent event code:PR07011E01D | |
| PR1002 | Payment of registration fee | Payment date:20211206 End annual number:3 Start annual number:1 | |
| PG1601 | Publication of registration |