Apakah server TCP terbatas untuk 65535 klien?

10

Orang mungkin berpikir bahwa ini membatasi jumlah klien yang dapat dipelihara oleh satu komputer / aplikasi.

Seseorang dapat mengawasi server web, dan diminta untuk memastikan bahwa ia dapat meningkatkan skala ke tingkat penggunaan yang diproyeksikan melampaui ~ 65k koneksi.

Untuk perangkat lunak ada beberapa pertimbangan terpisah ( /programming/1575453/how-many-socket-connections-can-a-web-server-handle )

Todd
sumber
Apakah ada jawaban yang membantu Anda? Jika demikian, Anda harus menerima jawabannya sehingga pertanyaan tidak terus muncul selamanya, mencari jawaban. Atau, Anda bisa memberikan dan menerima jawaban Anda sendiri.
Ron Maupin

Jawaban:

16

Jawaban singkatnya adalah tidak, itu bukan batasnya.

Bidang Port TCP adalah 2x byte dan menampung jumlah 65536. Jumlah ini membatasi jumlah alamat yang bisa dimiliki server . Tetapi ini tidak membatasi jumlah klien hingga ~ 64rb. Setiap Paket TCP memiliki dua bidang Port satu untuk tujuan dan satu untuk sumber (serta dua alamat IP).

Koneksi TCP yang diberikan adalah tupel dari sumber dan tujuan, masing-masing dengan alamat IP dan nomor Port. Tujuan (sisi server) tetap tetap, tetapi alamat sumber (sisi klien) dapat bervariasi di antara Port DAN Alamat IP.

Mempertimbangkan:

  • Server IP - 100.0.0.1 (Tetap)
  • Port Server - 80 (Tetap)
  • IP Klien - 0.0.0.0 - 255.255.255.255 (Kisaran 32-bit)
  • Port Klien - 0 - 65535 (Rentang 16-bit)

Ya, klien (atau kantor) dengan satu alamat IP, hanya dapat terhubung ke server Anda 65535 kali secara bersamaan, tetapi jika klien itu (atau kantor) memiliki beberapa alamat IPv4, mereka dapat menghubungkan banyak kelipatan yang lebih banyak.

Biasanya, ada jutaan alamat IP yang digunakan di banyak perangkat klien, dan jika mereka hanya menggunakan port sumber tunggal untuk terhubung ke port server tunggal Anda , maka Anda sudah dapat melihat potensi untuk melampaui angka 65536.

Batas matematis teoritis dari protokol IP / TCP adalah 2 ^ 32 * 2 ^ 16. Praktis jumlah alamat IP lebih rendah - Anda perlu mengurangi beberapa blok IP yang dipesan. Secara praktis, jumlah port sisi klien lebih rendah karena komputer klien tipikal akan menjalankan beberapa aplikasi yang menghubungkan ke server lain juga mengurangi kumpulan port TCP, tetapi kumpulan ini jarang digunakan - setelah sesi TCP telah mengakhiri nomor Port tersedia di kolam lagi.

Catatan: Untuk IPv6, jumlah alamat IP naik, tetapi bidang Port untuk TCP tetap berukuran sama.

Todd
sumber