対象がbyte[]と決まっているなら、文字列に変換しておいてIndexOf()という手もある。

string s1 = Encoding.ASCII.GetString(buf);
string s2 = Encoding.ASCII.GetString(sub_buf);
int p = s1.IndexOf(s2, StringComparison.Ordinal);