1 00:00:00,000 --> 00:00:04,884 2 00:00:04,884 --> 00:00:08,050 DOUG LLOYD: Trong video này, chúng ta đang đi để nói về các Control Transmission 3 00:00:08,050 --> 00:00:10,440 Protocol, giao thức TCP. 4 00:00:10,440 --> 00:00:13,290 Nếu bạn chưa xem video trên giao thức Internet, IP, 5 00:00:13,290 --> 00:00:15,290 bạn có thể muốn làm như vậy trước khi xem video này 6 00:00:15,290 --> 00:00:18,680 bởi vì cả hai đều khá tương quan với nhau. 7 00:00:18,680 --> 00:00:21,100 >> Vì vậy, các giao thức internet, một lần nữa, một bản tóm tắt nhanh chóng, 8 00:00:21,100 --> 00:00:22,930 đó là giao thức mà di chuyển thông tin 9 00:00:22,930 --> 00:00:28,210 từ một máy gửi đến một nhận máy qua mạng. 10 00:00:28,210 --> 00:00:29,720 >> Vì vậy, TCP là gì? 11 00:00:29,720 --> 00:00:33,310 Trong khi chỉ cần di chuyển từ một gửi máy tính đến máy nhận, 12 00:00:33,310 --> 00:00:35,120 không phải là toàn bộ câu chuyện. 13 00:00:35,120 --> 00:00:38,040 Chúng tôi cũng biết rằng chương trình của chúng tôi, máy tính của chúng tôi, ví dụ, 14 00:00:38,040 --> 00:00:41,000 đang chạy nhiều chương trình, và có nhiều dịch vụ 15 00:00:41,000 --> 00:00:45,140 chạy trên các máy. 16 00:00:45,140 --> 00:00:51,750 Và như vậy, nếu chúng ta muốn có được một gói tin, hoặc thông tin vào một chương trình cụ thể, 17 00:00:51,750 --> 00:00:54,590 trên một máy cụ thể, chúng ta cần biết thêm thông tin 18 00:00:54,590 --> 00:00:59,490 hơn là chỉ IP nào cho phép chúng tôi để có được thông tin từ điểm A đến điểm B. 19 00:00:59,490 --> 00:01:02,390 >> Vì vậy, TCP có thể được coi như chỉ đạo các gói tin 20 00:01:02,390 --> 00:01:07,590 để chương trình chính xác, hoặc chính xác dịch vụ, trên máy nhận. 21 00:01:07,590 --> 00:01:11,810 Và do đó, điều quan trọng là để, như bạn có thể mong đợi, biết đâu nó phải đi, 22 00:01:11,810 --> 00:01:14,550 và những gì các gói tin là cho cùng một lúc. 23 00:01:14,550 --> 00:01:18,370 Và như vậy, thường xuyên, khi bạn nói về Giao thức điều khiển truyền dẫn, TCP, 24 00:01:18,370 --> 00:01:23,900 bạn thực sự thường nghe nó trong bối cảnh, TCP giảm IP, hoặc chỉ TCP / IP. 25 00:01:23,900 --> 00:01:27,639 Hai giao thức là như vậy quan hệ với nhau rằng, họ cơ bản 26 00:01:27,639 --> 00:01:28,680 xử lý như một đơn vị duy nhất. 27 00:01:28,680 --> 00:01:31,630 Nhưng họ là hai giao thức riêng biệt mà làm hai việc riêng biệt. 28 00:01:31,630 --> 00:01:36,690 >> Một lần nữa, IP là chịu trách nhiệm nhận nó từ một máy khác. 29 00:01:36,690 --> 00:01:41,250 Và TCP là trách nhiệm nhận được nó vào chương trình chính xác, 30 00:01:41,250 --> 00:01:43,490 hay đúng dịch vụ trên một máy. 31 00:01:43,490 --> 00:01:45,500 Và nó làm một cái gì đó IP khác mà không làm, 32 00:01:45,500 --> 00:01:48,600 đó là giao hàng bảo lãnh. 33 00:01:48,600 --> 00:01:55,060 >> Vì vậy, nếu bây giờ chúng ta vài IP của một máy tính giải quyết với cái gọi là số cổng, 34 00:01:55,060 --> 00:01:58,750 và một số cổng là một cách cụ thể dịch vụ, hoặc tiện ích, hay chương trình, 35 00:01:58,750 --> 00:02:00,350 được xác định trên một máy. 36 00:02:00,350 --> 00:02:03,920 Nếu bây giờ chúng ta có một IP địa chỉ cộng thêm một số cổng, 37 00:02:03,920 --> 00:02:07,240 bây giờ chúng ta có thể xác định duy nhất một dịch vụ cụ thể 38 00:02:07,240 --> 00:02:09,479 chạy trên một máy tính cụ thể. 39 00:02:09,479 --> 00:02:11,920 >> Vì vậy, đó là lý do tại sao TCP và IP là vì vậy thường xuyên quan hệ với nhau, 40 00:02:11,920 --> 00:02:14,170 vì rằng số cổng ngày của riêng mình không thực sự 41 00:02:14,170 --> 00:02:17,670 có ý nghĩa gì nếu bạn cần một số cổng, và máy tính 42 00:02:17,670 --> 00:02:19,566 rằng bạn đang nói về. 43 00:02:19,566 --> 00:02:24,060 Máy gì là nghĩa vụ phải được sử dụng cổng cụ thể này, ví dụ. 44 00:02:24,060 --> 00:02:28,350 >> Một thứ khác mà TCP làm, như Tôi nói, là nó đảm bảo giao hàng. 45 00:02:28,350 --> 00:02:30,810 Vì vậy, ngoài xác định số cổng, 46 00:02:30,810 --> 00:02:34,640 nó cũng chỉ ra có bao nhiêu các gói dữ liệu, giao thức Internet, IP, 47 00:02:34,640 --> 00:02:36,110 đã chia dữ liệu vào. 48 00:02:36,110 --> 00:02:41,200 Và nó ra lệnh cho những gói tin để họ có thể được xây dựng lại trên nhận 49 00:02:41,200 --> 00:02:45,820 máy, ngay cả khi họ received-- trong một thứ tự khác nhau hơn so với họ đã được gửi. 50 00:02:45,820 --> 00:02:48,460 Mà có thể xảy ra bởi vì IP là một giao thức kết nối, 51 00:02:48,460 --> 00:02:52,610 và vì vậy các gói khác nhau có thể mất con đường khác nhau thông qua hệ thống. 52 00:02:52,610 --> 00:02:53,660 53 00:02:53,660 --> 00:02:55,865 >> Một số các số cổng rất thường được sử dụng, 54 00:02:55,865 --> 00:02:57,990 và họ đã được chuẩn hóa trên tất cả các máy tính, 55 00:02:57,990 --> 00:03:00,500 như thế, khá nhiều hàng nhà sản xuất máy tính hiện nay. 56 00:03:00,500 --> 00:03:03,612 Vì vậy, một cái gì đó gọi là FTP, các giao thức truyền file, 57 00:03:03,612 --> 00:03:05,820 được sử dụng để truyền tải các tập tin, như bạn mong đợi, 58 00:03:05,820 --> 00:03:10,060 từ một máy khác, sử dụng cổng 21 thông thường. 59 00:03:10,060 --> 00:03:13,000 Email, SMTP, sử dụng cổng 25. 60 00:03:13,000 --> 00:03:16,070 DNS, hệ thống tên miền, mà chúng tôi nói đến trong mồi internet của chúng tôi 61 00:03:16,070 --> 00:03:17,976 video, sử dụng cổng 53. 62 00:03:17,976 --> 00:03:20,100 Nếu bạn đã bao giờ xem web, bạn khá nhiều 63 00:03:20,100 --> 00:03:23,440 luôn luôn sử dụng cổng 80, trừ khi bạn duyệt web an toàn, 64 00:03:23,440 --> 00:03:26,060 duyệt web an toàn, sử dụng cổng 443. 65 00:03:26,060 --> 00:03:28,610 66 00:03:28,610 --> 00:03:30,790 >> Vì vậy, TCP / IP quá trình này là gì? 67 00:03:30,790 --> 00:03:33,730 Điều gì đang xảy ra với cả hai các giao thức này với nhau? 68 00:03:33,730 --> 00:03:35,520 Vâng, chúng ta hãy nói về nó. 69 00:03:35,520 --> 00:03:39,420 Khi một chương trình muốn gửi dữ liệu, TCP giúp phá vỡ nó thành nhiều phần, 70 00:03:39,420 --> 00:03:42,700 và giao tiếp các gói tin cho phần mềm nối mạng của máy tính. 71 00:03:42,700 --> 00:03:45,850 Vì vậy, nó lấy dữ liệu và nó kết thúc tốt đẹp các thông tin xung quanh nó 72 00:03:45,850 --> 00:03:48,700 mà chỉ ra cổng gì được cho là để đi đến, 73 00:03:48,700 --> 00:03:52,500 và theo thứ tự nào đó gói tin là trong số tất cả. 74 00:03:52,500 --> 00:03:56,940 Vì vậy, hãy gói một trong 10, hai 10, ba 10, và như vậy. 75 00:03:56,940 --> 00:04:01,750 >> IP được những khối dữ liệu đó đã được bao bọc với TCP, 76 00:04:01,750 --> 00:04:06,447 và kết thúc tốt đẹp hơn thông tin về nơi gói tin là vụ phải đi. 77 00:04:06,447 --> 00:04:08,780 Chúng ta có thể gọi đây là IP lớp xung quanh các gói tin. 78 00:04:08,780 --> 00:04:11,210 Vì vậy, nó là loại, giống như, một trong những con búp bê làm tổ. 79 00:04:11,210 --> 00:04:14,780 Chúng tôi có các dữ liệu trong các giữa, và sau đó TCP trên đầu, 80 00:04:14,780 --> 00:04:17,920 nói cho nó nơi dữ liệu bên trong của TCP là 81 00:04:17,920 --> 00:04:22,150 nghĩa vụ phải đi, để những gì cổng hoặc những dịch vụ trên một máy. 82 00:04:22,150 --> 00:04:25,110 Xung quanh đó là các lớp IP. 83 00:04:25,110 --> 00:04:29,230 Địa chỉ IP gì, những gì máy tính, là thực sự nhận được điều này. 84 00:04:29,230 --> 00:04:32,070 >> Vì vậy, sau đó, mà gói tin đó là được gói với tất cả các layer, 85 00:04:32,070 --> 00:04:35,250 được gửi thông qua giao thức internet thông qua hệ thống các thiết bị định tuyến, nhận 86 00:04:35,250 --> 00:04:39,960 từ điểm A đến điểm B. Khi máy, hoặc thiết bị nhận, được 87 00:04:39,960 --> 00:04:42,790 nó, nó nhìn vào IP lớp, nó nói, yup đó 88 00:04:42,790 --> 00:04:45,260 địa chỉ IP của tôi, nên phải mất off, loại vết nứt trứng, 89 00:04:45,260 --> 00:04:47,380 và cất cánh, lớp IP. 90 00:04:47,380 --> 00:04:49,530 Sau đó, nó thấy rằng có một lớp TCP, và nó nói, 91 00:04:49,530 --> 00:04:52,720 OK, hình như đây là đi đến cổng x, y hoặc cổng. 92 00:04:52,720 --> 00:04:55,842 Và rõ ràng nó là số gói tám trong số 15. 93 00:04:55,842 --> 00:04:56,800 Vì vậy, đó là tốt để biết. 94 00:04:56,800 --> 00:05:01,240 Vì vậy, sau đó nó có thể mất thông tin đó, đi ra khỏi lớp TCP bây giờ, 95 00:05:01,240 --> 00:05:04,410 khi biết rằng đó là cho cảng x, và đó là số gói tám, 96 00:05:04,410 --> 00:05:06,270 và nhận được dữ liệu bên trong. 97 00:05:06,270 --> 00:05:09,460 Và nó có thể chuẩn bị dữ liệu để được tổ chức theo cách chính xác. 98 00:05:09,460 --> 00:05:11,449 Và một khi tất cả các dữ liệu được nhận, TCP 99 00:05:11,449 --> 00:05:13,990 có thể bàn tay nó đi vào đúng dịch vụ, và nói, ở đây bạn đi. 100 00:05:13,990 --> 00:05:16,107 Dưới đây là những dữ liệu mà bạn nhận được. 101 00:05:16,107 --> 00:05:17,940 Quá trình đó có thể trông một cái gì đó như thế này. 102 00:05:17,940 --> 00:05:21,392 Vì vậy, hãy gửi một email từ một người gửi đến người nhận. 103 00:05:21,392 --> 00:05:23,100 Và chúng ta hãy nói điều này email là khá nhỏ, 104 00:05:23,100 --> 00:05:25,975 vì vậy chúng tôi chỉ cần để phá vỡ nó thành bốn gói tin, và chúng tôi sẽ gọi họ A, 105 00:05:25,975 --> 00:05:29,460 B, C, và D. Vâng, chúng tôi muốn chuyển mà gói tin đầu tiên điều gì xảy ra? 106 00:05:29,460 --> 00:05:34,491 Vâng, chúng tôi đi mà đoạn dữ liệu, dữ liệu là một phần của gói A, 107 00:05:34,491 --> 00:05:38,500 và xung quanh mà chúng ta đang đi để bọc nó bằng một lớp TCP. 108 00:05:38,500 --> 00:05:41,670 Email, bạn có thể nhớ lại, được gửi qua cổng 25, 109 00:05:41,670 --> 00:05:46,181 và chúng tôi có bốn khối dữ liệu, ở đây, chúng ta sẽ được sử dụng, 110 00:05:46,181 --> 00:05:47,430 và đây là lần đầu tiên của họ. 111 00:05:47,430 --> 00:05:50,013 Vì vậy, có lẽ lớp TCP của chúng tôi có chứa thông tin về, tốt, chúng tôi 112 00:05:50,013 --> 00:05:56,060 đi đến cổng 25, và điều này là số gói một trong bốn. 113 00:05:56,060 --> 00:05:59,280 >> Xung quanh đó, vì vậy bây giờ chúng tôi có tất cả những gì thông tin đi kèm với nhau, 114 00:05:59,280 --> 00:06:03,000 chúng ta sẽ nói nơi chúng tôi muốn nó để đi, những gì máy tính, địa chỉ IP 115 00:06:03,000 --> 00:06:04,910 là vụ để có được gói tin này. 116 00:06:04,910 --> 00:06:06,604 Và đó là một phần của lớp IP. 117 00:06:06,604 --> 00:06:08,770 Và có thông tin khác trong đó là tốt, chẳng hạn 118 00:06:08,770 --> 00:06:11,300 như địa chỉ trở trong trường hợp bị sai, 119 00:06:11,300 --> 00:06:14,390 nó biết nơi để gửi thông tin trở lại, và như vậy. 120 00:06:14,390 --> 00:06:16,475 >> Nhưng lớp IP đi xung quanh tất cả điều đó. 121 00:06:16,475 --> 00:06:19,860 Đó là toàn bộ điều là kèm với nhau, là một đơn vị lớn, 122 00:06:19,860 --> 00:06:22,080 và gửi thông qua một chuyển IP. 123 00:06:22,080 --> 00:06:26,180 Vì vậy, nó được định tuyến thông qua các bộ định tuyến mạng, sử dụng giao thức internet. 124 00:06:26,180 --> 00:06:28,700 Và người nhận nhận được toàn bộ điều. 125 00:06:28,700 --> 00:06:31,910 Và sau đó nó có thể bắt đầu tháo gỡ những gì đang xảy ra ở đây. 126 00:06:31,910 --> 00:06:36,030 Nó nhìn vào các lớp IP, lớp bên ngoài của dữ liệu này, 127 00:06:36,030 --> 00:06:38,560 và nói, vâng, đó là IP của tôi địa chỉ để chúng ta có thể loại bỏ điều đó. 128 00:06:38,560 --> 00:06:40,685 Tôi có thể, loại, bỏ qua nó, không cần nó nữa, 129 00:06:40,685 --> 00:06:42,480 và nó có thể nhìn một cách sâu hơn. 130 00:06:42,480 --> 00:06:47,590 Nó thấy rằng, OK, đây là dữ liệu mà được dự định sẽ nhận được trên cổng 25. 131 00:06:47,590 --> 00:06:50,560 Đó dường như là phần đầu tiên của bốn. 132 00:06:50,560 --> 00:06:54,260 Vì vậy, tôi sẽ giữ cho rằng trong tâm, và nhìn vào các dữ liệu, 133 00:06:54,260 --> 00:06:57,349 và khe cắm nó gần nơi Tôi nghĩ rằng nó sẽ đi. 134 00:06:57,349 --> 00:07:00,140 Bây giờ, vì các giao thức internet nó không nhất thiết phải là trường hợp 135 00:07:00,140 --> 00:07:03,442 rằng các gói tin tiếp theo nhận được, là hai gói. 136 00:07:03,442 --> 00:07:05,150 Trong thực tế, tiếp theo điều nhận được 137 00:07:05,150 --> 00:07:08,230 có thể là số gói ba vì các gói tin 138 00:07:08,230 --> 00:07:11,777 mất con đường khác nhau vì giao thông khác nhau trên mạng. 139 00:07:11,777 --> 00:07:14,360 Và như vậy, tôi sẽ không đi thông qua sơ đồ xây dựng nó 140 00:07:14,360 --> 00:07:17,560 lên một lần nữa, nhưng gói ba di chuyển, bị tước đi 141 00:07:17,560 --> 00:07:20,410 của tất cả các lớp của nó, là Lớp IP, lớp TCP, 142 00:07:20,410 --> 00:07:22,420 và các dữ liệu được đặt vào đúng chỗ. 143 00:07:22,420 --> 00:07:25,200 Và sau đó, chúng ta hãy nói nó nhận gói bốn. 144 00:07:25,200 --> 00:07:29,290 >> Bây giờ chúng ta hãy nói, đó là nó, nó không nhận được bất kỳ dữ liệu hơn. 145 00:07:29,290 --> 00:07:30,300 Nó sẽ làm gì? 146 00:07:30,300 --> 00:07:32,110 IP không làm bất cứ điều gì cho chúng ta. 147 00:07:32,110 --> 00:07:33,260 Nhưng TCP nào. 148 00:07:33,260 --> 00:07:38,250 TCP biết, tốt, tôi đã nhận được một trong bốn, ba trong số bốn, và bốn trong số bốn. 149 00:07:38,250 --> 00:07:41,100 Tôi không nhận được bất kỳ dữ liệu hơn. 150 00:07:41,100 --> 00:07:43,770 Vì vậy, một cái gì đó đã đi sai. 151 00:07:43,770 --> 00:07:45,050 Nhưng tôi có thể đảm bảo giao hàng. 152 00:07:45,050 --> 00:07:49,300 Tôi biết gói đó số hai là mất tích. 153 00:07:49,300 --> 00:07:52,470 Và như vậy TCP bây giờ có thể tạo một yêu cầu, loại, theo hướng ngược lại. 154 00:07:52,470 --> 00:07:55,170 Bundling lên yêu cầu của mình trong nhiều cách giống nhau, 155 00:07:55,170 --> 00:07:57,230 và gửi nó qua IP, trong đó, tôi biết, có thể 156 00:07:57,230 --> 00:08:00,880 dẫn đến một số loại vòng lặp vô hạn của tất cả mọi người bỏ các gói tin trên đường. 157 00:08:00,880 --> 00:08:05,580 >> Nhưng nó đủ để nói rằng TCP nói, tôi là thiếu một gói tin. 158 00:08:05,580 --> 00:08:08,670 Tôi cần gửi thông tin lại cho người gửi. 159 00:08:08,670 --> 00:08:12,025 May mắn thay địa chỉ IP của người gửi, loại, đóng gói trong các lớp IP. 160 00:08:12,025 --> 00:08:15,780 Đó là một phần of-- đó là sự trở lại địa chỉ trên phong bì. 161 00:08:15,780 --> 00:08:18,800 Và nói, tôi là thiếu số gói hai, bạn có thể xin vui lòng gửi lại nó. 162 00:08:18,800 --> 00:08:20,550 Khi người gửi nhận thông tin, 163 00:08:20,550 --> 00:08:22,599 nó không phải gửi toàn bộ email nữa. 164 00:08:22,599 --> 00:08:25,390 Nó chỉ cần gửi cho cá nhân mảnh của nó mà đã mất tích, 165 00:08:25,390 --> 00:08:27,590 vì vậy chúng tôi có thể gửi gói số hai. 166 00:08:27,590 --> 00:08:32,610 Và khi nó được nó, bây giờ TCP nói, Tôi có tất cả bốn phần của dữ liệu 167 00:08:32,610 --> 00:08:34,100 mà tôi cần. 168 00:08:34,100 --> 00:08:39,590 Vì vậy, tôi có thể lắp ráp chúng lại với nhau, và lấy toàn bộ khối này thông tin 169 00:08:39,590 --> 00:08:44,169 và vượt qua nó cùng với cổng 25, nơi nó sẽ được hiểu như là một email. 170 00:08:44,169 --> 00:08:47,010 Và that-- theo cách này, chúng tôi đã Bây giờ gửi một email từ người gửi 171 00:08:47,010 --> 00:08:49,273 đến người nhận bằng cách sử dụng giao thức TCP / IP. 172 00:08:49,273 --> 00:08:51,430 173 00:08:51,430 --> 00:08:54,180 Vì vậy, như tôi đã nói, nếu vào thời điểm bất kỳ trên đường đi một cái gì đó đã đi sai, 174 00:08:54,180 --> 00:08:56,600 TCP có thể đối phó với nó. 175 00:08:56,600 --> 00:09:00,010 Nó có thể làm cho một yêu cầu mà thông tin được gửi lại cho nó. 176 00:09:00,010 --> 00:09:01,840 Và nó có thể tái tạo lại các tin nhắn. 177 00:09:01,840 --> 00:09:05,090 Và một khi nó được xây dựng lại các tin nhắn từ tất cả các gói tin nó nhận được, 178 00:09:05,090 --> 00:09:10,350 sau đó nó có thể sắp xếp chúng và cung cấp cho họ đến đúng dịch vụ. 179 00:09:10,350 --> 00:09:11,990 >> Vì vậy, đó là TCP trong một nutshell. 180 00:09:11,990 --> 00:09:14,550 Đó là cách chúng tôi đảm bảo cung cấp thông tin. 181 00:09:14,550 --> 00:09:16,540 Ghi TCP thường xuyên làm việc với IP, 182 00:09:16,540 --> 00:09:18,990 do đó, hai giao thức này thực sự đi tay trong tay. 183 00:09:18,990 --> 00:09:22,160 Chúng tôi thảo luận về chúng trong một số video ở đây bởi vì họ làm những điều khác nhau, 184 00:09:22,160 --> 00:09:26,190 nhưng họ rất liên quan đến nhau, họ bạn thường sẽ sử dụng chúng với nhau. 185 00:09:26,190 --> 00:09:27,150 >> Tôi Doug Lloyd. 186 00:09:27,150 --> 00:09:29,160 Đây là CS50. 187 00:09:29,160 --> 00:09:31,233