Packet flow monitoring device, packet data extraction device, extraction data aggregation device, and program
11528202 · 2022-12-13
Assignee
Inventors
- Tomofumi Koyama (Tokyo, JP)
- Masahiro Kawaragi (Tokyo, JP)
- Takuya Kurakake (Tokyo, JP)
- Masaki TSUJI (Tokyo, JP)
- Ryo HASEGAWA (Tokyo, JP)
- Keiichiro Katsuta (Tokyo, JP)
- Naoya Suzuki (Tokyo, JP)
Cpc classification
H04L2101/622
ELECTRICITY
Y02D30/50
GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
International classification
Abstract
A packet flow monitoring device, a packet data extraction device, an extraction data aggregation device, and a program for efficiently and highly accurately monitoring a packet flow in a video or audio communication system constructed by an Ethernet (registered trademark) frame or IP packet network. This packet flow monitoring device includes: a packet data extraction device that replicates all passing packets that pass through one or a plurality of specific network switches on the network and extracts and aggregates some predetermined pieces of information in the replicated passing packets to form and output an extraction data report packet; and an extraction data aggregation device that receives the extraction data report packet, analyzes the extraction data report packet so as to aggregate the predetermined pieces of information in the replicated passing packets included in the extraction data report packet for each packet flow, and records the aggregated information as aggregation data.
Claims
1. A packet flow monitoring device that monitors packet flow in a video or audio communication system constructed by an Ethernet or IP (Internet Protocol) packet network, comprising: a packet data extraction computer that is programmed to replicate all passing packets that pass through one or a plurality of specific network switches on the network, and extract and aggregate predetermined pieces of information in the replicated passing packets to form and output an extraction data report packet; and an extraction data aggregation computer that is programmed to receive the extraction data report packet, analyze the extraction data report packet so as to aggregate the predetermined pieces of information in the replicated passing packets included in the extraction data report packet for each packet flow, and record the aggregated predetermined pieces of information as aggregation data, wherein the extraction data report packet is composed of IP-format packets having a variable length within a range not exceeding a predetermined packet length, an IP header and a User Datagram Protocol (UDP) header for performing transmission between the packet data extraction computer and the extraction data aggregation computer, an extraction data common header composed of items common to the aggregated, replicated passing packets, and packet-based extraction data composed of items individually extracted for the replicated passing packets are assigned to the extraction data report packet, and the packet-based extraction data is configured such that an extraction data individual header indicating information for identifying the extracted, replicated passing packets and extraction data that stores the predetermined pieces of information in the extracted, replicated passing packets are paired with each other, wherein the extraction data common header includes a value indicating a reception time of beginning data of the replicated passing packets in each packet flow, the extraction data individual header includes a passing packet length indicating a length of a replicated passing packet, a data type indicating a packet type of the replicated passing packet, and elapsed time information indicating a temporal difference from the beginning data described in the extraction data common header, and the packet type includes a value that identifies at least Ethernet, IP, and RTP (Real-time Transport Protocol).
2. The packet flow monitoring device according to claim 1, wherein the packet data extraction computer and the extraction data aggregation computer are connected by a communication cable using a single port.
3. The packet flow monitoring device according to claim 1, wherein the packet type further includes a value that identifies IGMP (Internet Group Management Protocol), TCP (Transmission Control Protocol), UDP (User Datagram Protocol), and PTP (Precision Time Protocol).
4. The packet flow monitoring device according to claim 3, wherein the predetermined pieces of information extracted by the packet data extraction computer include: extraction data for Ethernet including a destination media access control (MAC) address, a source MAC address, and a type number of an E-frame header, extraction data for IP network including a destination MAC address, a source MAC address, a source IP address, a destination IP address, and a protocol number of an IP header, extraction data for IGMP including a destination MAC address, a source MAC address, a source IP address, a destination IP address, a difference between a passing packet length and an IGMP payload length, and a predetermined amount of an IGMP payload from the beginning, extraction data for TCP or UDP including a destination MAC address, a source MAC address, a source IP address, a destination IP address, a source L4-port number, and a destination L4-port number, extraction data for PTP including a destination MAC address, a source MAC address, a source IP address, a destination IP address, a source L4-port number, a destination L4-port number, a difference between a passing packet length and a PTP header and payload length, and an entire part of a PTP header and PTP payload, and extraction data for RTP including a destination MAC address, a source MAC address, a source IP address, a destination IP address, a source L4-port number, a destination L4-port number, a difference between a passing packet length and a RTP payload length, a marker bit of an RTP header, a payload type of an RTP header, an RTP sequence number, an RTP timestamp value, and a synchronization source (SSRC) that is an identifier indicating a source.
5. The packet flow monitoring device according to claim 4, wherein the extraction data aggregation computer analyzes the extraction data common header and the packet-based extraction data in each of the replicated passing packets in the extraction data report packet received sequentially to generate aggregation data for each packet flow according to a packet type, the aggregation data including: aggregation data for Ethernet including a source MAC address, a destination MAC address, an E-frame type number, an average throughput, and a total number of received packets for each packet flow; aggregation data for IP including a source MAC address, a destination MAC address, a source IP address, a destination IP address, an IP header protocol number, an average throughput, and a total number of received packets for each packet flow; aggregation data for IGMP including a source MAC address, a destination MAC address, a source IP address, a destination IP address, an average throughput, a total number of received packets, a reception time, and a predetermined byte of IGMP payload from the beginning for each packet flow; aggregation data for TCP or UDP including a source MAC address, a destination MAC address, a source IP address, a destination IP address, a source L4-port number, a destination L4-port number, an average throughput, and a total number of received packets for each packet flow; aggregation data for PTP including a source MAC address, a destination MAC address, a source IP address, a destination IP address, a source L4-port number, a destination L4-port number, an average throughput, a total number of received packets, a transmission delay, a reception time, and an entire part of PTP header and payload for each packet flow; and aggregation data for RTP including a source MAC address, a destination MAC address, a source IP address, a destination IP address, a source L4-port number, a destination L4-port number, an average throughput, a total number of received packets, an RTP payload type number, an RTP SSRC identifier, a number of packets with an RTP marker bit value of 1, a packet reception interval, a number of packet losses, and a maximum number of burst losses for each packet flow.
6. The packet flow monitoring device according to claim 3, wherein the packet data extraction computer is further programmed to determine whether a marker bit in an RTP header is 1 when extracting the predetermined pieces of information from the replicated passing packet related to RTP, and extract the predetermined pieces of information so as to include 40 bytes of an RTP payload from the beginning when the marker bit is 1, the extraction data aggregation computer is further programmed to: determine whether each of the replicated passing packets related to RTP complies with a Society of Motion Picture and Television Engineers (SMPTE) protocol of ST 2110-20, ST 2110-30, or ST 2022-6 from the 40 bytes of the RTP payload from the beginning on the basis of predetermined determination information when aggregating, for each packet flow, the predetermined pieces of information in each of the replicated passing packets related to RTP included in the extraction data report packet; and acquire predetermined information characterized in ST 2110-20, ST 2110-30, or ST 2022-6 from the 40 bytes of the payload from the beginning and add the predetermined information to the aggregation data when the replicated passing packet complies with ST 2110-20, ST 2110-30, or ST 2022-6 and the marker bit is 1.
7. The packet flow monitoring device according to claim 1, wherein the packet data extraction computer is further programmed to: compress extraction data to be stored in the same extraction data report packet received in the same packet flow when extracting the predetermined pieces of information from the replicated passing packet to create extraction data; and insert the compressed data, a data compression presence/absence flag indicating presence/absence of data compression, and a data compression position flag indicating a data position of data compression to generate and output the extraction data report packet, and the extraction data aggregation computer is further programmed to restore the compressed data by referring to the data compression presence/absence flag and the data compression position flag.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
(19)
(20)
(21)
(22)
(23)
DETAILED DESCRIPTION OF THE INVENTION
(24) Hereinafter, a packet flow monitoring device 1 of each embodiment according to the present invention will be described in detail with reference to the drawings.
First Embodiment
(25) (Overall Configuration)
(26)
(27) The packet data extraction device 2 illustrated in
(28) The extraction data aggregation device 3 is a device that receives the “extraction data report packet” from the packet data extraction device 2, and analyzes the “extraction data report packet” so as to aggregate the pieces of information in the replicated passing packets included in the “extraction data report packet” for each packet flow, and collectively records the aggregated information in a predetermined recording unit (an aggregation data recording unit 329 illustrated in
(29) The packet data extraction device 2 and the extraction data aggregation device 3 are connected by a communication cable such as a LAN cable using a single port, facilitating the installation thereof. Further, when the pieces of information in the passing packets of each packet flow are extracted by the packet data extraction device 2, since the information is aggregated into the “extraction data report packet”, even when a single communication cable is used, it is possible to handle the pieces of information in the passing packets of a number of packet flows and efficiently transmit the same to the extraction data aggregation device 3.
(30) As illustrated in
(31) As illustrated in
(32) On the other hand, as illustrated in
(33) (Packet Data Extraction Device)
(34)
(35) The packet data extraction device 2 includes a number of packet replication units 21, a number of data extraction units 22 and a number of switch processing units 23 corresponding to the number of extraction target ports, an extraction data transmitting unit 24, and a PTP processing unit 25.
(36) The packet replication unit 21 temporarily stores the “reception time (timestamp value of the received PTP)” of the received passing packet in the extraction target packet flow, transmits the passing packet to the switch processing unit 23 and replicates the same, and outputs the replicated passing packet and the reception time information to the data extraction unit 22.
(37) The data extraction unit 22 extracts the information of the “extraction data common header” and “packet-based extraction data” illustrated in
(38) The switch processing unit 23 outputs the original passing packet transmitted from the packet replication unit 21 along the path of the data flow. As a result, the normal processing of the network switch 60 is maintained.
(39) Although
(40) The extraction data transmitting unit 24 uses the extraction data output from each data extraction unit 22 as “packet-based extraction data”, obtains information necessary for forming a plurality of pieces of packet-based extraction data and the “extraction data common header” (see
(41) The PTP processing unit 25 is a processing unit that communicates with a PTP master device 4 (not illustrated in
(42) (Detailed Configuration of Data Extraction Unit)
(43)
(44) The data extraction unit 22 includes a packet type determination unit 221, an RTP extraction unit 222, a PTP extraction unit 223, an IGMP extraction unit 224, an IP extraction unit 225, a UDP extraction unit 226, a TCP extraction unit 227, and an E-frame extraction unit 228.
(45) The packet type determination unit 221 determines a packet type from the header information and the payload of the replicated passing packet obtained from the packet replication unit 21 and outputs the replicated passing packet and the reception time information to any one of the corresponding RTP extraction unit 222, PTP extraction unit 223, IGMP extraction unit 224, IP extraction unit 225, UDP extraction unit 226, TCP extraction unit 227, and E-frame extraction unit 228 according to the determination result.
(46) The RTP extraction unit 222, the PTP extraction unit 223, the IGMP extraction unit 224, the IP extraction unit 225, the UDP extraction unit 226, the TCP extraction unit 227, and the E-frame extraction unit 228 are each configured to extract some predetermined pieces of information (see
(47) Further, the RTP extraction unit 222, the PTP extraction unit 223, the IGMP extraction unit 224, the IP extraction unit 225, the UDP extraction unit 226, the TCP extraction unit 227, and the E-frame extraction unit 228 are each configured to identify the information of “extraction data common header” (see
(48) That is, the RTP extraction unit 222, the PTP extraction unit 223, the IGMP extraction unit 224, the IP extraction unit 225, the UDP extraction unit 226, the TCP extraction unit 227, and the E-frame extraction unit 228 are each configured to identify the “device ID” for identifying the packet data extraction device 2 to which the unit belongs, the “timestamp value (seconds) synchronized with PTP during reception of beginning data” and the “timestamp value (nanoseconds) synchronized with PTP during reception of beginning data” related to the reception time of the extracted passing packet in the corresponding packet flow, the “passing packet length” indicating the length of the corresponding passing packet, the “data type” indicating the packet type of the corresponding passing packet, and the information of “reception port ID” for identifying each packet flow and output the same to the extraction data transmitting unit 24.
(49) As a result, the extraction data transmitting unit 24 uses the extraction data output from one or more data extraction units 22 as “packet-based extraction data”, and can obtain information necessary for forming one or more pieces of packet-based extraction data and the “extraction data common header” (see
(50)
(51) Upon acquiring the replicate packet (step S1), the packet type determination unit 221 determines the packet type from the header information and the payload in the following procedure.
(52) First, the packet type determination unit 221 determines whether the type number of the E-frame is indicated from the header information of the replicate packet, and whether the type number is 0x0800 when the type number of the E-frame is indicated (Step S2). The flow proceeds to step S3 if 0x0800 is indicated as the type number of the E-frame, and otherwise, the replicate packet is transmitted to the E-frame processing unit 228 (step S6).
(53) When the flow proceeds to step S3, the packet type determination unit 221 determines whether the header information of the IP header is indicated from the header information of the replicate packet and whether the protocol number is 0x01, 0x06, or 0x11 when the header information of the IP header is indicated (step S3). The packet type determination unit 221 transmits the replicate packet to the IGMP processing unit 224 when 0x02 is indicated as the protocol number of the IP header (step S9) and transmits the replicate packet to the TCP processing unit 227 when 0x06 is indicated (step S8), and the flow proceeds to step S4 when 0x11 is indicated as the protocol number of the IP header, and otherwise, the replicate packet is transmitted to the IP processing unit 225 (step S7).
(54) When the flow proceeds to step S4, the packet type determination unit 221 determines whether the UDP port number is indicated from the header information of the replicate packet, and determines whether the port number is 319, 320, 1024 or greater when the UDP port number is indicated (step S4). The replicate packet is transmitted to the PTP processing unit 223 when the UDP port number is 319 or 320 (step S11). The flow proceeds to step S5 when the UDP port number is 1024 or greater, and otherwise, the replicate packet is transmitted to the UDP processing unit 226 (step S10).
(55) When the flow proceeds to step S5, the packet type determination unit 221 determines whether the first two bits are 0x2 from the payload information of the replicate packet (that is, the first two bits of the payload of UDP) (step S5). The packet type determination unit 221 transmits the replicate packet to the RTP processing unit 222 when 0x2 is indicated as the first two bits of the payload of UDP (step S12), and otherwise, the replicate packet is transmitted to the UDP processing unit 226 (step S10).
(56) In this way, the packet type determination unit 221 can determine the packet type from the header information and the payload of the replicated passing packet obtained from the packet replication unit 21.
(57) (Extraction Data for Each Packet Type)
(58)
(59) As illustrated in
(60) As illustrated in
(61) As illustrated in
(62) As illustrated in
(63) As illustrated in
(64) As illustrated in
(65) As illustrated in
(66) (Extraction Data Aggregation Device)
(67)
(68) The extraction data aggregation device 3 includes an extraction data report packet receiving unit 31, an extraction data aggregation unit 32, and an aggregation data output unit 33. Further, the extraction data aggregation unit 32 includes an extraction data type determination unit 321, an RTP aggregation unit 322, a PTP aggregation unit 323, an IGMP aggregation unit 324, an IP aggregation unit 325, a UDP aggregation unit 326, a TCP aggregation unit 327, an E-frame aggregation unit 328, and an aggregation data recording unit 329.
(69) Upon receiving the extraction data report packet from the extraction data totaling device 2, the extraction data report packet receiving unit 31 extracts the extraction data common header and packet-based extraction data and outputs the same to the extraction data aggregation unit 32.
(70) The extraction data aggregation unit 32 analyzes the content (that is, data corresponding to each protocol) of the packet-based extraction data indicating some pieces of information in each replicated passing packet in the extraction data report packet sequentially received by the extraction data report packet receiving unit 31, aggregates the same for each packet flow, and collectively records the same in the aggregation data recording unit 329 as aggregation data.
(71) The aggregation data output unit 33 reads the aggregation data from the aggregation data recording unit 329 in the aggregation data aggregation unit 32 according to an external instruction, and outputs the aggregation data to external devices. The aggregation data output from the aggregation data output unit 33 can be written to another general storage device (not illustrated) or transmitted to a display device (not illustrated) in an IP packet format for display. As a result, the aggregation data can be output to external devices so that the quality related to each packet flow can be monitored and predetermined quality information described later can be measured.
(72) Here, the details of the extraction data aggregation unit 32 will be described.
(73) The extraction data type determination unit 321 determines the packet type from the data type described in the extraction data individual header in the packet-based extraction data in the extraction data report packet sequentially received by the extraction data report packet reception unit 31 through the extraction data type determination unit 321 and outputs the extraction data common header and the packet-based extraction data to any one of the corresponding RTP aggregation unit 322, PTP aggregation unit 323, IGMP aggregation unit 324, IP aggregation unit 325, UDP aggregation unit 326, TCP aggregation unit 327, and E-frame aggregation unit 328 according to the determination result.
(74) The RTP aggregation unit 322 analyzes the extraction data common header and the packet-based extraction data in each replicated passing packet related to RTP in the extraction data report packet sequentially received by the extraction data report packet receiving unit 31 via the extraction data type determination unit 321 to read a source MAC address, a destination MAC address, a source IP address, a destination IP address, a source L4-port number, and a destination L4-port number, aggregates an average throughput, a total number of received packets, an RTP marker bit value (M), the number of packets where M indicates 1, a packet reception interval (average/minimum/maximum), the number of packet losses, and the maximum number of burst losses using packets (replicated passing packets) of which the six items are the same as the same packet flow, generates aggregation data in which an RTP payload type number and an RTP SSRC value of the last replicated passing packet in each of the aggregated packet flows are added, and records the same in the aggregation data recording unit 329.
(75) The PTP aggregation unit 323 analyzes the extraction data common header and the packet-based extraction data in each replicated passing packet related to RTP in the extraction data report packet sequentially received by the extraction data report packet receiving unit 31 through the extraction data type determination unit 321 to read a source MAC address, a destination MAC address, a source IP address, a destination IP address, a source L4-port number, and a destination L4-port number, aggregates an average throughput, a total number of received packets, and a transmission delay (average/minimum/maximum) using packets (replicated passing packets) of which the six items are the same as the same packet flow, generates aggregation data in which the reception time and “PTP header and payload” of the last replicated passing packet in each of the aggregated packet flows are added, and records the same in the aggregation data recording unit 329.
(76) The IGMP aggregation unit 324 analyzes the extraction data common header and the packet-based extraction data in each replicated passing packet related to RTP in the extraction data report packet sequentially received by the extraction data report packet receiving unit 31 through the extraction data type determination unit 321 to read a source MAC address, a destination MAC address, a source IP address, and a destination IP address, aggregates an average throughput and a total number of received packets using packets (replicated passing packets) of which the four items are the same as the same packet flow, generates aggregation data in which the reception time and the IGMP payload of the last replicated passing packet in each of the aggregated packet flows are added, and records the same in the aggregation data recording unit 329.
(77) The IP aggregation unit 325 analyzes the extraction data common header and the packet-based extraction data in each passing packet related to RTP in the extraction data report packet sequentially received by the extraction data report packet reception unit 31 through the extraction data type determination unit 321 to read a source MAC address, a destination MAC address, a source IP address, a destination IP address, and an IP header protocol number, aggregates an average throughput and a total number of received packets using packets (replicated passing packets) of which the five items are the same as the same packet flow to generate aggregation data, and records the same in the aggregation data recording unit 329.
(78) The UDP aggregation unit 326 analyzes the extraction data common header and the packet-based extraction data in each passing packet related to RTP in the extraction data report packet sequentially received by the extraction data report packet reception unit 31 through the extraction data type determination unit 321 to read a source MAC address, a destination MAC address, a source IP address, a destination IP address, a source L4-port number, and a destination L4-port number, aggregates an average throughput and a total number of received packets using packets (replicated passing packets) of which the six items are the same as the same packet flow to generate aggregation data, and records the same in the aggregation data recording unit 329.
(79) The TCP aggregation unit 327 analyzes the extraction data common header and the packet-based extraction data in each passing packet related to RTP in the extraction data report packet sequentially received by the extraction data report packet reception unit 31 through the extraction data type determination unit 321 to read a source MAC address, a destination MAC address, a source IP address, a destination IP address, a source L4-port number, and a destination L4-port number, aggregates an average throughput and a total number of received packets using packets (replicated passing packets) of which the six items are the same as the same packet flow to generate aggregation data, and records the same in the aggregation data recording unit 329.
(80) The E-frame aggregation unit 328 analyzes the extraction data common header and the packet-based extraction data in each passing packet related to RTP in the extraction data report packet sequentially received by the extraction data report packet reception unit 31 through the extraction data type determination unit 321 to read a source MAC address, a destination MAC address, and an E-frame type number, aggregates an average throughput and a total number of received packets using packets (replicated passing packets) of which the three items are the same as the same packet flow to generate aggregation data, and records the same in the aggregation data recording unit 329.
(81) The “average throughput” can be calculated from the “passing packet length” illustrated in
(82) The aggregation data recording unit 329 records the aggregation data (see
(83) As illustrated in
(84) Further, the IP aggregation data includes the source MAC address, the destination MAC address, the source IP address, the destination IP address, the IP header protocol number, the average throughput, and the total number of received packets for each packet flow.
(85) In addition, the IGMP aggregation data includes the source MAC address, the destination MAC address, the source IP address, the destination IP address, the average throughput, the total number of received packets, the reception time, and the IGMP payload (39 bytes from the beginning) for each packet flow.
(86) In addition, the TCP or UDP aggregation data includes the source MAC address, the destination MAC address, the source IP address, the destination IP address, the source L4-port number, the destination L4-port number, the average throughput, and the total number of received packets for each packet flow.
(87) In addition, the PTP aggregation data includes the source MAC address, the destination MAC address, the source IP address, the destination IP address, the source L4-port number, the destination L4-port number, the average throughput, the total number of received packets, and the transmission delay (average/minimum/maximum), the reception time, and the PTP header and payload (entire part) for each packet flow.
(88) In addition, the RTP aggregation data includes the source MAC address, the destination MAC address, the source IP address, the destination IP address, the source L4-port number, the destination L4-port number, the average throughput, the total number of received packets, the RTP payload type number, the RTP, SSRC, and RTP marker bit value (M), the number of packets in which M indicates 1, the packet reception interval (average/minimum/maximum), the number of packet losses, and the maximum number of burst losses for each packet flow.
(89) According to the packet flow monitoring device 1 of the first embodiment configured as described above, it is possible to efficiently obtain aggregation data related to the packet flow of all packets in the program production system constructed by an E-frame or IP packet network and monitor and measure the quality related to packet flow with high accuracy.
(90) In particular, according to the packet flow monitoring device 1 of the first embodiment, some predetermined pieces of information (including some pieces of information in the packet header, a part of the payload if the packet type is IGMP, and an entire part of the payload if the packet type is PTP) in the passing packet passing through an E-frame or IP packet network are extracted and aggregated to form the extraction data report packet. Therefore, it is possible to monitor and measure the quality of all packets even for information on traffic flowing through a high-throughput network (for example, signal transmission related to a 4K/8K video system as a packet flow with a high transmission rate).
(91) Further, according to the packet flow monitoring device 1 of the first embodiment, when the some predetermined pieces of information in the passing packet are extracted, the packet type of the passing packet is determined, and the necessary information can be extracted according to the packet type. Therefore, it is possible to monitor detailed information such as throughput and a packet loss for each packet flow in real-time.
Second Embodiment
(92) (Overall Configuration)
(93) The schematic configuration of the packet flow monitoring device 1 of the second embodiment is the same as that illustrated in
(94)
(95) (RTP Extraction Unit)
(96) First, as illustrated in
(97) The marker bit inspection unit 2221 receives the reception time information and the replicated passing packet via the packet type determination unit 221, inspects whether the value of the marker bit M is 1 or 0 from the header information in the replicated passing packet, and outputs the reception time information and the replicated passing packet to the RTP data extraction unit 2222 together with the value of the marker bit M.
(98) The RTP data extraction unit 2222 identifies the information of the “extraction data common header” (see
(99) Here, the RTP data extraction unit 2222 according to the second embodiment extracts the “extraction data” illustrated in
(100) That is, in the “packet-based extraction data for RTP” illustrated in
(101) (RTP Aggregation Unit)
(102) On the other hand, as illustrated in
(103) When the value of the marker bit M is 0, the RTP data processing unit 3221 performs data aggregation by the same operation as in the first embodiment and outputs the aggregation data to the aggregation data recording unit 329 while omitting the processes of the RTP payload determination unit 3222, the ST 2110-20 processing unit 3223, the ST 2110-30 processing unit 3224, and the ST 2022-6 processing unit 3225. However, when the value of the marker bit M is 1, the RTP data processing unit 3221 outputs the aggregation data to the aggregation data recording unit 329 through the processes of the RTP payload determination unit 3222, the ST 2110-20 processing unit 3223, the ST 2110-30 processing unit 3224, and the ST 2022-6 processing unit 3225.
(104) That is, when the value of the marker bit M is 1, the RTP data processing unit 3221 analyzes the extraction data common header and the packet-based extraction data in each replicated passing packet related to RTP in the extraction data report packet sequentially received by the extraction data report packet receiving unit 31 via the extraction data type determination unit 321 to read a source MAC address, a destination MAC address, a source IP address, a destination IP address, a source L4-port number, and a destination L4-port number, aggregates an average throughput, a total number of received packets, the number of packets where the RTP marker bit indicates 1, a packet reception interval (average/minimum/maximum), the number of packet losses, and the maximum number of burst losses using packets (replicated passing packets) of which the six items are the same as the same packet flow, temporarily generates aggregation data in which the RTP payload type number and the RTP SSRC value of the last replicated passing packet in each of the aggregated packet flows are added, and outputs the same to the RTP payload determination unit 3222 together with the replicated passing packets.
(105) The RTP payload determination unit 3222 compares the determination information given by an external instruction (a list in which the source IP address, the destination IP address, the source L4-port number, and the destination L4-port number are paired with information indicating to which SMPTE protocol of ST 2110-20, ST 2110-30, or ST 2022-6, the packet flow having of which the four items match corresponds) with the source IP address, the destination IP address, the source L4-port number, and the destination L4-port number of the packet being processed among the replicated passing packets obtained from the RTP data processing unit 3221. When the items match, the RTP payload determination unit 3222 transmits the packet-based extraction data of the packet being processed to the ST 2110-20 processing unit, the ST 2110-30 processing unit, and the ST 2022-6 processing unit of the corresponding SMPTE protocol together with the temporarily generated aggregation data.
(106) The RTP payload determination unit 3222 discards the packet being processed of which the items do not match, and outputs the aggregation data temporarily aggregated by the RTP data processing unit 3221 to the aggregation data recording unit 329 as it is.
(107) The ST 2110-20 processing unit 3223 analyzes the packet-based extraction data of the packet being processed, which is input from the RTP payload determination unit 3222 to acquire predetermined information related to video and synchronization characterized by the SMPTE ST 2110-20, adds the same to the aggregation data temporarily aggregated by the RTP data processing unit 3221, and outputs the same to the aggregation data recording unit 329.
(108) The ST 2110-30 processing unit 3224 analyzes the packet-based extraction data of the packet being processed, which is input from the RTP payload determination unit 3222 to acquire predetermined information related to audio and synchronization characterized by the SMPTE ST 2110-30, adds the same to the aggregation data temporarily aggregated by the RTP data processing unit 3221, and outputs the same to the aggregation data recording unit 329.
(109) The ST 2022-6 processing unit 3225 analyzes the packet-based extraction data of the packet being processed, which is input from the RTP payload determination unit 3222 to acquire predetermined information related to video, audio, and synchronization characterized by SMPTE ST 2022-6, adds the same to the aggregation data temporarily aggregated by the RTP data processing unit 3221, and outputs the same to the aggregation data recording unit 329.
(110) (ST 2110-20 Processing Unit)
(111)
(112) First, as illustrated in
(113) The delay calculation unit 32231 operates when the value of the marker bit M is 1, and calculates a transmission delay time (a delay time indicating average/minimum/maximum) from the RTP timestamp value (in the extraction data) and the packet reception time (the received PTP time in the extraction data individual header) in the packet-based extraction data of the packet being processed obtained from the RTP payload determination unit 3222 by the following calculation, adds the same to the aggregation data temporarily aggregated by the RTP data processing unit 3221, and outputs the same to the aggregation data recording unit 329.
T.sub.rcv_90 kHz=T.sub.rcv_ptp*90000%0x100000000
if (T.sub.rcv_90 kHz>RTP.sub.timestamp)
then D=(T.sub.rcv_90 kHz−RTP.sub.timestamp)/90000
else D=(RTP.sub.timestamp−T.sub.rcv_90 kHz)/90000
(D: Delay (seconds), T.sub.rcv_ptp: Received PTP time, RTP.sub.timestamp: RTP timestamp value)
(114) The resolution calculation unit 32232 operates when the value of the marker bit M is 1, analyzes the RTP payload in the packet-based extraction data of the packet being processed obtained from the RTP payload determination unit 3222 as the ST 2110-20 header, reads the last number of lines included in the header, determines the height of an image, acquires the width of the image using the height of the image as a key from a table held in advance, obtains the height and width of the image, and outputs the same to the aggregation data recording unit 329 so as to be added to the aggregation data temporarily aggregated by the RTP data processing unit 3221.
(115) More specifically, the value of the 49th bit from the beginning of the ST 2110-20 header (the value of “C” illustrated in
(116) Then, from the header information according to ST 2110-20 illustrated in
(117) The frame rate calculation unit 32233 operates when the value of the marker bit M is 1 and the value of F in the 33rd bit of the ST 2110-20 header is 0, calculates the frame rate from the RTP timestamp value in the packet-based extraction data of the packet being processed obtained from the RTP payload determination unit 3222, and outputs the same to the aggregation data recording unit 329 so as to be added to the aggregation data temporarily aggregated by the RTP data processing unit 3221.
(118) More specifically, the RTP timestamp value (initial value is 0) in the aggregation data temporarily aggregated is read, and the difference from the RTP timestamp value of the processing target packet is calculated. The frame rate is 25 fps, 29.97 fps, 30 fps, 50 fps, 59.94 fps, and 60 fps when this difference is 3600, 3003, 3000, 1800, 1501 or 1502, and 1500, respectively. The frame rate values are recorded in the aggregation data recording unit 329 so as to be added to the aggregation data temporarily aggregated. Further, the frame rate calculation unit 32233 updates the RTP timestamp value of the aggregation data recorded in the aggregation data recording unit 329 with the read RTP timestamp value.
(119) The video scanning method identification unit 32234 operates when the value of the marker bit M is 1, and analyzes the RTP payload in the packet-based extraction data of the packet being processed obtained from the RTP payload determination unit 3222 as the ST 2110-20 header, determines from the header whether the video frame is interlaced or progressive, and outputs the determination result to the aggregation data recording unit 329 so as to be added to the aggregation data temporarily aggregated by the RTP data processing unit 3221.
(120) (ST 2110-30 Processing Unit)
(121) Next, as illustrated in
(122) The sampling frequency calculation unit 32242 operates when the value of the marker bit M is 1, examines the RTP timestamp value (in the extraction data) in the packet-based extraction data of the packet being processed obtained from the RTP payload determination unit 3222, calculates the sampling frequency by calculating a difference TS.sub.diff of the recorded RTP timestamp (initial value 0) of one second before by the following calculation when the value of the second of the reception time of ST 2100-30 is changed from the recorded RTP timestamp (initial value 0) before one second, and outputs the same to the aggregation data recording unit 329 so as to be added to the aggregation data temporarily aggregated by the RTP data processing unit 3221. Further, the sampling frequency calculation unit 32242 updates the RTP timestamp value of the aggregation data recorded in the aggregation data recording unit 329 with the read RTP timestamp value.
if (44100*(1−α)<TS.sub.diff<44100*(1+α)) then 44.1 kHz
else if (48000*(1−α)<TS.sub.diff<48000*(1+α)) then 48 kHz
else if (96000*(1−α)<TS.sub.diff<96000*(1+α)) then 96 kHz
else indefinite
(123) α is a parameter corresponding to network jitter, and normally, network jitter can be sufficiently covered by setting a to 0.01 seconds. Therefore, in this example, the sampling frequency calculation unit 32242 sets α=0.01 and updates the RTP timestamp of one second before of the aggregation data recording unit with the RTP timestamp value of the packet in which the value of the second of the reception time has increased.
(124) The packet time identification unit 32243 operates when the value of the marker bit M is 1, examines the RTP timestamp value (in the extraction data) in the packet-based extraction data of the packet being processed obtained from the RTP payload determination unit 3222, calculates the packet time from a present RTP timestamp value (RTPtimestamp.sub.now), a previous RTP timestamp value (RTPtimestamp.sub.pre) of the aggregation data recorded in the aggregation data recording unit 329, and the sampling frequency recorded in the aggregation data recording unit 329 by the following calculation, adds the same to the aggregation data temporarily aggregated by the RTP data processing unit 3221, and outputs the same to the aggregation data recording unit 329.
Packet time (milliseconds)=1000*(RTPtimestamp.sub.now−RTPtimestamp.sub.pre)/F.sub.sample
(125) The packet time identification unit 32243 does not calculate the packet time when the sampling frequency is indefinite.
(126) The delay calculation unit 32241 is substantially the same as the operation of the delay calculation unit 32231 described above, operates when the value of the marker bit M is 1, calculates the transmission delay time (a delay time indicating the average/minimum/maximum value) from the RTP timestamp value (in the extraction data) in the packet-based extraction data of the packet being processed obtained from the RTP payload determination unit 3222 and the packet reception time (the received PTP time in the extraction data individual header) by the following calculation, and outputs the same to the aggregation data recording unit 329 so as to be added to the aggregation data temporarily aggregated by the RTP data processing unit 3221.
T.sub.rcv_fsample=T.sub.rcv_ptp*F.sub.sample%0x100000000
if (T.sub.rcv_fsamle>RTP.sub.timestamp)
then D=(T.sub.rcv_fsample−RTP.sub.timestamp)/F.sub.sample
else D=(RTP.sub.timestamp−T.sub.rcv_fsample)/F.sub.sample
(D: Delay (seconds), T.sub.rcv_ptp: Received PTP time, RTP.sub.timestamp: RTP timestamp value, and F.sub.sample: Sampling frequency)
(127) The delay calculation unit 32241 does not calculate the transmission delay time (delay time indicating the average/minimum/maximum value) when the sampling frequency is indefinite.
(128) The payload length update unit 32244 operates when the value of the marker bit M is 1, calculates the difference between the “passing packet length” (in the extraction data individual header)” in the packet-based extraction data of the packet being processed obtained from the RTP payload determination unit 3222 and the “difference between passing packet length and RTP passing packet length” (in the extraction data) included in the extraction data in the case of RTP, and outputs the same to the aggregation data recording unit 329 so as to update the payload length in the aggregation data temporarily aggregated by the RTP data processing unit 3221 with the calculated payload length.
(129) (ST 2022-6 Processing Unit)
(130) The ST 2022-6 processing unit operates when the value of the marker bit M is 1, analyzes the RTP payload in the packet-based extraction data of the packet being processed obtained from the RTP payload determination unit 3222 as the ST 2022-6 header (
(131) Therefore, the aggregation data recording unit 329 according to the present embodiment adds and records the aggregation data to the aggregation data of the first embodiment individually according to the SMPTE protocols of ST 2110-20, ST 2110-30, and ST 2022-6 as RTP aggregation data (see
(132) That is, as illustrated in
(133) More specifically, for (ST 2110-20), the respective values of data output by RTP, a resolution, a frame rate, identification of interlaced/progressive, and transmission delay (average/minimum/maximum) are added to the aggregation data.
(134) For (ST 2110-30), the respective values of data output by RTP, a sampling frequency, a packet time, a payload length, and transmission delay (average/minimum/maximum) are added to the aggregation data.
(135) Regarding (ST 2022-6), the data output by RTP, the MAP value in ST 2022-6, the frame value in ST 2022-6, the FRATE value in ST 2022-6, the SAMPLE value in ST 2022-6, and the R-value in ST 2022-6 are added to the aggregation data.
(136) According to the packet flow monitoring device 1 of the second embodiment configured as described above, in addition to the effects of the first embodiment, more detailed information such as the delay of the video or audio signal used in the program production system, the video resolution, and the like can be monitored in real-time.
Third Embodiment
(137) (Overall Configuration)
(138) The schematic configuration of the packet flow monitoring device 1 of the third embodiment is the same as that illustrated in
(139) Since the packet flow monitoring device 1 of the third embodiment can be configured as a modified example of the first embodiment and further as a modified example of the second embodiment, an example in which the packet flow monitoring device 1 is configured as a modified example of the second embodiment will be described.
(140) That is, in order to facilitate the understanding of the configuration according to the third embodiment, “packet-based extraction data for RTP” will be described as a representative example. However, the “packet-based extraction data for RTP” according to the third embodiment is different from the “RTP packet-based extraction data” according to the second embodiment illustrated in
(141) The data compression presence/absence flag C indicates 1 when data compression is performed in the extraction data, and 0 when data compression is not performed.
(142) The data compression position flag DM indicates 1 when data is omitted with respect to the destination MAC address, and 0 when data is not omitted.
(143) The data compression position flag SM indicates 1 when data is omitted with respect to the source MAC address, and 0 when data is not omitted.
(144) The data compression position flag SI indicates 1 when data is omitted with respect to the source IP address, and 0 when data is not omitted.
(145) The data compression position flag DI indicates 1 when the data is omitted with respect to the destination IP address, and 0 when the data is not omitted.
(146) The data compression position flag SP indicates 1 when data is omitted with respect to the source L4-port number, and 0 when data is not omitted.
(147) The data compression position flag DP indicates 1 when data is omitted with respect to the destination L4-port number, and 0 when data is not omitted.
(148) The data compression position flag TS indicates 1 when the data is omitted with respect to the RTP timestamp value, and 0 when the data is not omitted. The data compression position flag SS indicates 1 when data is omitted for SSRC, and 0 when data is not omitted.
(149) (Extraction Data Transmitting Unit)
(150)
(151) First, as illustrated in
(152) The extraction data compression unit 241 sequentially stores the data received from the data extraction unit 22 in a built-in queue (not illustrated). When data that can be output to the extraction data report packet transmitting unit 243 is not present in the queue, the extraction data compression unit 241 notifies the extraction data report packet transmitting unit 243 of the fact that data is not present.
(153) Then, when the data that can be output to the extraction data report packet transmitting unit 243 is present in the queue, the extraction data compression unit 241 reads the beginning data of the queue in the following procedure to generate the packet-based extraction data and outputs the same to the extraction data report packet transmitting unit 243.
(154) Here, when a state where data can be output to the extraction data aggregation device 3 as an “extraction data report packet” is created, the extraction data report packet transmitting unit 243 outputs “compressibility information,” “maximum data length”, and “reception time (timestamp value of received PTP based on reception of beginning data illustrated in
(155) First, when the compressibility information is “non-compressible”, the extraction data compression unit 241 sets the 33rd bit (C) of the extraction data individual header to 0, creates packet-based extraction data corresponding to the data type from the beginning data of the queue, and temporarily stores the same in the extraction data storage unit 242, and outputs the same to the extraction data report packet transmitting unit 243.
(156) On the other hand, when the compressibility information is “compressible”, the extraction data compression unit 241 compares the “destination MAC address”, “source MAC address”, “destination IP address”, “source MAC address,” “destination L4-port number”, “source L4-port number”, “RTP timestamp”, and “RTP SSRC” of the beginning data of the queue with these eight items temporarily stored in the extraction data storage unit 242. If at least one of these items is the same, the extraction data compression unit 241 sets the 33rd bit (data compression presence/absence flag C) of the extraction data individual header to 1, and inserts the data compression position flag (1 byte) immediately after the extraction data individual header (see
(157) After inserting the data compression position flag (1 byte), the extraction data compression unit 241 creates packet-based extraction data corresponding to the data type by setting the corresponding bits of the data compression position flag to 1 for items in which the value of the data temporarily stored in the extraction data storage unit 242 is the same as the beginning data of the queue without including the data of the items having the same value in the extraction data and setting the corresponding bit of the data compression position flag to 0 for items having different values while including the data of the items having different values.
(158) At this time, the extraction data compression unit 241 performs the same processing as in the case where compression is not possible when there is no same item. If the beginning data of the queue is, for example, data output from the IP extraction unit 225, this data does not include the RTP timestamp value. As described above, the extraction data compression unit 241 sets the corresponding bits of the data compression position flag to 0 for items that are not included depending on the data type.
(159) Further, when the data length of the packet-based extraction data is equal to or less than the “maximum data length” indicated by the compression request received from the extraction data report packet transmitting unit 243, the extraction data compression unit 241 outputs the packet-based extraction data to the extraction data report packet transmitting unit 243, temporarily stores the items included in the beginning data of the queue among the eight items in the extraction data storage unit 242, and discards the beginning data of the queue.
(160) On the other hand, when the data length of the packet-based extraction data is larger than the “maximum data length” indicated by the compression request received from the extraction data report packet transmitting unit 243, the extraction data compression unit 241 notifies the extraction data report packet transmitting unit 243 of the fact that the data cannot be output.
(161) As described above, when a state where data can be output to the extraction data aggregation device 3 as an “extraction data report packet” is created, the extraction data report packet transmitting unit 243 outputs “compressibility information,” “maximum data length”, and “reception time (timestamp value of received PTP based on reception of beginning data illustrated in
(162) This compressibility information is “non-compressible” when the data request to the extraction data compression unit 241 which is a request destination is the first request after the extraction data report packet transmitting unit 243 transmits the extraction data report packet to the extraction data aggregation device 3, and is “compressible” when the data request is the second request.
(163) The maximum data length is the difference between a predetermined maximum payload length of the extraction data report packet and the sum of the data length of the packet-based extraction data that the extraction data report packet transmitting unit 243 has already acquired from the respective extraction data compression unit 241.
(164) Further, if the extraction data report packet transmitting unit 243 has not yet acquired the packet-based extraction data that can be transmitted to the extraction data aggregation device 3, the “reception time” of the packet-based extraction data at the beginning of the extraction data report packet is a value indicating the effect (for example, “−1”). If there is already the packet-based extraction data that can be transmitted, the “reception time” is the reception time of the beginning data.
(165) The extraction data report packet transmitting unit 243 outputs the extraction data report packet to the extraction data aggregation device 3 when a predetermined time has elapsed after receiving the notification that extraction is not possible from the extraction data compression unit 243 or acquiring the beginning data.
(166) (Extraction Data Report Packet Receiving Unit)
(167) As illustrated in
(168) Upon receiving the extraction data report packet from the packet data extraction device 2 according to the present embodiment, the extraction data restoration unit 311 reads the extraction data common header and the packet-based extraction data from the extraction data report packet, executes a process of restoring the extraction data when the data is compressed, and outputs the execution result to the extraction data aggregation unit 32.
(169) More specifically, when the 33rd bit (data compression presence/absence flag C) of the extraction data individual header of the packet-based extraction data in the received extraction data report packet is 0, first, the extraction data storage unit 312 stores items included in the packet-based extraction data among the “source MAC address”, “destination MAC address”, “source IP address”, “destination IP address”, “source L4-port number”, “destination L4-port number”, “RTP timestamp value,” and “RTP SSRC” in the extraction data storage unit 312 using the device ID and the reception port ID as a key.
(170) Subsequently, when the 33rd bit (data compression presence/absence flag C) of the extraction data individual header of the packet-based extraction data is 1, the extraction data storage unit 312 reads items in which the data compression presence/absence flag C is 1 among the “source MAC address”, “destination MAC address”, “source IP address”, “destination IP address”, “source L4-port number”, “destination L4-port number”, “RTP timestamp value”, and “RTP SSRC” using the device ID and the reception port ID as a key and complements the packet-based extraction data. After this complementation, the extraction data storage unit 312 stores the items included in the packet-based extraction data among the eight items in the extraction data storage unit 312, and outputs the packet-based extraction data after processing and the extraction data common header to the extraction data aggregation unit 32.
(171) According to the packet flow monitoring device 1 of the third embodiment configured as described above, in addition to the effects of the first embodiment, further, in addition to the effects of the second embodiment, it is possible to efficiently transmit a packet flow composed of a large number of IP packets having the same IP address and port number and the like, like MPTE ST 2110, for example, to the extraction data aggregation unit 32.
(172) With respect to the examples of the above-described embodiments, a computer may be configured to function as the packet data extraction device 2 or the extraction data aggregation device 3. Specifically, the functions of the packet data extraction device 2 or the extraction data aggregation device 3 can be realized by causing a central processing unit (CPU) in the computer to read and execute a program stored in the computer or an external storage unit. Further, the program for realizing the functions of the packet data extraction device 2 or the extraction data aggregation device 3 can be configured as a part of the software on the OS used in the computer. Further, the program for realizing the functions of the packet data extraction device 2 or the extraction data aggregation device 3 can be recorded and carried on a computer-readable recording medium. Further, the functions of the packet data extraction device 2 or the extraction data aggregation device 3 can be configured as a part of hardware or software, and can be realized by a combination thereof.
(173) Although the present invention has been described by way of examples of specific embodiments, the present invention is not limited to the examples of the above-described embodiments, and various modifications can be made without departing from the technical idea. For example, in the above-described example of the third embodiment, the data compression related to the RTP extraction data has been described as a representative example. However, when the data compression related to the extraction data of another packet type (data type) is performed, the data compression presence/absence flag and the data compression position flag can be similarly utilized.
(174) Further, in the example of the above-described embodiment, an example of monitoring the packet flow in the program production system for transmitting video or the like by applying the packet flow monitoring device according to the present invention has been described, but the present invention can be applied to any video or audio communication system. That is, the packet flow monitoring device according to the present invention can be configured as a device for monitoring packet flow in a video or audio communication system constructed by an Ethernet (registered trademark) or IP packet network. Therefore, the present invention is not limited to the examples of the above-described embodiments, but is limited only by the scope of claims.
(175) According to the present invention, since it is possible to efficiently and highly accurately monitor and measure the quality related to the packet flow of all packets in a program production system constructed by an E-frame or IP packet network, the present invention is useful for monitoring the packet flow in a program production system.
REFERENCE SIGNS LIST
(176) 1: Packet flow monitoring device 2: Packet data extraction device 3: Extraction data aggregation device 4: PTP master device 21: Packet replication unit 22: Data extraction unit 23: Switch processing unit 24: Extraction data transmitting unit 25: PTP processing unit 31: Extraction data report packet receiving unit 32: Extraction data aggregation unit 33: Aggregation data output unit 51: Video transmission device 52: Audio transmission device 60: Network switch 80: Receiving device 90: Synchronous signal generator 100: Communication packet flow monitoring device 200: Analysis device 221: Packet type determination unit 222: RTP extraction unit 223: PTP extraction unit 224: IGMP extraction unit 225: IP extraction unit 226: UDP extraction unit 227: TCP extraction unit 228: E-frame extraction unit 241: Extraction data compression unit 242: Extraction data storage unit 243: Extraction data report packet transmitting unit 311: Extraction data restoration unit 312: Extraction data storage unit 321: Extraction data type determination unit 322: RTP aggregation unit 323: PTP aggregation unit 324: IGMP aggregation unit 325: IP Aggregation unit 326: UDP aggregation unit 327: TCP aggregation unit 328: E-frame aggregation unit 329: Aggregation data recording unit 510: Video transmission device 520: Audio transmission device 600: SDI router 700: Audio router 800: Receiving device 900: Synchronization signal generator 2221: Marker bit inspection unit 2222: RTP data extraction unit 3221: RTP data processing unit 3222: RTP payload determination unit 3223: ST 2110-20 processing unit 3224: ST 2110-30 processing unit 3225: ST 2022-6 Processing unit 32231: Delay calculation unit 32232: Resolution calculation unit 32233: Frame rate calculation unit 32234: Video scanning method identification unit 32241: Delay calculation unit 32242: Sampling frequency calculation unit 32243: Packet time identification unit 32244: Payload length update unit