Bagaimana port sumber UDP dipilih?

8

Saya baru saja melakukan pengambilan paket dari mesin saya dan menyaring semua koneksi UDP. Saya melihat koneksi tertentu menggunakan apa yang tampaknya menjadi port Sumber UDP yang dihasilkan secara acak, dan koneksi tertentu menggunakan port Sumber yang sama dengan Port Tujuan UDP.

Saya mengerti bahwa koneksi TCP akan mengacak port sumber sehingga respons memiliki port "khusus" untuk merespons. Tetapi bagaimana cara kerjanya dengan UDP?

Saya mencari jawaban otoritatif. Tautan ke RFC (atau yang lainnya) akan sangat dihargai.

Apa yang menentukan port Sumber UDP?

  • Apakah itu dihasilkan secara acak ketika respons diharapkan?
  • Apakah cocok dengan port tujuan ketika tidak ada respons yang diharapkan? (bukannya menggunakan 0 sebagai port sumber)?

Terima kasih.

Eddie
sumber

Jawaban:

6

Tergantung aplikasinya. Sebagai contoh, kernel Linux menerapkan pengacakan port sumber UDP ketika tidak ada port sumber yang ditentukan dalam kernel 2.6.24 .

Jadi, perilaku yang Anda lihat di beberapa koneksi harus berupa aplikasi tertentu yang menentukan port sumber sama dengan port tujuan, sementara yang lain membiarkannya di kernel.

Jeff Strunk
sumber
Jadi apa yang Anda katakan (untuk memastikan saya mengerti) secara default, UDP akan mengacak port sumber (seperti TCP) kecuali layanan / aplikasi itu sendiri memanggil sesuatu yang istimewa, termasuk menggunakan sumber / tujuan port yang cocok. Apakah itu benar?
Eddie
Itu benar, tergantung pada platform.
Jeff Strunk
+1 Ini benar; tidak seperti dengan TCP, di mana Anda tidak memiliki kontrol atas port sumber (karena OS harus memastikan itu unik untuk setiap soket), di UDP aplikasi bebas untuk mengkonfigurasinya ke apa pun yang disukainya. Jika ada komunikasi dua arah, akan "masuk akal" bahwa port sumber harus menjadi port di mana pihak lain harus membalas (dinyatakan dalam Wikipedia di bawah "Nomor port sumber"). Namun, siapa pun yang menulis aplikasi mungkin akan dengan mudah memilih untuk menggunakan nomor acak sebagai gantinya.
Groo
0

Port Ephemeral dihasilkan untuk paket UDP sama dengan TCP.

http://www.hsc.fr/ressources/articles/win_net_srv/ephem_port_alloc.html

RobtheDob
sumber
Tapi tidak selalu, seperti yang ditunjukkan oleh paket capture saya. Apa yang membuat beberapa koneksi menggunakan port sumber UDP acak, dan yang lainnya cocok dengan port tujuan? Dan ketika mereka cocok, bagaimana pengaruhnya terhadap lalu lintas kembali?
Eddie
Jawaban ini secara khusus menjelaskan perilaku Windows. Jawaban lainnya adalah tentang perilaku Linux. Dengan asumsi ini masih up to date, sepertinya Windows tidak mengacak secara default seperti halnya Linux.
thomasrutter