Bagaimana soket menangani router?

1

(Tidak yakin apakah ini harus di situs pertukaran stack unix ...)

Ketika saya membuat socket saya menggunakan IPv4 dan nomor port. Jadi jika saya tahu keduanya, tapi ada router yang diatur (pada jaringan rumah; hanya belajar tentang soket, dan bereksperimen), bagaimana saya mengakses klien di LAN itu? Jadi katakanlah saya berada di seorang teman di komputer mereka, dan saya ingin terhubung ke soket di komputer di rumah saya yang ada di LAN saya, jika saya menggunakan alamat IP publik saya sebagai tuan rumah soket, bagaimana ia tahu untuk pergi ke komputer saya? Apakah saya perlu mengatur port forwarding atau sesuatu di router? (menggunakan C dan Python, jika itu penting)

Marty
sumber
1
Lupakan C / soket. Ambillah buku referensi IP [TCP /] dan mulailah membaca dengan baik :)
pst
superuser aww? betapa menghinanya ... haha. @pst itu untuk sekolah
Marty

Jawaban:

1

Ya, router perlu tahu untuk meneruskan paket yang masuk ke komputer Anda. Ini biasanya dilakukan dengan salah satu cara berikut:

  • Zona Demiliterisasi: router meneruskan semua lalu lintas masuk ke host yang ditunjuk
  • Penerusan port statis, di mana port yang menghadap ke luar tertentu selalu dialihkan ke host tertentu dengan aturan yang ditetapkan pada router
  • Penerusan port dinamis di mana pola lalu lintas masuk atau keluar memicu perutean port menghadap ke luar tertentu untuk host tertentu (misalnya jika mesin membuat koneksi ke host Internet tertentu pada port tertentu, meneruskan kisaran port inbound tertentu ke mesin itu)
  • Universal Plug & Play atau NAT-PMP, di mana mesin di jaringan Anda secara otomatis mengatur penerusan untuk layanan yang di-hosting (biasanya digunakan oleh klien BitTorrent misalnya)
baik hati
sumber
1

Solusi "Mode Mudah" adalah mengatur ipv6 untuk semua komputer yang terlibat. Jika router / ISP tidak / tidak akan mendukungnya, Anda dapat menggunakan SixXs (atau serupa) untuk menyambungkan konektivitas ipv6 ke kotak Anda.

Kemudian, dengan menggunakan alamat ipv6, semuanya seharusnya berfungsi .

Eroen
sumber
menarik, saya harus melihat itu.
Marty
0

Di ujung Anda, router menggunakan NAT sehingga ia tahu port eksternal yang sesuai dengan klien internal mana.

Di ujung lain, semacam penerusan port diperlukan.

Ignacio Vazquez-Abrams
sumber
0

Saya berbicara di sini tentang router NAT yang merupakan mayoritas router rumah.

Jika Anda menghubungkan ke port di komputer lain, itu harus melalui router dengan baik kecuali jika router telah memblokir port itu.

Jika Anda mengharapkan komputer lain terhubung ke komputer Anda, Anda harus membuat pengaturan khusus di router untuk meneruskan port tertentu ke PC Anda.

Pilihan bahasa tidak membuat sedikit perbedaan.

Mark tebusan
sumber
0

Tujuan utama router adalah melakukan routing lapisan internetwork (layer 2/3) (Internet Protocol v4 dan / atau v6 dan ICMP). Soket harus dilakukan dengan layer transport (layer 3/4) dan meskipun router mungkin dapat berinteraksi dengan port (port forwarding menjadi salah satu contoh) kebanyakan tidak peduli (port firewall pada router akan menjadi contoh lain dari di mana ia akan melakukannya, tetapi itu sering dilakukan dengan kotak yang sama sekali berbeda yang disebut firewall ).

conspiritech
sumber