Литература, статьи, уроки по клиент-серверному взаимодействию в C#?
Всегда боялся TCP\UDP, все было неинтуитивно и очень непонятно, но потом пришлось столкнуться с этим, и успехи добавили мотивации, но вопросов все еще много. Хочется понять, как правильно описывать классы для взаимодействия по сети, как одним сервером обрабатывать множество клиентов, как передавать большие данные частями и т.д. Т.е. самые азы, но не голая теория типа "открыли сокет", а именно архитектура и паттерны. Что можно почитать, чтобы лучше понимать, как правильно писать клиент-серверные приложения?