1 00:00:00,000 --> 00:00:04,884 2 00:00:04,884 --> 00:00:08,050 DOUG LLOYD: Dalam video ini kita akan untuk bercakap tentang Kawalan Penghantaran yang 3 00:00:08,050 --> 00:00:10,440 Protokol, TCP. 4 00:00:10,440 --> 00:00:13,290 Jika anda belum menonton video pada protokol internet, IP, 5 00:00:13,290 --> 00:00:15,290 anda mungkin ingin berbuat demikian sebelum menonton video ini 6 00:00:15,290 --> 00:00:18,680 kerana kedua-dua cukup saling berkaitan. 7 00:00:18,680 --> 00:00:21,100 >> Jadi, protokol internet, lagi, ringkasan cepat, 8 00:00:21,100 --> 00:00:22,930 itulah protokol yang bergerak Maklumat 9 00:00:22,930 --> 00:00:28,210 dari mesin penghantar kepada penerima yang mesin melalui rangkaian. 10 00:00:28,210 --> 00:00:29,720 >> Jadi apa TCP? 11 00:00:29,720 --> 00:00:33,310 Walaupun hanya bergerak dari menghantar mesin untuk menerima mesin, 12 00:00:33,310 --> 00:00:35,120 bukan cerita penuh. 13 00:00:35,120 --> 00:00:38,040 Kita juga tahu bahawa program kami, komputer kita, sebagai contoh, 14 00:00:38,040 --> 00:00:41,000 menjalankan pelbagai program, dan mempunyai beberapa perkhidmatan 15 00:00:41,000 --> 00:00:45,140 berjalan pada mereka mesin. 16 00:00:45,140 --> 00:00:51,750 Justeru, jika kita mahu mendapatkan paket, atau maklumat kepada program tertentu, 17 00:00:51,750 --> 00:00:54,590 pada mesin yang tertentu, kami memerlukan maklumat lanjut 18 00:00:54,590 --> 00:00:59,490 daripada hanya apa yang membolehkan IP kami untuk mendapatkan maklumat dari titik A ke titik B. 19 00:00:59,490 --> 00:01:02,390 >> Jadi, TCP boleh dianggap sebagai mengarahkan paket 20 00:01:02,390 --> 00:01:07,590 untuk program yang betul, atau yang betul perkhidmatan, pada mesin yang menerima. 21 00:01:07,590 --> 00:01:11,810 Dan oleh itu adalah penting untuk, seperti yang anda mungkin jangkakan, tahu di mana ia sepatutnya untuk pergi, 22 00:01:11,810 --> 00:01:14,550 dan apa paket adalah kerana pada masa yang sama. 23 00:01:14,550 --> 00:01:18,370 Dan sebagainya, kerap, apabila anda bercakap tentang penghantaran kawalan protokol, TCP, 24 00:01:18,370 --> 00:01:23,900 anda benar-benar sering mendengar ia dalam konteks, TCP mengurangkan IP, atau hanya TCP / IP. 25 00:01:23,900 --> 00:01:27,639 Kedua-dua protokol begitu saling berkaitan itu, mereka pada dasarnya 26 00:01:27,639 --> 00:01:28,680 dianggap sebagai satu unit tunggal. 27 00:01:28,680 --> 00:01:31,630 Tetapi mereka adalah dua protokol berasingan yang melakukan dua perkara yang berasingan. 28 00:01:31,630 --> 00:01:36,690 >> Sekali lagi, IP adalah bertanggungjawab untuk mendapatkan dari satu mesin yang lain. 29 00:01:36,690 --> 00:01:41,250 Dan TCP bertanggungjawab mendapatkan itu untuk program yang betul, 30 00:01:41,250 --> 00:01:43,490 atau perkhidmatan yang betul pada mesin. 31 00:01:43,490 --> 00:01:45,500 Dan ia berbuat sesuatu lain yang IP tidak lakukan, 32 00:01:45,500 --> 00:01:48,600 yang merupakan penghantaran jaminan. 33 00:01:48,600 --> 00:01:55,060 >> Jadi, jika kita kini pasangan IP mesin ini menangani dengan nombor port yang dipanggil, 34 00:01:55,060 --> 00:01:58,750 dan beberapa pelabuhan adalah bagaimana tertentu perkhidmatan, atau utiliti, atau program, 35 00:01:58,750 --> 00:02:00,350 dikenalpasti pada mesin. 36 00:02:00,350 --> 00:02:03,920 Jika kita kini mempunyai IP alamat serta nombor port, 37 00:02:03,920 --> 00:02:07,240 sekarang kita unik boleh mengenal pasti perkhidmatan tertentu 38 00:02:07,240 --> 00:02:09,479 berjalan pada mesin tertentu. 39 00:02:09,479 --> 00:02:11,920 >> Jadi itulah sebabnya TCP dan IP adalah begitu kerap saling berkaitan, 40 00:02:11,920 --> 00:02:14,170 kerana itu nombor port dengan sendiri tidak benar-benar 41 00:02:14,170 --> 00:02:17,670 bermakna apa-apa jika anda memerlukan nombor port, dan mesin 42 00:02:17,670 --> 00:02:19,566 yang anda bercakap tentang. 43 00:02:19,566 --> 00:02:24,060 Apa mesin sepatutnya menggunakan port tertentu ini, sebagai contoh. 44 00:02:24,060 --> 00:02:28,350 >> Perkara lain yang TCP tidak, sebagai Saya berkata, adalah ia menjamin penghantaran. 45 00:02:28,350 --> 00:02:30,810 Jadi, sebagai tambahan kepada menentukan bilangan pelabuhan, 46 00:02:30,810 --> 00:02:34,640 ia juga menunjukkan berapa banyak paket, protokol internet, IP, 47 00:02:34,640 --> 00:02:36,110 telah berpecah data ke dalam. 48 00:02:36,110 --> 00:02:41,200 Dan ia menyuruh paket supaya mereka boleh dibina semula pada penerima 49 00:02:41,200 --> 00:02:45,820 mesin, walaupun mereka received-- dalam perintah yang berbeza daripada apa yang mereka telah dihantar. 50 00:02:45,820 --> 00:02:48,460 Yang boleh berlaku kerana IP adalah protokol tanpa sambungan, 51 00:02:48,460 --> 00:02:52,610 dan sebagainya paket yang berbeza boleh mengambil laluan yang berbeza melalui sistem. 52 00:02:52,610 --> 00:02:53,660 53 00:02:53,660 --> 00:02:55,865 >> Sebahagian daripada nombor port sangat biasa digunakan, 54 00:02:55,865 --> 00:02:57,990 dan mereka telah diseragamkan di semua komputer, 55 00:02:57,990 --> 00:03:00,500 seperti, hampir setiap pengeluar komputer sekarang. 56 00:03:00,500 --> 00:03:03,612 Jadi sesuatu yang dinamakan FTP, protokol pemindahan fail, 57 00:03:03,612 --> 00:03:05,820 yang digunakan untuk menghantar fail, seperti yang anda jangkakan, 58 00:03:05,820 --> 00:03:10,060 dari satu mesin yang lain, yang menggunakan port 21 konvensional. 59 00:03:10,060 --> 00:03:13,000 E-mel, SMTP, menggunakan port 25. 60 00:03:13,000 --> 00:03:16,070 DNS, sistem nama domain, yang kita bercakap tentang dalam buku asas internet kami 61 00:03:16,070 --> 00:03:17,976 video, menggunakan port 53. 62 00:03:17,976 --> 00:03:20,100 Jika anda pernah melayari web, anda cukup banyak 63 00:03:20,100 --> 00:03:23,440 sentiasa menggunakan port 80, melainkan jika anda menyemak imbas web dengan selamat, 64 00:03:23,440 --> 00:03:26,060 melayari web selamat, menggunakan port 443. 65 00:03:26,060 --> 00:03:28,610 66 00:03:28,610 --> 00:03:30,790 >> Jadi apa TCP ini / proses IP? 67 00:03:30,790 --> 00:03:33,730 Apa yang berlaku dengan kedua-dua protokol ini bersama-sama? 68 00:03:33,730 --> 00:03:35,520 Nah, mari kita bercakap mengenainya. 69 00:03:35,520 --> 00:03:39,420 Apabila program yang mahu menghantar data, TCP membantu memecahkan ia menjadi ketulan, 70 00:03:39,420 --> 00:03:42,700 dan berkomunikasi paket untuk perisian rangkaian komputer. 71 00:03:42,700 --> 00:03:45,850 Jadi ia mengambil data dan ia wrap maklumat di sekitarnya 72 00:03:45,850 --> 00:03:48,700 yang menunjukkan apa pelabuhan sepatutnya pergi ke, 73 00:03:48,700 --> 00:03:52,500 dan apa agar paket daripada semua. 74 00:03:52,500 --> 00:03:56,940 Oleh itu, satu paket 10, dua 10, tiga daripada 10, dan sebagainya. 75 00:03:56,940 --> 00:04:01,750 >> IP mendapat mereka ketulan data yang telah dibalut dengan TCP, 76 00:04:01,750 --> 00:04:06,447 dan membalut lebih banyak maklumat mengenai di mana paket sepatutnya pergi. 77 00:04:06,447 --> 00:04:08,780 Kita mungkin memanggil ini IP lapisan sekitar paket. 78 00:04:08,780 --> 00:04:11,210 Jadi, ia semacam, seperti, salah satu anak patung bersarang. 79 00:04:11,210 --> 00:04:14,780 Kami mempunyai data dalam pertengahan, dan kemudian TCP di atas, 80 00:04:14,780 --> 00:04:17,920 memberitahu ia di mana data di dalam TCP adalah 81 00:04:17,920 --> 00:04:22,150 sepatutnya pergi, apa port atau apa perkhidmatan pada mesin. 82 00:04:22,150 --> 00:04:25,110 Sekitar itu adalah lapisan IP. 83 00:04:25,110 --> 00:04:29,230 Apa yang alamat IP, apa mesin, sebenarnya mendapat ini. 84 00:04:29,230 --> 00:04:32,070 >> Sebab itu, bahawa paket itu telah dibalut dengan semua lapisan, 85 00:04:32,070 --> 00:04:35,250 dihantar melalui protokol internet melalui sistem router, mendapatkan 86 00:04:35,250 --> 00:04:39,960 dari titik A ke titik B. Apabila menerima mesin atau peranti, mendapat 87 00:04:39,960 --> 00:04:42,790 itu, ia melihat kepada IP lapisan, ia berkata, yup itulah 88 00:04:42,790 --> 00:04:45,260 alamat IP saya, jadi ia mengambil off, jenis retak telur, 89 00:04:45,260 --> 00:04:47,380 dan mengambil kira lapisan IP. 90 00:04:47,380 --> 00:04:49,530 Kemudian ia melihat bahawa ada lapisan TCP, dan ia berkata, 91 00:04:49,530 --> 00:04:52,720 OK, kelihatan seperti ini adalah akan x pelabuhan, atau pelabuhan y. 92 00:04:52,720 --> 00:04:55,842 Dan nampaknya ia bilangan paket lapan daripada 15. 93 00:04:55,842 --> 00:04:56,800 Jadi, itu baik untuk mengetahui. 94 00:04:56,800 --> 00:05:01,240 Oleh itu, maka ia boleh mengambil maklumat tersebut, menanggalkan lapisan TCP sekarang, 95 00:05:01,240 --> 00:05:04,410 mengetahui bahawa ia adalah untuk pelabuhan x, dan ia adalah bilangan paket lapan, 96 00:05:04,410 --> 00:05:06,270 dan mendapat sekurang-data di dalam. 97 00:05:06,270 --> 00:05:09,460 Dan ia boleh menyediakan data untuk dianjurkan dengan cara yang betul. 98 00:05:09,460 --> 00:05:11,449 Dan apabila semua daripada data diterima, TCP 99 00:05:11,449 --> 00:05:13,990 boleh menyerahkan ia di luar untuk yang betul perkhidmatan, dan berkata, di sini anda pergi. 100 00:05:13,990 --> 00:05:16,107 Berikut adalah data yang anda terima. 101 00:05:16,107 --> 00:05:17,940 Proses itu mungkin kelihatan sesuatu seperti ini. 102 00:05:17,940 --> 00:05:21,392 Jadi mari kita menghantar e-mel daripada penghantar kepada penerima. 103 00:05:21,392 --> 00:05:23,100 Dan katakan ini e-mel adalah agak kecil, 104 00:05:23,100 --> 00:05:25,975 jadi kita hanya perlu untuk memecahkan ia ke dalam empat paket, dan kami akan memanggil mereka A, 105 00:05:25,975 --> 00:05:29,460 B, C, dan D. Baik, kami mahu bergerak bahawa paket pertama apa yang berlaku? 106 00:05:29,460 --> 00:05:34,491 Nah, kita mengambil bahawa sebahagian data, data yang merupakan sebahagian daripada paket A, 107 00:05:34,491 --> 00:05:38,500 Mercu tanda bahawa kita akan untuk membalut dengan lapisan TCP. 108 00:05:38,500 --> 00:05:41,670 E-mel, mana yang diketahui, dihantar melalui port 25, 109 00:05:41,670 --> 00:05:46,181 dan kami mempunyai empat ketulan data, di sini, bahawa kita akan menggunakan, 110 00:05:46,181 --> 00:05:47,430 dan ini adalah yang pertama daripada mereka. 111 00:05:47,430 --> 00:05:50,013 Jadi mungkin lapisan TCP kami mengandungi maklumat mengenai, juga, kami 112 00:05:50,013 --> 00:05:56,060 akan port 25, dan ini adalah bilangan paket salah satu daripada empat. 113 00:05:56,060 --> 00:05:59,280 >> Sekitar itu, jadi sekarang kita mempunyai semua yang maklumat dibundel bersama-sama, 114 00:05:59,280 --> 00:06:03,000 kita akan mengatakan di mana kita mahu ia hendak pergi, apa mesin, apa alamat IP 115 00:06:03,000 --> 00:06:04,910 sepatutnya mendapatkan paket ini. 116 00:06:04,910 --> 00:06:06,604 Dan itu sebahagian daripada lapisan IP. 117 00:06:06,604 --> 00:06:08,770 Dan ada maklumat lain di sana juga, seperti 118 00:06:08,770 --> 00:06:11,300 sebagai alamat kembali dalam kes ada masalah, 119 00:06:11,300 --> 00:06:14,390 ia tahu di mana untuk menghantar maklumat kembali, dan sebagainya. 120 00:06:14,390 --> 00:06:16,475 >> Tetapi lapisan IP pergi sekitar semua itu. 121 00:06:16,475 --> 00:06:19,860 Itu perkara yang keseluruhan dibundel bersama-sama, sebagai satu unit yang besar, 122 00:06:19,860 --> 00:06:22,080 dan dihantar melalui pemindahan IP. 123 00:06:22,080 --> 00:06:26,180 Jadi ia akan disalurkan melalui router rangkaian, menggunakan protokol internet. 124 00:06:26,180 --> 00:06:28,700 Dan penerima menerima perkara keseluruhan. 125 00:06:28,700 --> 00:06:31,910 Dan kemudian ia boleh mula meruntuhkan apa yang berlaku di sini. 126 00:06:31,910 --> 00:06:36,030 Ia kelihatan pada lapisan IP, yang lapisan luar data ini, 127 00:06:36,030 --> 00:06:38,560 dan berkata, yep, itu IP saya alamat supaya kita boleh membuang itu. 128 00:06:38,560 --> 00:06:40,685 Saya boleh, jenis, mengabaikan ia, tidak memerlukannya lagi, 129 00:06:40,685 --> 00:06:42,480 dan ia boleh melihat satu tahap yang lebih mendalam. 130 00:06:42,480 --> 00:06:47,590 Ia melihat bahawa, OK, ini ialah data yang bertujuan untuk diterima pada port 25. 131 00:06:47,590 --> 00:06:50,560 Ia nampaknya bahagian pertama empat. 132 00:06:50,560 --> 00:06:54,260 Jadi, saya akan menyimpan bahawa dalam keberatan, dan melihat data, 133 00:06:54,260 --> 00:06:57,349 dan slot itu secara kasar di mana Saya fikir ia akan pergi. 134 00:06:57,349 --> 00:07:00,140 Sekarang, kerana protokol internet ia tidak semestinya kes itu 135 00:07:00,140 --> 00:07:03,442 yang paket seterusnya penerima mendapat, adalah paket dua. 136 00:07:03,442 --> 00:07:05,150 Malah, seterusnya Perkara penerima mendapat 137 00:07:05,150 --> 00:07:08,230 mungkin menjadi nombor paket tiga kerana paket ini 138 00:07:08,230 --> 00:07:11,777 mengambil laluan yang berbeza kerana lalu lintas yang berlainan di dalam sistem. 139 00:07:11,777 --> 00:07:14,360 Dan sebagainya, saya tidak akan pergi melalui gambarajah membinanya 140 00:07:14,360 --> 00:07:17,560 semula, tetapi paket tiga bergerak, mendapat dilucuti 141 00:07:17,560 --> 00:07:20,410 semua lapisan, maka Lapisan IP, lapisan TCP, 142 00:07:20,410 --> 00:07:22,420 dan data yang mendapat dimasukkan ke dalam tempat yang betul. 143 00:07:22,420 --> 00:07:25,200 Dan kemudian, katakan ia menerima paket empat. 144 00:07:25,200 --> 00:07:29,290 >> Sekarang katakan, itu sahaja, ia tidak mendapat apa-apa data yang lebih. 145 00:07:29,290 --> 00:07:30,300 Apa yang ia akan lakukan? 146 00:07:30,300 --> 00:07:32,110 IP tidak berbuat apa-apa untuk kita. 147 00:07:32,110 --> 00:07:33,260 Tetapi TCP tidak. 148 00:07:33,260 --> 00:07:38,250 TCP tahu, baik, saya telah menerima salah satu daripada empat, tiga daripada empat, dan empat empat. 149 00:07:38,250 --> 00:07:41,100 Saya tidak mendapat apa-apa data yang lebih. 150 00:07:41,100 --> 00:07:43,770 Jadi sesuatu telah berlaku. 151 00:07:43,770 --> 00:07:45,050 Tetapi saya boleh menjamin penghantaran. 152 00:07:45,050 --> 00:07:49,300 Saya tahu paket yang nombor dua yang hilang. 153 00:07:49,300 --> 00:07:52,470 Dan sebagainya TCP kini boleh membuat permintaan, jenis, ke arah yang terbalik. 154 00:07:52,470 --> 00:07:55,170 Gabungan sehingga permintaan mereka dalam banyak cara yang sama, 155 00:07:55,170 --> 00:07:57,230 dan menghantarnya melalui IP, yang, saya tahu, boleh 156 00:07:57,230 --> 00:08:00,880 membawa kepada beberapa jenis gelung tak terhingga semua orang menjatuhkan paket dalam perjalanan. 157 00:08:00,880 --> 00:08:05,580 >> Tetapi memadai untuk mengatakan bahawa TCP berkata, saya hilang paket. 158 00:08:05,580 --> 00:08:08,670 Saya perlu menghantar maklumat kembali kepada penghantar. 159 00:08:08,670 --> 00:08:12,025 Mujurlah alamat IP penghantar adalah, jenis, digabungkan dalam lapisan IP. 160 00:08:12,025 --> 00:08:15,780 Ia adalah sebahagian daripada- ia kembali menangani pada sampul surat. 161 00:08:15,780 --> 00:08:18,800 Dan berkata, saya hilang beberapa paket dua, anda boleh sila menghantarnya semula. 162 00:08:18,800 --> 00:08:20,550 Apabila pengirim menerima maklumat itu, 163 00:08:20,550 --> 00:08:22,599 ia tidak perlu menghantar keseluruhan e-mel sekali lagi. 164 00:08:22,599 --> 00:08:25,390 Ia hanya perlu menghantar individu yang bahagian itu yang telah hilang, 165 00:08:25,390 --> 00:08:27,590 jadi kita boleh menghantar nombor paket dua. 166 00:08:27,590 --> 00:08:32,610 Dan apabila ia mendapat ia, kini TCP berkata, Saya mempunyai empat kepingan data 167 00:08:32,610 --> 00:08:34,100 yang saya perlukan. 168 00:08:34,100 --> 00:08:39,590 Jadi, saya boleh mengumpulkan mereka bersama-sama, dan mengambil blok ini keseluruhan maklumat 169 00:08:39,590 --> 00:08:44,169 dan lulus ia bersama-sama ke port 25, di mana ia akan ditafsirkan sebagai e-mel. 170 00:08:44,169 --> 00:08:47,010 Dan bahawa- dengan cara ini kami telah sekarang menghantar e-mel daripada penghantar 171 00:08:47,010 --> 00:08:49,273 kepada penerima menggunakan TCP / IP. 172 00:08:49,273 --> 00:08:51,430 173 00:08:51,430 --> 00:08:54,180 Jadi, seperti yang saya katakan, jika pada bila-bila sepanjang jalan sesuatu yang tidak kena, 174 00:08:54,180 --> 00:08:56,600 TCP boleh berurusan dengan ia. 175 00:08:56,600 --> 00:09:00,010 Ia boleh membuat permintaan bahawa maklumat akan dihantar kembali kepadanya. 176 00:09:00,010 --> 00:09:01,840 Dan ia boleh membina semula mesej. 177 00:09:01,840 --> 00:09:05,090 Dan apabila ia dibina semula mesej dari semua paket ia diterima, 178 00:09:05,090 --> 00:09:10,350 maka ia boleh menyusun mereka dan menyerahkan mereka kepada perkhidmatan yang betul. 179 00:09:10,350 --> 00:09:11,990 >> Jadi itulah TCP secara ringkas. 180 00:09:11,990 --> 00:09:14,550 Itulah bagaimana kami menjamin penghantaran maklumat. 181 00:09:14,550 --> 00:09:16,540 Ingat TCP sering bekerjasama dengan IP, 182 00:09:16,540 --> 00:09:18,990 jadi kedua-dua protokol benar-benar pergi tangan dalam tangan. 183 00:09:18,990 --> 00:09:22,160 Kami membincangkan mereka dalam beberapa video di sini kerana mereka melakukan perkara-perkara yang berbeza, 184 00:09:22,160 --> 00:09:26,190 tetapi mereka begitu saling berkaitan, mereka anda biasanya akan menggunakan mereka bersama-sama. 185 00:09:26,190 --> 00:09:27,150 >> Saya Doug Lloyd. 186 00:09:27,150 --> 00:09:29,160 Ini adalah CS50. 187 00:09:29,160 --> 00:09:31,233