BACKGROUND OF THE INVENTION

The subject matter disclosed herein relates to routing data through a network. In particular, the disclosed subject matter relates to determining segmentation sizes of data that is routed through a network.

A variety of systems, such as smart energy meters on a smart grid, transmit and receive data to and/or from other systems, such as a utility company head-end server. Typically, the data is segmented and transmitted via packets/fragments, such that only a portion of the data is transferred at a given time. Packet-based communications may provide enhanced routing of data and increased error-detection abilities as compared to non-packet-based communications. Unfortunately, typical packet-based communications approaches may use static segmentation sizes, which may result in segmentation that causes unnecessary traffic on the network. For example, such static segmentation implementations may result in unnecessary retransmission of one or more valid data fragments, due to data corruption in one or more of the other data fragments in a large data segment. Further, when small data segments are used, an increase in acknowledgement signals may occur. The retransmission of packets/fragments and/or an increase in acknowledgement signals may be costly and inconvenient due to an increased utilization of bandwidth and/or time necessary to transmit the data.

BRIEF DESCRIPTION OF THE INVENTION

Certain embodiments commensurate in scope with the originally claimed invention are summarized below. These embodiments are not intended to limit the scope of the claimed invention, but rather these embodiments are intended only to provide a brief summary of possible forms of the invention. Indeed, the invention may encompass a variety of forms that may be similar to or different from the embodiments set forth below.

In one embodiment, a method includes determining, via data processing circuitry, error rate metrics of data transmissions over a constrained application protocol (CoAP) using a first CoAP segment size; and determining, via the data processing circuitry, a second CoAP segment size for the data transmissions based at least in part upon the error rate metrics.

In a second embodiment, a smart meter is configured to measure energy consumption. The smart meter is further configured to communicate data relating to the energy consumption over a constrained application protocol (CoAP). The CoAP is configured to divide the data into CoAP segments of a CoAP segment size. The smart meter is configured to determine error rate metrics of communications over the CoAP, determine a CoAP segment size modification based upon the error rate metrics, and modify the CoAP segment size based upon the CoAP segment size modification.

In a third embodiment, an article of manufacture includes one or more tangible, machine-readable media configured to store processor-executable instructions. The instructions include instructions to determine error rate metrics of communications over the CoAP, instructions to determine a CoAP segment size modification based upon the error rate metrics, and instructions to modify the CoAP segment size based upon the CoAP segment size modification.

DETAILED DESCRIPTION OF THE INVENTION

Certain communication networks, such as a smart grid network, may include multiple nodes intermeshed or communicatively coupled to other nodes. For example, a network node may include a smart meter communicatively connect to one or more neighborhood/nearby meters. Such intercommunication between nodes is referred to as a mesh network. Mesh networks enable enhanced communication reliability due to the multiple paths that may be present between nodes. Should one path fail, a second path may be used to communicate with the node.

The communication of data on such communication networks may utilize packet-based communications. The data is segmented and each segment is sent as a grouping of packets to their destination. The embodiments described herein include systems and methods useful for enabling dynamic selection of a segmentation size of data transmitted on a wired and/or wireless mesh network. Through utilization of various error rate statistics, the segmentation size may be increased or reduced such that network efficiency may be increased. For example, when the error rate statistics are above a maximum error rate threshold, the segment size may be reduced. When the error rate statistics are below a minimum error rate threshold, the segment size may be increased.

With the foregoing in mind, FIG. 1 is a block diagram of an embodiment of a mesh network system 10 utilizing a constrained application protocol (CoAP) where the data transmitted through the wireless mesh network system is segmented based upon transmission error rates. It is important to note that while the current discussion makes reference to smart meters on a mesh network, such discussion is not intended to limit the current disclosure to energy meter implementations, but instead, is merely provided as an example implementation.

