Câu trả lời ngắn:
Đi theo câu trả lời ở đây . Bạn có thể có hai ứng dụng nghe trên cùng một địa chỉ IP và số cổng, do đó, một trong hai cổng là cổng UDP, trong khi ứng dụng khác là cổng TCP.
Giải trình:
Khái niệm cổng có liên quan trên lớp vận chuyển của ngăn xếp TCP / IP, do đó, miễn là bạn đang sử dụng các giao thức lớp vận chuyển khác nhau của ngăn xếp, bạn có thể có nhiều quá trình nghe trên cùng một <ip-address>:<port>
kết hợp.
Một nghi ngờ mà mọi người có là nếu hai ứng dụng đang chạy trên cùng một <ip-address>:<port>
kết hợp, thì máy khách chạy trên máy từ xa sẽ phân biệt giữa hai ứng dụng như thế nào? Nếu bạn nhìn vào tiêu đề gói lớp IP ( https://en.wikipedia.org/wiki/IPv4#Header ), bạn sẽ thấy các bit 72 đến 79 được sử dụng để xác định giao thức, đây là cách phân biệt có thể được thực hiện.
Tuy nhiên, nếu bạn muốn có hai ứng dụng trên cùng một <ip-address>:<port>
kết hợp TCP , thì câu trả lời là không (Một bài tập thú vị sẽ là khởi chạy hai VM, cung cấp cho chúng cùng một địa chỉ IP, nhưng các địa chỉ MAC khác nhau và xem điều gì sẽ xảy ra - đôi khi bạn sẽ nhận thấy rằng VM1 sẽ nhận được các gói và lần khác VM2 sẽ nhận được các gói - tùy thuộc vào việc làm mới bộ đệm ARP).
Tôi cảm thấy rằng bằng cách làm cho hai ứng dụng chạy trên cùng một <op-address>:<port>
bạn muốn đạt được một số loại cân bằng tải. Để làm điều này, bạn có thể chạy các ứng dụng trên các cổng khác nhau và viết quy tắc bảng IP để phân chia lưu lượng giữa chúng.
Cũng xem câu trả lời của @ user6169806.