ADB protocol version decides the packet format between client and server. By now it has 2 versions:
01000000 used in Android versions until 8 (Oreo)
01000001 used in Android versions from 9 (Pie)
For more information, you can checkmy blog post
Protocol Version:
ro.product.name field in Android Build Props
Product Name:
ro.product.model field in Android Build Props
Model Name:
ro.product.device field in Android Build Props
Device Name:
Feature list decides how each individual commands should behavior.
For example, it may indicate the availability of a new command, or a workaround for an old bug is not required because it's already been fixed.