In the current embodiment, a power utility 12 may supply power to a power grid 14. Loads on the power grid 14 may include, for example, residential establishments 16 and commercial establishments 18. The power consumption of the residential establishments 16 or commercial establishments18may be monitored by energy meters 20. Additionally, the energy meters 20 may communicate with the power utility 12 (e.g., a head-end server of the power utility 12) via data communication radios 22. As will be discussed in more detail below, the data provided between the power utility 12 and the energy meters 20 may be segmented such that traffic on the communications network may be reduced.

In some embodiments, energy meters 20 and/or the power utility 12 utilize the constrained application protocol (CoAP) to support meter reading and control of the energy meter and the data communication radios 22. CoAP is based on a User Datagram Protocol (UDP) that runs over an IPv6, Low power Wireless Personal Area Network (6LoWPAN). UDP is a transmission protocol without an implicit handshaking requirement, thus simplifying communication. 6LoWPAN extends IPv6 for low-powered communications, such as low-power radio communications (e.g., via communications radios22 of FIG. 1). In some embodiments, the energy meters 20 may include a storage or memory 21 (e.g., a meter 20 firmware storage) and/or data processing circuitry 23 (e.g., an integrated board or an add-on board plugged into an expansion slot of the meter 20) that enable the meters 20 to communicate over the CoAP using a dynamic segmentation size based upon detected data communication transmission errors.

For clarity, FIGS. 2 and 3 will be discussed together. FIG. 2 provides an illustration of a layered network architecture model 40 for routing data using CoAP and IPv6 over Low power Wireless Personal Area Networks (6LoWPAN), in accordance with an embodiment. FIG. 3 illustrates an embodiment of data communications using the layered network architecture model 40, in accordance with an embodiment.


In the current embodiment, data 42 to be transmitted (e.g., metrology data representative of energy consumption) is generated by an energy meter 20. Alternatively, the data 42 to be transmitted may be control commands generated by the power utility 12 to be transmitted to the energy meter 20. The CoAP application 44 receives and segments the data 42 into data segments 46. In some embodiments, the CoAP application will provide a maximum segment size of 1280 bytes (note that in alternative embodiments the maximum segment size could vary, e.g., 2560 bytes, 640 bytes, etc.). The first data segment 46 (e.g., SEGMENT 1) is provided by the CoAP application 44 to the IP stack 48. The IP stack 48 routes the first data segment 46 to the 6LoWPAN layer 50, where the data segment 42 is divided into smaller fragments 52. The size of the fragments may be determined by the 6LoWPAN layer 50 based upon a maximum transmission unit (MTU) for the radio 53. For example, in some embodiments the radio 53 may have an MTU of 127 bytes (note that in other embodiments the MTU may vary), and thus, the fragments 52 will be 127 bytes. It is important to note that, in some embodiments, only a portion of each fragment 52 may be used to store a piece of the segment 46 (and ultimately data 42). A portion of each fragment52 may be used to store Internet Protocol (IP) overhead and/or 6LoWPAN header information.

For each segment 46, the data fragments 52 may be transmitted 56 from the sending system (e.g., energy meter 20) to the receiving system (e.g., head-end server at a power utility 12). The receiving system (e.g., utility 12) receives the data fragments 52 via the radio 24. The data fragments 52are passed through the 6LoWPAN layer 62 and the IP stack 64, where they are reassembled into a data segment 46. The data segments 46 are passed to the CoAP application 66, where they are reassembled into transmitted data 68.

