Bạn đã hỏi một câu hỏi hay. Đừng để ai nói với bạn khác.
Đáng tiếc, không có quy tắc chung cho các loại giao thức sử dụng TCP câu các loại giao thức sử dụng UDP.
Quyết định liệu một giao thức sử dụng cái này hay cái kia được đưa ra cho bất kỳ ai đã viết / tạo giao thức để bắt đầu.
Nếu họ không muốn bận tâm đến việc viết hệ thống "phân phối đáng tin cậy" của riêng họ, thì họ có thể chỉ cần sử dụng TCP cung cấp tất cả độ tin cậy một cách bẩm sinh.
Nếu họ nghĩ (biết rõ giao thức của mình) rằng họ có thể viết một hệ thống "phân phối đáng tin cậy" tốt hơn hoặc phù hợp hơn, thì họ có thể xây dựng giao thức đó vào chính giao thức và chỉ cần sử dụng UDP làm phương tiện vận chuyển.
Ví dụ, hãy xem một bản chụp mẫu UDP TFTP , bạn sẽ nhận thấy có các hệ thống xác nhận được tích hợp trong chính TFTP - có cả hệ thống xác nhận bổ sung và hệ thống xác nhận bổ sung trong TCP sẽ chỉ là dự phòng.
Trong khi FTP, chạy trên TCP, không có hệ thống xác nhận tích hợp. Một người dùng chỉ cần yêu cầu một tập tin và người gửi sẽ gửi nó. Có một thông báo "hoàn tất chuyển tập tin", nhưng không có gì đảm bảo đã nhận được từng bit của tập tin. FTP đang dựa vào độ tin cậy của TCP để đảm bảo tập tin được hoàn thành.
Điều đó nói rằng, tôi đã xem qua danh sách các cổng trên trang wiki mà bạn đã liên kết và thấy một số lượng đáng kinh ngạc các giao thức được cho là sử dụng TCP và UDP. Điều này là xa lạ với tôi và tôi chỉ biết rất ít người sử dụng cả hai (cụ thể là DNS). Nhưng có thể có một triển khai TFTP sử dụng TCP và nếu vậy, tôi e rằng tôi không có tiếp xúc với nó.
Theo truyền thống, Hệ thống tên miền (DNS) là giao thức được đề cập khi thảo luận về các giao thức sử dụng cả TCP và UDP. Nó không sử dụng chúng cùng một lúc, làm phiền bạn. Nhưng các chức năng khác nhau trong DNS có thể gọi TCP vs UDP.
Ví dụ: khi thực hiện một yêu cầu giải quyết bản ghi A đơn giản, "yêu cầu" và "phản hồi" rất nhẹ, cả hai đều yêu cầu một gói duy nhất. Như vậy, điều này thường được thực hiện trên UDP.
Nhưng nếu một yêu cầu hoặc phản hồi yêu cầu chuyển lớn hơn (trên một lượng byte nhất định), thì DNS chọn sử dụng TCP để đảm bảo "tất cả các bit" đạt được điều đó. Điều này là phổ biến với các yêu cầu Chuyển vùng đầy đủ.