ID Artikel: 823764 - Kajian Terakhir: 07 Oktober 2011 - Revisi: 2.0 Kinerja lambat terjadi ketika Anda menyalin data ke TCP server dengan menggunakan program Windows soket API
Pada Halaman iniGEJALAKetika Anda menjalankan program yang menggunakan soket Windows API, Anda akan mengalami kinerja lambat ketika Anda menyalin data ke TCP server. Jika Anda membuat jejak jaringan dengan sniffer jaringan seperti Microsoft Monitor Jaringan, TCP server mengirimkan TCP ACK segmen terakhir segmen TCP dalam aliran data TCP dalam pengakuan tertunda timer (juga dikenal sebagai tertunda ACK timer). Secara default, untuk sistem operasi Windows, nilai untuk timer ini adalah 200 milidetik (ms). Aliran data khas untuk mengirimkan 64 kilobyte (KB) data terlihat mirip dengan urutan berikut: Client->Server 1460 bytes Client->Server 1460 bytes Server->Client ACK Client->Server 1460 bytes Client->Server 1460 bytes Server->Client ACK .... Client->Server 1460 bytes Client->Server 1460 bytes Server->Client ACK-PUSH Client->Server 1296 bytes -> delayed ACK 200 ms PENYEBABMasalah ini terjadi karena perilaku arsitektur Windows soket API dan Afd.sys. Masalah ini terjadi jika semua kondisi berikut ini benar:
TEKNIK PEMECAHAN MASALAHUntuk mengatasi masalah ini, gunakan salah satu metode berikut. Metode 1: Menggunakan soket menghalangiMasalah ini hanya terjadi dengan non-blocking soket. Ketika Anda menggunakan soket pemblokiran, masalah ini terjadi karena Afd.sys menangani buffer soket berbeda. Untuk informasi lebih lanjut tentang memblokir dan non-blocking socket pemrograman, lihat dokumentasi Microsoft Platform SDK.Metode 2: Membuat soket Kirim Buffer ukuran lebih besar daripada ukuran Buffer Program KirimUntuk mengubah soket Kirim buffer, menggunakan soket Windows getsockopt fungsi untuk menentukan saat ini soket Kirim ukuran buffer (SO_SNDBUF), dan kemudian gunakan setsockopt fungsi untuk menetapkan soket mengirim ukuran buffer. Ketika Anda selesai, nilai SO_SNDBUF harus setidaknya 1 byte yang lebih besar daripada ukuran buffer Kirim program.Memodifikasi Kirim panggilan atau WSASend panggilan untuk menentukan ukuran buffer setidaknya 1 byte lebih kecil daripada nilai SO_SNDBUF. Dalam contoh sebelumnya di bagian "Sebab" dari artikel ini, Anda dapat mengubah setsockopt panggilan ke nilai berikut, Metode 3: Mengubah pengaturan TCP/IP pada TCP ServerPenting Bagian ini, metode, atau tugas yang memuat langkah-langkah yang memberitahu Anda bagaimana memodifikasi registri. Namun, masalah yang serius dapat terjadi apabila Anda salah memodifikasi registri. Oleh karena itu, pastikan Anda mengikuti langkah-langkah tersebut dengan seksama. Untuk perlindungan tambahan, buat cadangan registri sebelum Anda memodifikasi. Kemudian, Anda dapat memulihkan registri apabila terjadi masalah. Untuk informasi selengkapnya tentang cara membuat cadangan dan memulihkan registri, klik nomor artikel berikut ini untuk melihat artikel di Pangkalan Pengetahuan Microsoft:322756
(http://support.microsoft.com/kb/322756/
)
Cara membuat cadangan dan memulihkan registri di Windows Mengubah pengaturan TCP/IP pada TCP server untuk segera mengakui masuk segmen TCP. Solusi ini bekerja lebih baik di lingkungan yang memiliki besar klien instalasi dasar dan di mana Anda tidak dapat mengubah perilaku program. Untuk skenario di mana server TCP jauh berjalan pada server berbasis Windows, Anda harus memodifikasi registri server jauh. Untuk sistem operasi lain, lihat dokumentasi sistem operasi untuk informasi tentang cara mengubah timer pengakuan tertunda. Pada server yang menjalankan Windows 2000, ikuti langkah berikut:
Metode 4: Mengubah perilaku penyangga di Afd.sys untuk non-blocking soketPenting Bagian ini, metode, atau tugas yang memuat langkah-langkah yang memberitahu Anda bagaimana memodifikasi registri. Namun, masalah yang serius dapat terjadi apabila Anda salah memodifikasi registri. Oleh karena itu, pastikan Anda mengikuti langkah-langkah tersebut dengan seksama. Untuk perlindungan tambahan, buat cadangan registri sebelum Anda memodifikasi. Kemudian, Anda dapat memulihkan registri apabila terjadi masalah. Untuk informasi selengkapnya tentang cara membuat cadangan dan memulihkan registri, klik nomor artikel berikut ini untuk melihat artikel di Pangkalan Pengetahuan Microsoft:322756
(http://support.microsoft.com/kb/322756/
)
Cara membuat cadangan dan memulihkan registri di Windows Catatan Ini kunci registri ini hanya tersedia untuk Windows Server 2003 dengan Paket Layanan 1 dan paket layanan berikutnya.
STATUSMicrosoft telah mengkonfirmasi bahwa ini adalah masalah di dalam produk Microsoft sebagaimana tercantum di bagian "Berlaku untuk". REFERENSI328890
(http://support.microsoft.com/kb/328890/
)
Entri registri baru untuk mengendalikan perilaku TCP pengakuan (ACK) pada Windows XP dan Windows Server 2003 Berlaku bagi:
Penerjemahan MesinPENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah. Klik disini untuk melihat versi Inggris dari artikel ini:823764
(http://support.microsoft.com/kb/823764/en-us/
)
| Sumber Lain Situs Pendukung Lain
KomunitasCari Bantuan SekarangTerjemahan Artikel
|






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email


Kembali ke atas
