Как известно, TCP и SCTP обычно используются по IP напрямую. Но я нахожу некоторые преимущества, если они предназначены для использования по UDP:
- Им не понадобятся порты, возможно, также контрольная сумма, поскольку UDP предоставляет порты и контрольную сумму.
- Они смогут быть реализованы в пространстве пользователя.
- NAT не нужно будет их реализовывать. Может быть, есть еще какие-то NAT без поддержки SCTP.
- Такие протоколы, как DNS, смогут быстрее выполнять TCP-квитирование, если ответ слишком длинный для UDP, поскольку в этом случае пакет UDP уже будет отправлен.
Так почему же TCP и SCTP не предназначены для использования по UDP?
Сравнивая TCP с SSL, легко увидеть,
- Приложение, которое использует SSL, хочет безопасный и надежный канал. Поскольку TCP надежен, он может использовать TCP для экономии усилий.
- Приложение, которое использует TCP и SCTP, хочет надежный канал. Поскольку UDP предоставляет канал, они могут использовать UDP для экономии усилий.
Я пытался думать о недостатках TCP и SCTP по сравнению с UDP. Я только придумал это, тогда сервер должен будет различать, когда используется TCP или SCTP. Это можно решить, используя другой порт (например, 443 и 80) или команду (например, STARTTLS
).