Jason: ในบทนี้
เราจะหารือเกี่ยวกับประเภทโปรโตคอล
IP รวมถึง TCP, UDP และแนวคิดของวิธีการเชื่อมต่อแบบไร้การเชื่อมต่อและแบบเน้นการเชื่อมต่อ
ทีนี้ TCP คืออะไร?
TCP เป็นโปรโตคอลควบคุมการส่ง
เป็นโปรโตคอลที่เน้นการเชื่อมต่อ ซึ่งหมายความว่าเป็นวิธีที่เชื่อถือได้ในการขนส่งส่วนต่างๆ
ทั่วทั้งเครือข่ายของเรา
ตอนนี้หากส่วนใดหลุดออกไป
โปรโตคอลจะขอการยอมรับจริง ๆ ทุกครั้ง
และหากไม่ได้รับการตอบรับ
ก็จะส่งข้อมูลนั้นอีกครั้ง
นั่นเป็นเหตุผลที่เราเรียกสิ่งนี้ว่าโปรโตคอลการเชื่อมต่อเต็มรูปแบบ
เพราะมันมีข้อมูลประเภทสองทางที่ฉันส่งข้อมูลให้คุณและฉันกำลังยืนยันว่าคุณได้รับจริงโดยการฟังว่าคุณได้รับและคุณตอบกลับฉัน
ทีนี้มาดูไดอะแกรมเล็กๆ
บนหน้าจอกันสักครู่
คุณจะเห็นว่าฉันมีไคลเอนต์ทางด้านซ้ายและเซิร์ฟเวอร์ทางด้านขวา
ตอนนี้ไคลเอนต์จะส่งสิ่งที่เรียกว่าแพ็คเก็ตซินหรือแพ็กเก็ตการซิงโครไนซ์ไปยังเซิร์ฟเวอร์
ตอนนี้ เมื่อเซิร์ฟเวอร์ได้รับข้อมูลนั้น
ก็จะส่งการยืนยันการซิงโครไนซ์กลับไปยังไคลเอ็นต์
ซึ่งเรียกว่า syn ack
ตอนนี้ เมื่อไคลเอนต์ได้รับการตอบรับนั้น
ก็จะส่งการตอบรับกลับไปยังเซิร์ฟเวอร์เอง
สิ่งนี้เรียกว่า ack
ทีนี้ เมื่อเราทำ syn นี้ syn ack, ack นี่คือสิ่งที่เราเรียกว่าการจับมือแบบสามทาง
โดยพื้นฐานแล้วลูกค้าจะพูดว่า "เฮ้เซิร์ฟเวอร์คุณพร้อมที่จะรับข้อมูลหรือไม่?
จากนั้นเซิร์ฟเวอร์ก็พูดว่า
"แน่นอน ทำไมจะไม่ล่ะ?
“ส่งข้อมูลให้ฉันหน่อย และลูกค้าก็พูดว่า "เอาล่ะ มาแล้ว จากนั้นการส่งสัญญาณก็จะเริ่มขึ้นเพราะเราได้จับมือกันแบบสามทางแล้ว
และเรารู้ว่าทั้งสองฝ่ายพร้อมที่จะสื่อสารกัน
“เอาล่ะ พร้อมหรือยัง? "ใช่ฉันเป็น “มันมาแล้ว.. ตอนนี้ ทุกครั้งที่ข้อมูลนี้ ซึ่งเราเรียกว่าเซกเมนต์ ถูกส่งไปทั่วเครือข่าย จะมีการรับทราบที่ได้รับ
และนั่นบอกเราว่ามีการสื่อสารสองทางที่ประสบความสำเร็จเกิดขึ้น
ทีนี้ ถ้าเซิร์ฟเวอร์นี้คาดว่าจะได้รับข้อมูล
100 ชิ้น แต่ได้รับเพียง 98 ชิ้น มันจะพูดกับลูกค้าว่า "เฮ้
คุณบอกฉันว่าจะส่งของให้ฉัน 100 ชิ้น"
แต่คุณส่งมาให้ฉันเท่านั้น 98.
“ส่งสองสิ่งที่ฉันขาดหายไปให้ฉัน จากนั้นจึงเกิดการส่งสัญญาณซ้ำ
ด้วยวิธีนี้ การสื่อสารสามารถส่งถึงเราได้
และเราแน่ใจได้เสมอว่าเราได้รับสิ่งที่เราควรจะได้รับ เนื่องจากเรามีการส่งแพ็กเก็ตซ้ำผ่านเครือข่าย
ตอนนี้ใช้สำหรับข้อมูลเครือข่ายทั้งหมดที่ต้องมั่นใจว่าจะไปถึงปลายทางได้
ฉันชอบคิดเรื่องนี้เหมือนจดหมายรับรอง
ตัวอย่างเช่น ถ้าฉันต้องการส่งข้อความถึง
IRS ฉันต้องการให้แน่ใจว่าพวกเขาได้รับข้อความนั้นและไม่สูญหายไปในจดหมาย
ดังนั้นฉันอาจจ่ายเงินเพิ่มเล็กน้อยเพื่อรับใบเสร็จรับเงินที่ได้รับการรับรองซึ่งเมื่อได้รับแล้วพวกเขาต้องเซ็นชื่อและส่งกลับมาให้ฉัน
ด้วยวิธีนี้ เมื่อฉันได้รับใบเสร็จรับเงินคืน
ฉันรู้ว่า IRS ได้รับพัสดุไปรษณีย์ของฉันแล้ว
นั่นคือวิธีการทำงานของ TCP
ในทางกลับกัน เรามีโปรโตคอลอื่นที่เรียกว่า
UDP
UDP คือสิ่งที่เราเรียกว่าโปรโตคอลไร้การเชื่อมต่อ หมายความว่าไม่ต้องรอการเชื่อมต่อ
UDP ย่อมาจาก User Datagram Protocol
และเหตุผลที่เราเรียกมันว่าดาตาแกรมก็เพราะถ้าคุณใช้
UDP คุณกำลังใช้ข้อมูลประเภทนี้
เรียกว่าดาตาแกรม
เมื่อเราพูดถึง UDP UDP นั้นไม่น่าเชื่อถือและจะส่งส่วนที่เรียกว่าดาตาแกรม
และหากตกหล่น ผู้ส่งจะไม่รู้ด้วยซ้ำว่าเกิดขึ้น
ทีนี้ ทำไมฉันถึงต้องการส่งของโดยที่ผู้ส่งไม่รู้จัก
และฉันไม่ได้รับใบเสร็จใดๆ?
UDP นั้นดีจริงๆ สำหรับการสตรีมเสียงและภาพ
เพราะคุณส่งข้อมูลจำนวนมาก และมีค่าใช้จ่ายน้อยลงมากเมื่อคุณใช้
UDP เพราะเราไม่มีการจับมือกันสามทางอย่างต่อเนื่องเพื่อสร้างมันขึ้นมา
และเราไม่มี การตรวจสอบและถ่วงดุลทั้งหมดที่เกี่ยวข้องโดยใช้ TCP
ดังนั้น เมื่อใช้ UDP คุณสามารถเพิ่มประสิทธิภาพของเครือข่ายได้อย่างแท้จริง
เนื่องจากคุณจะไม่มีการส่งข้อมูลซ้ำ
คุณกำลังจะจบลงด้วยการทิ้งข้อมูล
ตอนนี้ไม่ใช่เรื่องเลวร้ายเหรอ?
ทำไมเราถึงต้องการทิ้งข้อมูล?
สำหรับการใช้งานบางอย่าง มันไม่สำคัญจริงๆ
ตัวอย่างเช่น คุณกำลังสตรีมวิดีโอนี้อยู่ในขณะนี้
และถ้าฉันหลุดออกไป 1/100 วินาที
คุณจะสังเกตเห็นไหม
คุณอาจจะไม่ทำ และนั่นคือเหตุผลที่
UDP นั้นดีมาก เพราะเราสามารถลดลง
1/100 ของเวลาที่นี่ และคุณจะไม่สังเกตเห็นเลยด้วยซ้ำ
และจะไม่มีการส่งสัญญาณซ้ำ
แต่ด้วย TCP มันจะนำไปสู่การบัฟเฟอร์ที่มากขึ้น
เพราะคุณต้องรอ
แล้วจึงส่งไปที่ตำแหน่งที่ถูกต้อง แล้วจึงเล่นกลับ
และด้วยเหตุนี้ เนื่องจากการรับทราบและโอเวอร์เฮดนั้น
สำหรับทุกๆ วินาทีของวิดีโอนี้ มันจะทำให้วิดีโอนี้มีขนาดใหญ่ขึ้นมาก และใช้แบนด์วิธมากขึ้น
และนั่นเป็นหนึ่งในเหตุผลสำคัญว่าทำไมเราจึงใช้
UDP สำหรับการสตรีมวิดีโอและการสตรีมเสียง
ตอนนี้เรามาสรุปสั้น ๆ กันที่นี่เกี่ยวกับ TCP กับ UDP
เพราะนี่เป็นแนวคิดที่สำคัญจริงๆ
อันที่จริง ถ้าคุณมีบันทึกย่อของคุณตอนนี้
ฉันจะเขียนแผนภูมินี้ซึ่งฉันจะบอกคุณทันทีเมื่อเราพูดถึง TCP
กับ UDP
เพราะมันสำคัญมากจริงๆ
ประการแรก TCP มีความน่าเชื่อถือ มีการจับมือกันสามทาง
โดยที่ UDP ไม่น่าเชื่อถือมากนัก
เป็นโปรโตคอลที่ไม่น่าเชื่อถือเพราะไม่มีการจับมือกันสามทาง
TCP คือสิ่งที่เราเรียกว่าโปรโตคอลที่เน้นการเชื่อมต่อหรือโปรโตคอลเต็มรูปแบบเนื่องจากเรามีแฮนด์เชคสามทางในการรับทราบ
แต่ UDP นั้นไม่มีการเชื่อมต่อ
เป็นวิธีการจุดไฟและลืม
ฉันเพิ่งเริ่มส่งข้อมูลและหวังว่าคุณจะได้รับมัน
TCP ใช้การส่งสัญญาณซ้ำของเซ็กเมนต์และการควบคุมโฟลว์ซึ่งถูกจัดการผ่านหน้าต่าง
ในทางกลับกัน UDP ไม่มีการส่งสัญญาณซ้ำและไม่มีการปิดหน้าต่าง
ด้วย TCP เรามีการแบ่งส่วนการจัดลำดับของส่วนที่แตกต่างกันทั้งหมดของเรา
ด้วย UDP ไม่มีการเรียงลำดับ
ทีนี้ ความหมายก็คือ เมื่อฉันส่งทุกอย่างออกไป
ฉันจะส่งออกตามลำดับที่เหมาะสม
ตั้งแต่หนึ่งถึง 100
ฉันจะทำสิ่งนี้กับทั้ง TCP และ UDP
ตอนนี้ หากคุณพลาดชิ้นส่วนเหล่านั้นบางส่วน
หรือมาถึงลำดับที่แตกต่างกัน
เนื่องจากใช้เส้นทางที่แตกต่างกันบนเครือข่าย
ด้วย TCP พวกมันกำลังจัดลำดับ ดังนั้นมันจึงรู้ว่าคุณมี 1 ถึง 1,000 และนำพวกมันกลับมาอยู่ใน
ลำดับที่ถูกต้อง
ด้วย UDP ไม่ว่าพวกเขาจะมาในรูปแบบใด
นั่นคือวิธีการถ่ายทอด
ดังนั้น มันอาจจะมาในหนึ่ง 50 สอง 500
สาม สี่ ห้า หก 20 ตามลำดับแบบสุ่มแบบนั้น
และนั่นคือวิธีที่คุณจะได้ยิน
ดังนั้นสำหรับวิดีโอ คุณอาจได้ยินเสียงกระโดดเล็กน้อย
หรือเสียงแหลมสูงเล็กน้อย หรืออะไรทำนองนั้น
เพราะหนึ่งในเฟรมเหล่านั้นอาจไม่เป็นระเบียบ
ตอนนี้ เมื่อเรากลับไปที่ TCP มันจะรับทราบแต่ละส่วนเหล่านั้น
ดังนั้นเราจึงได้รับการยอมรับ
ถ้าฉันไม่เข้าใจ ฉันรู้ว่าฉันไม่เข้าใจ
และฉันสามารถส่งซ้ำให้ฉันได้ แล้วจึงรับอีกครั้ง
ด้วย UDP ไม่มีการรับทราบ
อีกครั้ง UDP มีค่าใช้จ่ายน้อยกว่ามาก เนื่องจากไม่มีการเชื่อมต่อ
ไม่มีหน้าต่าง ไม่มีการส่งซ้ำ ไม่มีการจัดลำดับ
และไม่มีการตอบรับ
ตอนนี้ ถ้าคุณต้องได้รับบางสิ่งที่นั่น และคุณต้องการให้แน่ใจว่าบุคคลนั้นได้รับ
คุณต้องใช้ TCP เป็นโปรโตคอลที่คุณเลือก
และนั่นคือเหตุผลที่เราจะใช้ TCP สำหรับสิ่งต่าง ๆ เช่น
การธนาคารและเว็บไซต์
และอีคอมเมิร์ซ และอื่น ๆ เช่นนั้น
แต่ถ้าเรามีบางอย่างที่มีข้อมูลจำนวนมาก เช่น
การสตรีมเสียงหรือวิดีโอ UDP ก็ทำได้ดีเพราะเราไม่จำเป็นต้องได้รับไฟล์ทุกส่วน
เราข้ามตรงนี้ไปตรงนั้นได้นิดหน่อยก็ไม่เป็นไร
-: [ผู้สอนอีกคน] ตอนนี้ เมื่อพูดถึง TCP และ UDP เราได้พูดถึงความจริงที่ว่าสิ่งเหล่านี้คือโปรโตคอลที่เน้นการเชื่อมต่อเต็มรูปแบบหรือที่เน้นการเชื่อมต่อ
และโปรโตคอลที่ไม่มีการเชื่อมต่อ
ผมขอยกตัวอย่างโปรโตคอลที่ใช้ TCP หรือ
UDP เพื่อให้คุณเข้าใจว่าเหตุใดเราจึงใช้แต่ละโปรโตคอล
ก่อนอื่น มาดู TCP และโปรโตคอลที่เน้นการเชื่อมต่อหรือการเชื่อมต่อแบบเต็ม
ซึ่งรวมถึงสิ่งต่างๆ เช่น SSH และ HTTP หรือ HTTPS
เหตุใดเราจึงต้องการการเชื่อมต่อที่มุ่งเน้นในกรณีเหล่านี้
ในกรณีของการใช้บางอย่างเช่น SSH ฉันกำลังทำการสื่อสารสองทางและควบคุมเซิร์ฟเวอร์ระยะไกลหรือเวิร์กสเตชันระยะไกล
และสามารถทำได้ผ่านพอร์ต
22
ฉันต้องการให้แน่ใจว่าฉันกำลังทำอย่างนั้นในลักษณะที่มุ่งเน้นการเชื่อมต่อหรือการเชื่อมต่อเต็มรูปแบบ
ด้วยวิธีนี้ เมื่อฉันส่งคำสั่งและพูดว่า รีบูตเซิร์ฟเวอร์
ฉันรู้ว่าคำสั่งนั้นไปถึงที่นั่นจริง
ๆ และการรีบูตเซิร์ฟเวอร์จะเกิดขึ้น
ในทำนองเดียวกัน เมื่อเราจัดการกับ HTTPS เราต้องการให้แน่ใจว่าเรากำลังมีโปรโตคอลการเชื่อมต่อแบบเต็มหรือเน้นการเชื่อมต่อโดยใช้
TCP
เหตุผลก็คือเราต้องการให้แน่ใจว่าสิ่งที่เราส่งไปนั้นได้รับจริง
และนั่นอาจรวมถึงสิ่งต่างๆ เช่น การพิสูจน์ตัวตน
เมื่อเราพยายามเข้าสู่ระบบเว็บไซต์โดยใช้ชื่อผู้ใช้และรหัสผ่านของเรา หรืออาจเป็นข้อมูลที่เราได้รับกลับมาจากเว็บไซต์นั้น
เช่น ยอดคงเหลือในบัญชีและข้อมูลธนาคารของเรา
ในทางกลับกัน หากเราใช้ UDP เป็นโปรโตคอล
เรากำลังติดต่อในลักษณะที่ไร้การเชื่อมต่อ
ตอนนี้ ฉันได้พูดถึงข้อเท็จจริงที่ว่าเราใช้สิ่งนี้ตลอดเวลาสำหรับสิ่งต่างๆ
เช่น การสตรีมเสียงและวิดีโอ
แต่นอกเหนือจากนั้น เรายังใช้มันสำหรับ DHCP และโปรโตคอลการถ่ายโอนไฟล์เล็กน้อยที่เรียกว่า
TFTP
ตอนนี้ หากคุณจำได้ DHCP ถูกใช้เป็น Dynamic Host Control
Protocol และทำงานผ่านพอร์ต
67 และ 68
ตอนนี้ เมื่อคุณเข้าร่วมเครือข่าย
หากอุปกรณ์ของคุณได้รับการตั้งค่าสำหรับการกำหนดที่อยู่
IP แบบไดนามิก ก็จะส่งข้อความออกอากาศบนเครือข่ายนั้นเพื่อค้นหาเซิร์ฟเวอร์
DHCP
และนี่คือเหตุผลที่เราใช้มันเป็นโปรโตคอลไร้การเชื่อมต่อ
เพราะหากข้อมูลนั้นถูกส่งออกไปและไม่มีใครตอบกลับ ลูกค้าของคุณก็จะส่งข้อมูลนั้นออกไปอีกครั้งโดยหวังว่าจะมีคนอื่นอยู่ที่นั่น
นั่นคือวิธีการทำงานของ DHCP
มันจะอนุญาตให้ข้อความออกอากาศออกไป
จากนั้นรอการตอบกลับกลับมา
หากไม่ได้รับการตอบกลับภายในระยะเวลาหนึ่ง
ก็จะออกอากาศข้อความซ้ำ และค้นหาเซิร์ฟเวอร์ DHCP ใหม่อีกครั้ง
ในทำนองเดียวกัน เมื่อเรามี TFTP หรือ Trivial File
Transfer Protocol ซึ่งทำงานผ่านพอร์ต 69 ก็จะทำงานในลักษณะที่ไม่มีการเชื่อมต่อโดยใช้
UDP เป็นการขนส่ง
เหตุผลนี้เป็นเพราะ TFTP เป็นโปรโตคอลการถ่ายโอนไฟล์เล็กน้อย
ดังนั้นเราจึงไม่จำเป็นต้องมีการรับรองว่าทุกแพ็กเก็ตถูกส่งและรับด้วยการตอบรับเหล่านั้น
และนั่นจะสร้างโอเวอร์เฮดมากขึ้นหากเราใช้
TCP
ดังนั้น เมื่อใช้ UDP เราสามารถถ่ายโอนไฟล์ได้เร็วขึ้นเมื่อเราใช้บางอย่าง
เช่น TFTP แทนที่จะใช้โปรโตคอลที่มีการเชื่อมต่อเต็มรูปแบบ เช่น FTP