วันนี้เราจะเริ่มด้วยการเน้นที่ TCP ก่อนหน้านี้ในบทเกี่ยวกับการแบ่งเลเยอร์ เราได้กล่าวถึงประเด็นสำคัญอย่างหนึ่งแล้ว ในเลเยอร์เครือข่ายและเลเยอร์ด้านล่าง จะเกี่ยวกับการเชื่อมต่อระหว่างโฮสต์มากกว่า ซึ่งหมายความว่าคอมพิวเตอร์ของคุณจำเป็นต้องทราบว่าคอมพิวเตอร์อีกเครื่องอยู่ที่ใดจึงจะเชื่อมต่อกับคอมพิวเตอร์เครื่องนั้นได้ อย่างไรก็ตาม การสื่อสารในเครือข่ายมักจะเป็นการสื่อสารระหว่างกระบวนการมากกว่าการสื่อสารระหว่างเครื่องจักร ดังนั้น โปรโตคอล TCP จึงได้แนะนำแนวคิดของพอร์ต พอร์ตอาจถูกครอบครองโดยกระบวนการเดียวเท่านั้น ซึ่งให้การสื่อสารโดยตรงระหว่างกระบวนการแอปพลิเคชันที่ทำงานบนโฮสต์ที่แตกต่างกัน
หน้าที่ของเลเยอร์การขนส่งคือการให้บริการการสื่อสารโดยตรงระหว่างกระบวนการแอปพลิเคชันที่ทำงานบนโฮสต์ที่แตกต่างกัน ดังนั้นจึงเรียกอีกอย่างหนึ่งว่าโปรโตคอลแบบ end-to-end เลเยอร์การขนส่งจะซ่อนรายละเอียดหลักของเครือข่าย ทำให้กระบวนการแอปพลิเคชันมองเห็นว่ามีช่องทางการสื่อสารแบบ end-to-end ที่เป็นตรรกะระหว่างเอนทิตีทั้งสองของเลเยอร์การขนส่งหรือไม่
TCP ย่อมาจาก Transmission Control Protocol และเป็นที่รู้จักในชื่อโปรโตคอลที่มุ่งเน้นการเชื่อมต่อ ซึ่งหมายความว่า ก่อนที่แอปพลิเคชันหนึ่งจะเริ่มส่งข้อมูลไปยังอีกแอปพลิเคชันหนึ่ง กระบวนการทั้งสองจะต้องทำการจับมือกัน จับมือกันเป็นกระบวนการที่เชื่อมต่อกันอย่างมีตรรกะ ซึ่งรับรองการส่งที่เชื่อถือได้และการรับข้อมูลอย่างเป็นระเบียบ ในระหว่างจับมือกัน การเชื่อมต่อจะถูกสร้างขึ้นระหว่างโฮสต์ต้นทางและปลายทางโดยการแลกเปลี่ยนชุดแพ็คเก็ตควบคุมและตกลงกันเกี่ยวกับพารามิเตอร์และกฎบางอย่างเพื่อให้แน่ใจว่าการส่งข้อมูลจะประสบความสำเร็จ
TCP คืออะไร? (มายลิงค์กิ้งแตะเครือข่ายและนายหน้าแพ็กเก็ตเครือข่ายสามารถประมวลผลทั้งแพ็คเก็ต TCP หรือ UDP ได้)
TCP (Transmission Control Protocol) เป็นโปรโตคอลการสื่อสารชั้นการขนส่งแบบเชื่อมต่อแบบไบต์สตรีมที่เชื่อถือได้
เน้นการเชื่อมต่อ:แบบมุ่งเน้นการเชื่อมต่อหมายถึงการสื่อสารของ TCP เป็นแบบหนึ่งต่อหนึ่ง นั่นคือ การสื่อสารแบบจุดต่อจุดแบบครบวงจร ซึ่งแตกต่างจาก UDP ซึ่งสามารถส่งข้อความไปยังโฮสต์หลายโฮสต์ในเวลาเดียวกัน ดังนั้นจึงไม่สามารถทำการสื่อสารแบบหนึ่งต่อหลายได้
เชื่อถือได้ความน่าเชื่อถือของ TCP รับประกันว่าแพ็กเก็ตจะถูกส่งไปยังผู้รับอย่างน่าเชื่อถือโดยไม่คำนึงถึงการเปลี่ยนแปลงในลิงก์เครือข่าย ซึ่งทำให้รูปแบบแพ็กเก็ตโปรโตคอลของ TCP ซับซ้อนกว่าของ UDP
ตามสตรีมไบต์ลักษณะที่ใช้พื้นฐานแบบไบต์สตรีมของ TCP ช่วยให้สามารถส่งข้อความได้ทุกขนาดและรับประกันลำดับของข้อความ แม้ว่าข้อความก่อนหน้านี้จะไม่ได้รับอย่างสมบูรณ์ หรือแม้ว่าจะได้รับไบต์ในลำดับถัดมาแล้ว TCP ก็จะไม่ส่งข้อความเหล่านั้นไปยังเลเยอร์แอปพลิเคชันเพื่อประมวลผล และจะทิ้งแพ็คเก็ตที่ซ้ำกันโดยอัตโนมัติ
เมื่อโฮสต์ A และโฮสต์ B สร้างการเชื่อมต่อแล้ว แอปพลิเคชันจะต้องใช้เพียงสายการสื่อสารเสมือนในการส่งและรับข้อมูล เพื่อให้แน่ใจว่าข้อมูลจะถูกส่งต่อไป โปรโตคอล TCP มีหน้าที่ควบคุมงานต่างๆ เช่น การสร้างการเชื่อมต่อ การตัดการเชื่อมต่อ และการยึดการเชื่อมต่อ โปรดทราบว่าในที่นี้ สายเสมือนหมายถึงการสร้างการเชื่อมต่อเท่านั้น การเชื่อมต่อโปรโตคอล TCP บ่งชี้ว่าทั้งสองฝ่ายสามารถเริ่มการส่งข้อมูลได้เท่านั้น และเพื่อรับประกันความน่าเชื่อถือของข้อมูล โหนดการกำหนดเส้นทางและการขนส่งได้รับการจัดการโดยอุปกรณ์เครือข่าย โปรโตคอล TCP เองไม่ได้เกี่ยวข้องกับรายละเอียดเหล่านี้
การเชื่อมต่อ TCP เป็นบริการแบบฟูลดูเพล็กซ์ ซึ่งหมายความว่าโฮสต์ A และโฮสต์ B สามารถส่งข้อมูลได้ทั้งสองทิศทางในการเชื่อมต่อ TCP กล่าวคือ ข้อมูลสามารถถ่ายโอนระหว่างโฮสต์ A และโฮสต์ B ได้ในกระแสข้อมูลแบบสองทิศทาง
TCP จะเก็บข้อมูลชั่วคราวในบัฟเฟอร์ส่งของการเชื่อมต่อ บัฟเฟอร์ส่งนี้เป็นหนึ่งในแคชที่ตั้งค่าไว้ระหว่างการจับมือสามทาง จากนั้น TCP จะส่งข้อมูลในแคชส่งไปยังแคชรับของโฮสต์ปลายทางในเวลาที่เหมาะสม ในทางปฏิบัติ แต่ละเพียร์จะมีแคชส่งและแคชรับ ดังที่แสดงไว้ที่นี่:
บัฟเฟอร์การส่งเป็นพื้นที่หน่วยความจำที่รักษาไว้โดยการใช้งาน TCP บนฝั่งผู้ส่ง ซึ่งใช้เพื่อเก็บข้อมูลชั่วคราวที่จะส่ง เมื่อทำการแฮนด์เชคสามทางเพื่อสร้างการเชื่อมต่อ แคชการส่งจะถูกตั้งค่าและใช้ในการจัดเก็บข้อมูล บัฟเฟอร์การส่งจะถูกปรับแบบไดนามิกตามความแออัดของเครือข่ายและข้อเสนอแนะจากผู้รับ
บัฟเฟอร์รับข้อมูลคือพื้นที่หน่วยความจำที่รักษาไว้โดยการใช้งาน TCP บนฝั่งรับข้อมูล ซึ่งใช้เพื่อจัดเก็บข้อมูลที่ได้รับชั่วคราว TCP จะจัดเก็บข้อมูลที่ได้รับในแคชรับข้อมูล และรอให้แอปพลิเคชันระดับสูงอ่านข้อมูลดังกล่าว
โปรดทราบว่าขนาดของแคชการส่งและแคชการรับนั้นมีจำกัด เมื่อแคชเต็ม TCP อาจนำกลยุทธ์บางอย่างมาใช้ เช่น การควบคุมความแออัด การควบคุมการไหล ฯลฯ เพื่อให้แน่ใจว่ามีการส่งข้อมูลที่เชื่อถือได้และมีเสถียรภาพของเครือข่าย
ในเครือข่ายคอมพิวเตอร์ การส่งข้อมูลระหว่างโฮสต์จะดำเนินการโดยใช้เซกเมนต์ แล้วเซกเมนต์แพ็กเก็ตคืออะไร?
TCP สร้างเซ็กเมนต์ TCP หรือเซ็กเมนต์ของแพ็กเก็ต โดยแบ่งสตรีมขาเข้าเป็นชิ้นๆ และเพิ่มส่วนหัวของ TCP ลงในแต่ละชิ้น แต่ละเซ็กเมนต์สามารถส่งได้เพียงช่วงเวลาจำกัดเท่านั้น และไม่สามารถเกินขนาดเซ็กเมนต์สูงสุด (MSS) ได้ เมื่อเซ็กเมนต์แพ็กเก็ตถูกส่งลงมา เซ็กเมนต์แพ็กเก็ตจะผ่านชั้นลิงก์ เลเยอร์ลิงก์มีหน่วยส่งข้อมูลสูงสุด (MTU) ซึ่งเป็นขนาดแพ็กเก็ตสูงสุดที่สามารถผ่านชั้นลิงก์ข้อมูลได้ หน่วยส่งข้อมูลสูงสุดมักจะเกี่ยวข้องกับอินเทอร์เฟซการสื่อสาร
แล้ว MSS กับ MTU ต่างกันยังไง?
ในเครือข่ายคอมพิวเตอร์ สถาปัตยกรรมแบบลำดับชั้นมีความสำคัญมาก เนื่องจากสถาปัตยกรรมดังกล่าวคำนึงถึงความแตกต่างระหว่างระดับต่างๆ โดยแต่ละชั้นจะมีชื่อเรียกที่แตกต่างกัน ในชั้นการขนส่ง ข้อมูลจะเรียกว่าเซกเมนต์ และในชั้นเครือข่าย ข้อมูลจะเรียกว่าแพ็กเก็ต IP ดังนั้น หน่วยการส่งข้อมูลสูงสุด (MTU) จึงอาจถือได้ว่าเป็นขนาดแพ็กเก็ต IP สูงสุดที่ชั้นเครือข่ายสามารถส่งได้ ในขณะที่ขนาดเซกเมนต์สูงสุด (MSS) เป็นแนวคิดของชั้นการขนส่งซึ่งหมายถึงปริมาณข้อมูลสูงสุดที่แพ็กเก็ต TCP สามารถส่งได้ในแต่ละครั้ง
โปรดทราบว่าเมื่อขนาดเซกเมนต์สูงสุด (MSS) มีขนาดใหญ่กว่าหน่วยส่งข้อมูลสูงสุด (MTU) การแบ่งข้อมูล IP จะดำเนินการที่เลเยอร์เครือข่าย และ TCP จะไม่แบ่งข้อมูลขนาดใหญ่เป็นกลุ่มข้อมูลที่เหมาะสมกับขนาด MTU จะมีส่วนหนึ่งในเลเยอร์เครือข่ายที่อุทิศให้กับเลเยอร์ IP
โครงสร้างเซกเมนต์แพ็กเก็ต TCP
มาสำรวจรูปแบบและเนื้อหาของส่วนหัว TCP กัน
หมายเลขลำดับ:ตัวเลขสุ่มที่สร้างโดยคอมพิวเตอร์เมื่อสร้างการเชื่อมต่อ โดยค่าเริ่มต้นเมื่อสร้างการเชื่อมต่อ TCP และหมายเลขลำดับจะถูกส่งไปยังผู้รับผ่านแพ็กเก็ต SYN ในระหว่างการส่งข้อมูล ผู้ส่งจะเพิ่มหมายเลขลำดับตามปริมาณข้อมูลที่ส่ง ผู้รับจะตัดสินลำดับของข้อมูลตามลำดับหมายเลขที่ได้รับ หากพบว่าข้อมูลไม่อยู่ในลำดับ ผู้รับจะเรียงลำดับข้อมูลใหม่เพื่อให้แน่ใจว่าข้อมูลอยู่ในลำดับที่ถูกต้อง
หมายเลขคำยืนยัน:นี่คือหมายเลขลำดับที่ใช้ใน TCP เพื่อยืนยันการรับข้อมูล โดยระบุหมายเลขลำดับของข้อมูลถัดไปที่ผู้ส่งคาดว่าจะได้รับ ในการเชื่อมต่อ TCP ผู้รับจะกำหนดว่าข้อมูลใดได้รับสำเร็จโดยอ้างอิงจากหมายเลขลำดับของเซกเมนต์แพ็กเก็ตข้อมูลที่ได้รับ เมื่อผู้รับได้รับข้อมูลสำเร็จแล้ว ผู้รับจะส่งแพ็กเก็ต ACK ไปยังผู้ส่ง ซึ่งมีหมายเลขการตอบรับ หลังจากได้รับแพ็กเก็ต ACK ผู้ส่งสามารถยืนยันได้ว่าข้อมูลได้รับแล้วก่อนที่จะยืนยันว่าได้รับหมายเลขตอบกลับสำเร็จ
บิตควบคุมของเซ็กเมนต์ TCP ประกอบด้วยสิ่งต่อไปนี้:
บิต ACKเมื่อบิตนี้เป็น 1 แสดงว่าฟิลด์การตอบกลับการยืนยันนั้นถูกต้อง TCP ระบุว่าต้องตั้งค่าบิตนี้เป็น 1 ยกเว้นแพ็กเก็ต SYN เมื่อสร้างการเชื่อมต่อครั้งแรก
บิต RST:เมื่อบิตนี้เป็น 1 แสดงว่าเกิดข้อยกเว้นในการเชื่อมต่อ TCP และจะต้องบังคับให้ตัดการเชื่อมต่อ
บิต SYN:เมื่อบิตนี้ตั้งค่าเป็น 1 หมายความว่าการเชื่อมต่อจะต้องได้รับการสร้าง และค่าเริ่มต้นของหมายเลขลำดับจะถูกตั้งค่าในฟิลด์หมายเลขลำดับ
บิต FIN:เมื่อบิตนี้เป็น 1 หมายความว่าจะไม่มีการส่งข้อมูลอีกต่อไปในอนาคตและต้องการการเชื่อมต่อ
ฟังก์ชันและคุณลักษณะต่างๆ ของ TCP จะถูกรวบรวมไว้ในโครงสร้างของเซกเมนต์แพ็กเก็ต TCP
UDP คืออะไร? (Mylinking'sแตะเครือข่ายและนายหน้าแพ็กเก็ตเครือข่ายสามารถประมวลผลทั้งแพ็คเก็ต TCP หรือ UDP ได้)
User Datagram Protocol (UDP) เป็นโปรโตคอลการสื่อสารที่ไม่มีการเชื่อมต่อ เมื่อเปรียบเทียบกับ TCP แล้ว UDP ไม่มีกลไกการควบคุมที่ซับซ้อน โปรโตคอล UDP ช่วยให้แอปพลิเคชันส่งแพ็กเก็ต IP ที่ห่อหุ้มโดยตรงโดยไม่ต้องสร้างการเชื่อมต่อ เมื่อนักพัฒนาเลือกใช้ UDP แทน TCP แอปพลิเคชันจะสื่อสารกับ IP โดยตรง
ชื่อเต็มของโปรโตคอล UDP คือ User Datagram Protocol และส่วนหัวมีเพียง 8 ไบต์ (64 บิต) ซึ่งถือว่าสั้นมาก รูปแบบของส่วนหัว UDP เป็นดังนี้:
ท่าเรือปลายทางและต้นทาง:วัตถุประสงค์หลักคือการระบุว่า UDP ควรจะส่งแพ็คเก็ตไปที่กระบวนการใด
ขนาดแพ็คเกจ:ฟิลด์ขนาดแพ็กเก็ตจะถือขนาดของส่วนหัว UDP บวกกับขนาดของข้อมูล
ผลรวมตรวจสอบ:ออกแบบมาเพื่อให้แน่ใจถึงการส่งมอบส่วนหัวและข้อมูล UDP ที่เชื่อถือได้ บทบาทของ checksum คือการตรวจจับว่ามีข้อผิดพลาดหรือความเสียหายเกิดขึ้นระหว่างการส่งแพ็กเก็ต UDP หรือไม่ เพื่อให้แน่ใจว่าข้อมูลมีความสมบูรณ์
ความแตกต่างระหว่าง TCP และ UDP ใน Mylinkingแตะเครือข่ายและนายหน้าแพ็กเก็ตเครือข่ายสามารถประมวลผลทั้งแพ็คเก็ต TCP หรือ UDP ได้
TCP และ UDP มีความแตกต่างในด้านต่อไปนี้:
การเชื่อมต่อTCP เป็นโปรโตคอลการขนส่งแบบเชื่อมต่อซึ่งต้องสร้างการเชื่อมต่อก่อนจึงจะถ่ายโอนข้อมูลได้ ในทางกลับกัน UDP ไม่ต้องการการเชื่อมต่อและสามารถถ่ายโอนข้อมูลได้ทันที
วัตถุบริการ:TCP เป็นบริการแบบสองจุดต่อหนึ่ง นั่นคือ การเชื่อมต่อจะมีจุดสิ้นสุดเพียงสองจุดในการสื่อสารระหว่างกัน อย่างไรก็ตาม UDP รองรับการสื่อสารแบบโต้ตอบแบบหนึ่งต่อหนึ่ง หนึ่งต่อหลาย และหลายต่อหลาย ซึ่งสามารถสื่อสารกับโฮสต์หลายเครื่องพร้อมกันได้
ความน่าเชื่อถือ:TCP ให้บริการส่งมอบข้อมูลอย่างน่าเชื่อถือ โดยรับรองว่าข้อมูลไม่มีข้อผิดพลาด ไม่มีการสูญหาย ไม่ซ้ำซ้อน และมาถึงเมื่อต้องการ ในทางกลับกัน UDP จะพยายามอย่างเต็มที่และไม่รับประกันการส่งมอบที่เชื่อถือได้ UDP อาจประสบปัญหาการสูญหายของข้อมูลและสถานการณ์อื่นๆ ระหว่างการส่งข้อมูล
การควบคุมความแออัด,การควบคุมการไหล:TCP มีกลไกควบคุมความแออัดและการควบคุมการไหล ซึ่งสามารถปรับอัตราการส่งข้อมูลตามเงื่อนไขเครือข่ายเพื่อให้มั่นใจถึงความปลอดภัยและเสถียรภาพของการส่งข้อมูล UDP ไม่มีกลไกควบคุมความแออัดและการควบคุมการไหล แม้ว่าเครือข่ายจะแออัดมากก็จะไม่ปรับอัตราการส่ง UDP
โอเวอร์เฮดส่วนหัวTCP มีความยาวส่วนหัวยาว โดยทั่วไปคือ 20 ไบต์ ซึ่งจะเพิ่มขึ้นเมื่อใช้ฟิลด์ตัวเลือก ในทางกลับกัน UDP มีส่วนหัวคงที่ที่ 8 ไบต์เท่านั้น ดังนั้น UDP จึงมีค่าใช้จ่ายส่วนหัวที่ต่ำกว่า
สถานการณ์การใช้งาน TCP และ UDP:
TCP และ UDP เป็นโปรโตคอลชั้นการขนส่งสองแบบที่แตกต่างกัน และมีความแตกต่างกันอยู่บ้างในสถานการณ์การใช้งาน
เนื่องจาก TCP เป็นโปรโตคอลที่เน้นการเชื่อมต่อ จึงมักใช้ในสถานการณ์ที่จำเป็นต้องมีการส่งมอบข้อมูลที่เชื่อถือได้ กรณีการใช้งานทั่วไป ได้แก่:
การถ่ายโอนไฟล์ FTP:TCP สามารถรับประกันว่าไฟล์จะไม่สูญหายหรือเสียหายระหว่างการถ่ายโอน
เอชทีทีพี/เอชทีทีพีเอส:TCP รับประกันความสมบูรณ์และความถูกต้องของเนื้อหาเว็บไซต์
เนื่องจาก UDP เป็นโปรโตคอลที่ไม่มีการเชื่อมต่อ จึงไม่รับประกันความน่าเชื่อถือ แต่มีคุณสมบัติด้านประสิทธิภาพและแบบเรียลไทม์ UDP เหมาะสำหรับสถานการณ์ต่อไปนี้:
ทราฟิกแพ็กเก็ตต่ำ เช่น DNS (Domain Name System):การสอบถาม DNS มักจะเป็นแพ็คเก็ตสั้นๆ และ UDP สามารถดำเนินการให้เสร็จได้เร็วกว่า
การสื่อสารแบบมัลติมีเดีย เช่น วิดีโอและเสียง:สำหรับการส่งข้อมูลมัลติมีเดียที่มีความต้องการแบบเรียลไทม์สูง UDP สามารถให้ความหน่วงเวลาที่ต่ำกว่าเพื่อให้แน่ใจว่าข้อมูลจะถูกส่งได้อย่างทันท่วงที
การสื่อสารแบบกระจายเสียง:UDP รองรับการสื่อสารแบบหนึ่งต่อหลายและหลายต่อหลาย และสามารถนำไปใช้ในการส่งข้อความแบบบรอดคาสต์ได้
สรุป
วันนี้เราได้เรียนรู้เกี่ยวกับ TCP TCP เป็นโปรโตคอลการสื่อสารชั้นการขนส่งที่เน้นการเชื่อมต่อและเชื่อถือได้โดยใช้สตรีมไบต์ โปรโตคอลนี้รับรองการส่งที่เชื่อถือได้และการรับข้อมูลอย่างเป็นระเบียบโดยการสร้างการเชื่อมต่อ การจับมือ และการตอบรับ โปรโตคอล TCP ใช้พอร์ตเพื่อดำเนินการสื่อสารระหว่างกระบวนการ และให้บริการการสื่อสารโดยตรงสำหรับกระบวนการแอปพลิเคชันที่ทำงานบนโฮสต์ที่แตกต่างกัน การเชื่อมต่อ TCP เป็นแบบฟูลดูเพล็กซ์ ช่วยให้สามารถถ่ายโอนข้อมูลแบบสองทิศทางพร้อมกันได้ ในทางตรงกันข้าม UDP เป็นโปรโตคอลการสื่อสารที่เน้นการไม่มีการเชื่อมต่อ ซึ่งไม่รับประกันความน่าเชื่อถือ และเหมาะสำหรับสถานการณ์บางอย่างที่มีความต้องการแบบเรียลไทม์สูง TCP และ UDP แตกต่างกันในโหมดการเชื่อมต่อ อ็อบเจ็กต์บริการ ความน่าเชื่อถือ การควบคุมความแออัด การควบคุมการไหล และด้านอื่นๆ และสถานการณ์การใช้งานของโปรโตคอลทั้งสองนี้ก็แตกต่างกันด้วย
เวลาโพสต์: 03-12-2024