>> [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?
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.