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