DOUG LLOYD: I den här videon vi ska att tala om Transmission Control Protokoll, TCP. Om du inte har sett den video på Internet Protocol, IP, Du kanske vill göra det innan du tittar här videon eftersom de två är ganska ihop. Så, Internetprotokollet, igen, en snabb sammanfattning, det är protokollet som rör sig informationen från en sändande maskin till en mottagande maskin via nätverket. Så vad är TCP? Medan bara flytta från en sändande maskinen till mottagande maskin, är inte hela historien. Vi vet också att vårt program, våra datorer, till exempel, kör flera program, och har flera tjänster körs på dessa maskiner. Och så, om vi vill få ett paket, eller information till ett visst program, på en specifik maskin, vi behöver mer information än vad IP tillåter oss att få information från punkt A till punkt B. Så kan TCP ses som att rikta paketet till rätt program, eller rätt tjänsten på den mottagande maskinen. Och så är det viktigt att, som du kanske förväntar sig, vet var det är tänkt att gå, och vad paketet är för samtidigt. Och så ofta, när man talar om Transmission Control Protocol, TCP, du verkligen ofta höra det i sammanhang TCP snedstreck IP eller bara TCP / IP. Dessa två protokoll är så varandra att de är i grund och botten behandlas som en enda enhet. Men de är två separata protokoll att göra två separata saker. Återigen, är IP ansvarig för att få det från en maskin till en annan. Och TCP ansvarar för få det till rätt program, eller rätt tjänst på en maskin. Och det gör något annat som IP inte gör, vilket är garantera leverans. Så om vi nu koppla en maskins IP Att med den så kallade portnummer, och ett portnummer är hur en specifik tjänsten, eller verktyg, eller program, identifieras på en maskin. Om vi ​​nu har en IP adress plus ett portnummer, Nu kan vi identifiera en viss tjänst körs på en viss maskin. Så det är därför TCP och IP är så ofta sammankopplade, eftersom det portnumret på egen hand inte riktigt betyder någonting om du behöver en portnummer, och maskinen att du pratar om. Vilken maskin är tänkt att använda denna speciella porten, till exempel. Den andra saken som TCP gör, som Jag sa, är det garanterar leverans. Så, förutom att ange portnumret, Det visar också hur många paket, internetprotokoll, IP, har delat in data i. Och det beställer dessa paket så att de kan rekonstrueras på den mottagande maskin, även om de received-- i en annan ordning än de sändes. Vilket kan hända eftersom IP är ett anslutningsfritt protokoll, och så olika paket kan ta olika vägar genom systemet. Några av dessa portnummer är mycket vanligt, och de har standardiserats i alla datorer, som, ganska mycket varje datortillverkare nu. Så något som kallas FTP, File Transfer Protocol, som används för att sända filer, som man kan förvänta sig, från en maskin till en annan, som använder port 21 på konventionellt sätt. E-post, SMTP, använder port 25. DNS, domännamnssystemet, som vi talade om i vår internet primer video, använder port 53. Om du någonsin surfar webben, du är ganska mycket alltid använder port 80, såvida du surfar på webben på ett säkert sätt säker surfning, använder port 443. Så vad är det här TCP / IP processen? Vad händer med både av dessa protokoll tillsammans? Nåväl, låt oss prata om det. När ett program vill skicka data, TCP hjälper till att bryta den i bitar, och kommunicerar dessa paket till datorns nätverks programvara. Så det tar data och det sveper information kring det som anger vilken port är tänkt att gå till, och vilken ordning som paket är ur alla. Så gör paket en av 10, två av 10, tre av 10, och så vidare. IP får de data bitar som har lindats med TCP, och sveper mer information om där paketet är tänkt att gå. Vi kan kalla detta IP skikt som omger paketet. Så det är liksom, liksom, en av de dockorna. Vi har data i mitten och sedan TCP ovanpå, berättar det där data i TCP är tänkt att gå till vilken port eller vad tjänsten på en maskin. Runt det är IP-skiktet. Vilken IP-adress, vilken maskin, faktiskt få detta. Alltså, det paket som är varit lindade med alla dessa skikt, sänds via Internet Protocol genom systemet routrar, få från punkt A till punkt B. När mottagande maskin eller anordning, får det, ser det på IP lagret, säger, Japp det är min IP-adress, så det tar off, typ av sprickor ägget, och tar bort IP-lagret. Då ser att det finns ett TCP-lager, och det står, OK, ser ut så här är gå till hamn x eller y port. Och tydligen är det paket nummer åtta av 15. Så det är bra att veta. Så då kan ta denna information, ta av TCP-lager nu, att veta att det är för hamn x, och det är paket nummer åtta, och komma åt data i. Och det kan förbereda data till organiseras på rätt sätt. Och när alla data mottas, TCP kan lämna bort det till rätt service och säga, här har du. Här är de data som du har fått. Den processen kan se något som det här. Så låt oss skicka ett mail från en sändare till en mottagare. Och låt oss säga detta e-post är ganska liten, så vi behöver bara dela upp den i fyra paket, och vi ska kalla dem A, B, C och D. Tja, vi vill flytta det första paketet vad som händer? Tja, tar vi den bit av data, de data som är en del av paket A, och runt att vi kommer att linda den med en TCP skikt. E-post, kan du minns, skickas via port 25, och vi har fyra bitar data, här, att vi kommer att använda, och detta är den första av dem. Så kanske vår TCP skiktet innehåller information om, ja, vi är gå till port 25, och detta paket nummer ett av fyra. Runt det, så nu har vi allt att Information paketerade tillsammans, vi kommer att säga var vi vill ha det att gå, vilken maskin, vilken IP-adress är tänkt att få detta paket. Och det är en del av IP-lagret. Och det finns andra uppgifter där också, till exempel som avsändaradress i om något går fel, det vet vart du ska skicka information tillbaka, och så vidare. Men IP-lagret går kring allt detta. Det hela som medföljer tillsammans, som en stor enhet, och skickas via en IP-överföring. Så det blir dirigeras via routern nätverk, med hjälp av Internetprotokollet. Och mottagaren tar emot hela saken. Och då kan det börja dekonstruera vad som händer här. Det ser på IP-lagret, den utsidesskikt av dessa data, och säger, yep, det är min IP adress så att vi kan kasta det. Jag kan typ av, ignorera det, behöver inte det längre, och det kan se en nivå djupare. Det ser att, OK, är dessa data som är avsedd att tas emot på port 25. Det är uppenbarligen den första delen av fyra. Så jag kommer att hålla det i sinne och titta på data, och urtaget det ungefär där Jag tror att det kommer att gå. Nu, på grund av internetprotokoll det är inte nödvändigtvis fallet att nästa paket den Mottagaren får, är paketet två. I själva verket, den nästa sak mottagaren får kan vara paketnummer tre eftersom dessa paket tog olika vägar på grund av annan trafik i nätverket. Och så, jag kommer inte att gå genom diagrammet i bygga det upp igen, men paket tre flyttar, blir skalat bort av alla dess skikt, varvid det IP-skiktet, TCP skiktet, och data får sätta på rätt plats. Och då, låt oss säga att det mottar paketet fyra. Låt oss nu säga att det är det inte få några fler uppgifter. Vad kommer det att göra? IP inte göra något för oss. Men TCP gör. TCP vet, ja, jag har fått en av fyra, tre av fyra, och fyra av fyra. Jag får inte några fler uppgifter. Så något har gått fel. Men jag kan garantera leverans. Jag vet att paketet nummer två saknas. Och så TCP kan nu göra en förfrågan, sortera av, i den omvända riktningen. Buntning upp sin begäran på ungefär samma sätt, och skicka det via IP, som jag vet, kunde leda till någon form av oändlig slinga av alla släppa paket på vägen. Men det räcker att säga att TCP säger jag saknar ett paket. Jag behöver skicka information tillbaka till avsändaren. Lyckligtvis avsändarens IP-adress är, sorts, paketerade i IP-skiktet. Det är en del of-- det är avkastningen adress på kuvertet. Och säg, jag saknar paketnummer två, kan du vara snäll och skicka det. När avsändaren tar emot denna information, det behöver inte skicka hela e-post igen. Det behöver bara skicka den enskilde bit av det som saknades, så vi kunde skicka paket nummer två. Och när det blir det, nu TCP säger, Jag har alla fyra bitar data som jag behöver. Så kan jag samla ihop dem, och ta hela denna informationsblock och sprida den vidare till port 25, där Det kommer att tolkas som ett e-postmeddelande. Och that-- på detta sätt vi har nu skicka ett mail från avsändare till mottagare med hjälp av TCP / IP. Så, som sagt, om vid något tillfälle längs vägen något gick fel, TCP kan ta itu med det. Det kan göra en begäran om att Information får skickas tillbaka till det. Och det kan rekonstruera meddelandet. Och när det är rekonstruerat meddelandet från alla paket det emot, då kan organisera dem och leverera dem till rätt tjänst. Så det är TCP i ett nötskal. Det är så vi garanterar leverans av information. Kom ihåg TCP ofta arbetar med IP, så dessa två protokoll verkligen går hand i hand. Vi diskuterade dem i flera videor här eftersom de gör olika saker, men de är så varandra, de du brukar använda dem tillsammans. Jag är Doug Lloyd. Detta är CS50.