1 00:00:00,000 --> 00:00:04,884 2 00:00:04,884 --> 00:00:08,050 DOUG LLOYD: I denne video vil vi at tale om Transmission Control 3 00:00:08,050 --> 00:00:10,440 Protokol TCP. 4 00:00:10,440 --> 00:00:13,290 Hvis du ikke har set den video på Internet Protocol, IP, 5 00:00:13,290 --> 00:00:15,290 du måtte ønske at gøre det før du ser denne video 6 00:00:15,290 --> 00:00:18,680 fordi de to er temmelig indbyrdes forbundne. 7 00:00:18,680 --> 00:00:21,100 >> Så Internet Protocol, igen, en hurtig oversigt, 8 00:00:21,100 --> 00:00:22,930 det er den protokol der bevæger information 9 00:00:22,930 --> 00:00:28,210 fra en afsendende maskine til en modtagende maskinen via netværket. 10 00:00:28,210 --> 00:00:29,720 >> Så hvad er TCP? 11 00:00:29,720 --> 00:00:33,310 Mens blot at flytte fra en afsendende maskinen til at modtage maskine, 12 00:00:33,310 --> 00:00:35,120 er ikke den fulde historie. 13 00:00:35,120 --> 00:00:38,040 Vi ved også, at vores program, vores computere, for eksempel 14 00:00:38,040 --> 00:00:41,000 kører flere programmer, og har flere tjenester 15 00:00:41,000 --> 00:00:45,140 kører på disse maskiner. 16 00:00:45,140 --> 00:00:51,750 Og så, hvis vi ønsker at få en pakke, eller oplysninger til et specifikt program, 17 00:00:51,750 --> 00:00:54,590 på en bestemt maskine, vi har brug for mere information 18 00:00:54,590 --> 00:00:59,490 end blot hvad IP giver os mulighed for at få oplysninger fra punkt A til punkt B. 19 00:00:59,490 --> 00:01:02,390 >> Så kan TCP opfattes som dirigere pakken 20 00:01:02,390 --> 00:01:07,590 til den korrekte program eller den korrekte tjeneste på den modtagende maskine. 21 00:01:07,590 --> 00:01:11,810 Og så er det vigtigt at, som du måske forventer, ved, hvor det er meningen at gå, 22 00:01:11,810 --> 00:01:14,550 og hvad pakken er for på samme tid. 23 00:01:14,550 --> 00:01:18,370 Og så ofte, når du taler om Transmission Control Protocol, TCP, 24 00:01:18,370 --> 00:01:23,900 du virkelig ofte hører det i kontekst, TCP skråstreg IP, eller bare TCP / IP. 25 00:01:23,900 --> 00:01:27,639 Disse to protokoller er så indbyrdes forbundne, at de er stort set 26 00:01:27,639 --> 00:01:28,680 behandles som en enkelt enhed. 27 00:01:28,680 --> 00:01:31,630 Men de er to separate protokoller at gøre to forskellige ting. 28 00:01:31,630 --> 00:01:36,690 >> Igen IP er ansvarlig for at få det fra en maskine til en anden. 29 00:01:36,690 --> 00:01:41,250 Og TCP er ansvarlig for at få det til det rigtige program, 30 00:01:41,250 --> 00:01:43,490 eller det korrekte serviceinterval på en maskine. 31 00:01:43,490 --> 00:01:45,500 Og det gør noget andet, som IP ikke gør, 32 00:01:45,500 --> 00:01:48,600 hvilket er garanti levering. 33 00:01:48,600 --> 00:01:55,060 >> Så hvis vi nu parret en maskines IP tage fat med den såkaldte portnummer, 34 00:01:55,060 --> 00:01:58,750 og et portnummer er, hvordan en specifik tjeneste eller nytte, eller et program, 35 00:01:58,750 --> 00:02:00,350 er identificeret på en maskine. 36 00:02:00,350 --> 00:02:03,920 Hvis vi nu har en IP adresse samt et portnummer, 37 00:02:03,920 --> 00:02:07,240 nu kan vi entydigt at identificere en bestemt tjeneste 38 00:02:07,240 --> 00:02:09,479 kører på en bestemt maskine. 39 00:02:09,479 --> 00:02:11,920 >> Så det er derfor TCP og IP er så ofte indbyrdes, 40 00:02:11,920 --> 00:02:14,170 fordi det portnummer på eget ikke rigtig 41 00:02:14,170 --> 00:02:17,670 betyde noget, hvis du har brug for en portnummer, og maskinen 42 00:02:17,670 --> 00:02:19,566 at du taler om. 43 00:02:19,566 --> 00:02:24,060 Hvad maskine formodes at være ved hjælp af denne særlige port, f.eks. 44 00:02:24,060 --> 00:02:28,350 >> Den anden ting, TCP gør, som Jeg sagde, er det garanterer levering. 45 00:02:28,350 --> 00:02:30,810 Så ud over at angivelse af portnummer, 46 00:02:30,810 --> 00:02:34,640 Det viser også, hvor mange pakker, internet-protokollen, IP, 47 00:02:34,640 --> 00:02:36,110 har delt data i. 48 00:02:36,110 --> 00:02:41,200 Og det beordrer disse pakker, så de kan rekonstrueres på den modtagende 49 00:02:41,200 --> 00:02:45,820 maskine, selv om de received-- i en anden rækkefølge, end de blev sendt. 50 00:02:45,820 --> 00:02:48,460 Hvilket kan ske, fordi IP er en forbindelsesløs protokol, 51 00:02:48,460 --> 00:02:52,610 og så forskellige pakker kan tage forskellige veje gennem systemet. 52 00:02:52,610 --> 00:02:53,660 53 00:02:53,660 --> 00:02:55,865 >> Nogle af disse portnumre er meget almindeligt anvendt, 54 00:02:55,865 --> 00:02:57,990 og de har været standardiseret på tværs af alle computere, 55 00:02:57,990 --> 00:03:00,500 lignende, temmelig meget hver computerproducent nu. 56 00:03:00,500 --> 00:03:03,612 Så noget, der hedder FTP, File Transfer Protocol, 57 00:03:03,612 --> 00:03:05,820 som anvendes til at transmittere filer, som man kunne forvente, 58 00:03:05,820 --> 00:03:10,060 fra en maskine til en anden, der bruger port 21 konventionelt. 59 00:03:10,060 --> 00:03:13,000 E-mail, SMTP, bruger port 25. 60 00:03:13,000 --> 00:03:16,070 DNS, domænenavnet system, som vi talte om i vores internet-primer 61 00:03:16,070 --> 00:03:17,976 video, bruger port 53. 62 00:03:17,976 --> 00:03:20,100 Hvis du nogensinde browsing på nettet, er du temmelig meget 63 00:03:20,100 --> 00:03:23,440 altid bruger port 80, medmindre du surfer på internettet sikkert, 64 00:03:23,440 --> 00:03:26,060 sikker web browsing, bruge port 443. 65 00:03:26,060 --> 00:03:28,610 66 00:03:28,610 --> 00:03:30,790 >> Så hvad er denne TCP / IP-proces? 67 00:03:30,790 --> 00:03:33,730 Hvad sker der med både af disse protokoller sammen? 68 00:03:33,730 --> 00:03:35,520 Nå, lad os tale om det. 69 00:03:35,520 --> 00:03:39,420 Når et program ønsker at sende data, TCP hjælper med at bryde det i stykker, 70 00:03:39,420 --> 00:03:42,700 og kommunikerer disse pakker til computerens netværksbaseret software. 71 00:03:42,700 --> 00:03:45,850 Så det tager de data og den wraps oplysninger omkring det 72 00:03:45,850 --> 00:03:48,700 der indikerer hvilken port formodes at gå til, 73 00:03:48,700 --> 00:03:52,500 og hvilken rækkefølge at pakken er helt ude af. 74 00:03:52,500 --> 00:03:56,940 Så gør pakke en af ​​10, to 10, tre af 10, og så videre. 75 00:03:56,940 --> 00:04:01,750 >> IP får disse data bidder, der er blevet omviklet med TCP, 76 00:04:01,750 --> 00:04:06,447 og wraps mere information om hvor pakken skulle gå. 77 00:04:06,447 --> 00:04:08,780 Vi kunne kalde denne IP lag omgiver pakken. 78 00:04:08,780 --> 00:04:11,210 Så det er en slags, ligesom, en af ​​disse nesting dukker. 79 00:04:11,210 --> 00:04:14,780 Vi har data i midten, og derefter TCP ovenpå, 80 00:04:14,780 --> 00:04:17,920 fortæller den, hvor data inde i TCP er 81 00:04:17,920 --> 00:04:22,150 skulle gå, i hvilket havn eller hvilken tjeneste på en maskine. 82 00:04:22,150 --> 00:04:25,110 Omkring det er IP-laget. 83 00:04:25,110 --> 00:04:29,230 Hvilken IP-adresse, hvilket maskine, er faktisk at få dette. 84 00:04:29,230 --> 00:04:32,070 >> Så da, at pakke, der er blevet omviklet med alle de lag, 85 00:04:32,070 --> 00:04:35,250 sendes gennem Internet Protocol gennem systemet af routere, at få 86 00:04:35,250 --> 00:04:39,960 fra punkt A til punkt B. Når modtagende maskine, eller enhed, får 87 00:04:39,960 --> 00:04:42,790 det, det ser på IP lag, den siger, yup, det er 88 00:04:42,790 --> 00:04:45,260 min IP-adresse, så det tager off, sortering af revner ægget, 89 00:04:45,260 --> 00:04:47,380 og tager ud IP-laget. 90 00:04:47,380 --> 00:04:49,530 Så den ser, at der er en TCP lag, og det siger, 91 00:04:49,530 --> 00:04:52,720 OK, ligner dette er gå til port x, eller port y. 92 00:04:52,720 --> 00:04:55,842 Og tilsyneladende er det pakke nummer otte af 15. 93 00:04:55,842 --> 00:04:56,800 Så det er godt at vide. 94 00:04:56,800 --> 00:05:01,240 Så det kan tage disse oplysninger, tage ud TCP lag nu, 95 00:05:01,240 --> 00:05:04,410 vel vidende, at det er for port x, og det er pakke nummer otte, 96 00:05:04,410 --> 00:05:06,270 og få på de data, der inde. 97 00:05:06,270 --> 00:05:09,460 Og det kan forberede data til organiseres på den rigtige måde. 98 00:05:09,460 --> 00:05:11,449 Og når alle de modtages data, TCP 99 00:05:11,449 --> 00:05:13,990 kan aflevere det ud til den korrekte tjeneste, og sige, her du går. 100 00:05:13,990 --> 00:05:16,107 Her er de data, du har modtaget. 101 00:05:16,107 --> 00:05:17,940 Denne proces kan se noget som dette. 102 00:05:17,940 --> 00:05:21,392 Så lad os sende en e-mail fra en afsender til en modtager. 103 00:05:21,392 --> 00:05:23,100 Og lad os sige det e-mail er temmelig lille, 104 00:05:23,100 --> 00:05:25,975 så vi kun behøver at bryde det op i fire pakker, og vi vil kalde dem A, 105 00:05:25,975 --> 00:05:29,460 B, C og D. Nå, vi ønsker at flytte at første pakke, hvad der sker? 106 00:05:29,460 --> 00:05:34,491 Nå, vi tager, at bid af data, de data, der er en del af pakke A, 107 00:05:34,491 --> 00:05:38,500 og omkring det vi vil at pakke det med en TCP lag. 108 00:05:38,500 --> 00:05:41,670 E-mails, kan du huske, sendes via port 25, 109 00:05:41,670 --> 00:05:46,181 og vi har fire bidder af data, her, at vi kommer til at bruge, 110 00:05:46,181 --> 00:05:47,430 og dette er den første af dem. 111 00:05:47,430 --> 00:05:50,013 Så måske vores TCP lag indeholder oplysninger om, ja, vi er 112 00:05:50,013 --> 00:05:56,060 gå til port 25, og dette er pakke nummer et af fire. 113 00:05:56,060 --> 00:05:59,280 >> Omkring dette, så nu har vi alt, oplysninger bundtet op sammen, 114 00:05:59,280 --> 00:06:03,000 vi kommer til at sige, hvor vi ønsker det skal gå, hvad maskine, hvad IP-adresse 115 00:06:03,000 --> 00:06:04,910 formodes at få denne pakke. 116 00:06:04,910 --> 00:06:06,604 Og det er en del af IP-laget. 117 00:06:06,604 --> 00:06:08,770 Og der er andre oplysninger derinde så godt, sådan 118 00:06:08,770 --> 00:06:11,300 som afsenderadressen i hvis noget går galt, 119 00:06:11,300 --> 00:06:14,390 Det ved, hvor at sende oplysninger tilbage, og så videre. 120 00:06:14,390 --> 00:06:16,475 >> Men IP-laget går omkring alt dette. 121 00:06:16,475 --> 00:06:19,860 Det hele ting er bundlet sammen, som én stor enhed, 122 00:06:19,860 --> 00:06:22,080 og sendes via en IP-overførsel. 123 00:06:22,080 --> 00:06:26,180 Så det bliver dirigeres gennem routeren netværk, ved hjælp af internet-protokollen. 124 00:06:26,180 --> 00:06:28,700 Og modtageren modtager hele ting. 125 00:06:28,700 --> 00:06:31,910 Og så kan det begynde at dekonstruere, hvad der sker her. 126 00:06:31,910 --> 00:06:36,030 Det ser på IP-laget, den uden lag af disse data, 127 00:06:36,030 --> 00:06:38,560 og siger, jep, det er min IP adresse, så vi kan skille det. 128 00:06:38,560 --> 00:06:40,685 Jeg kan, slags, ignorere det, har ikke brug for det længere, 129 00:06:40,685 --> 00:06:42,480 og det kan se et niveau dybere. 130 00:06:42,480 --> 00:06:47,590 Det ser, at, OK, det er data, som er beregnet til at blive modtaget på port 25. 131 00:06:47,590 --> 00:06:50,560 Det er tilsyneladende den første del af fire. 132 00:06:50,560 --> 00:06:54,260 Så jeg har tænkt mig at holde det i sind, og se på dataene, 133 00:06:54,260 --> 00:06:57,349 og slot det nogenlunde, hvor Jeg tror, ​​det kommer til at gå. 134 00:06:57,349 --> 00:07:00,140 Nu, på grund af Internet Protocol Det er ikke nødvendigvis tilfældet 135 00:07:00,140 --> 00:07:03,442 at den næste pakke af modtageren får, er pakken to. 136 00:07:03,442 --> 00:07:05,150 Faktisk er den næste ting modtageren får 137 00:07:05,150 --> 00:07:08,230 kunne være pakkenummer tre, fordi disse pakker 138 00:07:08,230 --> 00:07:11,777 tog forskellige veje på grund af forskellige trafik på netværket. 139 00:07:11,777 --> 00:07:14,360 Og så er jeg ikke kommer til at gå ved diagrammet i bygge det 140 00:07:14,360 --> 00:07:17,560 op igen, men pakken tre bevæger sig, bliver skrællet væk 141 00:07:17,560 --> 00:07:20,410 alle sine lag, den IP-laget, TCP lag, 142 00:07:20,410 --> 00:07:22,420 og dataene bliver sat på det rigtige sted. 143 00:07:22,420 --> 00:07:25,200 Og så, lad os sige det modtager pakken fire. 144 00:07:25,200 --> 00:07:29,290 >> Lad os nu sige, det er det, det ikke få nogen flere data. 145 00:07:29,290 --> 00:07:30,300 Hvad vil det gøre? 146 00:07:30,300 --> 00:07:32,110 IP gør ikke noget for os. 147 00:07:32,110 --> 00:07:33,260 Men TCP gør. 148 00:07:33,260 --> 00:07:38,250 TCP ved, godt, jeg har modtaget en af fire, tre af fire, og fire af fire. 149 00:07:38,250 --> 00:07:41,100 Jeg får ikke flere data. 150 00:07:41,100 --> 00:07:43,770 Så noget er gået galt. 151 00:07:43,770 --> 00:07:45,050 Men jeg kan garantere levering. 152 00:07:45,050 --> 00:07:49,300 Jeg ved, at pakke nummer to mangler. 153 00:07:49,300 --> 00:07:52,470 Og så TCP kan nu fremsætte en anmodning, slags, i den modsatte retning. 154 00:07:52,470 --> 00:07:55,170 Bundling op sin anmodning på samme måde, 155 00:07:55,170 --> 00:07:57,230 og sende den via IP, som, jeg ved, kunne 156 00:07:57,230 --> 00:08:00,880 føre til en slags uendelig løkke af alle droppe pakker på vej. 157 00:08:00,880 --> 00:08:05,580 >> Men er det tilstrækkeligt at sige, at TCP siger, jeg mangler en pakke. 158 00:08:05,580 --> 00:08:08,670 Jeg har brug for at sende oplysninger tilbage til afsenderen. 159 00:08:08,670 --> 00:08:12,025 Heldigvis afsenderens IP adresse er, slags, bundtet i IP-laget. 160 00:08:12,025 --> 00:08:15,780 Det er en del of-- det er afkastet tage fat på kuverten. 161 00:08:15,780 --> 00:08:18,800 Og sige, jeg mangler pakke nummer to, kan du venligst sende den igen. 162 00:08:18,800 --> 00:08:20,550 Når afsenderen modtager at oplysninger, 163 00:08:20,550 --> 00:08:22,599 det behøver ikke at sende hele e igen. 164 00:08:22,599 --> 00:08:25,390 Det behøver kun at sende, at de enkelte stykke af det, der manglede, 165 00:08:25,390 --> 00:08:27,590 så vi kunne sende pakke nummer to. 166 00:08:27,590 --> 00:08:32,610 Og når det bliver det, nu TCP siger, Jeg har alle fire stykker data 167 00:08:32,610 --> 00:08:34,100 at jeg har brug for. 168 00:08:34,100 --> 00:08:39,590 Så kan jeg samle dem sammen, og tage hele denne blok af oplysninger 169 00:08:39,590 --> 00:08:44,169 og give det videre til port 25, hvor Det vil blive fortolket som en e-mail. 170 00:08:44,169 --> 00:08:47,010 Og at-- på denne måde, vi har nu Send en e-mail fra afsender 171 00:08:47,010 --> 00:08:49,273 til modtageren ved hjælp af TCP / IP. 172 00:08:49,273 --> 00:08:51,430 173 00:08:51,430 --> 00:08:54,180 Så, som jeg sagde, hvis på noget tidspunkt undervejs gik noget galt, 174 00:08:54,180 --> 00:08:56,600 TCP kan håndtere det. 175 00:08:56,600 --> 00:09:00,010 Det kan gøre en anmodning om, at oplysninger bliver sendt tilbage til det. 176 00:09:00,010 --> 00:09:01,840 Og det kan rekonstruere meddelelsen. 177 00:09:01,840 --> 00:09:05,090 Og når det er rekonstrueret budskabet fra alle pakker det modtagne 178 00:09:05,090 --> 00:09:10,350 så det kan organisere dem og levere dem til den rigtige service. 179 00:09:10,350 --> 00:09:11,990 >> Så det er TCP i en nøddeskal. 180 00:09:11,990 --> 00:09:14,550 Det er, hvordan vi garanterer levering af information. 181 00:09:14,550 --> 00:09:16,540 Husk TCP ofte arbejder med IP, 182 00:09:16,540 --> 00:09:18,990 Så disse to protokoller virkelig går hånd i hånd. 183 00:09:18,990 --> 00:09:22,160 Vi diskuterede dem i flere videoer her, fordi de gør forskellige ting, 184 00:09:22,160 --> 00:09:26,190 men de er så indbyrdes forbundne, at de vil du normalt bruger dem sammen. 185 00:09:26,190 --> 00:09:27,150 >> Jeg er Doug Lloyd. 186 00:09:27,150 --> 00:09:29,160 Det er CS50. 187 00:09:29,160 --> 00:09:31,233