1 00:00:00,000 --> 00:00:04,884 2 00:00:04,884 --> 00:00:08,050 道格·勞埃德:在這個視頻中,我們要去 說說傳輸控制 3 00:00:08,050 --> 00:00:10,440 協議,TCP。 4 00:00:10,440 --> 00:00:13,290 如果你還沒有看過 視頻互聯網協議IP 5 00:00:13,290 --> 00:00:15,290 你不妨這樣做 觀看這部影片之前, 6 00:00:15,290 --> 00:00:18,680 因為這兩者是相互聯繫的漂亮。 7 00:00:18,680 --> 00:00:21,100 >> 所以,在互聯網協議, 再次,一個簡單的總結, 8 00:00:21,100 --> 00:00:22,930 這就是協議 該移動信息 9 00:00:22,930 --> 00:00:28,210 從發送設備到接收 機通過網絡。 10 00:00:28,210 --> 00:00:29,720 >> 那麼什麼是TCP? 11 00:00:29,720 --> 00:00:33,310 雖然剛剛從發送移動 機接收機, 12 00:00:33,310 --> 00:00:35,120 是不是完整的故事。 13 00:00:35,120 --> 00:00:38,040 我們也知道,我們的節目, 我們的計算機,例如, 14 00:00:38,040 --> 00:00:41,000 運行多個程序, 並有多種服務 15 00:00:41,000 --> 00:00:45,140 在這些機器上運行。 16 00:00:45,140 --> 00:00:51,750 因此,如果我們想獲得一個數據包, 或信息到一個特定的節目, 17 00:00:51,750 --> 00:00:54,590 在特定的機器上, 我們需要更多的信息, 18 00:00:54,590 --> 00:00:59,490 不僅僅是哪個IP使我們能夠獲得 從A點信息到B點。 19 00:00:59,490 --> 00:01:02,390 >> 因此,TCP可以被認為是 作為指導包 20 00:01:02,390 --> 00:01:07,590 到正確的程序,或正確 服務,在接收計算機上。 21 00:01:07,590 --> 00:01:11,810 所以是很重要的,因為你可能 期望,知道它應該去的, 22 00:01:11,810 --> 00:01:14,550 與該數據包是什麼 為在同一時間。 23 00:01:14,550 --> 00:01:18,370 因此,頻繁地,當你談論 傳輸控制協議,TCP 24 00:01:18,370 --> 00:01:23,900 你真的經常會聽到它在 上下文,TCP斜線IP,或者僅僅TCP / IP。 25 00:01:23,900 --> 00:01:27,639 這兩個協議是如此 相關的是,他們基本上 26 00:01:27,639 --> 00:01:28,680 視為一個單元。 27 00:01:28,680 --> 00:01:31,630 但它們是兩個不同的協議 該做的兩回事。 28 00:01:31,630 --> 00:01:36,690 >> 此外,IP是負責獲取 它從一台機器到另一台。 29 00:01:36,690 --> 00:01:41,250 而TCP負責 它得到正確的程序, 30 00:01:41,250 --> 00:01:43,490 或一台機器上正確的服務。 31 00:01:43,490 --> 00:01:45,500 它做一些事情 其他的IP不會做, 32 00:01:45,500 --> 00:01:48,600 這是保證交付。 33 00:01:48,600 --> 00:01:55,060 >> 所以,如果我們現在對夫婦一台機器的IP 與所謂的端口號處理, 34 00:01:55,060 --> 00:01:58,750 和端口號是如何具體 服務,或實用,或程序, 35 00:01:58,750 --> 00:02:00,350 被確定的機器上。 36 00:02:00,350 --> 00:02:03,920 如果我們現在有一個IP 地址加端口號, 37 00:02:03,920 --> 00:02:07,240 現在我們可以唯一地標識 特定服務 38 00:02:07,240 --> 00:02:09,479 一個特定的機器上運行。 39 00:02:09,479 --> 00:02:11,920 >> 所以這就是為什麼TCP和IP是 如此頻繁的相互聯繫, 40 00:02:11,920 --> 00:02:14,170 因為該端口號 自己並沒有真正 41 00:02:14,170 --> 00:02:17,670 如果你需要一個代表什麼 端口號,以及機器 42 00:02:17,670 --> 00:02:19,566 你在說什麼。 43 00:02:19,566 --> 00:02:24,060 應該什麼機器被使用 這個特定的端口,例如。 44 00:02:24,060 --> 00:02:28,350 >> TCP這樣做,因為其他的事情 我說,是它保證了交付。 45 00:02:28,350 --> 00:02:30,810 所以,除 指定端口號, 46 00:02:30,810 --> 00:02:34,640 這也表明有多少 分組,互聯網協議IP 47 00:02:34,640 --> 00:02:36,110 已分裂成數據。 48 00:02:36,110 --> 00:02:41,200 它下令這些數據包,使他們 可以在接收重建 49 00:02:41,200 --> 00:02:45,820 機,即使它們在一個received-- 不同的順序比他們被送往。 50 00:02:45,820 --> 00:02:48,460 它可以發生,因為IP 是無連接協議, 51 00:02:48,460 --> 00:02:52,610 所以不同的數據包可以採取 通過系統不同的路徑。 52 00:02:52,610 --> 00:02:53,660 53 00:02:53,660 --> 00:02:55,865 >> 一些這些端口號的 是很常用的, 54 00:02:55,865 --> 00:02:57,990 他們已經被標準化 在所有的計算機, 55 00:02:57,990 --> 00:03:00,500 就像,幾乎每一個 現在的計算機製造商。 56 00:03:00,500 --> 00:03:03,612 因此,一些所謂的FTP, 文件傳輸協議, 57 00:03:03,612 --> 00:03:05,820 這是用來發送 文件,如你所料, 58 00:03:05,820 --> 00:03:10,060 從一台機器到另一 使用21端口傳統。 59 00:03:10,060 --> 00:03:13,000 電子郵件,SMTP,使用端口25。 60 00:03:13,000 --> 00:03:16,070 DNS,域名系統,這是我們 在我們的互聯網底漆談到 61 00:03:16,070 --> 00:03:17,976 視頻,使用端口53。 62 00:03:17,976 --> 00:03:20,100 如果你曾經瀏覽 網頁,你幾乎 63 00:03:20,100 --> 00:03:23,440 始終使用端口80,除非 你正在瀏覽的網頁安全, 64 00:03:23,440 --> 00:03:26,060 安全瀏覽網頁,使用端口443。 65 00:03:26,060 --> 00:03:28,610 66 00:03:28,610 --> 00:03:30,790 >> 所以,這是什麼TCP / IP的過程? 67 00:03:30,790 --> 00:03:33,730 這是怎麼回事既 這些協議在一起? 68 00:03:33,730 --> 00:03:35,520 好吧,讓我們來談談吧。 69 00:03:35,520 --> 00:03:39,420 當一個程序要發送數據, TCP有助於它分解成塊, 70 00:03:39,420 --> 00:03:42,700 並傳達這些數據包 計算機的網絡化軟件。 71 00:03:42,700 --> 00:03:45,850 因此,需要的數據,並將其 環繞它的信息 72 00:03:45,850 --> 00:03:48,700 這說明了什麼端口 應該去, 73 00:03:48,700 --> 00:03:52,500 什麼秩序 數據包是所有的。 74 00:03:52,500 --> 00:03:56,940 所以要包10個一,二 10,三10,依此類推。 75 00:03:56,940 --> 00:04:01,750 >> IP獲取這些數據塊的 已換用TCP, 76 00:04:01,750 --> 00:04:06,447 並包裝的更多信息 其中假定所述分組去。 77 00:04:06,447 --> 00:04:08,780 我們可以稱之為IP 層周圍的包。 78 00:04:08,780 --> 00:04:11,210 所以,這有點像, 其中的一個嵌套娃娃。 79 00:04:11,210 --> 00:04:14,780 我們在數據 中間,然後TCP之上, 80 00:04:14,780 --> 00:04:17,920 告訴它哪裡 對TCP裡面的數據 81 00:04:17,920 --> 00:04:22,150 應該去,到哪個端口 或者在計算機上什麼樣的服務。 82 00:04:22,150 --> 00:04:25,110 周圍是IP層。 83 00:04:25,110 --> 00:04:29,230 什麼IP地址,什麼機器, 實際上獲得這個。 84 00:04:29,230 --> 00:04:32,070 >> 那麼,該數據包是被 包裹著所有這些層, 85 00:04:32,070 --> 00:04:35,250 通過互聯網協議發送 通過路由器的系統,得到 86 00:04:35,250 --> 00:04:39,960 從A點到B點時 接收設備,或設備,獲取 87 00:04:39,960 --> 00:04:42,790 它,它看起來在IP 層,它說,燁這 88 00:04:42,790 --> 00:04:45,260 我的IP地址,因此需要 關,有點裂紋的雞蛋, 89 00:04:45,260 --> 00:04:47,380 並且離開IP層。 90 00:04:47,380 --> 00:04:49,530 然後,它會看到有 一個TCP層,它說, 91 00:04:49,530 --> 00:04:52,720 好了,看起來這是 要口X,或端口年。 92 00:04:52,720 --> 00:04:55,842 而顯然這是 數據包數量的15八強。 93 00:04:55,842 --> 00:04:56,800 所以這是很好的了解。 94 00:04:56,800 --> 00:05:01,240 那樣的話就可以利用這些信息, 脫下TCP層現在, 95 00:05:01,240 --> 00:05:04,410 知道它的端口X, 和它的分組排名第八, 96 00:05:04,410 --> 00:05:06,270 並獲得在內部的數據。 97 00:05:06,270 --> 00:05:09,460 它可以準備數據到 組織以正確的方式。 98 00:05:09,460 --> 00:05:11,449 而一旦所有的 被接收的數據時,TCP 99 00:05:11,449 --> 00:05:13,990 可它交給正確的 服務,並說,在這裡你去。 100 00:05:13,990 --> 00:05:16,107 這裡是你接收到的數據。 101 00:05:16,107 --> 00:05:17,940 這個過程可能看起來 這樣的事情。 102 00:05:17,940 --> 00:05:21,392 所以,讓我們從發送電子郵件 發送器向一個接收器。 103 00:05:21,392 --> 00:05:23,100 而讓我們說這個 電子郵件是非常小的, 104 00:05:23,100 --> 00:05:25,975 所以我們只需要它分解成 四包,我們會打電話給他們, 105 00:05:25,975 --> 00:05:29,460 B,C和D好了,我們要移動 這第一個數據包會發生什麼? 106 00:05:29,460 --> 00:05:34,491 好了,我們採取數據的塊, 該數據包是A的一部分, 107 00:05:34,491 --> 00:05:38,500 並圍繞我們要去 同一個TCP層包裝它。 108 00:05:38,500 --> 00:05:41,670 電子郵件,你可能還記得, 通過25端口發送, 109 00:05:41,670 --> 00:05:46,181 我們有四個單元的數據, 在這裡,我們打算使用, 110 00:05:46,181 --> 00:05:47,430 而這是第一次他們。 111 00:05:47,430 --> 00:05:50,013 因此,也許我們的TCP層包含 有關,那麼,我們 112 00:05:50,013 --> 00:05:56,060 要端口25,並且這 是數據包數量的四分之一。 113 00:05:56,060 --> 00:05:59,280 >> 解決這個問題,所以現在我們擁有所有的 信息捆綁在一起, 114 00:05:59,280 --> 00:06:03,000 我們要說,我們希望它 走,什麼機器,什麼IP地址 115 00:06:03,000 --> 00:06:04,910 應該接受這個數據包。 116 00:06:04,910 --> 00:06:06,604 這就是IP層的一部分。 117 00:06:06,604 --> 00:06:08,770 還有的其他信息 在那裡為好,如 118 00:06:08,770 --> 00:06:11,300 如在返回地址 出錯的時候, 119 00:06:11,300 --> 00:06:14,390 它知道在哪裡送 背部等上的信息。 120 00:06:14,390 --> 00:06:16,475 >> 但在IP層進 周圍的一切。 121 00:06:16,475 --> 00:06:19,860 這整個事情捆綁 同時,作為一個大單位, 122 00:06:19,860 --> 00:06:22,080 並通過一個IP傳送發送。 123 00:06:22,080 --> 00:06:26,180 因此,它被通過路由器路由 網絡,使用互聯網協議。 124 00:06:26,180 --> 00:06:28,700 和接收器接收 整個事情。 125 00:06:28,700 --> 00:06:31,910 然後它可以開始 解構這裡發生了什麼。 126 00:06:31,910 --> 00:06:36,030 它著眼於IP層, 外層這個數據, 127 00:06:36,030 --> 00:06:38,560 並說,是的,這是我的IP 地址,以便我們可以放棄的。 128 00:06:38,560 --> 00:06:40,685 我可以,種,不理它, 不需要它了, 129 00:06:40,685 --> 00:06:42,480 它可以期待更深一層。 130 00:06:42,480 --> 00:06:47,590 它看到,OK,這是數據 意在端口25來接收。 131 00:06:47,590 --> 00:06:50,560 這是顯然的4個第1部分。 132 00:06:50,560 --> 00:06:54,260 所以,我要記住這 沒關係,看看數據, 133 00:06:54,260 --> 00:06:57,349 和槽它大致相當於 我認為它會去。 134 00:06:57,349 --> 00:07:00,140 現在,因為互聯網協議的 這並不一定是這樣 135 00:07:00,140 --> 00:07:03,442 該下一個分組中的 接收器獲得,是包兩種。 136 00:07:03,442 --> 00:07:05,150 實際上,下 事物的接收器得到 137 00:07:05,150 --> 00:07:08,230 可能是數據包數量 3,因為這些數據包 138 00:07:08,230 --> 00:07:11,777 採取不同的,因為路徑 不同網絡上的流量。 139 00:07:11,777 --> 00:07:14,360 所以,我不打算去 通過構建它的圖 140 00:07:14,360 --> 00:07:17,560 再次,但包3 移動,被剝奪 141 00:07:17,560 --> 00:07:20,410 其所有的層,所述 IP層,TCP層, 142 00:07:20,410 --> 00:07:22,420 並且數據被放置在正確的位置。 143 00:07:22,420 --> 00:07:25,200 然後,讓我們說這 接收到的數據包四人。 144 00:07:25,200 --> 00:07:29,290 >> 現在,讓我們說,這就是它,它 沒有得到任何更多的數據。 145 00:07:29,290 --> 00:07:30,300 它是什麼打算做什麼? 146 00:07:30,300 --> 00:07:32,110 IP不為我們做任何事情。 147 00:07:32,110 --> 00:07:33,260 但是,TCP一樣。 148 00:07:33,260 --> 00:07:38,250 TCP知道,好了,我已經收到了一 四,三四個,四四。 149 00:07:38,250 --> 00:07:41,100 我沒有得到任何更多的數據。 150 00:07:41,100 --> 00:07:43,770 所以出了問題。 151 00:07:43,770 --> 00:07:45,050 但我可以保證交付。 152 00:07:45,050 --> 00:07:49,300 我知道,包 排名第二的缺失。 153 00:07:49,300 --> 00:07:52,470 並因此TCP現在可以進行的請求時, 排序,在相反方向。 154 00:07:52,470 --> 00:07:55,170 捆綁了其請求 在大致相同的方式, 155 00:07:55,170 --> 00:07:57,230 並通過IP發送的, 其中,我知道,能 156 00:07:57,230 --> 00:08:00,880 導致某種形式的無限循環 每個人都在下降途中的數據包。 157 00:08:00,880 --> 00:08:05,580 >> 但我只想說,TCP 說,我失去了一個包。 158 00:08:05,580 --> 00:08:08,670 我需要發送信息 回發送方。 159 00:08:08,670 --> 00:08:12,025 幸運的是,發送者的IP地址, 之類的,在IP層捆綁起來。 160 00:08:12,025 --> 00:08:15,780 這部分of--它的回報 地址在信封上。 161 00:08:15,780 --> 00:08:18,800 並說,我丟失的數據包數量 二,可以請你重新發送。 162 00:08:18,800 --> 00:08:20,550 當發送方接收 這些信息, 163 00:08:20,550 --> 00:08:22,599 它不具有要發送 整個電子郵件了。 164 00:08:22,599 --> 00:08:25,390 它僅需要發送個別 一塊它的失踪, 165 00:08:25,390 --> 00:08:27,590 這樣我們就可以發送數據包數量兩種。 166 00:08:27,590 --> 00:08:32,610 而當它得到它,現在TCP說, 我把所有四個數據 167 00:08:32,610 --> 00:08:34,100 我所需要的。 168 00:08:34,100 --> 00:08:39,590 所以,我可以將它們組裝在一起, 利用這個信息整塊 169 00:08:39,590 --> 00:08:44,169 和它傳遞到端口25,在那裡 它會被解釋為電子郵件。 170 00:08:44,169 --> 00:08:47,010 而that--這樣,我們已經 現在從發送者發送電子郵件 171 00:08:47,010 --> 00:08:49,273 到接收器使用TCP / IP。 172 00:08:49,273 --> 00:08:51,430 173 00:08:51,430 --> 00:08:54,180 所以,正如我所說,如果在任何時候 前進的道路上出現了問題, 174 00:08:54,180 --> 00:08:56,600 TCP可以對付它。 175 00:08:56,600 --> 00:09:00,010 它可以使一個請求,即 信息被發送回吧。 176 00:09:00,010 --> 00:09:01,840 而且它可以重建該消息。 177 00:09:01,840 --> 00:09:05,090 一旦它的重建消息 從所有的數據包會在收到, 178 00:09:05,090 --> 00:09:10,350 那麼就可以組織他們, 它們傳遞到正確的服務。 179 00:09:10,350 --> 00:09:11,990 >> 所以這是TCP簡而言之。 180 00:09:11,990 --> 00:09:14,550 這就是我們如何保證 傳遞信息。 181 00:09:14,550 --> 00:09:16,540 還記得TCP 與IP經常工作, 182 00:09:16,540 --> 00:09:18,990 所以這兩個協議 真的齊頭並進。 183 00:09:18,990 --> 00:09:22,160 我們在幾部影片中討論他們 在這裡,因為他們做不同的事情, 184 00:09:22,160 --> 00:09:26,190 但他們是如此相互關聯的,它們 你通常會使用它們。 185 00:09:26,190 --> 00:09:27,150 >> 我是道格·勞埃德。 186 00:09:27,150 --> 00:09:29,160 這是CS50。 187 00:09:29,160 --> 00:09:31,233