Cổng TCP / UDP so với Chuyển tiếp cổng


-3

Một trong những điều mà tôi cảm thấy tôi thiếu hiểu biết đủ tốt là các giao thức mạng / internet. Vì vậy, có lẽ câu hỏi của tôi là ngu ngốc.

Nếu tôi hiểu chính xác, các cổng TCP / UDP là "cục bộ" đối với phần mềm máy chủ và máy khách và chỉ liên quan trên các thiết bị duy trì kết nối; và các cổng được xử lý theo địa chỉ IP bên ngoài có dấu hai chấm là "cục bộ" với bộ định tuyến ở chỗ chúng chỉ liên quan đến bộ định tuyến và liên quan đến việc tìm kiếm một thiết bị không có địa chỉ bên ngoài duy nhất.


Vì vậy, nếu tôi đúng, tôi chỉ muốn chắc chắn, nếu bạn có một hàm được xác định:

TCPserver.listen(string ip, int port)

Sau đó tôi có thể làm (tùy thuộc vào việc thực hiện khóa học):

TCPserver.listen("123.456.789:18735", 1337)

Và hai cổng sẽ không liên quan gì đến nhau và không bao giờ có thể can thiệp lẫn nhau?


Nếu tôi không đúng, tôi sẽ làm gì sai?


-1 Bạn viết "If I understand it correctly, TCP/UDP ports are "local" to the server and client software"CÁI GÌ? "and are only relevant on the devices maintaining the connection"GÌ? "and the ports tacked on"GÌ? "and the ports tacked on to external IP addresses with a colon are 'local' to the router in that they are only relevant to the router "KHÔNG, và CÁI GÌ? "and in the interest of finding a device without a unique external address" GÌ? Ai đang cố gắng tìm các thiết bị có địa chỉ IP trùng lặp. Tại sao bạn có thiết bị w / trùng lặp địa chỉ IP? Wat on earth ave u bin readin
barlop 18/8/2016

Ý bạn là gì nếu bạn nói rằng các cổng TCP / UDP không cục bộ với máy chủ? Ý bạn là gì nếu chúng có liên quan đến các thiết bị "duy trì" kết nối. "Duy trì kết nối" trên trái đất có nghĩa là gì. Bạn đã viết một số lượng vô nghĩa không thể tin được, nó là quá xa thực tế. Giống như bạn đang sử dụng trí tưởng tượng của mình.
barlop

Và dòng này TCPserver.listen("123.456.789:18735", 1337)có thể sai .. hoàn toàn có thể là 127.0.0.1 hoặc 0.0.0.0 và không có số cổng trong phạm vi có lẽ chỉ nên là IP. Đây là ngôn ngữ gì? Và 1337hacker Kiddie có nói không, điều này thường không dựa trên sự hiểu biết đúng đắn.
barlop

như trong, rất có thể tham số đầu tiên cho chức năng đó chỉ nên là một IP
barlop

Câu trả lời:


0

Người nghe là trên máy cục bộ. IP được chỉ định cho người nghe cho nó biết giao diện phần cứng (mạng) nào sẽ xem, rõ ràng trên cổng được chỉ định.

Nếu người nghe được cấu hình trên một địa chỉ bên ngoài (bên ngoài máy, như không localhost), thì có thể nhận được yêu cầu đến từ các máy khác trên mạng.

Trong hầu hết các trường hợp, dường như là trường hợp của bạn, sẽ có một bộ định tuyến được cài đặt giữa kết nối Internet và máy tính.

Công việc của bộ định tuyến là hướng lưu lượng truy cập đến máy thích hợp. Do đó, để cung cấp dịch vụ của bạn từ Internet, bạn cần phải nói với bộ định tuyến của mình rằng một yêu cầu trên IP công cộng (WAN / Internet) phải được chuyển đến đúng máy chủ.

Điều này được thực hiện bằng cách cho phép chuyển tiếp cổng trong cấu hình của bộ định tuyến, chọn cổng công cộng và IP riêng và cổng đích.

Dưới đây là một ví dụ đơn giản về thiết lập máy chủ web sẽ bỏ qua khối ISP của 80 yêu cầu cổng đến:

WAN/public IP: 1.2.3.4
LAN: 192.168.0.0/24 (router's IP would typically be 192.168.0.1)
web server: 192.168.0.10:80

Vì cổng 80 bị ISP chặn, thay vào đó, chúng tôi sẽ sử dụng cổng 8080, vì vậy liên kết của chúng tôi sẽ là http://1.2.3.4:8080. Trong bộ định tuyến, chúng tôi sẽ chuyển tiếp cổng 8080 tới 192.168.0.10:80.


Vì vậy, nếu tôi đang lưu trữ một máy chủ trên một thiết bị được kết nối với bộ định tuyến có thiết lập chuyển tiếp cổng, thì khách hàng cần biết gì để gửi tin nhắn. Có thể socket.send("public.ip:port", "message")là đủ, hoặc họ cũng sẽ cần chỉ định một cổng TCP?
hugabor

Lệnh của bạn đã bao gồm một cổng. Trình xử lý kết nối của hệ điều hành máy khách sẽ chỉ định một cổng cục bộ để quản lý kết nối đi nhưng ứng dụng của bạn không cần phải biết điều đó. Lưu ý rằng gửi dữ liệu trên một ổ cắm là một hoạt động cấp thấp hơn nhiều so với gửi tin nhắn trò chuyện chẳng hạn. Để có ích, nó cần hoạt động ở tầng ứng dụng, do đó tuân theo một giao thức nhất định như FTP, HTTP, SSH, v.v.
Julie Pelletier

Nếu máy khách không thể nhắm mục tiêu một cổng TCP và cổng được xử lý trên ip công cộng chỉ dành cho một bộ định tuyến tiềm năng, sau đó chuyển tiếp tin nhắn, thì "nghe một cổng" đạt được điều gì?
hugabor

Tôi đã giải thích rằng trong câu trả lời của tôi. Máy chủ đằng sau bộ định tuyến lắng nghe các cổng cụ thể cho dịch vụ đó. Các cổng khác nhau thường sẽ được sử dụng cho máy để cung cấp các dịch vụ khác nhau.
Julie Pelletier

Không ai "nghe một cổng" Một máy tính có thể nghe TRÊN một cổng. Thuật ngữ chính thức, tiêu chuẩn là đủ tệ như vậy, không có lý do gì để đi chệch khỏi nó và làm cho nó thậm chí còn tồi tệ hơn
barlop
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.