Ну что тут скажешь ...
Если это курсовая или диплом, то неплохо бы получить постановку задачи, так как "желательно какой процесс" значительно усложняет задачу на Windows 2000.
Далее, C# отдыхает. По-крайней мере, в области сбора данных. Это делается на С/С++. С помошью IP Filtering API можно считать объёмы проходящего трафика в обоих направлениях. Правда, API документирован плохо, могут возникать разные затыки и проблемы с тем, что нифига не фильтруется. Вызовы IP Filtering реализуются в нормальном Си, к С# они пока не прикручены, насколько я знаю.
Альтернативой Filtering API является откртый проект pcap. Есть реализация pcap для Windows 98/NT под названием WinPcap, но интерфейс опять таки только на Си. О том, как прикрутить winpcap к C# можно посмотреть на CodeProject:
http://www.thecodeproject.com/csharp/pacanal.aspПочему информация о процессах усложняет дело: на Windows 2000 нет простого способа узнать какой процесс соответствует тому или иному TCP порту. В Windows XP и старше ситуация попроще -- появилась недокументированная функция GetTCPTableFromStack, которая для каждого соединения сообщает идентификатор процесса, установившего соединение.