///|
/// 解析 TCP 头:src port 0 / dst port 2 / Data Offset 字节 12 高 4 位
fn parse_tcp(data : Bytes, off : Int, ip_payload : Int) -> (Int, Int, Int)? {
guard ip_payload >= 20 else { return None }
let sport = u16(data, off)
let dport = u16(data, off + 2)
let data_offset = (data[off + 12].to_int() >> 4) * 4
guard data_offset >= 20 && data_offset <= ip_payload else { return None }
Some((sport, dport, ip_payload - data_offset))
}