Phần mềm giao thức

Phần mềm giao thức 
Phần mềm xử lý giao thức hay nói gọn là phần mềm giao thức là một thành phần giao diện mạng, có nhiệm vụ thực hiện các chức năng xử lý giao thức còn lại trong mô hình OSI. Phần mềm giao thức tồn tại dưới ba hình thức là phần dẻo (firmware), thành phần của hệ điều hành hoặc phần mềm thư viện. Firmware 
   Phần mềm dưới dạng firmware được đổ cứng trong các vi mạch ghép nối ASIC, được chứa trong các bộ nhớ lâu dài (EPROM, Flash-ROM), hoặc được nạp lên một bộ nhớ RAM trước khi đi vào hoạt động. Hình thức sau cùng còn được gọi là bootloading hay downloading, phổ biến trong các card giao diện cho PC. Hầu hết các ASIC cho bus trường đều chứa toàn bộ phần mềm xử lý giao thức cho tất cả các lớp chức năng, hoặc chỉ một phần trong đó. Trong trường hợp sau, các chức năng còn lại sẽ được thực hiện bổ sung trên ASIC hoặc qua CPU chủ thông qua sử dụng các phần mềm thư viện.
   Trong một số trường hợp, CPU chủ chỉ cần truy nhập trực tiếp vào một số vùng trong bộ nhớ của ASIC (ví dụ vùng nhớ DPM), phần tổ chức giao tiếp còn lại do ASIC đảm nhiệm hoàn toàn. Một số vùng nhớ như thanh ghi có thể chứa dữ liệu cấu hình, một số vùng nhớ khác như hộp thư (mailbox) có thể chứa các dữ liệu sử dụng cần trao đổi trong mạng.
Thành phần của hệ điều hành 
   Phần mềm giao thức có thể thực hiện dưới hình thức là một thành phần tùy chọn trong hệ điều hành. Thông thường, phần mềm này không thực hiện toàn bộ các lớp giao thức của một hệ thống mạng, mà chỉ thực hiện một số lớp phía trên. Ví dụ, một card giao diện Ethernet đã chứa sẵn firmware cho xử lý giao thức cấp thấp, trong khi hệ điều hành (Windows, UNIX) có thể bổ sung các phần mềm giao thức cấp trên như TCP/IP, IPX/SPX,... Sự khác biệt cơ bản so với dạng firmware là phần mềm xử lý giao thức ở đây do CPU của máy chủ thực hiện, trong khi firmware do vi xử lý của phần cứng giao diện mạng thực hiện. Ưu điểm của cách thực hiện này là sự linh hoạt tối đa cho nền ứng dụng.
 Phần mềm thư viện 
   Phần mềm xử lý giao thức thực hiện dưới dạng một thư viện lập trình là hình thức linh hoạt nhất, cho phép nhúng trực tiếp mã xử lý giao thức vào chương trình ứng dụng một cách có lựa chọn. Thông thường, nhà sản xuất phần cứng giao diện mạng có thể cung cấp kèm một thư viện hàm (C/C++). Cũng giống như dạng cài đặt trong hệ điều hành, mã phần mềm thư viện do CPU của máy chủ thực hiện và thông thường chỉ đảm nhiệm chức năng xử lý giao thức của các lớp trên.