Jawaban:
Kami katakan TCP segment
adalah unit data protokol yang terdiri dari tajuk TCP dan sepotong data aplikasi (paket) yang berasal dari Lapisan Aplikasi (atas). Transport layer data umumnya dinamai segment
dan unit data layer jaringan dinamai datagram
tetapi ketika kita menggunakan UDP sebagai protokol layer transport, kita tidak mengatakan UDP segment
, sebaliknya, kita katakan UDP datagram
. Saya pikir ini karena kita tidak melakukan segmentasi unit data UDP (segmentasi dibuat di lapisan transport ketika kita menggunakan TCP).
TCP RFC asli agak kabur dengan cara menggunakan istilah "segmen".
Dalam beberapa kasus, istilah "segmen" hanya merujuk pada bagian saat ini dari aliran data aplikasi yang sedang dikirim, yang mengecualikan tajuk TCP. Misalnya, TCP "Maximum Segment Size" (MSS) adalah ukuran maksimum dari potongan data aplikasi dalam pesan ini, tidak termasuk header TCP.
Tetapi dalam kasus lain, istilah "segmen" mencakup seluruh pesan TCP, termasuk tajuk TCP. Bahkan dalam setidaknya satu kasus, spesifikasi menyebutkan segmen TCP tanpa data aplikasi (seperti Acks biasa).
Satu pesan IP lengkap adalah "datagram".
IP RFC asli merujuk pesan tautan-lapisan sebagai "paket". Datagram IP dapat dipecah menjadi "fragmen" agar sesuai dengan batas ukuran paket pada jaringan paket kecil.
Lapisan tautan IEEE 802.3 / Ethernet mengacu pada satu transmisi lapisan fisik bersebelahan sebagai "paket". Bagian tautan data MAC dari paket disebut "bingkai". Frame dimulai dengan alamat MAC tujuan dan diakhiri dengan Frame Check Sequence. Bagian dari frame yang mungkin berisi datagram IP (atau fragmennya) disebut "bidang Data Klien MAC".
Jadi, secara teknis, tidak ada yang namanya "paket TCP" atau "paket IP". Paket adalah istilah dari lapisan di bawah IP. TCP memiliki "segmen", dan IP memiliki "datagram".
Header TCP, juga disebut sebagai "header segmen", dan payload, atau data, atau "data segmen" membentuk segmen TCP, dengan berbagai ukuran.
Segmen TCP disebut Datagram. Biasanya, Segmen atau datagram adalah Paket. Ketika datagram atau paket diproses oleh lapisan Jaringan, ia menambahkan Header IP ke data dan itu menjadi Paket IP.
Transport layer mengelompokkan data menjadi unit yang lebih kecil yang disebut Segmen, datagram, atau yang disebut paket. Tetapi kami biasanya menyebutnya sebagai Segmen.
Segmen tcp hanya sebuah konsep, ini berbeda dengan defragment ip
ketika Anda mengirim data yang lebih besar dari ip mtu, itu dimasukkan ke dalam satu paket ip, tetapi lapisan ip kemudian menemukan paket ip terlalu lama untuk ditransmisikan, sehingga akan membagi paket besar menjadi beberapa bagian, masing-masing memiliki yang sama Identifier tetapi dengan offset dan panjang data yang berbeda. sisi penerima bertanggung jawab untuk mengumpulkan semua bagian, setelah menerima semua bagian itu akan merakit kembali semua bagian menjadi satu paket ip keseluruhan dan mendorongnya ke lapisan protokol atas.
tetapi lapisan tcp memiliki perilaku yang berbeda. ketika Anda mengirim data yang cukup besar, lapisan tcp tidak akan memasukkan data ke dalam satu paket tcp kemudian membaginya menjadi beberapa bagian (tetapi ip tidak), itu mengambil bagian dari data mentah menjadi satu paket tcp dan kemudian mendorong paket tcp ke lapisan ip, panjang paket tcp ditentukan oleh mss, kemudian akan mengambil bagian lain dari data sisanya ke paket tcp lain, dan ulangi prosesnya sampai semua data dikirimkan.
jika tcp tidak menggunakan mss, itu mengerikan. anggap Anda mengirim data yang lebih besar dari mss, itu akan dimasukkan ke dalam hanya satu paket tcp (data tidak dibagi menjadi potongan-potongan kecil karena mss tidak digunakan), paket tcp lebih besar dari ip mtu, sehingga ip akan membagi tcp paket menjadi potongan-potongan. paket tcp akan mentransmisikan kembali jika salah satu bagian hilang, buang waktu dan bandwidth
ps: tcp_mss = ip_mtu - tcp_header
Header tidak terdiri dari segmen. Header selalu memiliki ukuran yang sama dan harus lengkap. Jika tidak, paket tidak dapat diterjemahkan.
Apa yang Anda sebut sebagai "Segmen" adalah keseluruhan "paket" yang kemudian dikombinasikan dengan yang lain ke aliran TCP. Lihat:
Protokol Kontrol Transmisi menerima data dari aliran data, 'mengelompokkannya menjadi potongan-potongan, dan menambahkan header TCP yang membuat segmen TCP.
TCP menerima data dari lapisan aplikasi dan 'memotong' data ini menjadi beberapa segmen data; potongan data asli dengan header TCP yang ditambahkan. Bagian dari header ini adalah nomor urut yang digunakan oleh protokol TCP pada sisi penerima untuk menempatkan semua segmen yang diterima (minus header) dalam urutan yang benar dan merakit kembali data asli yang kemudian ditransfer ke lapisan aplikasi .
Jadi, untuk menjawab pertanyaanmu; istilah 'paket TCP' tidak benar-benar ada. Ini disebut 'segmen' yang terdiri dari header dan bagian data. Header itu sendiri terdiri dari beberapa 'bidang' yang berisi, antara lain, nomor urut, checksum dan nomor port sumber dan tujuan.
Ketika Anda mengirim data yang dianggap sebagai koneksi TCP, jumlah data yang Anda kirim mungkin melebihi ukuran maksimum byte yang diizinkan oleh koneksi dalam satu paket. Jumlah ini "Ukuran Segmen Maksimum" (juga disebut MSS) "dinegosiasikan" (1) pada waktu koneksi antara dua titik akhir TCP (klien dan server). Protokol level 4 OSI TCP bertanggung jawab atas pencar / berkumpul. Ini berarti aliran data Anda dipecah menjadi bagian-bagian yang lebih kecil (disebut segmen) dan dikirim secara terpisah melalui jaringan. Di sisi lain, lapisan TCP bertanggung jawab untuk mengumpulkan kembali paket dengan urutan yang benar untuk mereformasi aliran seperti yang dikirimkan. Tidak ada yang bisa memberi tahu Anda bahwa segmen akan tiba di tujuan dalam urutan yang sama selain di keberangkatan. Itu juga mengapa paket diberi nomor. Lebih, paket diakui satu per satu secara terpisah (2) oleh penerima tetapi kadang-kadang paket dapat hilang. Maka tidak ada ACK yang akan dikembalikan dari tujuan paket ke emitor. Maka emitor harus mengirim ulang (yang juga merupakan peran TCP). Terkadang paket diterima dengan benar tetapi ack tidak diterima oleh emitor (paket hilang lagi). Dalam kasus seperti itu, emitor akan mengirim ulang, tetapi penerima melihat bahwa ia sudah menerimanya (itu adalah paket Dup) dan menghilangkannya tetapi mengirim ack ke pengirim.
Juga untuk meningkatkan throughput, emitor dapat mengirim beberapa paket secara seri dan tidak harus menunggu ack sebelumnya untuk mengirim paket berikutnya. Ini juga merupakan bagian dari protokol TCP dan disebut sliding windows. Jumlah paket yang dikirim tertunda untuk ACK terbatas.
(1) Faktanya, tidak ada negosiasi sama sekali, masing-masing titik akhir memberi tahu Ukuran Maksimum yang bisa dia tangani. Nilai ini tidak termasuk 20 byte dari IP Header, tidak juga 20 byte dari TCP Header. (2) beberapa paket juga dapat diakui oleh ACK tunggal.
Ingatlah bahwa Datagram adalah data enkapsulasi yang dikirim pada jaringan IP atau menggunakan protokol tanpa koneksi seperti UDP. Paket adalah data yang dienkapsulasi untuk protokol berorientasi koneksi seperti TCP. Segmen adalah bagian dari aliran data yang dikirim pada TCP. Lihat W.Richard Stevens "TCP / IP diilustrasikan" untuk memiliki penjelasan yang jauh lebih baik tentang semua hal ini.
Istilah "umum" untuk hal-hal seperti ini adalah Protocol Data Unit, atau PDU.
LAYER # - OSI NAME - COMMON PROTOCOL OR USE - PDU NAME
------- ------------ ---------------------- --------------------------
Layer 1 - Physical - Transceiver - bits, or a physical signal
Layer 2 - Datalink - Ethernet - frame
Layer 3 - Network - IP - packet
Layer 4 - Transport - TCP - segment
Layer 5 - Session - SIP - data, request, or response
Layer 6 - Presentation - Encryption/compression - data, request, or response
Layer 7 - Application - HTTP - data, request, or response
Hal-hal semacam menjadi buram dengan protokol khusus dari lapisan 4 dan ke atas (misalnya, hingga hari ini saya tidak tahu apa pun yang benar-benar murni protokol sesi, dan benar-benar tidak ada yang namanya protokol "presentasi" yang umum tapi itu lapisan yang hampir terpisah dalam banyak tumpukan perangkat lunak / komunikasi).
Juga, seperti yang disebutkan sebelumnya, masing-masing PDU ini memiliki header yang berbeda dari payload , atau datanya. Header memiliki informasi tentang data dan mungkin sebuah checksum untuk verifikasi di ujung lainnya.