Rangkaian Linux dan TCP/IP untuk Pembangun · Pelajaran

Asas TCP dan UDP

Bezakan TCP (boleh dipercayai, berorientasikan sambungan) dengan UDP (tidak boleh dipercayai, tanpa sambungan) dan fahami kes penggunaan masing-masing.

Pelajaran 3 daripada 412 langkah

Asas TCP dan UDP ialah pelajaran Rangkaian Linux dan TCP/IP untuk Pembangun percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Rangkaian Linux dan TCP/IP untuk Pembangun, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Rangkaian Linux dan TCP/IP untuk Pembangun merangkumi sejumlah 4 pelajaran.

Kenali TCP dan UDP

Apabila data bergerak merentasi rangkaian, data menggunakan peraturan atau 'protokol' yang berbeza. Pada lapisan Pengangkutan model TCP/IP, dua protokol utama mengendalikan cara aplikasi menghantar dan menerima data: TCP dan UDP.

Kedua-duanya memindahkan data, tetapi melakukannya dengan cara yang pada asasnya berbeza, dan setiap satunya sesuai untuk tugas tertentu.

TCP: Rakan Kongsi yang Boleh Dipercayai

TCP bermaksud Protokol Kawalan Penghantaran. Bayangkan TCP sebagai pejabat pos yang sangat teliti dan menjamin surat Anda sampai, mengikut turutan serta tanpa ralat.

  • TCP berorientasikan sambungan: Sambungan mesti diwujudkan sebelum data dihantar.
  • TCP boleh dipercayai: TCP menjamin penghantaran data.
  • TCP memastikan pemindahan data mengikut turutan dan semakan ralat.

Jabat Tangan Sambungan TCP

Sebelum TCP menghantar sebarang data aplikasi, TCP melaksanakan 'jabat tangan tiga hala' untuk mewujudkan sambungan:

  1. SYN (Segerak): Klien meminta untuk connect.
  2. SYN-ACK (Segerak-Pengesahan): Pelayan mengesahkan dan bersetuju.
  3. ACK (Pengesahan): Klien mengesahkan, dan sambungan sedia digunakan.

Jabat tangan ini memastikan kedua-dua pihak bersedia untuk berkomunikasi dengan boleh dipercayai.

TCP: Menjamin Penghantaran

TCP menggunakan beberapa mekanisme untuk memastikan kebolehpercayaan:

  • Pengesahan (ACK): Penerima menghantar ACK untuk data yang diterima. Jika tiada ACK, penghantar menghantar semula data.
  • Nombor Urutan: Paket data dinomborkan bagi memastikan paket tiba mengikut turutan yang betul dan untuk mengesan paket yang hilang.
  • Kawalan Aliran: Menghalang penghantar yang laju daripada membebankan penerima yang perlahan.
  • Kawalan Kesesakan: Mengurus trafik rangkaian bagi mengelakkan rangkaian terlebih beban.

Klien TCP: Tinjauan Ringkas

Petikan kod Python ini menunjukkan cara soket klien TCP dicipta dan cuba membuat sambungan. Perhatikan jenis SOCK_STREAM, yang menandakan TCP.

Jalankannya untuk melihat percubaan sambungan!

import socket

# Create a TCP (Stream) socket
# AF_INET for IPv4, SOCK_STREAM for TCP
tcp_client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# Attempt to connect to a server
# This establishes the 3-way handshake
server_address = ('localhost', 8080)
print(f"Attempting TCP connection to {server_address[0]}:{server_address[1]}...")

try:
    tcp_client_socket.connect(server_address)
    print("TCP connection established.")
    message = b"Hello TCP!"
    tcp_client_socket.sendall(message)
    print(f"Sent: '{message.decode()}'")
    # In a real app, you'd also receive a response here
except ConnectionRefusedError:
    print("Connection refused. No TCP server running at that address.")
except Exception as e:
    print(f"An error occurred: {e}")
finally:
    tcp_client_socket.close()
    print("TCP socket closed.")

UDP: Utusan yang Pantas

UDP bermaksud Protokol Datagram Pengguna. Tidak seperti TCP, UDP ibarat menghantar poskad: Anda menghantarnya dan berharap poskad itu sampai, tetapi tiada jaminan atau penjejakan.

  • UDP tanpa sambungan: Tiada sambungan diwujudkan sebelum penghantaran.
  • UDP tidak boleh dipercayai: Tiada jaminan tentang penghantaran, turutan atau penghantaran tanpa ralat.
  • UDP mengutamakan kelajuan dan overhed rendah berbanding kebolehpercayaan.

UDP: Tiada Jabat Tangan, Tiada ACK

