[MUSIC PLAYING] DAVID J. Malan: Jadi aku hanya ingin meredakan untuk. Aku akan echo persis apa Scaz kata tentang memori institusional. CS50 telah sekitar untuk 20 tahun di Harvard. Dan kenyataannya adalah, dari para senior di bawah, ada setiap tahunnya jaminan bahwa mahasiswa, yang tahun kedua, dan junior dan juga para senior mengambil CS50, bahwa Anda akhirnya baik-baik saja. Kenyataannya adalah, siswa tidak gagal CS50. Bahkan, dalam kasus yang jarang di mana kami sudah Es atau Fs, itu benar-benar telah karena keadaan khusus, apakah itu medis atau pribadi. Ds adalah sangat jarang juga. Dan saya dapat mengatakan dengan nyaman, meskipun kami biasanya tidak mengungkapkan statistik, tetapi mengingat bahwa tidak ada memori institusional sini apapun, mayoritas siswa di CS50 akhirnya mendapatkan Berbagai nilai. Sebuah potongan signifikan berakhir berakhir di kisaran B juga. Jadi meskipun Anda mungkin menyamakan di bertiga pikiran Anda dengan 60% dan oleh karena itu Ds, atau Cs, atau sejenisnya, itu benar-benar tidak sejalan dengan realitas. Bahkan, kita berarti persis apa yang kita mengatakan pada awal istilah bahwa begitu banyak siswa di CS50, baik di Cambridge dan di sini di New Haven, tidak pernah mengambil kursus CS sebelumnya. Dan apa yang memang pada akhirnya penting adalah di mana Anda berakhir di minggu 12 relatif terhadap diri Anda di minggu nol. Sekarang kita memiliki beberapa trek dalam kursus Anda tahu-- kurang nyaman, lebih nyaman, di suatu tempat di antara. Dan memang, ketika Anda mendapatkan statistik minggu ini kuis, jangan berkecil hati jika, terutama jika Anda merasa bahwa Anda di sekitar mean atau di bawah rata-rata atau median, terutama karena kita belum tentu mengambil semua demografi mereka memperhitungkan pertengahan semester dengan statistik grading. Dengan kata lain, kita tahu statistik setiap tahun bahwa siswa yang kurang nyaman, melakukan sedikit lebih buruk pada kuis. Dan siswa yang lebih nyaman melakukan sedikit lebih baik di kuis. Tapi per janji dalam silabus dan juga di minggu pertama kuliah, kita mengambil semua itu ke rekening. Memang, pada akhir tahun, apa yang kita akhirnya melakukan adalah normalisasi semua nilai di bagian, baik di Cambridge dan sekarang di sini di New Haven, yang berarti memperhitungkan gaya yang berbeda, yang berbeda dengan kekerasan, jenis yang berbeda kepribadian bahwa individu TA miliki di sini dan di Cambridge sehingga Anda tidak di Kerugian bahkan jika Anda hanya kebetulan telah memiliki TF atau TA yang sudah sedikit lebih sulit pada Anda di dalam pikiranmu. Dua, kami memperhitungkan kenyamanan akun tingkat dan latar belakang yang sebenarnya, atau kurangnya daripadanya, saat mengambil skor memperhitungkan kuis. Jadi kedua adalah faktor di. Dan pada akhir hari, karena itu selalu terjadi bahwa seorang siswa berakhir di bagian kurang nyaman ketika dia benar-benar milik dalam di-antara atau sebaliknya, semuanya begitu sangat individual. Memang, Anda akan mendapatkan kesal pada kami di akhir masa ketika kita terlambat mengirimkan nilai Anda karena dengan Scaz, dan Jason, dan Andy, dan aku, dan tim akan melakukan di Cambridge secara harfiah memiliki ratusan email kembali dan balik dengan semua ratus kursus TA, di sini dan di Cambridge, meminta mereka apa mereka berpikir tentang semua siswanya berdasarkan draft nilai. Dan segala sesuatu yang ada setelah adalah sangat individual. Jadi sejauh kita mengenal Anda di jam kantor, bagian, dan banyak lagi, semua itu terlalu diperhitungkan. Jadi meskipun kita cenderung menggunakan lima ini skala titik, silakan, melepaskan diri dari asumsi bahwa tiga memang 60%. Hal ini dimaksudkan untuk menjadi baik. Dan asisten pengajar dibebankan pada awal jangka mencoba untuk menjaga skor dalam berpasangan, dan bertiga, dan merangkak berkisar sehingga kita benar-benar memiliki ruang untuk tumbuh. Dan kami benar-benar memiliki tolok ukur dimana kami dapat memberikan yang berguna umpan balik tentang bagaimana Anda melakukan dan bagaimana Anda maju. Jadi jangan mengambil hati. Apakah ada pertanyaan saya dapat membantu mengatasi atau masalah saya dapat membantu meredakan? Atau janji saya dapat mencoba untuk menjaga? Tidak? OKE. Baiklah. Jadi dengan mengatakan bahwa, ini adalah CS50. Ini adalah awal minggu enam di sini di New Haven. Mari kita mulai dengan singkat peredupan lampu untuk mengatur panggung untuk konten saat ini. [VIDEO PLAYBACK] [MUSIC PLAYING] -Dia Datang dengan pesan. Dengan protokol semua sendiri. Dia datang ke dunia firewall keren, router tidak peduli, dan bahaya yang jauh lebih buruk bahwa kematian. Dia cepat, dia kuat, dia TCP / IP. Dan dia punya alamat Anda. Prajurit jaring. [END PLAYBACK] DAVID J. Malan: Baiklah. Ini adalah CS50. Ini adalah awal minggu enam. Dan ini adalah awal dari tampilan kami di internet dan web programming. Dan, mungkin yang paling menggairahkan, hari ini menandai transisi bagi kita dari baris perintah kami dunia C ke web dunia berbasis PHP, HTML dan, dan CSS, dan SQL, dan JavaScript, dan banyak lagi yang ada di cakrawala. Tapi pertama, itu telah datang ke perhatian kita dalam berjalan di kampus yang ada adalah kamar mandi tertentu di sini di New Haven disebut ruang Harvard, yang adalah sedikit diklik di sini. Tapi memang, seseorang pergi ke waktu dan biaya etsa di Harvard kamar di sini ruangan ini. Terima kasih untuk itu. Saya tidak bisa mengatakan kami memiliki analog di Cambridge belum, tapi saya pikir kami memiliki proyek kecil untuk diri kita sendiri sekarang ketika kita kembali. Jadi terima kasih untuk itu. Jadi cepat melihat kembali tempat kami tinggalkan pekan lalu dan di mana Anda akan datang ini minggu dengan masalah mengatur lima. Jadi dalam masalah mengatur lima, Anda akan ditantang untuk menerapkan pemeriksa ejaan. Dan untuk melakukan itu, Anda akan menyerahkan teks yang cukup besar file dengan seperti 140.000 kata bahasa Inggris. Dan Anda akan ditantang untuk memutuskan pada struktur data yang Anda ingin memuat semua kata-kata ke dalam memori, dan ke RAM, dan kemudian menerapkan beberapa fungsi, salah satunya akan menjadi memeriksa. Dimana ketika melewati sebuah argumen, kata, fungsi cek hanya akan memiliki mengatakan benar atau salah, ini adalah kata dalam kamus. Tapi Anda akan memiliki beberapa desain kebijaksanaan dan tantangan ketika datang ke menerapkan itu. Dalam pelaksanaan sederhana, Anda bisa pasti menerapkan pemeriksa ejaan di kamus mendasari dengan jenis struktur data? Anda hanya perlu menyimpan keseluruhan sekelompok string dalam memori? Apa pergi untuk menjawab dari dua minggu mungkin? AUDIENCE: Array. DAVID J. Malan: Anda dapat menggunakan sebuah array. Dan itu tidak semua yang buruk. Tapi Anda tidak perlu tahu di muka seberapa besar array Anda akan membutuhkan, jika Anda tidak tahu file tentu terlebih dahulu. Jadi Anda akan harus menggunakan sedikit tipuan seperti malloc, seperti kita mulai menggunakan. Atau kita bisa mengatasi bahwa perhatian dengan menggunakan apa struktur data lain yang menjadi semacam perangkat tambahan marjinal pada array? AUDIENCE: Daftar Linked. DAVID J. Malan: Seperti terkait daftar, dimana kita mendapatkan beberapa dinamisme. Tapi ada beban sedikit lebih. Kami memiliki pointer untuk mempertahankan. Dan Anda belum dikodekan ini up, tapi pasti ada menjadi kompleksitas sedikit lebih daripada hanya menggunakan kurung siku dan melompat-lompat array. Tapi kali array yang berjalan, jika Anda mencari sebuah kata, mungkin log n. Tapi sekali lagi, itu mungkin sedikit non-sepele untuk membangun array tidak mengetahui ukuran di muka. Sebuah linked list meskipun, jika Anda hanya menyimpan sekelompok string dalam linked list, apa batas atas Anda pada waktu berjalan akan mencari untuk atau check kata dalam daftar itu? AUDIENCE: n. DAVID J. Malan: Ya, O besar n atau linear karena dalam kasus terburuk, kata tersebut seperti kata Z semua jalan di akhir. Dan karena linked list, karena mereka panah secara default, dalam daftar sendiri-sendiri terkait, hanya pergi dari satu arah ke arah yang lain, Anda tidak dapat melompat-lompat. Anda harus mengikuti semua dari mereka. Jadi kami mengusulkan pada akhir pekan lalu, minggu lima, bahwa ada cara yang lebih baik. Dan pada kenyataannya, grail suci benar-benar akan waktu yang konstan dimana ketika Anda ingin untuk mencari kata, Anda mendapatkan jawaban instan terlepas berapa banyak kata-kata yang sudah dalam kamus Anda. Ini adalah rendition seorang seniman dari apa yang Anda sebut sebuah tabel hash. Dan tabel hash adalah jenis bagus amalgam dari array-- ditarik secara vertikal di sini, hanya because-- dan kemudian terkait list-- menarik horizontal di sini. Dan tabel hash dapat diimplementasikan dalam tandan cara. Ini kutipan dari buku teks terjadi menggunakan tanggal lahir orang-orang ini sebagai sarana yang itu memutuskan di mana untuk menempatkan nama seseorang. Jadi ini adalah sebuah kamus jika Anda akan nama. Dan untuk mempercepat menempatkan Nama-nama dalam struktur data, mereka melihat, tampaknya, orang-orang ini yang lahir tanggal sehubungan dengan bulan. Jadi 1-31. Dan melupakan Februari dan sudut kasus seperti itu. Dan jika ulang tahun Anda adalah pada Januari 1, atau Februari 1, atau 1 Desember Anda akan berakhir di yang pertama rantai di bagian atas. Jika tanggal lahir Anda seperti 25 bulan, Anda akan berakhir di ember nomor 25. Dan jika sudah ada seseorang di sana di salah satu dari mereka lokasi, apa Anda mulai melakukan dengan ini terkait daftar adalah jahitan mereka bersama-sama sehingga Anda dapat memiliki sewenang-wenang jumlah orang, atau apa pun, di lokasi tersebut. Jadi Anda memiliki jenis campuran waktu yang konstan untuk hashing. Dan untuk hash sesuatu berarti mengambil sebagai masukan seperti orang, atau atau namanya, atau atau kelahirannya tanggal, dan kemudian memutuskan beberapa output berdasarkan itu, seperti melihat mereka ulang tahun dan keluaran satu sampai 31. Jadi Anda mungkin memiliki sedikit waktu linier, tetapi dalam kenyataannya, dan seperti dalam kasus permasalahan yang lima, kita tidak akan bekerja di P ditetapkan lima begitu banyak tentang menjalankan asymptotic waktu, seperti kelambatan teoritis dengan algoritma yang mungkin dijalankan. Kita akan peduli jumlah sebenarnya detik dan jumlah aktual memori, jumlah sebenarnya byte memori Anda menggunakan. Jadi terus terang, memiliki satu besar rantai seperti juta orang cukup sialan lambat jika Anda mencari untuk nama dalam daftar ukuran juta. Tapi bagaimana jika Anda membagi bahwa daftar menjadi 31 bagian? Mencari 31/01 itu Super daftar panjang, pada kenyataannya, ini tentunya akan lebih cepat. Asimtotik, itu hal yang sama. Anda hanya membagi dengan faktor konstan. Dan ingat bahwa kita membuang hal-hal pergi. Namun dalam kenyataannya, itu akan menjadi 31 kali lebih cepat. Dan itulah yang akan kita mulai leverage dalam P ditetapkan lima. Jadi P ditetapkan lima terlalu juga mengusulkan bahwa Anda mempertimbangkan sedikit lebih canggih struktur data yang disebut trie. Dan trie hanya pohon seperti struktur data. Tapi bukannya memiliki lingkaran kecil atau empat persegi panjang seperti yang kita terus menggambar untuk node, itu benar-benar memiliki seluruh array untuk node nya. Dan meskipun ini adalah bit abstrak di sini untuk melihat, Zamyla di P set berjalan melalui akan memandu Anda melalui lebih detail tentang hal ini. Ini adalah struktur data yang lebih cerdik mungkin setiap node menjadi array ukuran 26, A sampai Z atau nol melalui 25. Dan ketika Anda ingin memasukkan seseorang nama ke dalam struktur data atau menemukan dia, apa yang Anda lakukan, jika Nama seperti Maxwell, M-A-X-W-E-L-L, Anda pertama kali melihat M. Dan kemudian Anda melompat ke lokasi M yang sesuai dalam array pertama. Anda kemudian melompat ke A, yang pertama lokasi dalam array berikutnya, mengikuti panah. Kemudian X, maka W, maka E, maka L, maka L, dan kemudian mungkin beberapa akhir khusus karakter, beberapa sentinel yang mengatakan kata berhenti di sini. Dan apa yang baik tentang this-- dan perlu diingat bahwa gambar di sini, perhatikan bagaimana tepi setiap array yang dipotong. Itu hanya karena hal ini akan menjadi besar dan mengerikan melihat di atas layar. Jadi itu dikutip. Apa yang baik tentang pendekatan ini adalah bahwa jika ada satu juta nama yang sudah dalam struktur data, berapa banyak langkah yang dibutuhkan saya untuk memasukkan Maxwell? M-A-X-W-E-L-L-- seperti tujuh-ish langkah-langkah untuk memasukkan atau mencari Maxwell. Misalkan ada satu triliun nama dalam struktur data. Berapa banyak langkah yang dibutuhkan saya untuk mencari Maxwell? M-A-X-- masih tujuh. Dan di situlah letak disebut konstanta waktu. Jika kita menganggap bahwa kata-kata tentu dibatasi 20 karakter, atau 46 karakter, atau beberapa bilangan bulat yang cukup kecil, maka itu efektif konstan. Dan penyisipan dan mencari trie super cepat. Tentu saja, kita tidak pernah mendapatkan sesuatu secara gratis. Dan meskipun Anda mungkin belum terjun ke P ditetapkan lima belum, berapa harga yang kita mungkin membayar untuk mendapatkan bahwa waktu efisiensi bijaksana? AUDIENCE: Memory. DAVID J. Malan: Memory, kan? Maksudku, kita sudah tidak ditarik seluruh gambar di sini. Ini kutipan dari buku teks belum ditarik semua array. Ada sejumlah besar memori dan hanya pointer nol yang tidak sedang digunakan. Jadi itu adalah trade off. Dan itu akan diserahkan kepada Anda di P ditetapkan lima untuk memutuskan arah mana Anda ingin pergi. Sekarang ini ide hashing, sebagai samping, sebenarnya yang super lazim. Jadi untuk hash nilai berarti, cukup hanya, untuk mengambil sesuatu sebagai masukan dan menghasilkan output. Jadi fungsi hash hanya sebuah algoritma. Dan umumnya, tujuan fungsi hash dalam hidup adalah untuk mengambil sesuatu sebagai masukan dan menghasilkan angka sebagai output, seperti nomor satu sampai 31 atau A sampai Z, nol melalui 25. Sehingga dibutuhkan output yang kompleks dan menyusut itu ke sesuatu itu sedikit lebih berguna dan dikelola. Dan ternyata di fungsi yang sangat populer bahwa dunia keamanan dan dunia manusia telah menggunakan selama bertahun-tahun disebut SHA1. Ini adalah cukup mewah matematika formula yang pada dasarnya melakukan itu. Anda mengambil benar-benar besar sepotong nol dan ones-- yang bisa menjadi megabyte panjang, long-- gigabyte dan menyusut ke bawah untuk hanya beberapa bit, beberapa bit, sehingga Anda memiliki nomor seperti satu sampai 31, atau A sampai Z. Namun dalam kenyataannya, itu sedikit lebih besar dari sekedar A sampai Z. Sayangnya, kita berada di titik puncak apa seseorang bercanda disebut SHAppening yang dimana dunia adalah untuk berakhir di mungkin beberapa bulan waktu karena peneliti, hanya minggu terakhir ini, menerbitkan sebuah laporan yang bertentangan dengan apa yang peneliti keamanan telah memikirkan untuk beberapa waktu, dengan hanya menghabiskan sekitar, apa itu, Saya pikir itu adalah $ 175,000-- banyak uang, tapi tidak di luar jangkauan orang jahat sangat buruk, atau sangat buruk countries-- $ 175.000 bisa membeli Anda banyak server sewaan ruang di awan. Dan kami akan kembali ke awan sebelum lama. Tapi itu hanya berarti menyewa server ruang pada server seperti Microsoft, atau Google, atau Amazon, atau seperti di mana Anda dapat membayar oleh menit menggunakan komputer orang lain. Dan ternyata jika Anda dapat membayar orang lain untuk meminjam komputer mereka dan menjalankan kode yang telah Anda tulis di atasnya dan menggunakan cukup mewah matematika, Anda bisa dasarnya angka bagaimana fungsi hash seseorang adalah bekerja, dan diberikan output, reverse engineering apa masukan adalah. Dan untuk tujuan hari ini, Cukuplah untuk mengatakan, ini buruk. Karena SHA1 dan hash fungsi seperti itu super umum digunakan dalam aplikasi keamanan, koneksi terenkripsi di web, transaksi bank, enkripsi seluler untuk ponsel Anda, dan sejenisnya. Dan sehingga setiap kali seseorang menemukan cara untuk membalikkan insinyur salah satu teknologi tersebut atau istirahat itu, hal-hal buruk bisa terjadi. Sekarang dunia sudah tahu ini. Ini adalah mendatang. Dan dunia sejak pindah dari SHA1 ke SHA256, yang hanya cara mewah mengatakan mereka menggunakan bit yang lebih besar. Dan pada kenyataannya, bahkan CS50 sendiri situs upgrade tahun lalu to-- tidak yang kita hadapi semua ini banyak ancaman mencoba untuk mendapatkan di PDF dan whatnot-- tapi website CS50 ini menggunakan fungsi hash yang lebih besar, yang berarti bahwa kita akan aman. Jadi semua PDF Anda akan aman, tapi tidak tentu uang atau apa pun terutama swasta atau pribadi menggunakan. Sp memeriksa URL bahwa jika Anda akan seperti beberapa rincian tambahan. Jadi masalah mengatur lima adalah memang di cakrawala. Kuis satu ini Rabu mendatang. Tapi jangan mengambil keuntungan dari kantor jam, baik malam ini dan besok. Dan juga mengambil keuntungan dari jam kantor, jika Anda tersedia, setelah ini. Staf dan saya akan bertahan dan melakukan lebih santai Q & A selain malam ini. Dan biarkan aku sangat diperhatikan di sini, untuk Bagi kita di sini di New Haven-- sehingga benar-benar per Scaz ini Pernyataan merasa, saya yakin, seperti sedikit perjuangan berat. Dan oleh reputasi, jika Anda belum belajar sudah atau mendengar dari beberapa teman di Harvard, tahu berikut adalah beberapa memori institusional baru. P menetapkan lima jenis jenis cenderung menjadi yang paling sulit di CS50, atau yang paling menantang bagi sebagian besar siswa. Tapi apa itu artinya bahwa kita hampir di puncak bukit ini. Dan aku benar-benar berarti ini. Itu yang paling menantang, tapi itu juga yang paling berharga di bahwa tidak seperti kebanyakan setiap lain ilmu komputer pengantar Tentu saja di AS yang kita tahu, sebagian besar siswa tidak menyelesaikan intro Tentu saja karena telah diimplementasikan hal-hal seperti pohon, dan mencoba, dan tabel hash, dan sejenisnya. Dan jadi saya berharap, dan kami berharap bahwa Anda memiliki rasa besar kepuasan bahkan jika seminggu atau dua melalui yang Anda mendapatkan kepuasan yang tidak merasa sedikit seperti ini. Tapi biarkan saya meyakinkan, kita hanya memiliki empat P set tersisa. Jadi semacam atas yang sudah di depan mata. Di sisi lain dari itu, mempercayai kami, itu hanya bukit-bukit dan awan. Dan akan kita katakan, anak anjing berada di sisi lain. Jadi Anda hanya harus bertahan di sana sedikit lebih lama. Maksudku, memang saat kita mulai transisi ke dunia pemrograman web, Anda akan menemukan bahwa hal-hal become-- ini menggemaskan sebenarnya. OK, kami akan posting URL ini nanti. Anda akan menemukan juga bahwa kita mencapai semacam dataran tinggi di mana segala sesuatu memang masih canggih dan menantang dengan desain, tapi kau tidak akan merasa seperti kita menerus naik bukit ini. Jadi mengambil beberapa kenyamanan dalam hal itu. Jadi tanpa basa-basi lagi, mari kita mulai untuk membuat transisi pasar ini pada semester ke dunia web, dan benar-benar dunia dengan yang kita semua lebih akrab. Kami punya perangkat internet di saku kita, di meja kami, di ransel kita, dan sejenisnya. Bagaimana semua pekerjaan ini? Dan bagaimana kita dapat mulai menulis kode yang tidak super misterius dan dalam beberapa teks berkedip cepat bahwa tidak ada teman atau keluarga pernah akan ingin berinteraksi dengan, tetapi sesuatu yang Anda dapat menempatkan pada ponsel mereka, atau pada browser web mereka, atau pada perangkat dengan yang mereka berinteraksi. Jadi di sini adalah rumah seseorang. Dan di dalam rumah ini adalah beberapa laptop, beberapa desktop jadul komputer, sesuatu yang disebut router atau hub di tengah, dan kemudian beberapa jenis modem kabel atau modem DSL. Dan kemudian ada internet, umumnya ditarik sebagai awan di atas sana di langit. Jadi gambar ini, meskipun semacam sedikit tanggal, tentu menangkap apa yang paling Anda mungkin memiliki di rumah Anda, atau secara efektif apa yang Anda semua memiliki di kamar asrama Anda, atau apartemen, atau sejenisnya. Jadi apa yang sebenarnya terjadi ketika Anda mencoba untuk menggunakan internet saat ini? Jadi setiap komputer pada internet, ternyata, perlu memiliki alamat yang unik, seperti kita dalam kebutuhan dunia nyata alamat pos, seperti 51 Prospect Street, New Haven, Connecticut, atau 33 Oxford Street, Cambridge, Massachusetts. Jadi lakukan komputer di internet membutuhkan cara mengatasi sendiri unik. Itulah sehingga ketika satu komputer ingin berbicara dengan yang lain, dapat mengirim pesan dan menginformasikan penerima kepada siapa harus mengirim respon kembali. Jadi itu hanya membuat semacam intuisi mungkin bahwa segala sesuatu memiliki alamat dari beberapa macam. Tapi bagaimana Anda mendapatkan alamat? Nah, jika Anda mendapatkan di sini di kampus, atau Anda pulang dan Anda menghidupkan Anda laptop atau komputer desktop, dan baik pasang atau terhubung ke Wi-Fi, ternyata ada server khusus pada sebagian besar jaringan disebut server DHCP. Tidak terlalu penting apa ini singkatan, tapi itu konfigurasi host dinamis protokol, yang hanya cara mewah untuk mengatakan, ini adalah komputer yang baik Yale memiliki, atau Harvard memiliki, atau Comcast memiliki, atau Verizon memiliki, atau perusahaan Anda memiliki, yang tujuan dalam hidup, ketika mendengar seseorang yang baru ditambahkan ke jaringan, adalah untuk mengatakan di sini, menggunakan alamat ini. Jadi kita manusia tidak perlu kode keras ke komputer kita apa alamat unik adalah. Kami hanya menyalakannya, buka tutup, dan entah bagaimana server ini pada jaringan lokal hanya memberitahu saya bahwa alamat saya adalah 51 Prospect Street, atau 33 Oxford Street, atau sejenisnya. Sekarang itu tidak akan begitu verbose seperti itu. Sebaliknya apa yang akan saya dapatkan adalah alamat numerik yang disebut alamat IP. IP yang berarti protokol internet. Dan kemungkinan besar saat ini dalam hidup Anda, Anda mungkin pernah mendengar atau melihat kata IP, atau umumnya dilemparkan sekitar mungkin. Namun pada kenyataannya, itu cukup lurus ke depan hal. Sebuah alamat IP hanya angka desimal bertitik, yang berarti itu adalah sesuatu dot sesuatu dot sesuatu dot sesuatu. Dan masing-masing somethings terjadi menjadi nomor antara 0 dan 255. Jadi berdasarkan lima minggu ditambah dari CS50, jika angka-angka ini setiap rentang dari 0 sampai 255, berapa banyak bit adalah setiap orang nomor tanda-tanda? AUDIENCE: Delapan. DAVID J. Malan: Ini harus menjadi delapan. Jadi secara total, berapa banyak bit adalah alamat IP? AUDIENCE: 32. DAVID J. Malan: Jadi 32. 8 ditambah 8 ditambah 8 ditambah 8 adalah 32. Berapa banyak jumlah alamat IP bisa ada di dunia ini? AUDIENCE: 4 miliar. DAVID J. Malan: Jadi kira-kira empat miliar karena itulah 2 32 daya. Dan jika Anda tidak bisa semacam grok itu dalam pikiran Anda, hanya tahu bahwa nilai-nilai 32-bit dapat menjadi sebesar 4 miliar jika itu semua nilai-nilai positif. Jadi itu berarti ada 4 miliar alamat IP mungkin di dunia. Dan cerita lucu, kami jenis kehabisan dari mereka. Dan sebenarnya itu masalah besar dalam dunia juga melihat masalah ini datang, namun belum tentu merespons itu dengan cara yang paling cepat mungkin. Dan memang, setelah Anda sudah selesai CS50 dan mulai memperhatikan di dunia teknologi, Anda akan melihat ini sangat umum tematik. Misalnya, jika kita benar-benar pergi sekolah tua saat ini, Y2K. Itu tidak benar-benar mengejutkan. Seperti semua orang tahu untuk 1.000 tahun yang yang was-- lebih dari seribu years-- yang yang akhirnya akan terjadi. Namun, kita menanggapi itu sangat banyak pada menit terakhir. Dan itu terjadi lagi. Jadi hari ini kita akan berbicara tentang IP versi 4. Tapi tahu bahwa dunia akhirnya mendapatkan sekitar untuk upgrade ke sesuatu yang disebut IPv6, yang bukan 32-bit alamat, uses-- siapa pun ingin mengambil menebak, berapa banyak bit? AUDIENCE: 64? DAVID J. Malan: Baik menebak, tapi tidak ada. Kami akhirnya mencoba mendapatkan di depan kurva. AUDIENCE: 128. DAVID J. Malan: 128, yang adalah sejumlah besar panik alamat IP, karena itu seperti kali 2, kali 2, kali 2, banyak kali berpasangan naik dari 4 miliar. Jadi jika penasaran. Ternyata out-- dan aku hanya googled ini untuk menemukan ini out-- komputer Yale, di sini di Yale, cenderung mulai dengan ini Numbers 130,132 dot sesuatu, dan 128,36 dot sesuatu. Tapi ada pasti pengecualian di seluruh papan tergantung pada departemen apa dan bangunan dan kampus Anda berada di. Harvard cenderung memiliki 140,247, atau 128,103. Dan umumnya ini informasi yang tidak berguna, tapi itu sesuatu yang Anda mungkin melihat sekarang. Ketika Anda mulai mengaduk-aduk pengaturan pada komputer Anda, Anda mungkin mulai melihat ini macam pola lama. Tetapi ketika Anda berada di rumah dan memiliki Apple AirPort, atau perangkat Linksys, atau D-Link, atau apa pun itu orang tua atau saudara kandung diinstal di rumah Anda, baik apa yang Anda mungkin memiliki adalah apa yang disebut alamat IP pribadi. Dan ini adalah benar-benar bagus, solusi sementara untuk masalah berjalan pendek pada alamat IP. Dan apa yang dapat Anda lakukan dengan jaringan rumah, typically-- dan terus terang, bahkan Yale dan Harvard mulai untuk melakukan hal ini di areas-- berbeda adalah Anda dapat memberikan sejumlah besar komputer satu alamat IP selama Anda menempatkan perangkat khusus di depan mereka, sesuatu yang disebut router, atau dapat disebut proxy atau banyak hal lainnya. Tapi perangkat tertentu yang memiliki alamat IP satu. Dan kemudian balik perangkat, dalam bangunan, dalam sebuah rumah atau apartemen, dapat sejumlah komputer, yang semuanya memiliki alamat IP yang mulai dengan satu digit ini di sini. Dan selama komputer yang tahu bagaimana mengkonversi alamat publik untuk alamat pribadi, semuanya bisa memilah pekerjaan seperti yang diharapkan. Namun kebalikan dari ini adalah bahwa jika Anda berada di rumah dan Anda memiliki saudara kandung, dan Anda berdua adalah mengunjungi beberapa situs, situs web yang tidak tahu apakah itu Anda atau saudara Anda mengunjungi situs web, karena Anda tampak sama orang karena semua data Anda akan melalui router yang atau titik pusat. Tapi cukup tentang ini lebih rendah rincian tingkat. Mari kita lihat bagaimana alamat IP kadang-kadang datang mungkin di media dan bagaimana kita sekarang dapat mulai untuk merusak, terus terang, bahkan lebih menunjukkan untuk Anda. Jika kita bisa meredupkan lampu selama beberapa detik. [VIDEO PLAYBACK] -Ini Adalah 32-bit pada IPP 4 alamat. -IP ES internet-- Jaringan-swasta, Jaringan pribadi Tamia ini. Dia begitu menakjubkan. -Ayo Charlie. DAVID J. Malan: Ini alamat IP cermin. Dia membiarkan kita menonton yang dia melakukan secara real time. [END PLAYBACK] DAVID J. Malan: OK. Jadi beberapa masalah dengan ini. Jadi satu, apa yang kita cari di sini di layar adalah kode yang ditulis dalam bahasa yang disebut Objective-C, yang merupakan jenis pengganti untuk bahasa C yang kita lakukan. Ini sama sekali tidak ada hubungannya dengan pemrograman. Bahkan, seperti yang terbaik yang bisa saya katakan, ini adalah program menggambar bahwa seseorang download dari internet entah bagaimana melibatkan krayon. Mungkin kurang mengerikan adalah bahwa alamat IP ini, valid atau tidak valid? AUDIENCE: tidak valid. DAVID J. Malan: INVALID, karena 275 adalah, tentu saja, tidak antara 0 dan 255. Itu juga mungkin OK meskipun, karena Anda tidak ingin sekelompok orang gila yang seperti berhenti TV pada mereka TiVos dan kemudian mengunjungi IP untuk melihat jika sebenarnya ada sesuatu di sana. Sehingga satu ini sedikit kurang mengerikan. Tapi menyadari bahwa terlalu adalah semacam di sekitar kita. Jadi tentu saja, tidak satupun dari kita yang pernah benar-benar mengetik alamat numerik ke browser kita. Ini akan menjadi semacam hal yang buruk jika Google, untuk mengunjungi Google, Anda harus pergi ke 123.46.57.89. Dan seluruh dunia memiliki hanya ingat itu. Dan terus terang, kami sudah baik dari melihat masalah ini sebelumnya. Kembali pada hari ketika orang tidak memiliki ponsel dan daftar kontak, dan perusahaan sebenarnya still-- sebenarnya, Saya kira perusahaan masih memiliki 800 angka dan like-- tetapi Anda umumnya melihat nomor diiklankan sebagai 1-800-MENGUMPULKAN, C-O-L-L-E-C-T. Karena tidak ada yang benar-benar ingat, ketika melihat sebuah iklan di bus atau billboard, apa yang orang nomor adalah, tapi mereka mungkin bisa, dengan tinggi probabilitas, ingat kata. Jadi kita mengadopsi sama jenis sistem di dunia internet dimana ada sistem nama domain sehingga kita manusia bisa ketik google.com, facebook.com, yale.edu, harvard.edu, dan membiarkan sosok komputer apa yang IP yang sesuai alamat untuk nama yang diberikan. Dan cara Anda melakukan hal ini dalam dunia nyata adalah bahwa untuk $ 10 per tahun, mungkin $ 50 per tahun, Anda dapat membeli domain nama, atau benar-benar menyewa nama domain. Dan kemudian siapapun yang Anda membayar untuk menyewa nama domain, Anda memberitahu mereka yang di dunia tahu apa alamat IP Anda. Dan kami tidak akan masuk ke ini khusus, namun banyak dari Anda mungkin ingin, untuk akhir proyek, untuk benar-benar mendaftar untuk Anda web hosting sendiri perusahaan, baik secara gratis atau untuk beberapa dolar per bulan. Beberapa dari Anda mungkin ingin membeli, untuk beberapa dolar, nama domain Anda sendiri, hanya untuk bersenang-senang atau untuk memulai bisnis atau situs pribadi atau sejenisnya. Dan menyadari bahwa semua itu pada akhirnya akan mendidih hingga Anda memberitahu dunia apa alamat IP server Anda adalah. Dan kemudian DNS ini server sebenarnya mengurus menginformasikan sisa dunia. Jadi semua server DNS memiliki, singkatnya, di dalam memori adalah seperti setara dengan spreadsheet Google atau spreadsheet Excel dengan setidaknya dua kolom, salah satu yang memiliki nama, seperti harvard.edu, dan yale.edu, dan google.com. Dan kolom lainnya memiliki sesuai alamat IP atau IP alamat. Dan kita benar-benar dapat melihat ini. Jadi pada Mac-- saya dan Anda bisa melakukan ini pada komputer Windows seperti baik jika saya membuka jendela terminal di sini, cukup seperti yang ada di CD50 IDE, kebanyakan komputer memiliki perintah yang disebut nslookup, server nama mencari. Dan jika saya mengetik sesuatu di seperti yale.edu dan tekan Enter, apa Aku harus melihat apakah jaringan saya bekerja sama sebagai itu untuk beberapa tes sebelum kelas began-- mari kita coba google.com. Tentu saja sekarang tidak ada yang bekerja. Itu bagus. Baiklah, berdiri untuk satu saat. nslookup google.com. Nah, mari kita lihat apakah sebenarnya internet-- ada. Itulah yang terjadi. Oh my god, baik-baik. Wi-Fi pecah. Hei, ingin tahu apa alamat IP saya? Baiklah. YaleSecure. Ini adalah bagaimana Anda memecahkan masalah hal sebagai ilmuwan komputer. Kami mengubah Wi-Fi off. OKE. Dan sebenarnya, Scaz, apakah Anda keberatan login kita ke dalam satu aman? Jika tidak lebih tes are-- OK, terima Anda Yale-- atau akan istirahat. Aku ingin pergi YaleSecure. Oh, dan mungkin kita akan OK. Mungkin kita kembali. Dan itulah bagaimana, sebagai komputer ilmuwan memperbaiki komputer. [Tepuk Tangan] Baiklah. Jadi di mana aku berada dalam ini disebut jendela terminal, dan jika saya nslookup yale.edu, ada kita pergi. Jadi aku kembali pertama alamat IP dari server DNS yang laptop saya menggunakan. Jadi selain server DHCP yang kita berbicara tentang beberapa saat yang lalu menceritakan apa laptop saya IP saya alamat adalah, bahwa DHCP server juga memberitahu saya apa DNS server yang digunakan. Kalau tidak, aku akan mengetik secara manual ini. Tapi itu tidak semua yang menarik. Apa yang saya pedulikan adalah bahwa ini adalah Alamat IP dari situs Yale rupanya. Jadi sebenarnya, mari kita coba ini. Biarkan aku pergi ke browser dan pergi http: //, dan kemudian alamat IP, dan tekan Enter. Dan mari kita lihat. Itu adalah bagaimana lagi Anda bisa kunjungi website Yale. Sekarang tidak semua yang mengesankan. Seperti, pra-Frosh mungkin tidak akan untuk mengingat alamat tertentu jika disuruh berkunjung ke sana setelah mengunjungi. Tapi itu tampaknya bekerja. Dan DNS benar-benar hanya memungkinkan kita untuk memiliki lebih banyak alamat ramah manusia. Tapi mereka tidak selalu hanya menghasilkan satu jawaban. Bahkan, ketika Anda seorang benar-benar perusahaan teknologi besar, Anda mungkin ingin memiliki banyak server. Dan bahkan ini menyesatkan. Jadi Yale mungkin tidak hanya memiliki satu server web. Google mungkin tidak memiliki hanya 10 atau lebih server web. Google terutama mungkin memiliki ribuan server web di seluruh dunia yang dapat merespon permintaan dari orang-orang seperti kita. Tetapi mereka juga menggunakan teknologi yang disebut load balancing, yang cerita panjang pendek, memiliki hanya beberapa perangkat di dunia menyebarkan beban di lebih server. Jadi jenis seperti jaring laba-laba jika Anda akan mengirimkan permintaan. Tapi untuk saat ini, semua itu menarik untuk hari ini adalah bahwa nama domain seperti google.com bahkan bisa memiliki beberapa alamat IP seperti itu. Tapi bagaimana semua data kami benar-benar kembali dan sebagainya maka pada akhirnya? Nah, ternyata ada ini hal disebut router di internet. Dan apa adalah router ke Sejauh Anda sudah tahu? Dan saya telah menggunakan kata pasangan kali dalam konteks rumah, tetapi dalam istilah yang sederhana, apa router lakukan? Beri aku hanya menebak berdasarkan nama? AUDIENCE: Jadi jalan atau jalan? DAVID J. Malan: Jadi itu jalan atau jalan. Jadi rute adalah jalan atau jalan, benar-benar. Dan router, sehingga perangkat yang sebenarnya informasi rute, akan memindahkan data antara titik A dan B. Dan di fact-- dan ini mungkin ketika Anda Google penggambaran dari router di dunia, semua yang Anda dapatkan adalah diagram pemasaran cheesy. Dan jadi ini adalah semacam paling perwakilan yang saya bisa menemukan yang tampak agak menarik. Masing-masing titik-titik ini atau secercah harapan di seluruh dunia merupakan router. Dan masing-masing memiliki garis antara beberapa router lainnya. Karena memang, ada ribuan, mungkin jutaan router sekitar dunia, beberapa di antaranya di rumah kita dan di kampus-kampus kami, tapi banyak yang dimiliki oleh perusahaan-perusahaan besar dan saling berhubungan sehingga jika saya ingin mengirim beberapa data dari sini di Yale pulang ke Cambridge, Yale mungkin tidak memiliki satu kabel, tentu, akan langsung ke Harvard. Dan Yale tidak memiliki kabel tunggal akan MIT, atau ke Stanford, atau untuk Berkeley, atau Google, atau sejumlah tujuan. Sebaliknya, Yale, dan Harvard, dan orang lain di internet tidak memiliki satu atau lebih router terhubung, mungkin di pinggiran kampus. Sehingga ketika data saya ingin meninggalkan kampus Yale, ia pergi ke router terdekat, seperti yang digambarkan oleh salah satu titik-titik ini. Dan kemudian bahwa angka-angka router apakah untuk mengirimkannya dengan cara ini, atau cara ini, atau cara ini, atau cara ini berdasarkan di meja lain di memori, Excel file lain atau Google spreadsheet yang dalam satu kolom mengatakan, jika alamat IP Anda dimulai dengan nomor satu, pergi dengan cara ini. Jika alamat IP Anda dimulai dengan nomor dua, pergi ke arah sana. Dan sehingga Anda dapat memecahnya numerik untuk memiliki router pengiriman Data segala arah. Dan kita bisa melihat jenis ini juga. Mari kita pergi ke depan ke terminal ini jendela lagi, dan biarkan aku pergi ke depan dan melacak rute ke, katakanlah, www.mit.edu, yang beberapa ratus mil jauhnya. Itu benar-benar sialan cepat. Jadi apa yang baru saja terjadi? Jadi hanya dalam tujuh langkah, dan hanya dalam empat milidetik, Saya mengirim data melalui internet dari sini di Yale untuk MIT. Setiap baris ini, Anda bisa mungkin kira sekarang mewakili apa? AUDIENCE: router A. DAVID J. Malan: router A. Jadi memang, sepertinya ada sekitar tujuh atau lebih router, atau enam router di antara aku fisik di sekolah hukum Yale di sini dan situs MIT di sana. Dan apa yang dapat kita ambil dari ini sebagai follows-- dan biarkan aku membersihkannya. Aku akan mengulangi dengan perintah Argumen garis q 1 untuk hanya mengatakan, hanya memberi saya satu permintaan. Secara default, trace route melakukan tiga. Dan itu sebabnya kami melihat tandan nomor. Saya ingin melihat nomor lebih sedikit hanya untuk menjaga output bersih. Dan mari kita lihat apa yang terjadi. Jadi untuk alasan apa pun, seseorang di pikiran Yale akan lucu untuk menyebutnya Anda standar arubacentral router, yang adalah pada vlan atau virtual LAN, area virtual lokal jaringan 30-- sehingga Anda mungkin memiliki setidaknya 29 router.net.yale.internal others--. Dan INTERNAL sini adalah jenis palsu domain tingkat atas dimaksudkan untuk digunakan hanya di kampus. Dan melihat alamat IP yang sesuai itu router, di mana pun di sini di kampus, adalah 172.28.204.129. Dan butuh 36 milidetik untuk pergi dari sini ke sana. Cerita lucu. Kita akan kembali ke hanya dalam beberapa saat. Tapi sekarang router-- kedua yang arubacentral rupanya memiliki beberapa jenis fisik koneksi paling likely-- manusia tidak repot-repot penamaan itu. Yale manusia tidak repot-repot penamaan karena itu dalam jaringan Anda kelihatannya. Dan sehingga hanya memiliki alamat IP. Tapi kemudian router ketiga di sini pada jaringan Yale itu mungkin sedikit lebih jauh masih disebut cen10g apapun yang asr.net.yale.internal. Dan juga memiliki alamat IP. Sekarang mengapa angka-angka ini jenis berfluktuasi? 2,9, 1,4, 36? Router mendapatkan sibuk. Dan mereka mendapatkan sesak dan didukung. Ada ribuan orang di ini kampus menggunakan internet sekarang. Ada seratus orang di ini Ruangan menggunakan internet sekarang. Dan apa yang terjadi adalah bahwa router mungkin akan sesak. Dan saat-saat mungkin berfluktuasi sedikit. Jadi itu sebabnya mereka tidak tentu meningkatkan tedeng aling-aling. Tapi hal-hal semacam menarik pada langkah empat. Rupanya antara Yale dan Langkah empat adalah hop lain. Dan di mana router pada langkah empat mungkin? AUDIENCE: [tidak terdengar] DAVID J. Malan: JFK mungkin, mungkin di bandara. Tapi untuk alasan apapun, administrator sistem, sehingga Geeks yang menjalankan server untuk tahun telah bernama router setelah kode bandara terdekat. Jadi JFK mungkin berarti itu hanya suatu tempat di New York, mungkin di Manhattan atau salah satu borough. nyc2 menunjukkan, mungkin, lain router itu di suatu tempat di New York. Aku tak tahu di mana baris enam di sini, jumlah router enam. quest.net ISP besar, penyedia layanan internet, yang menyediakan konektivitas internet ke tempat-tempat besar seperti Yale dan lain-lain. Dan kemudian yang terakhir ini, terlihat seperti itu MIT bahkan tidak memiliki website sendiri di Cambridge tentu, melainkan mereka sudah outsourcing situs web mereka, atau setidaknya server fisik, untuk sebuah perusahaan bernama Akamai. Dan Akamai sebenarnya sampai jalan dari MIT di Cambridge ternyata. Tapi menyadari juga bahwa bahkan berpikir Anda akan www.mit.edu, kita bisa benar-benar dikirim mana saja di dunia. Dan mari kita lihat di suatu tempat lain di dunia. Biarkan aku pergi ke depan dan jelas layar ini dan sebagai gantinya melacak rute, hanya sekali, sehingga permintaan satu, untuk www.cnn.co.jp, halaman rumah Jepang untuk CNN, situs berita. Dan jika saya tekan Enter sekarang, Mari lihat apa yang terjadi. Kami lagi mulai arubacentral. Kami kemudian pergi ke tanpa nama router, beberapa lagi. Jadi butuh 12 hop ke sampai ke Jepang kali ini. Dan mari kita lihat apa yang bisa kita memungut. Hop Jadi sama, hop yang sama. Sedikit berbeda sekarang. Yang satu ini menarik. Jadi aku menebak di sini, stamford1 adalah beberapa kota jauh di Connecticut juga. Router ini berturut-turut enam dan tujuh tidak memiliki nama. Tapi ini adalah jenis menakjubkan. Jadi apa yang tampaknya menjadi antara router pada langkah tujuh dan delapan? Dan mengapa Anda mengatakan sebanyak? Ya? AUDIENCE: Ocean. DAVID J. Malan: Mungkin lautan. Kita tahu itu benar seperti, intuitif, kan? Tapi kita bisa memastikan sebanyak jenis dari semacam empiris mengapa? Apa yang telah berubah antara baris tujuh dan delapan? Butuh lebih banyak waktu untuk pergi ke apa ini router tanpa nama tujuh adalah, mungkin di suatu tempat di benua Amerika, ke langkah delapan, yang mungkin di suatu tempat di Jepang berdasarkan nama domain .jp ada. Dan begitu mereka tambahan ratus sesuatu milidetik atau 90 atau lebih milidetik adalah hasil data kami akan atas tubuh yang cukup besar air. Sekarang anehnya, tampaknya bahwa mungkin kabel yang berlangsung di seluruh AS. Jika kita benar-benar akan lebih Pantai Barat untuk sampai ke Jepang, itu semacam jalan panjang jika kita pergi ke arah lain. Sehingga tidak sepenuhnya jelas apa yang terjadi secara fisik. Tetapi kenyataannya bahwa setiap hop tambahan memang mengambil nyata lagi dari setiap lain, itu cukup baik konfirmasi bahwa CNN Web server Jepang mungkin memang di Jepang. Dan itu pasti jauh jauh dari MIT telah. Dan itu perlu dicatat juga, Data Anda tidak harus akan bepergian dengan jarak sesingkat mungkin. Bahkan, jika Anda bermain-main dengan trace route di rumah hanya memilih website acak, Anda mungkin menemukan bahwa hanya untuk mengirim email atau untuk mengunjungi website yang ada di sini di New Haven, kadang-kadang data Anda mungkin pertama mengambil jalan memutar, pergi ke DC, dan kemudian datang kembali. Dan itu hanya karena keputusan routing dinamis bahwa komputer ini membuat. Sekarang hanya untuk bersenang-senang, tim produksi dipangkas salah satu video ini untuk kita hanya sedikit lebih ringkas. Tetapi untuk memberikan kita rasa cepat di sini- dan kita bisa meninggalkan lampu on-- untuk berapa banyak kabel adalah sebenarnya membawa semua data kami. [VIDEO PLAYBACK] [MUSIC PLAYING] [END PLAYBACK] DAVID J. Malan: Semua video jaringan memiliki musik terdengar keren rupanya. Jadi itu untuk mendapatkan hanya rasa berapa banyak memiliki telah terjadi di bawah tenda. Tapi mari kita lihat sebuah tingkat sedikit lebih rendah sekarang apa data yang sebenarnya melintasi jalur tersebut, dan bahkan akan secara nirkabel di ruang seperti ini. Jadi ternyata ketika Anda meminta halaman web, atau mengirim e-mail, atau menerima halaman web, atau e-mail, atau pesan Gchat, atau pesan Facebook, atau sejenisnya, yang tidak hanya satu sebagian besar dari bit mengalir secara nirkabel melalui udara atau elektronik pada sebuah kawat. Sebaliknya, permintaan itu atau Tanggapan umumnya chunked menjadi potongan-potongan terpisah. Jadi dengan kata lain, ketika Anda memiliki meminta untuk membuat komputer lain, atau Anda mendapatkan kembali respon dari computer-- lain seperti misalkan, misalnya, jika yang asing karena terlalu banyak orang tampaknya days-- ini jika tidak terbiasa dengan this-- Bukankah ini fellow-- orang ini. Jadi kira ini adalah pesan yang Saya ingin mengirim kepada seseorang di belakang. Yang di belakang sangat ingin menerima gambar dari Rick Astley hari ini? OK, siapa namamu? AUDIENCE: Cole. DAVID J. Malan: Apa itu? AUDIENCE: Cole. DAVID J. Malan: Holt? H-O? AUDIENCE: C-O-L-E. DAVID J. Malan: C-O-L-E, Cole. Maaf. C-O-L-E. Baiklah. Jadi jika saya ingin mengirim Cole ini gambar di sini, Anda tahu ini adalah jenis gambaran besar, kan? Ini bisa menjadi beberapa kilobyte, beberapa megabyte, terutama jika itu resolusi tinggi. Dan aku tidak benar-benar ingin berhenti orang lain dari menggunakan internet hanya sementara saya mengirimkan ini benar-benar besar, kualitas gambar yang tinggi Rick Astley seluruh ruangan. Saya ingin data Anda untuk terus melintasi jaringan dan Wi-Fi demikian juga. Dan sehingga membuat sense-- dan ini dipulihkan secara elektronik, tidak begitu banyak di dunia nyata. Sebenarnya, ini akan memiliki beberapa arti jika Anda mengambil audio saya keluar. Jadi jika saya merobek ini di paruh seperti ini di sini, ini sekarang dapat melakukan perjalanan dengan internet lebih efisien, karena itu adalah bagian yang lebih kecil. Jadi dengan probabilitas rendah itu akan berbenturan dengan lalu lintas orang lain di internet. Dan jadi apa komputer Anda memang tidak ketika Anda ingin mengirim pesan ke Cole itu potongan up pesan seperti ini dalam potongan kecil, fragmen sehingga untuk berbicara. Dan kemudian menempatkan mereka dalam apa yang kami akan memanggil semacam amplop virtual. Jadi saya memiliki empat amplop kertas di sini. Dan aku sudah pra-nomor mereka, satu, dua, tiga, dan empat. Dan apa yang akan saya lakukan di depan ini, hanya seperti mailing normal, adalah aku akan menempatkan nama Cole ada. Dan kemudian di atas, saya akan menempatkan nama saya di sana, David, sehingga paket tersebut pertama Aku akan mengirim luar sana di internet terlihat sedikit sesuatu seperti ini, karakteristik yang menonjol dari yang yang memiliki untuk mengatasi, dari alamat, dan juga sejumlah, sehingga bahwa yang diharapkan adalah informasi yang cukup untuk Cole untuk merekonstruksi pesan ini. Jadi biarkan aku melakukan hal yang sama di sini, sama di sini, dan yang sama di sini, menulis namanya di Ke lapangan pada mereka semua. Dan kemudian mari kita pergi ke depan dan menempatkan gambar ini di dalam. Jadi di sini adalah satu paket yang siap untuk pergi. Berikut ini adalah paket lain yang siap untuk pergi. Berikut ini adalah paket ketiga yang siap untuk pergi. Dan di sini adalah keempat paket yang siap untuk pergi. Dan sekarang apa yang menarik tentang bagaimana internet pada kenyataannya karya adalah bahwa meskipun saya punya empat paket, yang semuanya ditakdirkan untuk sama Lokasi, mereka belum tentu akan melintasi rute yang sama. Dan jadi meskipun saya mungkin tangan ini Paket off ke router terdekat katakanlah, jika Anda ingin mengirim mereka setiap cara yang, mari kita lihat apa yang sebenarnya terjadi, tujuan yang membuat mereka akhirnya Cole. Dan memang, mereka sudah tidak tentu mengambil arah yang sama. Dan itu baik-baik saja. Ini adalah sedikit canggung dan gaya Oprah hari ini. Dan sekarang biarkan aku sengaja mengambil satu kembali. Dan sekarang Cole, jika Anda ingin berkumpul kembali sebaik mungkin. Tentu saja, kita semua bisa menebak apa kesimpulan di sini akan menjadi. Anda akan memiliki 3/4 dari Rick Astley hanya dalam beberapa saat. Dan apa meskipun adalah Implikasi dari itu? Anda ingin mencoba untuk menahan itu? Kami memiliki satu kamera menunjuk pada Anda jika Anda ingin berpose dengan Rick Astley di sini. Di sana kami pergi. Indah. Tetapi Anda tampaknya akan hilang fragmen dari Rick Astley. Jadi ternyata bahwa internet umumnya didorong oleh tidak hanya IP, tapi sebenarnya kita mendengar di sangat mulai dari kuliah di video-- yang dan Anda mungkin pernah melihat ini akronim lebih often-- apa yang sebenarnya adalah protokol Anda cenderung mendengar tentang? AUDIENCE: TCP / IP. DAVID J. Malan: TCP / IP, yang hanya kombinasi dari dua protokol, satu disebut IP. Yang lagi, hanya mengatur konvensi via yang kita mengatasi setiap komputer di internet. Dan kemudian TCP, yang melayani tujuan lain. TCP adalah protokol yang Anda biasanya digunakan dalam hubungannya dengan IP, yang antara lain hal, pengiriman jaminan. Bahkan, TCP adalah protokol yang akan melihat bahwa salah satu paket ternyata tidak bisa Cole, karena ia tampaknya menjadi hilang nomor empat dari empat. Dan jadi apa TCP, protokol tidak, itu mengatakan Cole, hey Cole, jika Anda hanya menerima tiga dari empat paket, memberitahu saya mana yang Anda hilang, pada dasarnya, dan kemudian tujuan saya dalam hidup harus untuk memancarkan kembali itu. Dan jadi jika saya juga, pengirim, menggunakan TCP, Saya kemudian harus membuat packet-- baru Bukankah ini keriput satu di sini- memancarkan kembali hanya ini sepotong itu, sehingga akhirnya Cole memiliki souvenir lengkap, jika tidak ada yang lain. Tapi sehingga pada akhirnya data sebenarnya sampai ke tujuan yang benar. Namun sayangnya, menulis nama Cole di bagian depan tidak cukup, per se. Dan benar-benar, saya tidak akan menulis Nama Cole, tapi mungkin alamat IP-nya di amplop. Dan aku tidak akan menulis David. Saya akan menulis alamat IP saya di amplop sehingga komputer dapat benar-benar berkomunikasi kembali dan sebagainya. Tapi ternyata bahwa komputer dapat melakukan cara yang lebih dari melayani sampai gambar Rick Astley. Mereka juga dapat mengirim ulang dan menerima email, pesan chat. Mereka dapat melakukan hal-hal seperti transfer file, dan sejumlah alat lainnya Anda gunakan di internet, server dapat lakukan hari ini. Dan hanya karena sebuah perusahaan, atau sekolah, atau seseorang ingin memiliki sebuah server web, dan server email, dan server obrolan, tidak berarti Anda perlu tiga komputer. Anda dapat memiliki hanya satu komputer yang menjalankan beberapa layanan, sehingga untuk berbicara. Dan jadi ketika Cole menerima pesan seperti itu, bagaimana tidak komputer tahu apakah akan menunjukkan gambar yang di browser-nya, atau dalam Gchat, atau Facebook Messenger, atau dalam sejumlah alat lainnya? Jadi ternyata juga pada yang sebagai amplop adalah bagian tambahan informasi yang dikenal sebagai nomor port. Dan nomor port adalah hanya nomor memang, tapi unik mengidentifikasi tidak komputer, tetapi layanan. Dan ada tandan tersebut. Jadi ternyata bahwa di dunia, manusia telah memutuskan pada beberapa seperti konvensi, beberapa di antaranya adalah ini. Jadi ada sesuatu yang disebut Berkas Transfer Protocol. Ini cukup tanggal. Ini benar-benar tidak aman. Banyak orang masih menggunakannya. Dan menggunakan nomor port 21. Dengan kata lain, jika mengirim file melalui FTP, amplop akan memiliki tidak hanya pengirim dan alamat IP penerima, itu juga akan memiliki nomor 21 sehingga komputer yang menerima tahu oh, ini adalah file, bukan email atau pesan chat. 25 adalah SMTP. Berapa banyak dari Anda yang pernah menggunakan SMTP? Salah. Hampir semua yang Anda miliki. Jika Anda pernah menggunakan email, Anda telah menggunakan SMTP, sederhana transfer protocol email, yang adalah cara mewah mengatakan, ini adalah jenis komputer atau layanan yang mengirim keluar email Anda. Dan jika Anda sudah pernah melihat akronim seperti POP, atau IMAP, dan ada beberapa orang lain, mereka adalah untuk menerima email, biasanya. Itu hanya berarti itu layanan yang berbeda. Ini perangkat lunak yang seseorang menulis bahwa mengirimkan atau mendengarkan pada nomor port tertentu sehingga bahwa itu tidak membingungkan email dengan beberapa jenis lain dari data. Sekarang web adalah HTTP, yang merupakan nomor 80, dan juga port 443. Dan pada kenyataannya, meskipun kita manusia untungnya tidak perlu melakukan hal ini, setiap kali Anda mengunjungi website seperti http://www.yale.edu, browser hanya menjadi semacam membantu dalam bahwa itu dengan asumsi bahwa Anda ingin pelabuhan numerik 80. Kita sudah tahu bahwa DNS tahu apa alamat IP dari www.yale.edu. Tapi komputer hanya akan menyimpulkan bahwa Anda ingin port 80 karena Anda menggunakan Chrome, atau IE, atau browser lain. Tapi saya secara teknis bisa melakukan usus 80. Dan kemudian saya secara eksplisit dapat memberitahu browser saya, mengirim paket atau lebih informasi untuk www.yale.edu meminta halaman rumah hari ini. Namun secara khusus, alamat untuk IP Yale di port 80 sehingga saya benar-benar mendapatkan kembali server web Yale. Sekarang segera menghilang karena browser hanya memutuskan bahwa kita tidak perlu bingung manusia dengan memiliki lebih banyak lagi misterius Informasi seperti usus 80. Dan terus terang, browser seperti Chrome bahkan tidak menunjukkan HTTP lagi, atau usus besar, atau slash slash, atau garis miring di belakang, dalam arti karena mereka berusaha untuk membuat hal-hal sederhana bagi pengguna. Dalam arti lain, itu hanya jenis dari pengalaman pengguna thing-- mari kita menyingkirkan beberapa kekacauan. Tapi itu bersembunyi beberapa rincian ini mendasari. Dan pada kenyataannya, tidak satupun dari kita mungkin pernah ketik http lagi. Anda hanya mengetikkan sesuatu seperti www.harvard.edu. Dan lagi, menyimpulkan Chrome yang Anda inginkan HTTP. Tapi ada protokol lain bahwa kita bisa pasti menggunakan. Jadi diberikan semua ini, jika Anda sekarang semacam dari memakai yang disebut topi rekayasa, bagaimana hal yang disebut firewall bekerja? Jadi Anda mungkin umumnya akrab dengan firewall, tidak begitu banyak dalam arti fisik. Jadi kembali pada hari, dan masih sampai hari ini, jika Anda punya seperti mal strip untuk Misalnya yang memiliki banyak toko-toko, umumnya dinding di antara toko individu atau toko adalah firewall dalam arti bahwa mereka memiliki isolasi khusus sehingga jika api pecah di satu toko, itu tidak selalu menyebar ke toko sebelah. Dunia komputer juga memiliki firewall yang melakukan sesuatu yang berbeda. Apa bola api lakukan? Ya? AUDIENCE: Pada dasarnya mereka memotong koneksi jika mereka menemukan sesuatu seperti, misalnya, mereka memiliki sejumlah pernyataan id. Dan jika sesuatu terjadi, mereka memotong sambungan. Seperti jika serangan berbahaya ini [Tidak terdengar] komputer Anda, or-- DAVID J. Malan: OK baik. Ya, dan pada kenyataannya Anda bahkan akan sedikit lebih jauh dalam menggambarkan sesuatu yang mungkin disebut sistem deteksi intrusi, atau IDS untuk jangka pendek, dimana Anda benar-benar memiliki aturan yang ditetapkan. Dan jika Anda mulai melihat mencurigakan perilaku, Anda mencoba untuk mengakhiri itu. Dan firewall, terus terang, pada tingkat jaringan, bahkan bodoh dan sederhana dari itu, secara umum. Dan ada berbagai jenis dari firewall di dunia. Tapi orang-orang yang beroperasi pada tingkat kita berbicara today-- IP dan TCP-- bekerja bahkan lebih lugas. Misalnya, jika Anda sistem Yale administrator, atau sistem Harvard administrator, atau Big Saudara di beberapa perusahaan, dan Anda ingin mencegah semua Anda siswa atau semua karyawan Anda dari pergi ke facebook.com, semua harus Anda lakukan adalah memastikan bahwa semua mereka lalu lintas jaringan, pertama-tama, berjalan melalui perangkat khusus. Mari kita menyebutnya firewall. Dan itu bagus, karena Anda dapat membuat router Anda hal yang sama sebagai firewall jika Anda menempatkan jenis yang sama perangkat lunak pada mesin yang sama. Jadi, jika semua siswa Anda atau lalu lintas karyawan akan melalui ini firewall pusat, bagaimana akan kami memblokir orang dari pergi untuk facebook.com, misalnya? Apa yang akan sistem memiliki administrator untuk melakukan? Orang lain? Mari kita coba untuk pergi sekitar. AUDIENCE: [tidak terdengar] DAVID J. Malan: Katakan itu lagi? AUDIENCE: Ini harus hanya mendapatkan terperangkap di dalam sistem. Jadi hanya menempatkan Facebook ke 127.0.0-- DAVID J. Malan: Oh, menarik. Jadi Anda benar-benar dapat kemudian hack sistem DNS Anda. Ini memang cara Anda bisa melakukan ini dimana setiap saat mahasiswa Yale menarik up www.facebook.com, semua kita di sini hari ini di kampus menggunakan DNS server Yale, karena server DHCP Yale memberi kami alamat tersebut. Jadi ya, Anda bisa jenis memecahkan hal-hal atau istirahat konvensi dengan hanya mengatakan, ya, alamat facebook.com adalah palsu, adalah 1.2.3.4, yang merupakan tidak benar-benar sah. Atau mungkin itu 278. apa pun dalam acara TV saat yang lalu sehingga tidak satupun dari kita benar-benar dapat mengunjungi facebook.com. Jadi misalkan Yale melakukan itu. Misalkan Yale ingin menjaga Anda keluar dari facebook.com. Dan karena itu, mereka mengubah pengaturan DNS untuk memberikan IP palsu alamat untuk facebook.com. Bagaimana Anda menanggapi? Secara teknis, not-- oh, sekarang semua orang ingin berpartisipasi. OK, ya. AUDIENCE: Anda cukup ketik di alamat IP sebenarnya dari Facebook. DAVID J. Malan: OK, baik. Jadi kita hanya bisa mengetik di alamat IP sebenarnya dari Facebook, banyak seperti yang saya lakukan dengan situs Yale. Dan jika server Facebook dikonfigurasi untuk mendukung itu, sebaiknya memang bekerja. Itu sakit kecil di leher, karena sekarang kita harus ingat beberapa acak Nilai 32-bit, tapi itu bisa bekerja. Apa lagi yang bisa Anda lakukan? Ya. AUDIENCE: Anda bisa mengubah pengaturan tersebut [tidak terdengar]. DAVID J. Malan: Ya, Anda bisa bahkan mengubah pengaturan DNS Anda. Jadi sebenarnya ini sebenarnya cukup berguna, terus terang, jika Anda berada di bandara, atau jika Anda berada di sebuah kafe, atau sesuatu yang memiliki internet serpihan dimana kadang-kadang server DNS hanya berhenti bekerja. Jadi, bahkan kadang-kadang saya lakukan ini, bukan untuk berbahaya, saya ingin menggunakan Facebook tujuan, tapi benar-benar karena saya tampaknya memiliki jaringan koneksi, tapi tidak ada yang bekerja. Dan jadi salah satu yang pertama hal yang saya try-- dan Anda dapat melakukan hal ini pada Windows too-- tapi pada Mac saya, jika saya pergi ke Jaringan. Dan saya memilih koneksi Wi-Fi saya. Dan aku pergi ke Lanjutan. Dan aku pergi ke DNS. Ini adalah tiga Alamat IP yang Yale adalah memberi saya selama tiga server DNS. Tujuannya kemudian adalah bagi saya untuk mencoba salah salah satu dari ini untuk menyelesaikan alamat. Tapi aku bisa menimpa ini dengan melakukan plus. Dan siapa pun ingin mengusulkan server DNS? AUDIENCE: 8.8.8.8? DAVID J. Malan: Oh, kau menakjubkan. Ya, 8.8.8.8. Jadi Google, memberkati hati mereka, membeli alamat IP 8.8.8.8, karena jenis terlihat seperti Gs mungkin, dan itu mudah diingat. Tapi memang, sekarang saya telah mengkonfigurasi saya komputer untuk menggunakan server DNS Google. Jadi sekarang jika saya pergi ke yale.edu, itu masih akan bekerja. Tapi aku tidak menggunakan Yale Server DNS lagi. Dan jika saya pergi ke facebook.com, semua orang terlihat up akan pergi melalui Google. Jadi di satu sisi, saya sudah cerdik dielakkan sistem lokal administrator hanya dengan memahami bagaimana jaringan bekerja. Tapi saya membayar harga. Tidak ada yang gratis. Apa yang telah saya hanya menyerah? Apa yang telah saya hanya menyerah? Kalian semua orang pandai yang memiliki telah menggunakan 8.8.8.8, karena itu keren atau memecahkan masalah, apa yang harus Anda telah melakukan semua saat ini? AUDIENCE: Traveling jauh? DAVID J. Malan: Mungkin bepergian jauh, karena Google mungkin tidak cukup sebagai sedekat server di jalan. Tetapi lebih worrisomely. Ya? AUDIENCE: Jadi sekarang Google tahu di mana Anda akan pergi. DAVID J. Malan: Google tahu harfiah setiap website yang Anda kunjungi, karena Anda benar-benar meminta mereka, hey Google, Anda dapat menerjemahkan yale.edu untuk saya? Atau hey Google, dapat Anda menerjemahkan ini alamat website lain bagi saya menjadi alamat IP. Dan jadi they're-- saya tidak tahu apa yang Anda bicarakan. Dan sehingga mereka tahu segalanya tentang Anda. Jadi menyadari bahwa ini adalah layanan gratis dengan tujuan dari perspektif mereka demikian juga. Tapi itu pasti bisa membuat Anda keluar dari mengikat. Sekarang hanya untuk mengatasi salah satu lainnya Masalah yang sering muncul kalangan mahasiswa, terutama ketika bepergian internasional di negara-negara tertentu seperti Ada Cina, di mana memang adalah Great Firewall of China dimana pemerintah ada blok cukup sedikit lalu lintas pada tingkat yang berbeda. Anda tidak harus hanya blok lalu lintas di tingkat kita berbicara di sini, DNS atau sebaliknya, Anda dapat memblokir itu di tingkat lainnya. Dan pada kenyataannya, hanya untuk jelas, firewall dapat beroperasi bahkan lebih sederhana dari sekedar memiliki administrator sistem mengubah Pengaturan DNS. Sebuah firewall, perangkat di antara kami dan seluruh dunia, hanya bisa memblokir keluar setiap permintaan ke alamat IP Facebook pada port 80, atau alamat IP untuk harvard.edu, atau alamat IP dari apa pun. Jadi firewall dapat melihat Anda amplop 'alamat IP dan bahkan pelabuhan angka, dan jika Yale ingin, itu hanya bisa menghentikan kita semua dari bahkan menggunakan FTP lagi, yang akan mungkin menjadi hal yang baik karena memang protokol tidak aman. Yale bahkan bisa menghentikan kita dari mengunjungi keseluruhan web hanya dengan memblokir semua pelabuhan lalu lintas di sejumlah 80 juga. Sehingga mungkin cara lain. Dan ada cara bahkan lebih menarik juga. Tapi ketika Anda sedang bepergian luar negeri misalnya, atau jika Anda berada di sebuah kafe internet, atau jika Anda di mana saja di mana ada penyumbatan atau ancaman, apa yang dapat Anda lakukan? Nah, jika Anda pergi ke jalan untuk Starbucks atau Anda bepergian di bandara, umumnya Anda hanya bisa melompat pada Wi-Fi dengan memilih seperti, JFK Wi-Fi dari LaGuardia Wi-Fi, atau Logan Airport Wi-Fi, atau apa yang tidak. Dan itu tidak dienkripsi, kan? Tidak ada ikon gembok. Dan Anda mungkin tidak diminta untuk username dan password. Anda hanya diminta dengan beberapa bentuk bodoh mengatakan seperti, aku setuju untuk menggunakan ini hanya selama 30 menit, atau sesuatu seperti itu. Tapi tidak ada enkripsi antara Anda dan akses Wi-Fi Starbucks titik, hal-hal dengan antena di dinding. Tidak ada enkripsi antara Anda dan sinyal Wi-Fi bandara. Dan secara teknis, bahwa orang menyeramkan duduk beberapa kursi turun dari Anda di Starbucks atau di bandara bisa, dengan perangkat lunak yang tepat, menonton semua nirkabel Anda lalu lintas di laptop-nya. Ini tidak sulit untuk menempatkan laptop ke apa disebut modus promiscuous, yang seperti namanya, berarti Anda jenis longgar dengan aturan. Dan itu hanya mendengarkan tidak hanya untuk lalu lintas berarti untuk itu, tetapi juga untuk orang lain yang lalu lintas dalam jangkauan. Dan dengan logika itu, dapat melihat semua paket informasi Anda menerima. Dan jika paket tersebut tidak dienkripsi, Anda menempatkan diri pada risiko email Anda, atau pesan Anda, atau apa pun mendapatkan terkena. Jadi, bahkan jika Anda tidak di luar negeri tapi kau hanya di Starbucks, atau Anda pada beberapa acak orang Wi-Fi yang tidak terenkripsi, VPN adalah hal yang baik. Sebuah VPN adalah jaringan pribadi virtual. Dan itu teknologi yang memungkinkan Anda untuk memiliki terenkripsi, sebuah connection-- orak menarik daripada Caesar atau Vigenere-- antara laptop Anda, atau telepon Anda, atau desktop, dan server di tempat lain, seperti server di kampus Yale. Dan jika Anda bepergian abroad-- dan pada kenyataannya, Anda menemukan ini di hotel sepanjang waktu. Dan terutama sebagai calon ilmuwan komputer di mana kalian mungkin, sebagai Geeks, ingin menggunakan port selain 80, dan port selain 443-- dan sebenarnya untuk masalah set enam, kita akan bermain dengan beberapa TCP port hanya dengan choice-- banyak hotel, dan toko-toko, dan jaringan hanya memblokir hal semacam itu karena mereka agak naif, atau bodoh, hanya berpikir bahwa tidak ada yang perlu port lainnya. Dan dengan menggunakan VPN bisa Anda menghindari orang-orang macam pembatasan, karena apa yang dilakukan adalah VPN memungkinkan Anda di Starbucks, atau bandara, atau di mana saja di dunia untuk menghubungkan encryptedly ke yale.edu, ke beberapa server di sini di kampus, dan kemudian terowongan, sehingga untuk berbicara, semua lalu lintas Anda dari manapun Anda melalui Yale, di mana titik kemudian pergi ke tujuan akhir. Tapi dengan mengenkripsi itu, Anda menghindari dari jenis filter atau pembebanan yang beberapa jaringan lokal telah dikenakan. Dan ditambah, Anda memiliki pertahanan jauh lebih kuat terhadap orang-orang menyeramkan di sekitar Anda yang mungkin menjadi mencoba untuk mendengarkan pada lalu lintas Anda. Masih bisa orang menyeramkan di sini kembali ke rumah di Yale menonton lalu lintas karena keluar dari VPN, tapi setidaknya Anda telah mendorong ancaman lebih jauh. Dan itu di sini juga, trade off. Sekarang tentu saja, jika Anda berada di Cina atau bahkan di warnet, dan Anda tunneling semua lalu lintas Anda melalui Yale, berapa harga yang kita bayar mungkin? AUDIENCE: Kecepatan. DAVID J. Malan: Kecepatan, kan? Ada harus menjadi beberapa matematika atau fanciness terlibat di enkripsi yang sebenarnya. Mungkin ada ribuan mil jarak atau ribuan mil dari kabel antara Anda dan Yale. Dan itu benar-benar buruk jika Anda di Cina, misalnya, dan Anda ingin mengunjungi website di China. Dan data Anda akan AS, dan kemudian kembali ke China hanya karena Anda enkripsi melalui terowongan ini. Tapi itu memecahkan teknis dan masalah bekerja sama. Tapi itu semua bermuara ide-ide yang sangat sederhana. Dan Harvard, bagi mereka yang ingin tahu, memiliki satu di sini juga, di vpn.harvard.edu, yang beroperasi seperti Yale. Jadi, dengan semua yang mengatakan, mengapa adalah jaringan ini seluruh berguna? Dan apa yang bisa kita mulai melakukan dengan itu? Nah, mari kita buat sekarang lebih nyata ini. Ini adalah akronim dengan yang kebanyakan dari kita mungkin Super familiar-- HTTP-- yang merupakan singkatan untuk transfer teks hiper protokol. Dan ini hanya berarti ini bahasa, protokol bahwa web browser dan web server berbicara. P di HTTP memang protokol. Dan protokol hanya seperangkat konvensi. Kami telah melihat IP-- protocol-- internet Kontrol transmisi TCP-- protocol-- dan HTTP. Tapi apa ini bodoh sesuatu dari protokol? Ini hanya satu set konvensi. Jadi jika saya semacam turun di sini, dan saya ingin menyambut Anda. Saya akan mengatakan hi, nama saya David. AUDIENCE: Luis. DAVID J. Malan: Luis. Kami memiliki manusia bodoh ini konvensi berjabat tangan di sini. Tapi itu protokol, kan? Saya mengulurkan tangan saya. Luis mengulurkan tangannya. Kami melakukan ini. Dan kemudian selesai, dilakukan. Dan itu persis sama semangat protokol komputer mana seperti di HTTP, apa yang terjadi adalah ini. Jika Anda adalah komputer pada kiri di sini, dan ada beberapa web Server ada di sebelah kanan. Dan komputer di sebelah kiri ingin meminta informasi dari server. Ini semacam operasi bi-directional. Browser di sebelah kiri meminta beberapa halaman web. Server di sebelah kanan merespon dengan beberapa halaman web. Dan kami akan melihat apa bentuk mereka mengambil hanya dalam beberapa saat. Dan ternyata bahwa mereka computers-- bahwa browser dan server, atau klien dan server, sehingga untuk berbicara. Seperti restoran mana klien meminta sesuatu, dan server membawa dia something-- mendapatkan adalah jenis kata. Secara harfiah dalam amplop yang browser saya mengirim dari sini ke web Server adalah get kata. Seperti saya ingin mendapatkan berita hari ini. Saya ingin mendapatkan saya Feed berita Facebook, atau aku ingin mendapatkan beberapa halaman dari server. Secara khusus, ini adalah apa yang terjadi di dalam amplop itu. Jadi saya, dengan Cole, pada dasarnya mengirim Cole tanggapan. Jika Anda membayangkan bahwa Cole benar-benar ingin gambar Rick Astley, ia mungkin telah mengirim saya permintaan memiliki semangat yang sama ini. Di dalam amplop kepada saya, di mana Saya sekarang bermain peran Google, akan permintaan yang secara harfiah mengatakan, dapatkan, dan kemudian slash-- maju dan Anda mungkin pernah melihat garis miring ke depan di URL sebelum. Ini hanya berarti memberikan default Halaman, default Rick Astley gambar dalam kasus ini. Dan omong-omong, Cole berbicara bahasa HTTP versi 1.1, atau protokol 1.1. Dan ternyata ada yang versi lama 1.0. Tetapi komputer cenderung menggunakan 1.1. Baris kedua adalah hal yang berguna yang akan kembali ke mungkin sebelum lama. Tapi itu hanya spesifikasi kepada saya, penerima, bahwa hal yang saya inginkan adalah www.google.com. Karena itu sangat mungkin hari ini untuk puluhan, ratusan website dengan nama domain yang berbeda untuk semua hidup pada server yang sama. Ini tidak akan menjadi kenyataan begitu banyak dalam kasus Google. Tetapi di sebuah perusahaan kecil yang kasus, benar-benar bisa. Jadi Cole hanya jenis menempatkan dalam amplop, dengan cara, ketika ini mencapai alamat IP Anda pada port 80, pastikan bahwa Anda tahu Saya ingin www.google.com, tidak beberapa situs acak lainnya pada server yang sama. Apa yang saya kemudian menanggapi Cole dengan, pada akhir hari, adalah gambar. Tapi di atas gambar yang dalam amplop sebenarnya beberapa teks, di mana saya mengatakan, OK. Saya berbicara HTTP versi 1.1 juga. 200. Yang merupakan kode status yang sebagian besar dari kita memiliki mungkin pernah melihat, karena itu berarti OK. Dan ini adalah baik, karena berarti saya menanggapi berhasil permintaan Cole. Nomor apa yang harus Anda mungkin dilihat di web yang tidak OK? AUDIENCE: 404. DAVID J. Malan: 404-- file tidak ditemukan. Jadi memang, setiap kali Anda telah melihat salah satu file yang menjengkelkan tidak kesalahan yang ditemukan, karena halaman web sudah mati, atau karena Anda salah tulis URL, itu hanya berarti bahwa amplop kecil yang Anda komputer yang diterima dari server terkandung pesan HTTP 1.1, 404-- tidak ditemukan. File yang atau permintaan yang Anda membuat tidak ditemukan. Selain itu, dalam amplop biasanya adalah baris ini, jenis konten. Kadang-kadang itu HTML, sesuatu yang kita akan segera melihat. Kadang-kadang itu adalah JPEG. Kadang-kadang GIF. Kadang-kadang file film, sebuah file audio, banyak hal. Jadi dalam amplop hanya sedikit petunjuk untuk apa saya menerima. Ada kode status lain juga, beberapa yang kita akan mengeksplorasi di P ditetapkan enam, dan Anda akan tersandung di di P menetapkan tujuh dan / atau delapan. Tapi beberapa di sini, seperti 404 yang telah kita lihat. Dilarang, 403, berarti seperti hak akses yang salah, seperti Anda belum jenis dikonfigurasi dengan benar. 301 dan 302, kita jarang melihat secara visual. Tapi mereka berarti mengarahkan. Setiap kali Anda telah pergi ke salah satu URL dan Anda sudah ajaib mengirim ke tempat lain, itu karena browser telah dikirim kembali amplop berisi jumlah 301 atau 302, dan URL yang ingin browser Anda untuk pergi ke gantinya. 500 mengerikan. Anda akan melihatnya sebelum lama, mungkin di P menetapkan enam atau P ditetapkan tujuh. Dan itu biasanya berarti ada beberapa bug dalam kode Anda, karena memang kita akan menulis kode yang merespon permintaan web. Dan Anda baru saja punya beberapa kesalahan dalam logika atau sintaks, dan server tidak dapat menanganinya. Jadi mari kita lihat bagaimana kita sekarang dapat memanfaatkan dan memahami permintaan ini sebagai berikut. Jika saya pergi ke, katakanlah, google.com. Biarkan aku pergi ke www.google.com. Dan demi demonstrasi ini, mari kita lihat, saya harus pergi ke Settings sini. Aku akan pergi ke Search Settings. Dan Google memiliki semakin menjengkelkan fitur, tapi fitur yang berguna. Jadi Google memiliki hal ini seperti instan Hasil di mana Anda mulai mengetik, dan secara otomatis hal mulai muncul. Dan itu semua baik-baik saja dan teknis berguna, dan kami akan mengerti tak lama bagaimana ini bekerja. Tapi untuk saat ini, aku berubah off hasil instan, karena saya ingin browser saya ke semacam sekolah tua bekerja begitu bahwa aku dapat melihat apa yang terjadi. Jadi sekarang aku kembali ke sini. Dan saya ingin mencari kucing. Dan perhatikan aku melihat beberapa saran, beberapa saran yang sangat jinak untungnya. Dan sekarang jika saya tekan Enter, Mari lihat apa yang terjadi. Jadi ada beberapa kucing. Dan hit teratas adalah di Wikipedia. Tapi hari ini kita peduli teknologi di sini. Jadi URL yang saya sudah dikirim adalah ini di sini. Dan ada beberapa hal yang saya tidak benar-benar mengerti. Jadi aku akan pergi ke depan, karena Aku agak tahu bagaimana Google bekerja, dan aku akan menyaring ini URL ke dalam bentuk yang paling sederhana. Dan sekarang aku akan tekan Enter lagi. Dan masih bekerja. Saya memiliki halaman hasil semua tentang kucing. Tapi perhatikan kesederhanaan URL saya. Ternyata ini adalah bagaimana banyak karya-karya web. Web ini hanya seluruh sekelompok komputer menjalankan perangkat lunak yang mengambil input. Ini tidak mendapatkan string masukan gaya. Ini bukan baris perintah argumen seperti kita terbiasa. Mereka mengambil input, server web ini, dengan cara URL cukup sering. Dan setiap kali Anda sudah mencari sesuatu, setiap kali Anda login ke Facebook, setiap kali Anda sudah melakukan apa-apa interaktif dengan halaman web, apa yang Anda lakukan secara efektif mengirimkan formulir, sehingga untuk speak-- kotak teks, kotak cek, lingkaran kecil, dan yang lainnya yang mengirimkan informasi dari Anda ke server. Dan ternyata web Server tahu untuk melihat URL yang dan mengurai, seperti melihat itu karakter oleh karakter mencari sesuatu menarik setelah tanda tanya. Karena setelah tanda tanya, Ternyata, akan datang sekelompok pasangan nilai kunci. Maksudku key = value. Dan kemudian jika ada multiple-- mungkin ampersand, beberapa lainnya key = value, ampersand, kunci = nilai. Jadi kita semacam melihat ide ini sebelum di mana sesuatu memiliki nilai. Ini hanya format baru di sini. Dan aku hanya tahu, dengan konvensi, Google menggunakan q untuk query. Dan kemudian jika saya ingin mencari anjing, saya dapat mencari secara manual untuk anjing seperti itu. Dan kemudian aku ternyata mendapatkan beberapa hasil pencarian yang melibatkan anjing. Sehingga tampaknya menarik. Dan memang, apa yang terjadi di bawah tenda adalah ini. Biarkan aku melakukan ini. Ini adalah a-- mari kita lihat. Biarkan aku kembali lebih di sini untuk sesaat. Kita akan melihat bahwa ada lainnya cara untuk mengirimkan informasi. Jadi jika saya login ke Facebook, atau Gmail, atau situs populer lainnya, tampaknya jenis buruk jika apa pun yang saya mengetik ke dalam kotak pencarian berakhir di URL saya, di address bar browser saya. Mengapa? Mengapa yang agak mengkhawatirkan? Ya? AUDIENCE: Ketik password. DAVID J. Malan: Ya. Jadi bagaimana jika apa yang telah saya mengetik sandi saya? Aku agak tidak ingin begitu jelas terlihat di address bar browser saya. Satu, karena teman sekamar mengganggu saya cenderung untuk mengawasi bahu saya, dan ia sekarang dapat melihat, meskipun itu peluru ketika aku mengetik dalam, lingkaran kecil. Sekarang di address bar saya. Selain itu, apa yang benar tentang hal-hal Anda cenderung untuk mengetik di address bar. AUDIENCE: [tidak terdengar] DAVID J. Malan: Apa itu? AUDIENCE: Ini akan dikirim keluar. DAVID J. Malan: Ini akan dikirim keluar. Dan juga, itu akan diingat. Karena waktu berikutnya Anda mengetik hal di sana, sering autocompletes dan mengingat apa yang telah Anda ketik sebelumnya. Dan jadi ada sejarah yang sesungguhnya ini bahwa saudara Anda, atau teman sekamar Anda, atau siapa pun dapat berjalan melalui untuk cukup banyak melihat setiap website Anda mengunjungi karena itu login alamat bar. Selain itu, misalkan Anda ingin meng-upload foto ke Facebook. Bagaimana di dunia adalah Anda akan menempatkan foto dalam URL? Nah ternyata Anda dapat melakukannya dalam beberapa cara, tapi pasti non-jelas. Dan begitu ada cara lain ini mengirimkan informasi dalam amplop, tidak melalui GET, tapi melalui sesuatu yang disebut POST. Dan dalam teori, terlihat lebih kurang sama. Alih-alih kata GET, kita katakan POST, dan kemudian jenis yang sama format. Misalnya, ini adalah screenshot dari apa mungkin terlihat seperti jika saya mencoba penebangan ke Facebook, yang mengirim saya ke sebuah file disebut login.php, yang sebenarnya masih sampai hari ini bernama seperti itu. Ini adalah nama file yang sama Mark memberi itu bertahun-tahun yang lalu. Ini adalah program yang ia tulis di PHP melalui mana pengguna dapat login ke website. Tapi Anda perlu mengirim beberapa masukan tambahan. Dan bukan itu terjadi setelah Nama mengajukan seperti yang terjadi sebelumnya dengan cats-- q = cats-- dapat pergi lebih rendah dalam permintaan, dalam lebih dari amplop jika Anda akan di mana tidak ada yang bisa melihatnya, dan di mana itu tidak berakhir di bar browser pengguna, dan karena itu tidak ingat bagi orang untuk mengintai sekitar. Dan jadi di sini alamat email saya dan password palsu saya benar-benar pergi. Dan jika menggunakan Facebook tidak HTTP, HTTPS tapi, ini semua akan dienkripsi, arik, ala Caesar atau Vigenere, tetapi lebih fancily sehingga tidak ada benar-benar dapat melihat permintaan ini. Dan memang, setiap kali Anda memiliki URL yang dimulai dengan HTTPS, itu hanya berarti itu dienkripsi. Tetapi pada akhir hari, apa sebenarnya dalam amplop ini? Ini adalah tingkat rendah super. Dan untungnya, kita tidak akan selalu memiliki untuk pergi tingkat sangat rendah setiap waktu untuk mulai menulis perangkat lunak yang menarik. Kita bisa mulai untuk mengambil ide-ide dari satu minggu melalui lima, berasumsi bahwa ada sekarang infrastruktur ini yang memungkinkan kita menulis perangkat lunak yang beroperasi di web, dan itu akan memungkinkan kita minggu mendatang untuk memulai melihat sesuatu yang disebut HTML. Ini adalah hal yang bahkan lebih dalam amplop, tapi itu hal-hal yang kita akan mulai menulis. Dan itu hal yang lebih menarik, kami akan menulis program yang mulai menghasilkan secara otomatis sehingga website kita tidak kode keras, tetapi mengambil input dan menghasilkan output. Ini mungkin web sederhana Halaman Anda dapat membuat di dunia. Aku memang bisa membuka sesuatu yang bodoh seperti TextEdit pada Mac saya, yang hanya memberi saya jendela teks sederhana seperti ini. Pengguna PC memiliki Notepad.ext, yang sangat mirip dalam roh. Dan aku benar-benar dapat mengetik keluar this-- DOCTYPE HTML, yang terlihat sedikit samar. Tapi kita akan kembali ke itu. HTML, dengan ini aneh kurung siku dan garis miring, dalam yang sekarang aku akan mengatakan inilah kepala halaman web saya. Dalam itu, saya hanya tahu, dan Anda akan segera tahu, bahwa saya bisa menempatkan judul halaman web saya. Dan kemudian di bawah kepala halaman web adalah akan pergi ke apa yang disebut tubuh dari halaman web. Dan aku hanya indentasi hanya seperti di C untuk jenis tetap hal baik dibaca Gaya. Dan sekarang aku akan simpan ini sebagai file di desktop saya, yang disebut hello.html. Dan aku akan mengatakan itu ya, menggunakan HTML. Jangan mengubahnya ke Txt, bahkan meskipun semua ini adalah file teks, seperti program C ditulis dengan editor teks. Meskipun tidak dalam CS50 IDE di saat, hanya di sini pada Mac saya. Dan jika saya sekarang pergi ke desktop saya, Anda akan melihat hello.html. Jika saya klik dua kali ini, akan membuka Chrome. Dan meskipun file ini kebetulan tinggal pada desktop saya, yang mungkin yang paling sederhana Halaman web saya bisa membuat. Perhatikan bahwa judul tab jalan sampai atas adalah halo dunia. Tubuh halaman web memang halo dunia. Dan semua yang telah saya lakukan untuk mendapatkan ke titik ini adalah melaksanakan, atau menulis bahasa baru, yang disebut HTML. Ini bukan pemrograman bahasa seperti C. Ada tidak akan menjadi kondisi, dan loop, dan fungsi. Ini adalah bahasa markup, di mana Jika Anda hanya memberitahu penerima yang Program apa yang ingin Anda lakukan. Ini berarti hey Browser, di sini datang sebuah halaman HTML. Hey Browser, di sini datang kepala halaman saya. Hey Browser, di sini datang tubuh halaman saya. Hey Browser, itu saja bagi tubuh. Itu saja untuk halaman HTML. Dan dengan orang-orang definisi sederhana saja, kita akan segera melihat yang satu itu, kita dapat mewakili ini sebagai pohon. Tapi lebih pada nanti. Jadi ini semua akan interkoneksi ke struktur data terbaru kami. Dua, kami akan memperkenalkan lelucon bodoh ini. Ini adalah tato yang sebenarnya yang orang ini telah di lehernya. Itu mungkin lucu minggu pertama atau dua, dan setelah itu, mungkin tidak begitu banyak. Tapi HTML, dan bahkan web Halaman Aku hanya membuat, super pikiran numbingly disappointing-- hanya menyapa dunia dalam teks hitam pada latar belakang putih. Tentunya kita dapat melakukan jauh lebih baik. Dan kita akan melakukannya dengan memperkenalkan bahasa lain disebut CSS. Ini juga bukan language-- pemrograman tidak ada loop, dan kondisi, atau untuk loop, tapi benar-benar, hanya sintaks yang digunakan kita dapat mengatakan, membuat teks ini besar. Membuat teks kecil ini. Menyelaraskan dengan benar. Kiri sejajarkan. Buatlah merah muda. Buatlah ungu. Membuatnya biru. Atau melakukan sejumlah efek visual lainnya. Dan jadi kita akan melihat bagaimana memulai stylizing halaman web sehingga mereka terlihat dengan cara lebih dekat dengan apa yang kita inginkan. Dan terakhir, kita memang hancur mungkin banyak dari TV dan film untuk Anda. Saya pikir kami akan berakhir di sini dengan detik terakhir kami pada klip akhir yang menunjukkan bagaimana hacking pada karya-karya internet. Jika kita bisa meredupkan lampu satu waktu akhir. [VIDEO PLAYBACK] -Tidak mungkin. Saya mendapatkan hacked. -Okorsky? -No-- Tidak, ini adalah besar. Mereka sudah dibakar melalui firewall publik NCIS. -Nah, Mengisolasi simpul dan sampah mereka di sisi lain dari router. -Saya mencoba. Itu bergerak terlalu cepat. Oh, ini tidak baik. Mereka menggunakan koneksi kita [Tidak terdengar] database ini. Sever itu. -Aku Tidak bisa. Ini serangan titik. Dia hanya pergi setelah mesin saya. -Itu tidak mungkin. Ada enkripsi tambang tingkat DOD. Ini akan mengambil bulan untuk get-- Hei, apa itu? Sebuah video game? -Tidak Tony, kita mendapatkan hacked. -jika Mereka mendapatkan di komputer Abby, seluruh jaringan NCIS adalah berikutnya. -Saya Tidak bisa menghentikannya. Lakukan sesuatu McGee. -aku Pernah melihat kode seperti ini. Oh. -Mana yang pergi? Abby? -Aku Tidak melakukan apa-apa. Saya pikir Anda lakukan. -Tidak. -Aku melakukannya. [END PLAYBACK] DAVID J. Malan: Yang terbaik bagian dua orang mengetik pada keyboard pada saat yang sama. Jadi itu saja untuk CS50. Kami akan tetap sekitar untuk jam kantor. Dan kita akan melihat Anda waktu berikutnya. [MUSIC PLAYING - "THEME Seinfeld"] Ini adalah CS50. Saya tidak ingin menjadi bajak laut. SPEAKER 2: Yarr David. Ini adalah doublet baik Anda memakai. Banyak letnan di puff itu.