Для начала необходимо решить, начиная с какого уровня сетевой модели (OSI) хотите все реализовывать, в зависимости от этого есть несколько, отличающихся по сложности путей:
1. Начать с канального уровня. Понадобится микросхема LAN8720 (реализует физический уровень взаимодействия с сетью) и МК, поддерживающий интерфейс MII (например stm32F407). В данном случае необходимо будет полностью реализовать физическую адресацию устройств (MAC), фильтрацию адресов и процесс отправки/приема ethernet фреймов.
2.Отдать канальный уровень под контроль "железа". В данном случае ethernet контроллер (например enc28j60) поддерживает аппаратно все то, что было описано в п1. Реализовывать же придется уже протоколы более высокого уровня (ARP, ICMP,IP, TCP, и тд). МК можно выбрать практически любой (stm32f103 за 180р), тк ethernet контроллер подключается по spi интерфейсу.
3. Понять, что если увязнуть в протоколах низкого уровня, то до реализации своего уникального домашнего сервера еще далеко и взять более продвинутый ethernet контроллер (например W5500). Тут уже имеется аппаратная поддержка транспортных протоколов (TCP, UDP, даже имеется поддержка сокетов) и соответственно протоколов более низкого уровня, с помощью такого контроллера организовать обмен по сети не составит труда.
PS: стоит помнить, что сетевые протоколы достаточно тяжелые, требуют много ОЗУ для хранения пакетов и использовать какой-нибудь attiny не получится.