Kesederhanaan UDP berpunca daripada kekurangan cirinya:

  • Tiada jabat tangan tiga hala untuk menyediakan sambungan.
  • Tiada pengesahan (ACK) untuk data yang diterima.
  • Tiada penghantaran semula paket yang hilang.
  • Tiada kawalan aliran atau kesesakan terbina dalam.

Ini bermakna overhed lebih rendah, menjadikannya jauh lebih pantas untuk aplikasi tertentu.

Klien UDP: Tinjauan Ringkas

Kod Python ini menunjukkan klien UDP menghantar data. Perhatikan jenis SOCK_DGRAM, yang menandakan UDP. Oleh sebab UDP tanpa sambungan, data boleh dihantar secara terus.

Jalankannya untuk melihat datagram UDP dihantar!

import socket

# Create a UDP (Datagram) socket
# AF_INET for IPv4, SOCK_DGRAM for UDP
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

# UDP is connectionless.
# You can send data directly without establishing a connection.
target_address = ('localhost', 9090)
message = b"Hello UDP!"
print(f"UDP socket created.")
print(f"Sending '{message.decode()}' to {target_address[0]}:{target_address[1]}...")

# Send the data
udp_socket.sendto(message, target_address)

print("UDP datagram sent.")
udp_socket.close()
print("UDP socket closed.")

TCP berbanding UDP: Perbezaan Utama

Berikut ialah perbandingan ringkas antara kedua-duanya:

  • Sambungan: TCP berorientasikan sambungan; UDP tanpa sambungan.
  • Kebolehpercayaan: TCP menjamin penghantaran; UDP menawarkan penghantaran dengan usaha terbaik.
  • Turutan: TCP memastikan data mengikut turutan; UDP tidak.
  • Kelajuan: UDP biasanya lebih pantas kerana overhednya lebih rendah; TCP lebih perlahan kerana mekanisme kebolehpercayaannya.
  • Overhed: TCP mempunyai overhed lebih tinggi; UDP mempunyai overhed lebih rendah.

Bilakah Perlu Menggunakan TCP atau UDP?

Pemilihan antara TCP dan UDP bergantung pada keperluan aplikasi Anda:

  • Gunakan TCP untuk: Pelayaran web (HTTP/HTTPS), e-mel (SMTP, IMAP, POP3), Pemindahan Fail (FTP), Secure Shell (SSH). Apabila integriti dan turutan data amat penting.
  • Gunakan UDP untuk: Permainan dalam talian, penstriman video/audio, Suara melalui IP (VoIP), Sistem Nama Domain (DNS). Apabila kelajuan dan latensi rendah lebih penting daripada penghantaran yang dijamin.

Semakan Pantas: Pilihan Protokol

Berdasarkan perkara yang telah Anda pelajari, pernyataan yang manakah berikut menerangkan UDP dengan betul?

Imbas Kembali: Asas TCP dan UDP

Anda telah meneroka perbezaan asas antara TCP dan UDP!

  • TCP boleh dipercayai, berorientasikan sambungan serta memastikan integriti dan turutan data, tetapi mempunyai overhed yang lebih tinggi.
  • UDP pantas, tanpa sambungan dan mempunyai overhed yang rendah, tetapi tidak menawarkan jaminan penghantaran.

Memahami perbezaan ini penting untuk mereka bentuk dan menyelesaikan masalah aplikasi rangkaian. Seterusnya, Anda akan menggunakan konsep ini dalam senario dunia sebenar!

Percuma untuk bermula

Pelajari Rangkaian Linux dan TCP/IP untuk Pembangun dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
12
Pelajaran
48

Soalan Lazim

Adakah pelajaran “Asas TCP dan UDP” percuma?

Ya — teks penuh “Asas TCP dan UDP” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Rangkaian Linux dan TCP/IP untuk Pembangun, tingkat taraf kepada CoddyKit PRO. Kursus Rangkaian Linux dan TCP/IP untuk Pembangun merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Asas TCP dan UDP”?

Bezakan TCP (boleh dipercayai, berorientasikan sambungan) dengan UDP (tidak boleh dipercayai, tanpa sambungan) dan fahami kes penggunaan masing-masing. Anda berlatih Rangkaian Linux dan TCP/IP untuk Pembangun menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Rangkaian Linux dan TCP/IP untuk Pembangun?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Rangkaian Linux dan TCP/IP untuk Pembangun di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.

Berapa lamakah pelajaran “Asas TCP dan UDP” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Rangkaian Linux dan TCP/IP untuk Pembangun ini?

Ya. Setiap pelajaran Rangkaian Linux dan TCP/IP untuk Pembangun menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Memahami Model TCP/IP
  2. Pengalamatan IP dan Pembahagian Subrangkaian
  3. Asas TCP dan UDP
  4. ICMP serta Peranan Ping dan Traceroute
← Kembali ke Rangkaian Linux dan TCP/IP untuk Pembangun