Upon receiving all of the fragments 52 for a given segment 46 (e.g., SEGMENT 1), an acknowledgement signal 58 may be transmitted 60 from the receiving system. However, if a single fragment is corrupted and/or does not reach the receiving system, each of the fragments 52 for the given segment may need to be retransmitted before the acknowledgement signal 58 will be transmitted. Thus, when such errors occur, retransmission of the fragments 52 may result in increased network traffic. When the segment 46 size is large, with an increased number of data fragments 52, there is more potential that at least one of the fragments for the given segment 46 will be corrupt and/or not reach the receiving system, causing each of the other fragments 52 to be retransmitted, thus causing increased network traffic. Further, network traffic may also increase if the segment 46 sizes are too small. When the segment 46 size is small, the number of acknowledgement signal 54 transmitted 60 through the network will increase. For example, if the segment 46 size held two data fragments 52, an acknowledgement signal 58 would be transmitted 60 for every two data fragments 52. Thus, the network traffic would be greatly increased through an increased number of acknowledgement signals 58 transmitted through the network.

To remediate unnecessary traffic caused by segment 46 sizes that are large or small, the current embodiments may determine error rate metrics of the data transmissions. The error rate metrics may be used to determine whether the segment 46 sizes should be increased, decreased, or unchanged. For example, the error rate metrics may include a current error rate for the current segment size that is being used, a historical error rate, and/or a predicted error rate. A new segment size may be determined based upon the available error rate metrics. Generally, as the error rate increases, the disclosed embodiments may decrease the size of the segment 46, such that less potential for retransmission will occur. Further, when there is a relatively low error rate, the disclosed embodiments may increase the size of the segment 46, such that increased traffic from a small segment 46 size (e.g., excessive transmission 60 of acknowledgment signals 58) may be reduced. Whether increasing or decreasing the segment sizes, such size modifications may transition granularly such that an appropriate segment size may be fine-tuned (e.g., the sizes may be modified in small increments such that an appropriate segment size may be more accurately identified).

FIGS. 4-6 illustrate embodiments of algorithms for determining a modified segment size, taking into account error rate statistics. The algorithms may be computer implemented instructions stored in a non-transitory, tangible, computer-readable medium (e.g., a memory or storage). Using data processing circuitry (e.g., a proportional-integral-derivative (PID) controller), a modified segment 46 size may be determined, based upon error rate statistics. Values from the PID controller may be plugged into one or more lookup tables such that an appropriate segment 46 size may be determined based upon the error rate statistics. Once the new segment 46 size is determined, the data processing circuitry may modify the segment 46 size to the new segment 46 size value found in the one or more lookup tables.

A PID controller may include three separate constant parameters: the proportional, the integral, and the derivative values (P, I, and D, respectively). P provides a current or instantaneous error rate, I provides a historical error rate, and D provides a predicted or expected error rate in the future. In certain embodiments, only one or two of the PID parameters may be utilized to provide a new segment 46 size based upon data communication error rates.

  • P is derived using the formula: 
    • Kp is a proportional gain or constant and e(t) is the current or instantaneous error rate.
  • I is derived using the formula: 
    • Ki is a weighting constant or the integral gain constant and the integral is the sum of the instantaneous error over time that gives the accumulated offset that should have been corrected previously.
  • D is derived using the formula:

  • Kis the derivative gain,

is derivative of the current error rate.

FIG. 4 illustrates an embodiment of an algorithm 80 for determining a segment 46 size for data transmission based upon the current error rate e(t) and an average error rate over a certain period of time (t) ƒ0e(τ)dτ. Using data processing circuitry, the current weighted error rate P is added 82 to the weighted average I. The sum of these two numbers (the manipulated variable 84) is fed into a lookup table 86 that provides a corresponding segment46 size 88. Then, the data processing circuitry may modify the original segment 46 size to the newly determined segment 46 size 88. The algorithm 80may be continuously repeated, to continually provide new segment 46 sizes 88 based upon the error rate statistics. The manipulated variable 84 is subtracted from each subsequent current error rate input e(t) such that previous manipulated variable 84 is not considered in subsequent iterations of the algorithm 80.


FIG. 5 illustrates an embodiment of an algorithm 90 for determining a segment size for data transmission based upon the current error rate e(t) and an average error rate over time ƒ0te(τ)dτ, similar to FIG. 4. Additionally, in the embodiment of FIG. 5, the segment 46 size is determined based upon a correction factor for a predicted future error rate


