OS によっても異なりますが、通常はアプリケーションからのデータ送受信時に宛先アドレス・宛先ポート・発信元アドレス・発信元ポートの情報を渡します。
一般的に、アプリケーションとネットワークの間は通称 BSD socket と呼ばれる API が使われます。ごく小規模な組み込み専用 OS を除けば、世の中の大抵の TCP/IP 準拠システムは BSD 互換ないし類似の API を持っています。
ここで「8000」は適当に選んでいます。NFS などオープンな標準プロトコルは固定番号のポート(Well-Known port と呼ばれます)に割り当てられており、その一覧は IANA によって管理されています。
http://www.iana.org/assignments/port-numbers
個々の構造体や API の意味については検索してみてください。多くの情報やサンプルプログラムが得られるでしょう。
オフロード処理の実装はその OS において API の中身がどう実装されているか、何をどう弄くれば API の内部処理を外部ハードウェアに導けるかというところを理解しなければなりませんが、そのためにはまずアプリケーションの動作、パケットヘッダの Encapsulate / Stripping がどういう原則に基づいて行われているかを理解しなければ始まりません。
シリコンバレー近辺でしたらローレンス沿いの Digital Guru でコンピュータ専門書籍は一通り揃っている筈です。
http://www.digitalguru.com/
(私もシリコンバレーには5年住んでいたので、この界隈にはよく通っていました。Computer Literacy が閉店しちゃったのは残念だったなぁ…)