2015年1月21日 星期三

How many bytes in a packet?

Sometime, we found some devices that point out "forwarding rate, Mpps". The "pps" is the short term for packet per second. However, how many bytes in a packet? It depends, there is no specification on how many byte in a packet, you define it by yourself.

In the 100M Ethernet network,
100M bps / 8 = 12.5 MBps = 12500000 Bytes/s(Bps)

If you define the frame size is 64 Bytes (Minimum Ethernet framz size):
8 Bytes (preamble) + 64 Bytes + 12 Bytes (interframe gap) = 84 Bytes

So forwarding rate will be
12500000 Bps / 84 bytes = 148809 pps

If you define the frame size is 1518 Bytes (Maximum Ethernet framz size):
8 Bytes (preamble) + 1518 Bytes + 12 Bytes (interframe gap) = 1538 Bytes

So forwarding rate will be
12500000 Bps / 1538 bytes = 8127 pps

100M Ethernet's forwarding rate formula:
12500000 Bps / ( 8 Bytes (preamble) + (Feame Size) + 12 Bytes (interframe gap)) = forwarding rate, pps

2015年1月9日 星期五

c/c++ 運算子優先順序

優先 符號                                     運算種類                         結合
---- ----------------------                   -------------                       ------
1     ( ) [ ] -> .                                運算式                             左至右
2     ! ++ -- -                             (運算元) 一元運算子     右至左
        * & sizeof
3     * / %                                       //餘數                      左至右
4     + -                                           /                               左至右
5     << >>                                      左移/右移                       左至右
6     < <= > >=                               關係運算子                    左至右
7     == !=                                      關係運算子                    左至右
8     &                                            位元 AND                       左至右
9     ^                                             位元 XOR                       左至右
10    |                                             位元 OR                          左至右
11   &&                                         邏輯 AND                       左至右
12   ||                                             邏輯 OR                          左至右
13   ?:                                            條件運算子                    右至左
14   = += -= *= /= %=                  指定運算子                    右至左
        <<= >>= &= |= ^=
15   ,                                              循序計值                        左至右