For example, the weighted derivative of the current error rate, D, is added 92 into the current weighted error rate P and the weighted average I to provide a correction factor for what the error rate may be in the future. This new manipulated variable 94 may be fed into a lookup table 96 that determines the appropriate segment 46 size. Then, the data processing circuitry may modify the original segment 46 size to the newly determined segment 46 size 98. Similar to algorithm 80 of FIG. 4, algorithm 90 may be continuously repeated, to continually provide new segment 46 sizes 98based upon the error rate statistics. The manipulated variable 94 is subtracted from each subsequent current error rate input e(t) such that previous manipulated variable 94 is not considered in subsequent iterations of the algorithm 90.

FIG. 6 illustrates an embodiment of an algorithm 110 for determining a segment 46 size for data transmission based upon the current error rate e(t) and an average error rate over time ƒ0te(τ)dτ. As discussed above, the average error rate may be taken over a period of time (e.g., 1 minute, 1 hour, 1 day, or 1 month). The weighted average error rate I is compared to the weighted current error rate P. The ratio 112 of these two numbers is fed into a lookup table 114 to determine the optimal segment 46 size 116. If the ratio is positive and over a certain percentage for a certain period of time, the segment46 size may decrease in increments of the MTU and data fragments 52 (e.g., 127 bytes) down to a minimum of the MTU and 1 data fragment 52 (e.g., 127 bytes). If the ratio is negative and over a certain percentage for a certain period of time, the segment 46 size may be increased. In some embodiments, the segment 46 size may be increased in increments of the MTU and/or the data fragment 52 size (e.g., 127 bytes). The segment size may increase up to the maximum segment size of the CoAP application (e.g., 1280 bytes).

Technical effects of the invention include a data communications protocol that is enabled to provide dynamically adjustable segmentation of data based upon the error rate experienced while communicating data on a network. The dynamically adjustable segmentation may increase efficiency by limiting the amount of retransmitted data fragments when one or more data fragments are corrupt. Further, larger segmentation may result in less traffic due to acknowledgement signals provided by the receiving system. Thus, by dynamically selecting a segmentation size based upon the transmission error rate, the segmentation may be properly tuned, such that network congestion may be reduced.

Using the error rate statistics (e.g., the instantaneous error rate, the historical error rate, and/or the predicted or future error rate), a more appropriate segmentation of the data to be transmitted may be determined. High error rates tend to occur when the segmentation size is large. Thus, in such scenarios, the segmentation size may be reduced. Further, when relatively few errors are detected, the system may not be transmitting at its highest low-error rate efficiency (e.g., maximum segmentation size that produces few errors). Thus, in such scenarios, the segmentation size may be increased. The segmentation size determination may continue during the entire duration that data is being transmitted. Thus, the system may adapt to changes in the network and/or previous modifications to the segmentation size.

SRC=http://www.freepatentsonline.com/8670416.html

