Th viện dùng để lập trình bắt gói trong C #. Để có thể sử dụng th viện này thì phải khai báo một Name Space trong ch ơng trình là System.Net.Sockets;
Sử dụng th viện .Net để thực hiện bắt gói tin tức là chặn bắt gói tin v i Raw Socket ở l p Network trở l n.
3.2.1 Khái niệm
.NET Socket là một th viện lập trình socket cho window nh ng hoạt động tr n nền .NET. Nói cách khác, .NET Socket là một giao diện lập trình “managed code” c a Window Socket (Winsock), tức là nó hoạt động tr n nền Winsock. Do vậy, ta hầu nh có thể coi lập trình v i .NET Socket giống nh lập trình v i Winsock. Trong .NET Socket, chúng ta có 3 loại Socket đó là Stream Socket, Datagram Socket và Raw Socket. Hầu hết các l p dùng để lập trình v i .NET Socket nằm trong Namespace System.Net.Sockets.
Stream Socket :
Cung cấp li n lạc 2 chiều, chuỗi tuần tự và tin cậy. Stream Socket hoạt động giống nh cuộc đàm thoại.
Datagram Socket :
Hỗ trợ dòng thông báo 2 chiều. Datagarm Socket hoạt động nh việc gửi th đi gửi th lại và thiếu độ tin cậy.
Raw Socket :
Cung cấp truy cập cơ bản các giao thực truyền thông, cho ph p truy cập trực tiếp các thông tin header c a packet tầng thấp (IP).
Socket là một ph ơng pháp để thiết lập kết nối truyền thông giữa một ch ơng trình y u cầu dịch vụ ( client) và một ch ơng trình cung cấp dịch vụ (server) tr n mạng LAN, WAN hay Internet và đôi lúc là giữa những quá trình ngay bên trong máy tính. Mỗi socket có thể đ ợc xem nh một điểm cuối trong một kết nối. Một socket tr n máy y u cầu dịch vụ có địa chỉ mạng đ ợc cấp sẵn để “gọi” một socket tr n máy cung cấp dịch vụ. Một khi socket đã đ ợc thiết lập phù hợp, hai máy tính có thể trao đổi dịch vụ và dữ liệu.
Các đặc tính c a Socket bao gồm:
Giao thức (TDP, UDP hay raw IP).
Số hiệu cổng.
Địa chỉ IP.
Phân loại: Có vài loại Socket thông dụng nh :
Stream Socket hay còn gọi là connection – oriented socket sử dụng TCP.
Raw Socket (hay là Raw IP Socket). V i socket dạng này tầng giao vận đ ợc bỏ qua và ứng dụng có thể truy nhập trực tiếp vào dữ liệu c a gói tin IP.
Tóm lại, sử dụng Socket ta có thể chặn bắt và truy nhập các thông tin từ tầng giao vận trở l n (TCP và UDP) và có thể truy nhập t i tầng Internet ( IP) nếu sử dụng raw socket. Tuy nhi n hiện nay tr n hệ điều hành window chỉ có th viện winsock dành cho Visual C++ và Socket trong .Net hỗ trợ raw socket. Th viện lập trình mạng c a Java không cho ph p ng ời phát triển đ ợc sử dụng t i raw socket.
Hình 3.1 Sơ đồ giao tiếp thông qua .NET Socket
Winsock là viết tắt c a từ Window Socket. Là một th viện socket, nó đ ợc dùng nh là giao diện giữa TCP/IP và Windows. Winsock là một th viện li n kết động .DLL chạy tr n n n hệ điều hành Windows. WINSOCK.DLL li n hệ v i TCP từ đó giao tiếp ra ngoài mạng Internet.
Ứng dụng .NET Socket t ơng tác v i th viện .NET Socket chuyển y u cầu xuống cho Winsock xử lý. Winsock thực sự nh một tầng giữa các ứng dụng winsock và ngăn xếp TCP/IP. Các ứng dụng y u cầu Winsock.dll cần làm những gì, nó bi n dịch các câu lệnh dịch chuyển t i bộ giao thức TCP/IP và bộ giao thức TCP/IP chuyển chúng l n mạng. Y u cầu là Winsock.dll đang dùng phải có phi n bản đúng v i phi n bản c a TCP/IP đang chạy.