Dasar-dasar Jaringan komputer atau komunikasi data adalah seperangkat ilmu yang bersangkutan dengan komunikasi antara sistem komputer atau perangkat. Ini memiliki persyaratan dan prinsip-prinsip dasar. Sejak simpul pertama ARPANET (Advanced Research Project Agency Network, yang kemudian berganti nama menjadi Internet) didirikan pada tahun 1969, teknologi switching packet store dan forward membentuk arsitektur Internet, yang merupakan solusi untuk memenuhi persyaratan dan prinsip - prinsip dasar
komunikasi data Solusi ini digabungkan dengan protokol TCP / IP suite di tahun 1983 dan terus berkembang sesudahnya.
Internet, atau paket protokol TCP / IP, hanyalah salah satu solusi yang mungkin kebetulan yang dominan. Ada solusi lain yang juga memenuhi persyaratan dan memenuhi prinsip-prinsip dasar komunikasi data. Sebagai contoh, X.25 dan Open System Interconnection (OSI) juga dikembangkan pada tahun 1970an namun akhirnya digantikan oleh TCP / IP. Asynchronous Transfer Mode (ATM) sekali populer di tahun 1990an, memiliki kesulitan kompatibilitas dengan TCP / IP dan dengan demikian memudar.
Multi-Protocol Label Switching (MPLS) bertahan karena dirancang dari mulai saling melengkapi TCP / IP. Demikian pula, ada banyak implementasi solusi Internet pada segala macam sistem komputer atau perangkat. Diantaranya, open-source implementations share semangat terbuka dan bottom-up yang sama dengan arsitektur Internet, menawarkan kepada publik akses praktis ke kode sumber perangkat lunak. Dalam pendekatan bottom-up, relawan menyumbangkan desain atau implementasinya sambil mencari dukungan dan konsensus dari komunitas pengembang, berbeda dengan pendekatan top-down didorong oleh otoritas. Menjadi open source dan tersedia secara gratis, implementasi ini berfungsi sebagai contoh yang solid bagaimana mekanisme jaringan bekerja dalam rincian spesifik.
1.1 PERSYARATAN UNTUK JARINGAN KOMPUTERKumpulan persyaratan untuk jaringan komputer dapat diterjemahkan ke dalam satu set.
Tujuan yang harus dipenuhi saat merancang, mengimplementasikan, dan mengoperasikan komputer jaringan. Selama bertahun-tahun, set ini memang berubah secara bertahap, namun persyaratan utamanya tetap sama:"menghubungkan semakin banyak pengguna dan aplikasi melalui berbagai media bersama dan perangkat sehingga mereka dapat berkomunikasi satu dengan yang lain. "Kalimat ini menunjukkan tiga persyaratan untuk komunikasi data dan isu-isu yang relevan yang harus ditangani:
(1)konektivitas: siapa dan bagaimana menghubungkan,
(2) skalabilitas: berapa banyak yang bisa terhubung, dan
(3) pembagian sumber daya: bagaimana memanfaatkan konektivitas. Bagian ini menyajikan persyaratan dan pembahasan inti ini Solusi generik untuk memenuhi persyaratan di sebagian besar jaringan komputer (tidak hanya Internet).
1.1.1 Connectivity: Node, Link, Path
- Node: Host atau Perantara
Sebuah simpul dalam jaringan komputer bisa berupa komputer host atau perantara
perangkat interkoneksi Yang pertama adalah komputer titik akhir yang menghosting pengguna dan aplikasi, sementara yang terakhir berfungsi sebagai titik perantara dengan lebih dari satu link interface untuk interkoneksi komputer host atau perantara lainnya. Perangkat seperti itu Sebagai hub, switch, router, dan gateway adalah contoh perantara yang umum.
Tidak seperti host berbasis komputer, perantara mungkin dilengkapi dengan khusus
dirancang CPU-offloading hardware untuk meningkatkan kecepatan pemrosesan atau untuk mengurangi perangkat keras dan biaya pemrosesan. Seiring kecepatan pemasangan atau kawat meningkat, kecepatan kawat pemrosesan memerlukan CPU yang lebih cepat atau perangkat keras khusus, mis., aplikasi spesifik sirkuit terpadu (ASIC), untuk melepaskan CPU.
- Link: Point-to-Point atau Broadcast
Tautan dalam jaringan komputer disebut point-to-point jika menghubungkan dua node dengan tepat dengan satu di setiap ujungnya, atau disiarkan jika menghubungkan lebih dari dua node yang terpasang.Perbedaan utamanya adalah bahwa node yang terhubung ke link broadcast perlu dihadapkan pada hak untuk mengirim Node yang berkomunikasi melalui link point-to-point, biasanya mengirimkan seperti yang mereka inginkan jika itu adalah link full-duplex; bergiliran untuk mengirim jika itu adalah link half-duplex; atau memanfaatkan dua link untuk mentransmisikan, satu untuk setiap arah, jika itu adalah link simpleks.Llink full-duplex dan link half-duplex mendukung bidirectional simultan dapat membawa sinyal jarak jauh lebih jauh.
Untuk sambungan kabel, media umum termasuk twisted pairs, kabel coaxial, dan fiber
optik. Sebuah twisted pair memiliki dua garis tembaga yang disatukan untuk kekebalan yang lebih baik. Banyak digunakan sebagai jalur akses di sistem telepon biasa (POTS) dan LAN seperti Ethernet. A Kategori-5 (Cat-5) twisted pair, dengan ukuran lebih tebal dari pada kabel twisted pair untuk kabel POTS di rumah, bisa membawa 10 Mbps lebih dari jarak beberapa kilometer sampai 1 Gbps atau lebih tinggi dari 100 meter atau lebih.
Sambungan nirkabel frekuensi tinggi (lebih dari puluhan GHz) bisa menjadi point to point, yang mana
lebih terarah Karena komunikasi data nirkabel masih dalam booming panggung, sistem yang berlaku termasuk LAN nirkabel (54 Mbps sampai 600 Mbps kecepatan transfer data dalam radius 100 m), layanan radio paket umum (GPRS) (128 kbps dalam beberapa km), 3G (3rd Generation, 384 kbps sampai beberapa Mbps dalam beberapa km), dan Bluetooth (beberapa Mbps dalam jarak 10 m), semuanya beroperasi di dalamnya Spektrum gelombang mikro 800 MHz sampai 2 GHz.
HISTORICAL EVOLUTION : ATM FadedATM pernah menjadi teknologi switching tulang punggung yang dianggap penting untuk komunikasi data. Berbeda dengan arsitektur internet, ATM mengadopsi konsep stateful beralih dari POTS: Switchnya menyimpan informasi keadaan yang berorientasi koneksi untuk memutuskan bagaimana koneksi harus diaktifkan. Karena ATM masuk di awal 1990-an, ia harus menemukan cara untuk hidup berdampingan dengan arsitektur Internet, yang paling banyak teknologi jaringan dominan saat itu. Namun, mengintegrasikan switching connectionoriented dengan teknologi routing tanpa koneksi menciptakan banyak overhead. Integrasi keduanya bisa berbentuk internetworking ATM domain dengan domain internet, atau hibrida berlapis yang menggunakan ATM untuk dibawa .Paket internet Keduanya membutuhkan koneksi ATM atau membangun yang ada namun kemudian merobek koneksi ATM baru setelah mengirimkan hanya beberapa paket.Selain itu, pendekatan hibrida berlapis brutal merusak sifat tanpa kewarganegaraan dari
Arsitektur internet Dengan cepat atau lambat, ATM dimaksudkan untuk pergi.
1.1.2 Scalability: Number of Nodes
Mampu menghubungkan 10 node sama sekali berbeda dengan kemampuan menghubungkan jutaan
dari simpul. Karena apa yang bisa bekerja pada kelompok kecil tidak harus bekerja pada kelompok besar, kita membutuhkan metode terukur untuk mencapai konektivitas.
Hirarki NodeSalah satu cara mudah untuk menghubungkan simpul dalam jumlah besar adalah dengan mengaturnya ke dalam banyak kelompok, masing-masing terdiri dari sejumlah kecil node. Jika jumlah kelompok sangat besar, selanjutnya bisa mengelompokkan kelompok-kelompok ini ke dalam sejumlah supergroup, yang jika perlu, dapat dikelompokkan lebih lanjut menjadi "super-supergroup." Ini metode rekursif menciptakan struktur hierarki yang mirip pohon yang dapat dikelola,dimana masing-masing kelompok (atau supergroup, "supergroup super", dll.) hanya berhubungan dengan sejumlah kecil kelompok lainnya. Jika pengelompokan seperti itu tidak diterapkan, interkoneksi Jaringan untuk sejumlah besar node mungkin terlihat seperti jala yang kacau.
LAN, MAN, WANAdalah untuk membentuk kelompok tingkat bawah dengan simpul yang berada di dalam a
wilayah geografis kecil, katakanlah beberapa kilometer persegi. Jaringan yang menghubungkan
Kelompok tingkat bawah kecil disebut local area network (LAN). Untuk kelompok berukuran 256, itu
akan membutuhkan paling sedikit 256 (untuk jaringan berbentuk cincin) dan paling banyak 32.640 point-to-point link (untuk mesh yang terhubung sepenuhnya) untuk membangun konektivitas. Karena akan membosankan untuk mengelola banyak link ini di area yang kecil, link broadcast jadi ikut berperan dominan
peran disini dengan melampirkan 256 node ke satu link broadcast (dengan topologi bus, ring, atau star),
kita dapat dengan mudah mencapai dan mengelola konektivitas mereka. Penerapan single
link broadcast dapat diperluas ke jaringan yang lebih luas secara geografis, katakanlah area metropolitan
jaringan (MAN), untuk menghubungkan node jauh atau bahkan LAN. MAN biasanya memiliki cincin
topologi sehingga bisa membangun bus ganda untuk toleransi kesalahan terhadap kegagalan link.
Namun, seperti pengaturan cincin siaran telah menempatkan keterbatasan pada tingkat
toleransi kesalahan dan jumlah node atau LAN yang dapat didukung jaringan.
Tautan point-to-point sesuai secara alami untuk konektivitas area luas yang tak terbatas. Daerah yang luas
Jaringan (WAN) biasanya memiliki topologi mesh karena keacakan di lokasi
dari situs jaringan yang tersebar secara geografis. Sebuah topologi pohon tidak efisien di WAN's
Kasus karena di jaringan pohon, semua lalu lintas harus naik ke akar dan beberapa
cabang turun ke node tujuan. Jika volume lalu lintas antara dua simpul daun
sangat besar, jaringan pohon mungkin memerlukan tautan point-to-point tambahan untuk menghubungkannya
langsung, yang kemudian menciptakan sebuah loop di topologi dan mengubah pohon menjadi mesh.
1.1.3 Berbagi Sumber DayaDengan konektivitas terukur yang ada, sekarang kami membahas bagaimana cara berbagi konektivitas ini,
Yaitu, kapasitas tautan dan nodus, dengan pengguna jaringan. Sekali lagi, kita bisa mendefinisikan a
jaringan komputer, dari sisi berbagi sumber daya, sebagai "platform bersama di mana
Kapasitas node dan link digunakan untuk mentransfer pesan komunikasi antara
node. "Di sinilah komunikasi data dan komunikasi suara tradisional
berbeda satu sama lain.
2.1 PRINSIP-PRINSIP UNDERLYINGSebagai teknologi komunikasi data terdistribusi, packet switching telah diletakkan turunkan prinsip-prinsip komunikasi data untuk diikuti. Kita bisa membagi set prinsip menjadi tiga kategori: kinerja, yang mengatur kualitas layanan packet switching, operasi, yang merinci jenis mekanisme yang dibutuhkan penanganan paket, dan interoperabilitas, yang menentukan apa yang harus dimasukkan ke dalam standar protokol dan algoritma, dan apa yang tidak seharusnya.
1.2.1 Ukuran KinerjaPada bagian ini, kami memberikan latar belakang mendasar sehingga Anda bisa mengapresiasi
aturan permainan packet switching. Latar belakang ini penting saat menganalisis perilaku keseluruhan sistem atau entitas protokol tertentu. Untuk merancang dan menerapkan sistem atau protokol tanpa mengetahui, terlebih dahulu atau sesudahnya ukuran kinerja di bawah skenario operasional yang umum atau ekstrim bukanlah sebuah praktek yang dapat diterima di daerah ini. Hasil kinerja suatu sistem datang dari
simulasi matematis atau simulasi sistem sebelum sistem nyata diimplementasikan, atau dari percobaan pada test bed setelah sistem telah diimplementasikan bagaimana sistem melakukan, seperti yang dirasakan oleh pengguna, bergantung pada tiga hal:
(1) kapasitas perangkat keras sistem,
(2) beban yang ditawarkan atau masukan lalu lintas ke sistem ini,dan
(3) mekanisme internal atau algoritma yang dibangun ke dalam sistem ini untuk menangani beban yang ditawarkan Sebuah sistem dengan kapasitas tinggi namun mekanisme yang dirancang dengan buruk akan dilakukan tidak berskala baik saat menangani beban yang ditawarkan berat, meski bisa tampil lumayan
baik dengan beban yang ditawarkan ringan.
- Bandwidth, Offered Load, dan Throughput
Istilah "bandwidth" berasal dari studi radiasi elektromagnetik, dan awalnya
mengacu pada lebar pita frekuensi yang digunakan untuk membawa data. Namun, di
Jaringan komputer istilahnya biasanya digunakan untuk menggambarkan jumlah maksimum
Data yang bisa ditangani oleh sebuah sistem,
- Latency: Node, Link, Path
Selain throughput, latency adalah ukuran kunci lain yang kita pedulikan. Teori, yang pertama kali dikembangkan oleh Agner Krarup Erlang pada tahun 1909 dan 1917, memberi tahu kita jika keduanya waktu antar paket dan waktu layanan paket didistribusikan secara eksponensial dan yang pertama lebih besar dari yang terakhir, ditambah ukuran buffer yang tak terbatas, latensi rata-rata adalah kebalikan dari perbedaan antara bandwidth dan beban yang ditawarkan, yaitu,
T =1 / (m-l),
Dimana m adalah bandwidth, saya ditawari beban, dan T adalah latensi rata-rata.
- Variasi Jitter atau Latency
Beberapa aplikasi dalam komunikasi data, packet voice, misalnya, tidak hanya dibutuhkan
latency kecil tapi juga konsisten. Beberapa aplikasi lain, streaming video dan audio,misalnya, dapat mentolerir latensi yang sangat tinggi dan bahkan dapat menyerap variasi latensi atau jitter sampai batas tertentu. Karena server streaming memompa lalu lintas satu arah ke klien, kualitas playout yang dirasakan akan bagus asalkan buffer playout pada klien tidak akan meluap-artinya, kosong-atau meluap. Klien semacam itu menggunakan buffer playout untuk menyerap jitter dengan menunda waktu playout dari semua paket ke beberapa garis waktu yang selaras.Misalnya, jika jitter adalah 2 detik, klien secara otomatis menunda waktu playout semua paket ke timeline paket playout ditambah 2 detik. Dengan demikian, buffer yang bisa mengantri paket selama 2 detik harus di tempat.
Ukuran kinerja yang terakhir namun tidak sedikit adalah probabilitas packet loss. Ada dua alasan utama untuk packet loss: kemacetan dan kesalahan. Komunikasi data sistem rentan terhadap kemacetan. Saat kemacetan terjadi pada sebuah link atau node, paket antri di buffer agar bisa menyerap kemacetan. Tapi jika kemacetan tetap ada, buffer mulai meluap Misalkan node memiliki tiga link dengan bandwidth yang sama.
1.2.2 Operasi pada Control Plane
- Control Plane vs. Data Plane
Mengoperasikan jaringan packet-switching melibatkan penanganan
kerugian. Subbagian ini mengidentifikasi mekanisme apa yang harus ada untuk kontrol
pesawat sambil meninggalkan data pesawat ke subbagian berikutnya. Pertimbangan desain mereka
juga dibesarkan disini .Sekali lagi, misi pesawat kontrol dalam komunikasi data adalah menyediakan
instruksi yang baik untuk data plane untuk membawa paket data. Seperti ditunjukkan pada Gambar 1.8,
Untuk mencapai itu, bidang kontrol peralatan perantara perlu mencari tahu dimana untuk rute paket (yang link atau port), yang biasanya memerlukan pertukaran kontrol paket dan perhitungan rute yang kompleks. Selain itu, pesawat kontrol juga mungkin perlu menangani masalah aneka macam seperti pelaporan kesalahan, konfigurasi sistem dan manajemen, dan alokasi sumber daya.
Sebagian besar literatur tidak membedakan routing dan forwarding. Di sini kita mendefinisikan routing
seperti mencari tempat untuk mengirim paket dan forwarding seperti mengirim paket. Routing demikian
untuk menghitung rute dan menyimpannya dalam tabel yang dicari saat diteruskan
paket. Routing biasanya dilakukan di latar belakang secara berkala, sehingga untuk mempertahankan
dan perbarui tabel penerusan.
- Alokasi Lalu Lintas dan Bandwidth
Hal ini dimungkinkan untuk mempertimbangkan routing dari perspektif yang berorientasi kinerja bahkan lebih.Jika volume lalu lintas dan sumber daya bandwidth dapat diukur dan dimanipulasi,kita bisa mengalokasikan volume lalu lintas tertentu dan mengarahkannya melalui jalur alokasi bandwidth tertentu Mengalokasikan atau menugaskan lalu lintas memiliki label lain yang serupa untuk routing, yaitu traffic engineering. Baik alokasi bandwidth maupun traffic engineering biasanya memiliki tujuan optimasi yang spesifik, seperti meminimalkan rata-rata latency end-to-end dan load balancing yang optimal, mengingat satu set kendala sistem memuaskan. Karena masalah optimasi semacam itu membutuhkan perhitungan yang sangat kompleks, yang mungkin tidak selesai secara real time, dan juga karena hanya beberapa sistem saja
mampu menyesuaikan alokasi bandwidth on the fly, traffic dan alokasi bandwidth biasanya dilakukan off-line di bidang manajemen atau selama perencanaan jaringan tahap.
1.2.3 Operasi pada Data PlaneTidak seperti operasi pada bidang kontrol, yang mungkin hanya berlaku untuk paket kontrol
dalam rentang waktu ratusan milidetik hingga puluhan detik, banyak hal pada data pesawat berlaku untuk semua paket dan dilanjutkan dalam mikrodetik atau kurang. Meneruskan paket nampaknya menjadi pekerjaan utama di bidang data sejak sebuah paket masuk ke sebuah antarmuka port atau link bisa diteruskan ke port lain. Sebenarnya, penerusan mungkin hanya satu dari layanan yang ditawarkan pada data pesawat. Layanan lainnya mungkin packet filtering enkripsi, atau bahkan penyaringan konten.
Bergantung pada bagaimana routing pada bidang kontrol ditentukan, forwarding paket
melibatkan memeriksa satu atau beberapa field header dalam sebuah paket. Mungkin hanya mengambil
bidang alamat tujuan untuk mencari tabel penerusan, atau mungkin butuh lebih banyak bidang
dalam melakukannya Keputusan yang dibuat dalam routing secara langsung menentukan bagaimana forwarding bisa dilakukan sampai selesai, termasuk field header mana yang akan diperiksa, yang masuk di forwarding table untuk mencocokkan, dll.
Seperti disebutkan sebelumnya, banyak layanan memerlukan operasi klasifikasi paket,
Proses pencocokan yang membutuhkan satu atau beberapa bidang dalam header paket agar cocok. Aturan memiliki dua bagian: kondisi dan tindakan, ditentukan dalam kondisi apa di lapangan (s) tindakan harus diterapkan ke paket yang cocok. Karena masing-masing layanan memiliki kumpulan bidang untuk diperiksa terhadap peraturannya sendiri, penggolong dan aturan yang terkait, atau klasifikasi database, akan dibutuhkan untuk layanan tertentu.
Baik forwarding dan klasifikasi memeriksa field header paket. Tapi ada hal-hal, seringkali berbahaya, tersembunyi jauh di dalam payload paket. Misalnya, intrusi dan virus berada jauh di dalam header aplikasi dan muatan masing-masing. Pengetahuan tentang isi ini biasanya disarikan ke dalam database tanda tangan, yang mana digunakan untuk mencocokkan dengan muatan paket masuk. Proses pencocokan ini disebut inspeksi paket dalam (DPI) karena terlihat jauh ke dalam muatan. Karena tanda tangan biasanya dinyatakan dalam string karakter sederhana atau ekspresi reguler, pencocokan string adalah kunci operasi di DPI.
Seperti dibahas pada Subbab 1.2.1, kesalahan bit dapat menekan paket. Kesalahan bisa terjadi selama pengiriman paket atau saat paket disimpan di memori. Dua fundamental
pertanyaan yang perlu dijawab: (1) mendeteksi atau memperbaiki? (2) hop-by-hop atau end-to-end? Pertanyaan pertama menyangkut bagaimana penerima paket mendeteksi kesalahan dan menangani kesalahannya dua pendekatan ada: Penerima dapat mendeteksi kesalahan dengan tambahan berlebihan bit dan memberitahu pengirim untuk mentransmisikan kembali, atau mungkin mendeteksi dan memperbaiki kesalahan langsung jika bit ekstra berlebihan bisa menunjukkan bit yang tepat yang salah. Yang terakhir pendekatan akan membutuhkan bit lebih banyak, dan karenanya menghasilkan overhead yang lebih tinggi.Baik untuk melakukan koreksi kesalahan tergantung pada jenis lalu lintas yang dibawa.
Operasi per paket lainnya di bidang data mengatur proses pemompa dari aliran paket Memompa paket terlalu cepat mungkin meluap di antara router atau node tujuan, menghasilkan banyak transmisi ulang yang mengintensifkan kemacetan. Memompa terlalu lambat mungkin melemahkan buffer mereka, menyebabkan rendah pemanfaatan sumber daya bandwidth Kontrol lalu lintas adalah istilah generik untuk apapun mekanisme untuk menghindari atau mengatasi kemacetan, tapi kemacetan itu sendiri bisa terjadi cukup rumit Ini bisa menjadi end-to-end (antara sumber dan tujuan di jalan), hop-by-hop (antara pengirim dan penerima di link), atau hot spot(node bottleneck)
Jaringan bisa bekerja dengan baik dengan kontrol aliran dan pengendalian kemacetan untuk dipelihara
operasi yang memuaskan Tapi bisa ada persyaratan yang lebih ketat secara eksplisit
tentukan parameter lalu lintas seperti laju dan panjang burst dan perkiraannya
ukuran kinerja seperti latency dan loss; Artinya, kualitas layanan eksplisit
(QoS). Ini telah menimbulkan tantangan besar untuk paket switching selama beberapa dekade! Berbagai
modul kontrol lalu lintas, seperti policer, shaper, dan scheduler, bisa ditempatkan di
titik masuk atau inti jaringan untuk mengatur lalu lintas untuk memenuhi tujuan QoS.
Meskipun beberapa solusi arsitektur telah diusulkan, tidak satupun dari mereka telah melakukannya
disebarkan di jaringan operasional pada umumnya.
1.2.4 Interoperabilitas
- Standar vs Implementasi-Bergantung
Ada dua cara yang mungkin untuk berbagai perangkat untuk berbicara satu sama lain. Salah satunya adalah membeli semua perangkat hanya dari satu vendor. Yang lainnya adalah mendefinisikan protokol standar antara perangkat sehingga selama vendor mengikuti protokol ini, kita bisa menginteraktif perangkat
dibeli dari vendor yang berbeda. Interoperabilitas semacam ini adalah suatu keharusan, terutama
ketika kita tidak ingin terikat dengan vendor tertentu setelah kita membeli batch pertama
perangkat dari mereka Di sisi lain, vendor yang mendominasi pasar mungkin menginginkannya
untuk menempatkan beberapa protokol proprietary, yang didefinisikan oleh vendor sendiri
dari organisasi standar, ke perangkat mereka untuk mengikat pelanggan mereka.
- Protokol Standar dan Algoritma
Protokol secara default harus distandarisasi, meskipun beberapa protokol proprietary melakukannya
ada. Protokol kepemilikan semacam itu dapat menjadi standar de facto jika mereka mendominasi
pasar. Saat menentukan spesifikasi protokol disamping kerangka arsitektural,
dua antarmuka perlu didefinisikan: antarmuka rekan dan antarmuka layanan.
- Implementasi-Dependent Design
Tidak seperti spesifikasi protokol, ada banyak fleksibilitas dalam implementasi protokol
. Tidak setiap bagian dari algoritma pada kontrol dan bidang data perlu standar. Misalnya, mewujudkan algoritme perutean, misalnya, Dijkstra's, memerlukan struktur data untuk menyimpan topologi jaringan dan algoritma pada struktur data tersebut untuk menemukan jalur terpendek ke semua tujuan, namun implementasinya tidak perlu untuk distandarisasi. Seseorang mungkin merancang metode yang lebih efisien untuk dihitung daripada satu dinyatakan dalam buku teks. Contoh lainnya adalah algoritma lookup tabel dalam paket forwarding Selalu merupakan tantangan yang menarik untuk merancang struktur data untuk menyimpan sejumlah besar entri dan untuk merancang pencarian dan update algoritma sehingga mereka
Bisa mengalahkan desain arus terbaik dalam hal kecepatan dan ukuran.
Sebenarnya, masalah interoperabilitas terjadi tidak hanya antara dua sistem tapi juga antara keduanya
dua protokol Satu protokol tunggal tidak cukup untuk menggerakkan sebuah sistem. Sebenarnya memang begitu
sebuah stack protokol yang menggerakkan keseluruhan sistem. Sebuah tumpukan protokol terdiri dari lapisan
seperangkat protokol, di mana setiap lapisan mencakup sebagian mekanisme komunikasi data
dan memberikan layanan ke lapisan atas. Merupakan evolusi alami yang abstrak menjadi kompleks
sistem menjadi entitas modular, yaitu protokol berlapis di sini, sehingga semakin rendah
lapisan menyembunyikan rincian dari dan memberikan layanan ke lapisan atas mereka.
1.3ARSITEKTUR INTERNET
Mengingat kendala utama packet switching, Internet memiliki solusinya
mencapai tiga persyaratan komunikasi data, yaitu konektivitas, skalabilitas,
dan pembagian sumber daya sebagaimana diidentifikasi dalam Bagian 1.1. Semua
solusi dipilih
Arsitektur internet memiliki justifikasi filosofis. Meski begitu, ada lagi
arsitektur komunikasi data lainnya, seperti Asynchronous Transfer yang pudar
Mode (ATM) dan Multi-Protocol Label Switching (MPLS) yang muncul. Mereka semua
memiliki sesuatu yang sama dan sesuatu yang unik, dibandingkan dengan
arsitektur Internet;
Tentu saja, mereka juga memiliki seperangkat filosofi untuk membenarkan desain
arsitektur pilihan mereka.
1.3.1 Solutions to Connectivity
Dua titik akhir yang terputus dihubungkan melalui jalur dengan node dan link. Untuk memutuskan
bagaimana membangun dan memelihara konektivitas end-to-end ini di Internet, seseorang harus melakukannya buat tiga keputusan:
(1) konektivitas yang dialihkan atau dialihkan,
(2) end-to-end atau hop-byhopmekanisme untuk menjaga kebenaran (pengiriman paket yang andal dan teratur)dari konektivitas ini, dan
(3) bagaimana mengatur tugas dalam membangun dan memelihara
konektivitas ini Untuk internet diputuskan untuk merutekan konektivitas ini, pertahankan
kebenarannya pada tingkat end-to-end, dan mengatur tugas menjadi empat lapisan protokol.
- Routing: Stateless dan tanpa koneksi
Meskipun switching lebih cepat daripada routing, seperti yang dibahas pada Bagian 1.1.1, diperlukan
perangkat switching untuk menghafal informasi negara, yaitu pemetaan
(port input, nomor sirkuit virtual masuk) ke (port output, outgoing virtual circuit
nomor) di tabel sirkuit virtual, dari semua koneksi yang lewat.
Untuk menyediakan pengiriman paket yang andal dan teratur dari sumber ke tujuan, kesalahan dan kontrol lalu lintas harus dilakukan secara hop-by-hop atau end-to-end dasar, yaitu, untuk semua tautan atau hanya di host akhir. Argumen hop-by-hop mengatakan bahwa jika transmisi pada semua link yang handal dan tertib, kehandalan dan ketertiban akan dijamin untuk transmisi end-to-end. Namun, argumen ini benar saja ketika node bebas dari kesalahan. Karena jalur terdiri dari node dan link, penjaminan kebenaran operasi link tidak mencakup kebenaran operasi node dan karenanya pengiriman dari ujung ke ujung di sepanjang jalan.
Arsitektur Internet empat lapis
kadang disebut arsitektur TCP / IP setelah dua protokol penting,
yang mewakili dua lapisan. Lapisan paling bawah adalah lapisan link, yang
mungkin terdiri dari
banyak protokol untuk berbagai link. Protokol lapisan link bergantung pada
perangkat keras dan
Diimplementasikan oleh kombinasi perangkat keras (kartu adaptor) dan perangkat
lunak (adaptor
sopir). 1.3.2 Solusi untuk SkalabilitasBagaimana mengelompokkan sejumlah besar node menentukan seberapa terukur suatu sistem.
1.3.3 Solusi Untuk Berbagai Sumber
Berasal dari argumen end-to-end, diyakini bahwa kontrol lalu lintas
harus dilakukan terutama pada sumber bukan pada router menengah.
Singkatnya, tiga pertanyaan telah dijawab oleh arsitektur Internet di Indonesia
menentukan cara berbagi sumber daya: (1) apakah akan membedakan perlakuan lalu lintas
dari aplikasi yang berbeda, (2) kebijakan berbagi sumber daya apa, dan (3) di mana
letakkan mekanisme kontrol lalu lintas untuk memberlakukan kebijakan tersebut. Internet menawarkan kesamaan layanan best-effort di dalam jaringan saat menggunakan end-to-end congestion and flow
kontrol untuk mempraktikkan kebijakan keadilan dalam pembagian bandwidth.
- Common Best-Effort Service: IP
Aplikasi dapat dikategorikan menjadi setidaknya tiga jenis: interaktif, file transfer, dan real-time. Aplikasi interaktif menghasilkan sejumlah kecil lalu lintas namun membutuhkan tanggapan tepat waktu. Di sisi lain, aplikasi transfer file pump lalu lintas tebal tapi bisa mentolerir latensi yang lebih tinggi. Aplikasi real-time memiliki keduanya volume lalu lintas terus menerus dan persyaratan latency rendah. Jika keputusannya adalah memiliki jenis konektivitas untuk mendukung setiap kategori aplikasi, router di dalam Internet akan dikenali tipe sehingga bisa memperlakukan paket secara berbeda. Namun, internet menawarkan satu jenis layanan konektivitas, yaitu layanan IP usaha terbaik. Semua paket IP diperlakukan sama dalam berbagi sumber daya yang terbatas.Sebagai layanan operator di inti Internet, IP memiliki bentuk yang paling asli
packet switching Ini asli karena, selain penerusannya, tidak ada layanan bernilai tambah kecuali checksum sederhana untuk deteksi kesalahan; itu tidak memiliki lalu lintas kontrol built in, dan tidak dapat diandalkan dalam hal throughput, latency, jitter, dan loss.
- End-to-End Congestion Control dan Error Recovery: TCP
TCP adalah pr yang sopan dari ujung ke ujung
1.3.4 Operasi Kontrol-Pesawat
Pada Bagian 1.2.2, kami mengangkat isu-isu yang terkait dalam merancang sebuah protokol routing
dan algoritma nya. Pilihan yang dibuat dapat diringkas sebagai berikut: precomputed in
background, hop-by-hop, per-destination-prefix (subnet atau AS) granularity, informasi jaringan sebagian atau global untuk routing intra-AS, informasi keadaan jaringan parsial
untuk routing antar-AS, dan kebanyakan jalur terpendek tunggal. Ada alasan di baliknya
pilihan ini Routing sumber on-demand akan sesuai bila topologi jaringan
cukup dinamis, jika tidak, precomputed hop-by-hop routing pada setiap router
akan cocok Dengan hirarki subnet dan ASs yang terukur, granularitas untuk intra-AS
dan routing antar-AS demikian per-subnet dan per-AS, masing-masing.
Seperti dibahas di Subbagian 1.3.2, di AS dimana jumlah subnet
kecil, puluhan hingga ratusan, baik informasi jaringan global parsial atau global
dikumpulkan dengan mudah Namun, jumlah AS di seluruh dunia bisa puluhan ribu,
jadi mengumpulkan informasi terkini tentang keadaan jaringan global akan sulit dilakukan. Global
informasi keadaan jaringan berisi keseluruhan topologi jaringan, dan dibangun
oleh negara link disiarkan dari semua router. Di sisi lain, keadaan jaringan parsial
Informasi berisi hop berikutnya dan jarak ke subnet tujuan atau AS, dan
dibangun oleh vektor jarak yang ditukar antara router tetangga. Akhirnya,
jalur terpendek tunggal dan bukan beberapa jalur adalah pilihan untuk kesederhanaan.
1.4 IMPLEMENTASI SUMBER DAYA TERBUKAArsitektur Internet menyajikan seperangkat solusi terpadu untuk memenuhi persyaratan
dan prinsip-prinsip komunikasi data, dan rangkaian solusi ini terbuka
standar. Implementasi open source dari arsitektur internet mendorong hal yang sama
semangat keterbukaan satu langkah lebih jauh. Bagian ini membahas mengapa dan bagaimana caranya
implementasi open source arsitektur Internet.
1.4.1 Terbuka vs. Tertutup
- Vendor: Sistem, IC, Perangkat Keras, dan Perangkat Lunak
Sebelum menjelaskan cara menerapkan arsitektur Internet, kita harus mengidentifikasi
komponen utama dalam sistem dan vendor yang terlibat. Untuk host atau Router, sebuah sistem terdiri dari perangkat lunak, perangkat keras, dan komponen IC. Di host,Arsitektur internet sebagian besar diimplementasikan dalam perangkat lunak dan sebagian di IC. Antara tumpukan protokol, TCP, UDP, dan IP diimplementasikan dalam sistem operasi, sementara protokol aplikasi dan protokol link diimplementasikan dalam program aplikasi dan IC pada kartu antarmuka masing-masing. Implementasinya di routeradalah serupa kecuali bahwa bagian dari implementasi protokol mungkin akan bergeser dari perangkat lunak ke IC jika CPU tidak dapat memberikan pemrosesan kecepatan kawat yang diinginkan.
- Dari Proprietary, Third-Party, ke Open Source
Ada tiga cara untuk mengimplementasikan arsitektur internet menjadi sistem yang ada baik host atau router. Mereka (1) milik tertutup, (2) pihak ketiga ditutup, dan (3) open source Vendor sistem besar mampu mempertahankan tim besar ratusan insinyur untuk merancang dan menerapkan perangkat lunak tertutup tertutup dan IC.Hasilnya adalah sistem tertutup yang kekayaan intelektualnya dimiliki semata-mata oleh vendor.
- Keterbukaan: Antarmuka atau Implementasi
Ketika kita membahas keterbukaan, penting untuk menunjukkan apa yang sedang dibuka. Apakah itu
antarmuka atau implementasi? Dengan open source, maksud kami implementasi terbuka. Itu arsitektur internet adalah sebuah antarmuka yang terbuka, sementara Linux merupakan implementasi yang terbuka
dari antarmuka terbuka ini Sebenarnya, salah satu kriteria protokol untuk menjadi bagian dari
Arsitektur internet adalah menjalankan kode yang stabil dan tersedia secara terbuka.
1.4.2 Arsitektur Perangkat Lunak di Sistem LinuxSaat mengubah arsitektur menjadi sistem nyata, penting untuk mengidentifikasi di mana untuk melaksanakan apa. Beberapa keputusan penting harus dibuat: Dimana menerapkannya operasi plane control dan pesawat data? Apa yang harus diimplementasikan ke dalam perangkat keras, IC, atau perangkat lunak? Jika diimplementasikan ke dalam perangkat lunak, bagian mana dari perangkat lunak arsitektur harus itu? Untuk menentukan sistem berbasis Linux ini, orang harus mengerti arsitektur perangkat lunaknya dulu.
Seperti sistem operasi UNIX lainnya atau sistem operasi modern lainnya, sistem Linux memiliki pengguna
ruang dan program ruang kernel. Program ruang kernel memberikan layanan kepada pengguna program luar angkasa Sebuah proses adalah inkarnasi dari ruang pengguna atau program ruang kernel yang bisa dijadwalkan berjalan di atas CPU. Proses ruang kernel berada di kernel ruang memori untuk mengelola operasi sistem sehingga bisa memberikan layanan proses ruang pengguna, meski mereka tidak memberikan layanan secara langsung. Proses ruang pengguna berada di ruang memori pengguna dan bisa berjalan di latar depan sebagai aplikasi klien atau latar belakang sebagai server aplikasi. Di dalam ruang kernel, ada
beberapa program, yang disebut device driver, untuk menjalankan beberapa operasi I / O pada perangkat
perangkat. Driver adalah perangkat keras yang bergantung dan harus sadar akan perangkat keras periferal
untuk mengendalikannya
Dengan model proses di atas, beberapa pengamatan dapat diterapkan untuk memutuskan dimana untuk mengimplementasikan apa Karena program ruang inti memberikan dasar layanan untuk program ruang pengguna, program aplikasi-independen harus diimplementasikan sebagai program ruang kernel sambil meninggalkan klien aplikasi dan server untuk program ruang pengguna. Di dalam ruang kernel, tergantung pada perangkat keras pengolahan harus diimplementasikan sebagai driver perangkat, sedangkan sisanya berada di sistem operasi inti.
Berikut adalah dua contoh untuk menunjukkan kepada pembaca apa operasi umum yang diterapkan
di node jaringan dan di mana mereka ditempatkan. Gambar 1.13 menggambarkanoperasi umum dari sebuah router. Protokol routing (RIP, OSPF, BGP, dll.) Adalah Diimplementasikan dalam program daemon (routed, gated, atau zebra untuk advanced routingprotokol), yang memperbarui tabel routing (juga disebut forwarding table) di dalamnya kernel untuk "protocol driver" untuk mencari. Driver protokol terdiri dari IP, ICMP, TCP, dan UDP dan memanggil driver adaptor untuk mengirim dan menerima paket. Dasmon lain, inetd (daemon jaringan super), memanggil berbagai program untuk layanan terkait jaringan Seperti garis panah menunjukkan, paket di pesawat kontrol diproses dalam driver protokol oleh ICMP atau naik di daemon oleh RIP, OSPF, BGP, dll. Namun, paket pada bidang data harus diteruskan pada lapisan IP di
pengandar protokol demikian pula, Gambar 1.14 menunjukkan operasi mesin host server. Server
dari berbagai protokol aplikasi (mis., Web, surat) diimplementasikan dalam daemon program (misalnya, apache, qmail, net-snmp, dll.). Perbedaan yang jelas antara host dan router adalah bahwa tidak ada packet forwarding di host, dan karena itu dibutuhkan hanya satu link interface atau kartu adapter. Untuk host ini, kebanyakan paket adalah data-plane paket yang naik turun turun dari server daemon. Satu-satunya pesawat kontrol protokol mungkin ICMP untuk pelaporan kesalahan.
1.4.3 Kernel LinuxSetelah memposisikan entitas protokol menjadi daemon, kernel Linux, driver, dan IC,mari kita periksa bagian dalam komponen ini. Kami tidak bermaksud untuk menutupinya detail yang bagus Sebagai gantinya, kita hanya menyentuh fitur utama dari masing-masing komponen. Gambar 1.15 menampilkan komponen kunci di dalam kernel Linux. Ada lima komponen utama: manajemen proses, manajemen memori, sistem file, perangkat kontrol, dan jaringan, sama seperti sistem operasi mirip UNIX. Kami tidak merencanakan
untuk menguraikan tentang masing-masing komponen. Setiap komponen memiliki dua lapisan: hardware-independent dan hardware-dependent. Bagian yang bergantung pada perangkat keras sebenarnya adalah driver untuk disk, konsol, dan adaptor kartu, atau kode yang bergantung pada arsitektur CPU dan manajer memori virtual berbagai arsitektur CPU. Diantara komponen ini, networking adalah fokus dari kita
perhatian. Lampiran B menggambarkan source tree kernel Linux, terutama bagian jaringan.
1.4.4 Klien dan Server DaemonDi atas kernel, proses ruang pengguna menjalankan program ruang pengguna mereka, walaupun
mereka kadang-kadang memanggil panggilan sistem dan beralih ke kernel untuk menerima layanan.
Untuk layanan jaringan, soket API menyediakan satu set panggilan sistem untuk proses user-space untuk berkomunikasi dengan proses remote user-space lainnya (melalui Soket TCP atau UDP), buat paket IP sendiri (melalui soket mentah), dengarkan kartu antarmuka secara langsung (melalui soket Antarmuka Data Link Provider), atau bacalah kernel dari mesin yang sama (melalui soket routing). Soket ini diilustrasikan
pada Gambar 1.16. Untuk setiap sistem memanggil API soket tertentu, kernel Linux menerapkan sistem ini panggilan oleh seperangkat fungsi ruang kernel. Soket ini digunakan dalam berbagai aplikasi. Misalnya, server Apache, bersama dengan banyak server lainnya, menggunakan soket TCP. Daemon routing zebra menggunakan soket routing untuk memperbarui tabel penerusan di dalam kernel, saat menggunakan
soket UDP, soket mentah, dan soket TCP untuk mengirim dan menerima RIP, OSPF, dan pesan protokol BGP, masing-masing. Tumpukan protokol pada Gambar 1.10 (a) menunjukkan API soket yang mereka pilih. RIP, OSPF, dan BGP berada di atas UDP, IP, dan TCP, masing-masing.
1.4.5 Driver InterfaceDriver perangkat adalah seperangkat fungsi yang terhubung secara dinamis yang disebut oleh kernel. ini
Penting untuk diketahui bahwa operasi pengemudi dipicu oleh interupsi perangkat keras.Perangkat menghasilkan interupsi perangkat keras saat telah menyelesaikan operasi I / O atau mendeteksi suatu kejadian yang perlu ditangani. Interupsi ini harus ditangani oleh driver yang mengerti perangkat ini, tapi semua interupsi pertama kali ditangani oleh inti. Bagaimana kernel mengetahui driver mana yang bisa dipilih untuk menangani perangkat keras ini mengganggu? Driver untuk perangkat itu seharusnya terdaftar pada kernel
Sebagai rutinitas layanan interupsi untuk menangani perangkat keras bernomor tertentu. Namun, bagian pengemudi tidak berada dalam rutinitas layanan interupsi. Bagian yang dipanggil oleh kernel namun bukan karena penanganan interupsi tidak masuk rutinitas layanan interupsi. Gambar 1.17 menunjukkan driver untuk antarmuka jaringan kartu. Penerima paket dan bagian dari pemancar paket terdaftar sebagai
rutin layanan interupsi untuk kartu antarmuka. Mereka dipanggil oleh kernel karena ke perangkat keras menyela dari kartu antarmuka. Bagian pemancar tidak terdaftar dalam rutinitas layanan interupsi karena disebut saat kernel memiliki paket untuk dikirim Selain mentransmisikan dan menerima paket, pengemudi dapat melakukan beberapa pemrosesan dari protokol lapisan link Meskipun beberapa bagian dari protokol lapisan link bisa diimplementasikan ke ASIC pada kartu antarmuka, mungkin masih ada beberapa protokol
pengolahan di dalam driver.
1.4.6 Device ControllersSeperti dijelaskan pada Bagian 1.4.5, pengemudi berdiri di belakang kernel untuk menangani mengganggu yang dihasilkan oleh perangkat Selain itu, pengemudi perlu mengonfigurasi perangkat di fase inisialisasi atau ketika kernel ingin mengubah beberapa konfigurasi. Kemudian bagaimana bisa seorang sopir berbicara dengan perangkat? Bahkan, di dalam perangkat ada device controller, yang biasanya merupakan chip sirkuit terpadu (IC) yang bertanggung jawab untuk berkomunikasi dengan sopirnya Pengontrol menyediakan satu set register untuk driver untuk membaca dan menulis . Dengan menulis atau membaca register ini, pengemudi dapat mengeluarkan perintah atau membaca status dari perangkat Selain itu, berdasarkan jenis arsitektur CPU, ada dua metode yang berbeda untuk mengakses register ini. Beberapa CPU menyediakan satu set I / O khusus perintah, misalnya, masuk dan keluar, agar pengemudi bisa berbicara dengan perangkat sementara ada cadangan berbagai alamat memori bagi pengemudi untuk mengeluarkan perintah I / O seperti akses memori, yaitu, memori yang dipetakan I / O. Pengontrol perangkat memang merupakan inti perangkat. Ini terus memantau perangkat dan segera merespon kejadian dari lingkungan luar atau sopir. Misalnya, pengontrol dalam adaptor jaringan dapat menjalankan protokol MAC mengirimkan sebuah paket setelah merasakan bahwa pengemudi telah mengirimkan perintah pengiriman ke dalamnya daftar perintah Ini mungkin berulang kali mencoba mentransmisikan ulang jika tabrakan terjadi. Sementara itu, monitor akan memantau jalur jaringan untuk mendeteksi paket masuk, menerimanya ke memori adaptor, periksa kebenarannya berdasarkan header MAC, dan kemudian memicu interupsi untuk meminta pengemudi yang sesuai untuk memindahkan paket ke host ingatan.
1.5 BUKU ROADMAP: KEHIDUPAN PAKETKami telah melalui perjalanan yang mengenalkan mengapa dan bagaimana berkenaan
arsitektur internet dan implementasi open source-nya. Tapi tidak cukup detail
telah disentuh sejauh ini. Bab selanjutnya membahas mengapa dan
bagaimana di setiap lapisan tumpukan protokol, dan kita membahas dua masalah yang mendesak di
Internet: QoS dan keamanan. Sebelum melanjutkan ke bab-bab ini, pembelajaran ini bersifat instruktif
dan menghibur untuk melihat bagaimana sebuah paket dapat disimpan dan diproses di akhir
host atau perangkat perantara. Bagian ini juga memberi Anda latar belakang
untuk memahami implementasi open source yang tercakup dalam teks ini.
1.5.1 Struktur Data Paket: sk_buffUntuk enkapsulasi paket disebutkan di Bagian 1.3, kerjasama antar kelipatan lapisan jaringan (atau modul) diperlukan untuk membungkus data menjadi paket atau membuka data dari sebuah paket Untuk menghindari seringnya menyalin data antar modul ini, yang umum struktur data digunakan untuk menyimpan dan mendeskripsikan sebuah paket, sehingga setiap modul bisa lewat atau akses paket hanya dengan penunjuk memori. Di Linux, seperti struktur data bernama sk_buff, yang didefinisikan dalam file skbuff.h.
Struktur sk_buff digunakan untuk menyimpan satu paket dan informasi terkait, mis., panjang, jenis, atau data yang dipertukarkan bersama dengan paket antara modul jaringan Seperti ditunjukkan pada Gambar 1.18, struktur mencakup banyak pointer variabel, yang sebagian besar mengarah ke ruang memori ukuran tetap tambahan dimana paket sebenarnya tersimpan Nama field dengan awalan "+" mewakili offset
di kepala lapangan Variabel selanjutnya dan prev akan menghubungkan struktur dengan sk_buff sebelumnya dan berikutnya sehingga paket dalam sebuah simpul dipertahankan dalam dua kali lipat daftar terkait Variabel dev dan sk menunjukkan perangkat jaringan dan soketnya.
1.5.2 Paket Kehidupan di Server WebEmpat arus paket yang sering terlihat di server Web diplot pada Gambar 1.19. Secara umum,
Ketika klien Internet ingin mengambil halaman dari server Web, klien akan mengirim keluar sebuah paket yang menunjukkan server Web tujuan dan halaman yang diminta. Selanjutnya, paket diteruskan dengan urutan router ke server Web. Setelah itu diterima oleh kartu antarmuka jaringan (NIC) server, perjalanannya di server dimulai sebagai diplot dengan jalur A. Pertama, NIC akan memecahkan kode sinyal menjadi data, yaitu sebuah proses dibahas dalam Bab 2. NIC kemudian memberi tanda pada driver adaptor untuk memindahkan paket ke dalamnya ruang memori yang dialokasikan dari kolam sk_buff oleh supir sebelumnya.Dengan membaca Bab 3, pembaca dapat mempelajari protokol dan mekanisme lebih lanjut
dioperasikan di NIC dan driver adaptor.Setelah paket disimpan dalam sk_buff, driver adaptor memanggil dan melewati sebuah pointer ke sk_buff dari paket ke fungsi penerimaan modul IP.Fungsi penerimaan kemudian memeriksa keabsahan paket dan mengaitkan paket pada tabel prerouting IP untuk pemeriksaan keamanan. Meja adalah salah satu yang penting struktur yang digunakan oleh netfilter, modul firewall tertanam di kernel Linux. Struktur dan operasi dalam modul IP akan dirinci dalam Bab 4,dengan operasi keamanan diserahkan ke Bab 8. Selanjutnya, paket tersebut didorong ke dalam modul TCP oleh netfilter, dan Bab 5 akan menjelaskan cara menggambar pengguna data keluar dari paket dalam sk_buff, lakukan kontrol kesalahan, dan menyebarkannya ke aplikasi program, yang mana di sini adalah server Web. Karena server Web adalah ruang pengguna program, data, yang merupakan payload paket, harus diduplikasi
memori kernel ke memori pengguna. Sementara itu, berdasarkan header dari paket yang diterima, modul TCP membangun paket ACK, yang kemudian dikirim sepanjang jalur B. ACK melewati modul modul TCP, IP,driver adaptor, NIC, dan jalur jaringan, dan tiba di sisi klien. Dengan demikian, klien Sisi yakin bahwa permintaan untuk halaman Web yang diinginkan telah berhasil dikirim ke server Web.Sementara itu, server Web, yang tercakup dalam Bab 6, memproses permintaan tersebut dalam struktur data soketnya, yang diduplikasi dari modul TCP, menghasilkan respon dan mengirimkannya melalui antarmuka soket. Respon melewati Modul TCP dan IP seperti ditunjukkan oleh jalur C, yang dienkapsulasi dengan protokol
header dan mungkin terfragmentasi menjadi beberapa paket saat meninggalkan modul IP untuk transmisi melalui internet. Akhirnya, ruang yang dialokasikan ke paket akan dilepaskan kembali ke kolam sk_buff. Kemudian ketika klien Internet menerima respon, modul TCP mengirimkan kembali TCP ACK ke modul TCP Web server, yang melewati jalur D untuk mengkonfirmasi bahwa respon telah berhasil dikirim ke klien Internet.
1.5.3 Kehidupan Paket di GerbangKarena tujuan router atau gateway adalah meneruskan atau menyaring paket di Internet atau antara Internet dan intranet, setidaknya ada dua adapter jaringan seperti yang ditunjukkan masalah Kinerja: Dari Socket ke Driver dalam Server.
Gambar 1.20 mengilustrasikan waktu pemrosesan paket dalam server PC dengan Adaptor Ethernet Intel 82566DM-2 dan CPU 2.0 GHz. Lapisan antarmuka dalam kernel Linux diinstruksikan dengan fungsi rdtscll () (atau perintah perakitan RDTSC pada mesin x86), yang bertuliskan TSC (Time-Stamp Counter dalam unit kutu CPU atau siklus) untuk mengukur gerhana waktu CPU di setiap lapisan Untuk CPU 2.0 GHz, sebuah siklus sama dengan 0,5 ns. Tes diulang dapatkan rata-rata waktu CPU yang dikonsumsi masing-masing lapisan protokol, dimana hasil tesnya dengan gerhana waktu yang jauh lebih besar daripada rata-rata waktu CPU yang dikonsumsi tidak dihitung untuk mengecualikan efek switching konteks dan penanganan interupsi.
Kecuali ditentukan lain, semua sidik jari Masalah Kinerja dalam teks inimengadopsi metode ini Seseorang bisa menggunakan do_gettimeofday () dan printk (), atau cukup mengandalkan tool profiling gprof / kernprof yang diperkenalkan di Appendix C untuk pengukuran waktu, tapi hanya akurat untuk skala μs.
Waktu CPU yang dikonsumsi dapat didekonstruksi menjadi dua bagian. Bagian pertama,RX, menggambarkan waktu yang diukur dari menerima paket oleh driver perangkat dilapisan link, memproses paket di lapisan IP dan transport, dan pengiriman ke ruang pengguna. Bagian kedua, TX, menggambarkan waktu yang dihabiskan di setiap protokol lapisan di ruang kernel untuk memproses paket keluar dari ruang pengguna program server Total waktu adalah 34,18 μs, yaitu waktu pulang-pergi dalam server tidak termasuk permintaan dan penanganan respon dalam program server. Di keduanya bagian, lapisan transport menyumbang persentase waktu tertinggi.