PatentTips – CoAP Segment size determination的更多相关文章

  1. ORA-27125: unable to create shared memory segment的解决方法(转)

    ORA-27125: unable to create shared memory segment的解决方法(转) # Kernel sysctl configuration file for Red ...

  2. shared memory segment exceeded your kernel's SHMMAX parameter

    http://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server IpcMemoryCreate: shmget(key=5432001, s ...

  3. 网络:W5500抓包TCP segment of a reassembled PDU

    1.问题描述 W5500 http测试,用wireshark抓包,发现出现很多TCP segment of a reassembled PD. 2. 问题分析 TCP segment of a rea ...

  4. lucene segment的产生,flush, commit与es的refresh,flush

    1 segment的产生 当索引一个文档时,如果存在空闲的segment(未被其他线程锁定),则取出空闲segment list中的最后一个segment(LIFO),并锁定,将文档索引至该segme ...

  5. Method and apparatus for loading a segment register in a microprocessor capable of operating in multiple modes

    A microprocessor contains an address generation unit, including a segment block, for loading descrip ...

  6. C#非托管泄漏中HEAP_ENTRY的Size对不上是怎么回事?

    一:背景 1. 讲故事 前段时间有位朋友在分析他的非托管泄漏时,发现NT堆的_HEAP_ENTRY 的 Size 和 !heap 命令中的 Size 对不上,来咨询是怎么回事? 比如下面这段输出: 0 ...

  7. 转贴---Performance Counter(包含最全的Windows计数器解释)

    http://support.smartbear.com/viewarticle/55773/ 这个Article中介绍了一个新工具,TestComplete,把其中涉及到性能计数器的部分摘抄出来了. ...

  8. (转)PowerHA完全手册(一,二,三)

    PowerHA完全手册(一) 原文:http://www.talkwithtrend.com/Article/39889-----PowerHA完全手册(一) http://www.talkwitht ...

  9. Internet protocol optimizer

    A method for optimizing the throughput of TCP/IP applications by aggregating user application data a ...

随机推荐

  1. 18/9/16牛客网提高组Day2

    牛客网提高组Day2 T1 方差 第一眼看就知道要打暴力啊,然而并没有想到去化简式子... 可能因为昨晚没睡好,今天上午困死 导致暴力打了一个半小时,还不对... #include <algor ...

  2. 洛谷 P2374 搬运工

    P2374 搬运工 题目背景 陈老师喜欢网购书籍,经常一次购它个百八十本,然后拿来倒卖牟取暴利.(ps:描述要看懂) 题目描述 前些天,高一的新同学来了,他便像往常一样兜售他的书,经过一番口舌,同学们 ...

  3. 想知道WiFi是什么样子的么?

    据英国<每日邮报>报道.英国纽卡斯尔大学博士生路易斯·赫南日前利用定制的仪器为WiFi信号拍照,绘制出一系列展现人类周围无形网络WiFi连接情况的图,这些盘旋环绕的明亮光束,宛如幽灵一般缠 ...

  4. PHP中 “ . ” 和 “ ,”的区别

    在PHP中,“ . ”可以串接两个变量.而“ , ”却没什么用处.

  5. vue <input type="file">上传图片、预览、删除

    使用原生<input type="file">上传图片.预览.删除:multiple实现可上传多张 参数名 类型 说明 fileTypes Array 文件类型, 默认 ...

  6. wampserver安装后访问localhost出现 Forbidden问题

    Forbidden You don't have permission to access / on this server. 修改php的配置文件httpd.conf. 在原有的位置文件中找到配置节 ...

  7. Codeforces #28 C.Bath Queue (概率dp)

    Codeforces Beta Round #28 (Codeforces format) 题目链接: http://codeforces.com/contest/28/problem/C 题意: 有 ...

  8. 【Codeforces Round #433 (Div. 1) C】Boredom(树状数组)

    [链接]h在这里写链接 [题意] 给你一个n*n的矩阵. 其中每一列都有一个点. 任意两个点构成了矩形的两个对角点 ->即任意两个点确定了一个矩形. ->总共能确定n*(n-1)/2个矩形 ...

  9. Spring Boot中的缓存支持(一)注解配置与EhCache使用

    Spring Boot中的缓存支持(一)注解配置与EhCache使用 随着时间的积累,应用的使用用户不断增加,数据规模也越来越大,往往数据库查询操作会成为影响用户使用体验的瓶颈,此时使用缓存往往是解决 ...

  10. jquery weui日期选择控件添加取消按钮

    如图: 上图是jQuery weui的时间选择控件,红框处本来应该有个“取消”按钮的,可惜偏偏没有,当用户不想选择的时候就不好处理,虽然插件提供了点击其他区域关闭的功能,但过于隐晦,不容易发现,因此本 ...