title: how bytes are used to store information in protobuf
body: <p>i am trying to understand the protocol buffer here is the sample , what i am not be able to understand is how bytes are being used in following messages. i dont know what this number 
  <code>1 2 3</code> is used for.</p>
  
  <pre><code>message Point {
    required int32 x = 1;
    required int32 y = 2;
    optional string label = 3;
  }
  
  message Line {
    required Point start = 1;
    required Point end = 2;
    optional string label = 3;
  }
  
  message Polyline {
    repeated Point point = 1;
    optional string label = 2;
  }
  </code></pre>
  
  <p>i read following paragraph in google protobuf but not able to understand what is being said here , can anyone help me in understanding how bytes are being used to store info.</p>
  
  <p>The " = 1", " = 2" markers on each element identify the unique "tag" that field uses in the binary encoding. Tag numbers 1-15 require one less byte to encode than higher numbers, so as an optimization you can decide to use those tags for the commonly used or repeated elements, leaving tags 16 and higher for less-commonly used optional element.</p>