Computer >> คอมพิวเตอร์ >  >> ระบบเครือข่าย >> อินเทอร์เน็ต

บทช่วยสอนเกี่ยวกับเครือข่ายคอมพิวเตอร์ – วิธีที่แอปพลิเคชันเครือข่ายพูดคุยผ่านอินเทอร์เน็ต

แอปพลิเคชันเครือข่ายคือแอปพลิเคชันคอมพิวเตอร์ที่เข้าร่วมในเครือข่ายคอมพิวเตอร์ แอปพลิเคชั่นเหล่านี้พูดคุยกันโดยเสียบเข้ากับเครือข่าย

ตัวอย่างเช่น เมื่อคุณไปที่ google.com เบราว์เซอร์ของคุณจะทำหน้าที่เป็นแอปพลิเคชันเครือข่ายที่ใช้ประโยชน์จากอินเทอร์เน็ตเพื่อพูดคุยกับแอปพลิเคชันเครือข่ายที่ทำงานบนคอมพิวเตอร์ของ Google

โดยปกติกลไกของการสื่อสารนี้จะแยกออกจากนักพัฒนาแอปพลิเคชัน

บนพื้นผิว การสื่อสารนี้อาจดูเหมือนการสื่อสารระหว่างกระบวนการระหว่างสองแอปพลิเคชันที่ทำงานบนคอมพิวเตอร์เครื่องเดียวกัน แต่การสื่อสารเครือข่ายมีความท้าทายที่แตกต่างกัน

ตัวอย่างเช่น การสื่อสารอาจใช้เวลาชั่วนิรันดร์ในคอมพิวเตอร์ ใช้เวลา 0.1337 วินาที (2 * 3.14 * 6400 / 30000) เพื่อให้แสงเดินทางรอบโลก สมมติว่า CPU ขนาดเล็กที่ทำงานที่ 1GHz สามารถทำงานได้ 10^9 ops ใน 1 วินาที

สมมติว่าต้องใช้เวลาสองสามขั้นตอนสำหรับกระบวนการ (ทำงานบนเครื่องเดียวกัน) ในการสื่อสาร ประมาณ 10^-7 - 10^-8 วินาที นั่นแปลว่าการสื่อสารช้าลงประมาณ 1 ล้านเท่าเมื่อคอมพิวเตอร์นั่งอยู่อีกฟากหนึ่งของโลก!

บทความนี้จะพิจารณาว่าแอปพลิเคชันเครือข่ายพูดคุยกันอย่างไร โดยเฉพาะทางอินเทอร์เน็ต สำหรับภาพรวมระดับสูงของอินเทอร์เน็ต โปรดดูบทความนี้

ข้อมูลเบื้องต้นเกี่ยวกับเครือข่ายคอมพิวเตอร์

ความซับซ้อนเพิ่มเติมที่เกี่ยวข้องกับการสื่อสารเครือข่ายคือความหลากหลายของระบบปลายทาง (โทรศัพท์มือถือ แล็ปท็อป windows, mac) ความซับซ้อนนี้จัดการโดยการสรุปความแตกต่างและแนะนำชุดกฎที่เรียกว่าโปรโตคอล .

โปรโตคอลเป็นหน่วยการสร้างของการสื่อสารระหว่างแอปพลิเคชันเครือข่าย โปรโตคอลยอดนิยมบางตัว ได้แก่ HTTP, TCP, IP, SMTP เช่นเดียวกับที่ภาษามนุษย์ (เช่น ภาษาอังกฤษ) ช่วยให้ผู้คนหลากหลายสามารถสื่อสารได้อย่างมีความหมาย โปรโตคอลช่วยเติมเต็มช่องว่างที่คล้ายกันในการสื่อสารในเครือข่าย

การสื่อสารในเครือข่ายเป็นสิ่งที่ท้าทายเนื่องจากขนาดและความไม่แน่นอนที่มีอยู่ในเครือข่าย

ตัวอย่างเช่น ลิงก์สามารถอุดตันได้ ซึ่งส่งผลให้แพ็กเก็ตลดลง กลยุทธ์หนึ่งในการแก้ปัญหาที่ซับซ้อนคือการแบ่งปัญหาออกเป็นปัญหาย่อย แก้ปัญหาย่อย และรวมเข้าด้วยกันเพื่อแก้ปัญหาเดิม

Protocol Stack ใช้แนวคิดนี้เพื่อแก้ปัญหาการสื่อสารในเครือข่าย

บทช่วยสอนเกี่ยวกับเครือข่ายคอมพิวเตอร์ – วิธีที่แอปพลิเคชันเครือข่ายพูดคุยผ่านอินเทอร์เน็ต
โปรโตคอลสแต็ก

ลองนึกภาพว่าคุณกำลังสร้างเว็บไซต์เพื่อขายพิซซ่า เมื่อผู้ใช้โต้ตอบกับเว็บไซต์ของคุณ ส่วนหน้าจะต้องสื่อสารกับเซิร์ฟเวอร์ส่วนหลังของคุณ คงจะดีไม่น้อยถ้าคุณสามารถมุ่งเน้นไปที่การสร้างร้านพิซซ่าออนไลน์ของคุณโดยไม่ต้องกังวลว่าข้อมูลนั้นจะถูกส่งผ่านจากส่วนหน้าไปยังเซิร์ฟเวอร์ส่วนหลังทางอินเทอร์เน็ตได้อย่างไร

โปรโตคอลสแต็กดูแลการสื่อสารเครือข่ายสำหรับเรา แอปพลิเคชัน (ส่วนหน้า) ใช้ Application Layer เพื่อสื่อสารกับแอปพลิเคชันอื่น (แบ็กเอนด์)

เลเยอร์แอปพลิเคชันใช้ "บริการ" ที่จัดเตรียมโดย Transport Layer เพื่อส่งข้อมูลผ่านเครือข่าย Transport Layer ยังใช้บริการที่จัดหาให้โดย Network Layer เพื่อปฏิบัติตามข้อตกลงการให้บริการ

ด้วยวิธีนี้ เลเยอร์ที่สูงกว่าจะใช้บริการของชั้นล่างเพื่อสื่อสารกับแอปพลิเคชันอื่น ๆ ผ่านเครือข่าย ชั้นกายภาพประกอบขึ้นเป็นสายไฟที่นำสัญญาณไฟฟ้า

โดยพื้นฐานแล้ว สแต็กโปรโตคอลประกอบด้วยเลเยอร์ต่างๆ ซึ่งแต่ละเลเยอร์จะเน้นไปที่การแก้ปัญหาที่ใหญ่กว่า

โปรโตคอลอธิบายวิธีแก้ปัญหาสำหรับปัญหาย่อย ซึ่งทำให้เรามีชื่อโปรโตคอลสแต็ก โดยทั่วไป โปรโตคอลจะกำหนดกฎของการสื่อสารระหว่างสองหน่วยงาน เช่น

  • ประเภทของข้อความ เช่น ข้อความขอและข้อความตอบกลับ
  • รูปแบบของข้อความประเภทต่างๆ เช่น ช่องในข้อความ
  • ความหมายของเขตข้อมูล คือ ความหมายของข้อมูลในสาขาต่างๆ
  • กฎสำหรับกำหนดเวลาและวิธีส่งและตอบกลับข้อความ

มาเจาะลึกลงไปใน protocol stack โดยเริ่มจากด้านบน

ชั้นแอปพลิเคชัน

แอปพลิเคชันทางธุรกิจใช้ Application Layer เพื่อสื่อสารผ่านเครือข่าย ตัวอย่างเช่น การสั่งซื้อพิซซ่าออนไลน์ของคุณทำได้โดยใช้ Application Layer HTTP เป็นตัวเลือกหนึ่งในการโพสต์ข้อมูลบนเซิร์ฟเวอร์ส่วนหลังของคุณ

Application Layer Protocols กำหนดวิธีที่แอปพลิเคชันที่ทำงานบนระบบปลายทางต่างๆ ส่งข้อความถึงกัน นอกเหนือจากกฎของการสื่อสาร (โปรโตคอล) แอปพลิเคชันยังต้องการวิธีในการค้นหาซึ่งกันและกันนั่นคือเพื่อระบุถึงกันและกัน ที่อยู่ของใบสมัครถูกกำหนดโดย:

  1. ที่อยู่ IP:ป้ายตัวเลขที่กำหนดให้กับระบบปลายทาง
  2. หมายเลขพอร์ต:ตัวระบุที่ระบุกระบวนการรับในโฮสต์ปลายทาง หมายเลขพอร์ตมีความสำคัญต่อบัญชีสำหรับแอปพลิเคชันเครือข่ายหลายตัวที่ทำงานบนโฮสต์ ตัวอย่างเช่น สองแท็บในเว็บเบราว์เซอร์ทำหน้าที่เป็นสองกระบวนการที่แตกต่างกัน

ที่อยู่ของแอปพลิเคชันกำหนดข้อมูลประจำตัวบนเครือข่าย และโปรโตคอลกำหนดกฎสำหรับการสื่อสาร สิ่งเหล่านี้จะสร้างที่อยู่ซ็อกเก็ต (ประเภทโปรโตคอล, ที่อยู่ IP, หมายเลขพอร์ต)

ซ็อกเก็ต เป็นส่วนต่อประสานระหว่างชั้นแอปพลิเคชันและชั้นการขนส่ง มันทำหน้าที่เป็นจุดเริ่มต้นในเครือข่าย นั่นคือแอปพลิเคชันที่ส่งข้อความเข้าและรับข้อความเครือข่ายผ่านซ็อกเก็ต

โดยสรุป แอปพลิเคชันจะพูดคุยกันโดยใช้โปรโตคอล Application Layer Application Layer อาศัยบริการของ Transport Layer เพื่อส่งข้อมูลระหว่างระบบปลายทาง คู่ที่อยู่ IP และหมายเลขพอร์ตระบุแอปพลิเคชัน ข้อมูลไหลจากแอปพลิเคชันเข้าสู่เครือข่ายผ่านซ็อกเก็ต

มาดูตัวอย่างการใช้งานสองแอพพลิเคชั่นที่สื่อสารผ่านอินเทอร์เน็ตโดยใช้ HTTP

HTTP เป็นโปรโตคอลเลเยอร์แอปพลิเคชันยอดนิยม การสื่อสารอยู่ระหว่างเว็บเบราว์เซอร์ของฉันและแอปพลิเคชันเซิร์ฟเวอร์ (ilovecookies.com) เมื่อฉันป้อนที่อยู่นี้ในเว็บเบราว์เซอร์ของฉัน มันจะส่งข้อความคำขอ HTTP ไปยังเซิร์ฟเวอร์แอปพลิเคชัน

บทช่วยสอนเกี่ยวกับเครือข่ายคอมพิวเตอร์ – วิธีที่แอปพลิเคชันเครือข่ายพูดคุยผ่านอินเทอร์เน็ต
ข้อความคำขอ HTTP ที่เว็บเบราว์เซอร์ของฉันส่งไปยังเซิร์ฟเวอร์ ilovecookies.com

ข้อควรทราบบางประการเกี่ยวกับข้อความคำขอนี้:

  • ประเภทของคำขอคือ GET
  • โฮสต์ที่ส่งข้อความถึงคือ ilovecookies.com (ที่อยู่ IP เวอร์ชันที่มนุษย์อ่านได้ซึ่งเรียกว่าชื่อโฮสต์)
  • เครื่องต้นทางยอมรับรูปแบบการตอบสนอง ภาษา และอื่นๆ

โครงสร้างนี้เป็นส่วนหนึ่งของ HTTP ที่กำหนดกฎการสื่อสารระหว่างสองแอปพลิเคชัน เมื่อแอปพลิเคชันโฮสต์ได้รับข้อความนี้ แอปพลิเคชันจะตอบกลับด้วยข้อความตอบกลับ

บทช่วยสอนเกี่ยวกับเครือข่ายคอมพิวเตอร์ – วิธีที่แอปพลิเคชันเครือข่ายพูดคุยผ่านอินเทอร์เน็ต
ข้อความตอบกลับ HTTP ที่เว็บเบราว์เซอร์ของฉันได้รับจากเซิร์ฟเวอร์ ilovecookies.com ที่มี HTML สำหรับสร้าง หน้าเว็บ

เราสามารถสังเกตได้ว่าข้อความตอบกลับประกอบด้วยข้อมูลเฉพาะของโปรโตคอล เช่น รหัสสถานะ (200) ประเภทเนื้อหา และอื่นๆ และข้อมูล HTML (ตัดให้พอดี) คู่การตอบกลับคำขอถือเป็นการสื่อสารเครือข่ายระหว่างสองแอปพลิเคชันที่จัดวางหน้าเว็บ (ilovecookies.com) บนหน้าจอของฉันได้สำเร็จ

ชั้นการขนส่ง

ต่อไป ไปที่สแต็คโปรโตคอลลงหนึ่งระดับและทำความเข้าใจว่าเลเยอร์การขนส่งช่วยการสื่อสารในเครือข่ายได้อย่างไร

เลเยอร์การขนส่งให้ตรรกะ การสื่อสารระหว่างแอปพลิเคชันที่ทำงานบนโฮสต์ที่แตกต่างกัน:จากมุมมองของแอปพลิเคชัน ราวกับว่าทั้งสองโฮสต์เชื่อมต่อโดยตรง โปรดทราบว่าการสื่อสารที่ได้รับจากเลเยอร์การขนส่งนั้นสมเหตุสมผลและไม่ใช่ทางกายภาพ:ไม่มีการเชื่อมโยงโดยตรงหรือการต่อสายระหว่างโฮสต์ปลายทาง

เลเยอร์การขนส่งจะแปลงข้อความของแอปพลิเคชันเป็นชิ้นเล็ก ๆ ห่อหุ้มแต่ละชิ้นในข้อความการขนส่งที่มีส่วนหัว และส่งชิ้นนั้นไปยังเลเยอร์เครือข่าย

เหตุผลเบื้องหลังการแบ่งข้อมูลออกเป็นชิ้นๆ คือการใช้เครือข่ายอย่างมีประสิทธิภาพ อินเทอร์เน็ตกว้างใหญ่มากจนมีเส้นทางคู่ขนานหลายเส้นทางส่งข้อมูลระหว่างโฮสต์ปลายทางทั้งสอง

ตัวอย่างเช่น มีสองเส้นทางที่เป็นไปได้ในการเดินทางระหว่างนิวยอร์กและสแตมฟอร์ด อินเทอร์เน็ตเป็นแนวคิดที่รุนแรงเล็กน้อย

บทช่วยสอนเกี่ยวกับเครือข่ายคอมพิวเตอร์ – วิธีที่แอปพลิเคชันเครือข่ายพูดคุยผ่านอินเทอร์เน็ต
สองเส้นทางทางเลือกระหว่างนิวยอร์กและสแตมฟอร์ด

การจัดลำดับของแพ็กเก็ตแบบสัมพันธ์กันนั้นเป็นคำถามทั่วไปเกี่ยวกับการแบ่งกลุ่มและการใช้เครือข่ายอย่างมีประสิทธิภาพ:ชิ้นส่วนต่างๆ จะต้องถูกจัดวางในลำดับเดียวกันที่โฮสต์ที่รับ เลเยอร์การขนส่งในโฮสต์รับมีหน้าที่เย็บชิ้นส่วนกลับในลำดับที่เหมาะสม

เลเยอร์การขนส่งยังต้องการข้อมูลเพิ่มเติมที่เกี่ยวข้องกับหน้าที่ของมัน ตัวอย่างเช่น หมายเลขลำดับสัมพัทธ์จะถูกเพิ่มไปยังส่วนต่างๆ เพื่อต่อข้อความแอปพลิเคชันกลับ

อีกตัวอย่างหนึ่งของข้อมูลเฉพาะชั้นการขนส่งคือหมายเลขพอร์ต บนโฮสต์ที่รับ หมายเลขพอร์ตปลายทางมีประโยชน์ในการกำหนดเส้นทางข้อความไปยังแอปพลิเคชันที่ถูกต้อง

อินเทอร์เน็ตทำให้มีโปรโตคอลการขนส่งสองชั้น:

  • User Datagram Protocol (UDP)
  • Transmission Control Protocol (TCP)

โปรโตคอลทั้งสองมีความแตกต่างกันเล็กน้อยในบริการขนส่งที่มอบให้กับเลเยอร์แอปพลิเคชัน

TCP UDP
การถ่ายโอนข้อมูลที่เชื่อถือได้ การถ่ายโอนข้อมูลไม่น่าเชื่อถือ
ข้อมูลที่สูญหายหรือเสียหายสามารถกู้คืนได้โดยการส่งซ้ำ ไม่มีกลไกในการกู้คืนข้อมูลที่สูญหายหรือเสียหาย
เวลาแฝงที่สูงขึ้นด้วยต้นทุนของการสื่อสารที่เชื่อถือได้ เวลาแฝงที่ต่ำกว่าที่ต้นทุนของการสื่อสารที่ไม่น่าเชื่อถือ

ข้อกำหนดการบริการของแอปพลิเคชันจะควบคุมโปรโตคอลที่คุณเลือก ตัวอย่างเช่น ระบบการชำระเงินจะต้องมีการสื่อสารที่เชื่อถือได้ (TCP) ในขณะที่บริการสตรีมวิดีโออาจสูญเสียข้อมูลบางอย่างเพื่อการสตรีมที่เร็วขึ้น (UDP)

โดยสรุป ชั้นการขนส่งจะแบ่งข้อความของแอปพลิเคชันออกเป็นชิ้นๆ และห่อหุ้มไว้ในข้อความที่มีข้อมูลเฉพาะของชั้นการขนส่ง ชิ้นส่วนต่างๆ จะถูกใส่กลับในลำดับที่ถูกต้องบนระบบการรับเพื่อสร้างข้อความใหม่และส่งต่อไปยังแอปพลิเคชันที่เหมาะสมโดยใช้หมายเลขพอร์ต

มาดำเนินการสื่อสารตัวอย่าง HTTP ระหว่างเว็บเบราว์เซอร์และแอปพลิเคชันเซิร์ฟเวอร์ของฉันกัน

บทช่วยสอนเกี่ยวกับเครือข่ายคอมพิวเตอร์ – วิธีที่แอปพลิเคชันเครือข่ายพูดคุยผ่านอินเทอร์เน็ต
TCP packet ห่อหุ้มข้อความคำขอ HTTP และส่วนหัว

คุณสามารถสังเกตไบต์ที่ถอดรหัสได้ที่ด้านล่างขวาซึ่งแสดงถึงคำขอ HTTP GET ที่เบราว์เซอร์ของฉันสร้างขึ้นสำหรับแอปพลิเคชันเซิร์ฟเวอร์ เราเห็นคำขอ HTTP เป็นช่องข้อมูล TCP ในแพ็กเก็ตนี้

นอกจากนี้ แพ็กเก็ตยังเป็นอันดับแรกในลำดับที่สัมพันธ์กันโดยมีหมายเลขลำดับที่ 1 นอกจากนี้ยังมีหมายเลขพอร์ต (65012) ที่เชื่อมโยงกับแท็บบนเว็บเบราว์เซอร์ของฉันและหมายเลขพอร์ตปลายทาง (80) บนเซิร์ฟเวอร์แอปพลิเคชัน

บทช่วยสอนเกี่ยวกับเครือข่ายคอมพิวเตอร์ – วิธีที่แอปพลิเคชันเครือข่ายพูดคุยผ่านอินเทอร์เน็ต บทช่วยสอนเกี่ยวกับเครือข่ายคอมพิวเตอร์ – วิธีที่แอปพลิเคชันเครือข่ายพูดคุยผ่านอินเทอร์เน็ต
อันดับแรก (ลำดับที่ 1) และวินาที (หมายเลขลำดับ 1449 ที่เริ่มต้นเมื่อสิ้นสุดแพ็กเก็ต 1) แพ็กเก็ต TCP ที่สอดคล้องกับข้อความตอบกลับ HTTP ที่ได้รับจากเซิร์ฟเวอร์ ilovecookies.com

สองแพ็กเก็ตแรกจากการตอบสนอง HTTP (57 แพ็กเก็ต TCP) จะแสดงที่นี่ ที่ด้านล่างขวาของทั้งสองภาพ เราจะเห็นข้อมูลเฉพาะของ HTTP และ HTML บางส่วนที่สอดคล้องกับหน้าเว็บ ilovecookies.com

คุณยังสามารถดูข้อมูลเฉพาะของชั้นการขนส่ง เช่น หมายเลขพอร์ตและหมายเลขลำดับ โปรดสังเกตว่าหมายเลขพอร์ตต้นทางและปลายทางจะพลิกเมื่อเปรียบเทียบกับแพ็กเก็ตข้อความคำขอ

เลเยอร์เครือข่าย

ตรงกันข้ามกับเลเยอร์การขนส่ง เลเยอร์เครือข่ายให้การสื่อสารเชิงตรรกะระหว่างโฮสต์ปลายทางทั้งสอง สังเกตความแตกต่างเล็กน้อยระหว่างบริการขนส่งและเลเยอร์เครือข่าย

บทช่วยสอนเกี่ยวกับเครือข่ายคอมพิวเตอร์ – วิธีที่แอปพลิเคชันเครือข่ายพูดคุยผ่านอินเทอร์เน็ต บทช่วยสอนเกี่ยวกับเครือข่ายคอมพิวเตอร์ – วิธีที่แอปพลิเคชันเครือข่ายพูดคุยผ่านอินเทอร์เน็ต
ซ้าย:การสื่อสารแบบลอจิคัลที่จัดเตรียมโดยเลเยอร์การขนส่ง ขวา:การสื่อสารแบบลอจิคัลที่จัดเตรียมโดยเลเยอร์เครือข่าย

เลเยอร์เครือข่ายนำแพ็กเก็ตการขนส่งจากเลเยอร์การขนส่งและห่อหุ้มไว้ในแพ็กเก็ตเครือข่าย การห่อหุ้มมีประโยชน์ในการเพิ่มข้อมูลเฉพาะเกี่ยวกับการทำงานของโปรโตคอลเลเยอร์เครือข่าย

เลเยอร์เครือข่ายให้บริการอย่างดีที่สุด (ไม่รับประกันเวลา ลำดับที่สัมพันธ์กัน การจัดส่งในท้ายที่สุด) เพื่อย้ายข้อมูลระหว่างสองโฮสต์ บริการที่ดีที่สุดคือแรงจูงใจเบื้องหลัง TCP เนื่องจากโปรโตคอลเลเยอร์เครือข่ายไม่น่าเชื่อถือโดยเนื้อแท้ TCP จึงมีตรรกะเพิ่มเติมเพื่อให้แน่ใจว่าการถ่ายโอนข้อมูลมีความน่าเชื่อถือ

เลเยอร์เครือข่ายมีหน้าที่ในการย้ายแพ็กเก็ตจากโฮสต์ที่ส่งไปยังโฮสต์ที่รับ นอกจากโฮสต์ปลายทางแล้ว โปรโตคอลเลเยอร์เครือข่ายยังทำงานบนเราเตอร์ ส่วนหนึ่งของแกนเครือข่าย เราเตอร์เป็นอุปกรณ์เปลี่ยนแพ็กเก็ตที่มีหน้าที่ในการส่งต่อแพ็กเก็ต

บทช่วยสอนเกี่ยวกับเครือข่ายคอมพิวเตอร์ – วิธีที่แอปพลิเคชันเครือข่ายพูดคุยผ่านอินเทอร์เน็ต บทช่วยสอนเกี่ยวกับเครือข่ายคอมพิวเตอร์ – วิธีที่แอปพลิเคชันเครือข่ายพูดคุยผ่านอินเทอร์เน็ต
ซ้าย:อุปกรณ์เปลี่ยนแพ็กเก็ต ขวา:เครือข่ายขนาดเล็กที่ประกอบด้วย 3 โฮสต์สิ้นสุดและ 1 เราเตอร์ที่เชื่อมต่อ ด้วยกัน

สมมติว่า end host 1 ต้องการส่ง packet ไปยัง end host 2 End host 1 ส่ง packet ไปยังเราเตอร์ เราเตอร์จะดูข้อมูลในแพ็กเก็ตเครือข่ายและพบว่าจำเป็นต้องส่งต่อแพ็กเก็ตบนลิงก์ 2 ซึ่งเชื่อมต่อกับโฮสต์ปลายทาง 2

เราเตอร์ทุกตัวมีตารางการส่งต่อที่จัดเก็บไว้ใน RAM (สร้างขึ้นแบบไดนามิก) เพื่อแก้ไขลิงก์การส่งต่อที่ถูกต้องสำหรับแพ็กเก็ต ตัวอย่างเช่น ตารางเส้นทางสำหรับการตั้งค่าด้านบนจะมีลักษณะดังนี้:

ที่อยู่ ลิงค์
192.168.1.1 ลิงค์ที่ 1
168.134.1.1 ลิงค์ 2
172.158.1.2 ลิงค์ที่ 3

เราเตอร์ใช้ข้อมูล (ที่อยู่โฮสต์ปลายทาง) จากแพ็กเก็ตเครือข่ายไปยังดัชนี (XOR ระดับบิต) ในตารางนี้ คุณสามารถดูตารางเส้นทางบนคอมพิวเตอร์ของคุณโดยใช้คำสั่งต่อไปนี้:

Mac: netstat -nrf inet
Linux: netstat -nr
Windows: Get-NetRoute -AddressFamily IPv4

สังเกตรายการเฉพาะในตารางเส้นทางของคุณ ค่าเริ่มต้นหรือ 0.0.0.0 ที่เรียกว่าเกตเวย์เริ่มต้น แพ็กเก็ตจะถูกส่งไปยังเกตเวย์เริ่มต้นหากไม่มีรายการที่ตรงกับที่อยู่ปลายทาง

อินเทอร์เน็ตประกอบด้วยอุปกรณ์จำนวนมากที่ส่งต่อแพ็กเก็ตเพื่อเปิดใช้งานการสื่อสารเชิงตรรกะระหว่างโฮสต์ปลายทางทั้งสอง

ในขณะที่ทุกคนแชร์เราเตอร์และสายไฟที่ส่งข้อมูลบนอินเทอร์เน็ต เราเตอร์จะมีคิวที่เก็บแพ็กเก็ตขาเข้าเนื่องจากเราเตอร์ประมวลผล (/ส่งต่อ) แพ็กเก็ตขาออก ความไม่น่าเชื่อถือถูกนำมาใช้ในโปรโตคอลเลเยอร์เครือข่ายหากคิวเต็ม ซึ่งสามารถบรรจุได้เมื่อการรับส่งข้อมูลเพิ่มขึ้น

โปรโตคอลเครือข่ายอินเทอร์เน็ตเรียกว่า Internet Protocol (IP) องค์ประกอบหลักของเลเยอร์เครือข่ายอินเทอร์เน็ตคือ

  1. IP:กำหนดรูปแบบการกำหนดแอดเดรส (IPv4, IPv6), รูปแบบแพ็คเก็ต, แบบแผนการจัดการแพ็กเก็ต
  2. โปรโตคอลการกำหนดเส้นทาง:กำหนดเส้นทางที่แพ็กเก็ตใช้จากต้นทางไปยังโฮสต์
  3. ICMP:อำนวยความสะดวกในการรายงานข้อผิดพลาดในแพ็กเก็ตและตอบสนองต่อคำขอข้อมูลเลเยอร์เครือข่ายบางอย่าง

โดยสรุป เลเยอร์เครือข่ายมีการสื่อสารเชิงตรรกะระหว่างโฮสต์ปลายทางทั้งสอง โปรโตคอลเลเยอร์เครือข่ายทำงานบนโฮสต์ปลายทางและอุปกรณ์หลักของเครือข่าย เช่น เราเตอร์ เราเตอร์ส่งต่อแพ็กเก็ตเครือข่าย ซึ่งช่วยสร้างการสื่อสารเชิงตรรกะระหว่างโฮสต์ปลายทางทั้งสอง

มาต่อด้วยตัวอย่างการสื่อสารของเรากับ ilovecookies.com

เราเห็นว่าเว็บเบราว์เซอร์ของฉันสร้างข้อความคำขอ HTTP (โปรโตคอลเลเยอร์แอปพลิเคชัน) และส่งผ่านไปยังเลเยอร์การขนส่งซึ่งใช้โปรโตคอล TCP สำหรับการสื่อสารแบบ end-to-end ระหว่างแอปพลิเคชันเว็บเบราว์เซอร์ของฉันและแอปพลิเคชันเซิร์ฟเวอร์ (ilovecookies.com )

บทช่วยสอนเกี่ยวกับเครือข่ายคอมพิวเตอร์ – วิธีที่แอปพลิเคชันเครือข่ายพูดคุยผ่านอินเทอร์เน็ต
แพ็กเก็ต IP ห่อหุ้มแพ็กเก็ต TCP

เราจะเห็นว่าแพ็กเก็ตเครือข่ายห่อหุ้มแพ็กเก็ต TCP ซึ่งห่อหุ้มแพ็กเก็ตแอปพลิเคชัน ข้อความที่เน้นสีเขียวแสดงถึงเนื้อหาของแพ็กเก็ตเครือข่าย สีเหลืองของแพ็กเก็ตการขนส่ง และข้อความที่เหลือเริ่มต้นที่ GET คือแพ็กเก็ตแอปพลิเคชัน

ฟิลด์แพ็กเก็ตเครือข่ายเกี่ยวข้องกับการทำงาน ตัวอย่างเช่น ที่อยู่ต้นทางคือที่อยู่ IP ของเครื่องของฉัน และที่อยู่ปลายทางคือที่อยู่เซิร์ฟเวอร์ ilovecookies.com

การห่อหุ้มและข้อมูลเฉพาะของเลเยอร์ที่มีอยู่ในแพ็กเก็ตยังเกี่ยวข้องกับแนวคิดของการสื่อสารเชิงตรรกะระหว่างโฮสต์และแอปพลิเคชันที่ทำงานอยู่บนนั้น

ตัวอย่างเช่น แพ็กเก็ตเครือข่ายมีที่อยู่ IP ของเครื่องปลายทาง ในขณะที่แพ็กเก็ตการขนส่งจะมีเฉพาะหมายเลขพอร์ตเท่านั้น ชั้นการขนส่งอาศัยชั้นเครือข่ายเพื่อย้ายข้อมูลระหว่างเครื่องปลายทาง เมื่อข้อมูลไปถึงอุปกรณ์รับ เลเยอร์การขนส่งจะเข้าควบคุมและกำหนดเส้นทางแพ็กเก็ตไปยังแอปพลิเคชันที่ถูกต้องโดยใช้หมายเลขพอร์ตที่อยู่ในแพ็กเก็ตการขนส่ง

เมื่อเทียบกับเลเยอร์ที่เราเคยเห็นมา เลเยอร์ของลิงก์มีขอบเขตที่แคบกว่า โดยให้บริการเพื่อย้ายแพ็กเก็ตไปยังลิงก์แต่ละรายการในเส้นทางจากต้นทางถึงปลายทาง

ตัวอย่างเช่น ลิงก์คือเส้นประสีแดง (ดูภาพประกอบด้านบน) เลเยอร์ลิงก์ช่วยให้สามารถเคลื่อนย้ายแพ็กเก็ตเลเยอร์เครือข่ายจากโหนดไปยังโหนดบนลิงก์เดียวในเส้นทางได้

โปรโตคอลลิงค์เลเยอร์กำหนด:

  • รูปแบบของแพ็กเก็ตที่แลกเปลี่ยนระหว่างโหนดที่ส่วนท้ายของลิงก์
  • การดำเนินการกับแพ็กเก็ตโดยโหนดเหล่านั้น

อะแดปเตอร์เครือข่ายใช้โปรโตคอลเลเยอร์ลิงก์ อะแดปเตอร์เครือข่ายประกอบด้วยฮาร์ดแวร์ทางกายภาพที่ช่วยให้คอมพิวเตอร์สามารถเชื่อมต่อกับเครือข่ายและแลกเปลี่ยนข้อมูลได้

ลองเรียกใช้คำสั่งนี้เพื่อดูรายการอะแดปเตอร์เครือข่ายในคอมพิวเตอร์ของคุณ:

Mac: networksetup -listallhardwareports
Linux: lshw -class network -short
Windows: Get-NetAdapter -Name *

ในผลลัพธ์ คุณจะสังเกตเห็นว่าแต่ละอุปกรณ์มีที่อยู่ลิงค์เลเยอร์ที่เรียกว่าที่อยู่ MAC ROM ของอแดปเตอร์มีที่อยู่ MAC ที่กำหนดในขณะที่ผลิตซึ่งถือว่าเป็นแบบถาวร แต่ละโหนด (โฮสต์และเราเตอร์) มีที่อยู่ลิงค์เลเยอร์ตามเส้นทาง

ก่อนหน้านี้เราได้พูดถึงที่อยู่ IP ซึ่งเป็นตัวระบุสำหรับอุปกรณ์ด้วย สถานการณ์คล้ายกับการมีตัวระบุหลายตัว:ที่อยู่บ้านและหมายเลขประกันสังคม มีสาเหตุหลายประการที่ทำให้โหนดมีที่อยู่ MAC และที่อยู่ชั้นเครือข่าย

  • โปรโตคอลในเลเยอร์ต่างๆ ควรจะใช้แทนกันได้ ตัวอย่างเช่น IPX ไม่ใช้ที่อยู่เลเยอร์เครือข่าย
  • ที่อยู่ IP จะถูกเก็บไว้ใน RAM และกำหนดค่าใหม่ทุกครั้งที่มีการย้ายหรือเปิดอะแดปเตอร์ นั่นคือชั่วคราว
  • สมมติว่าโปรโตคอลละเว้นที่อยู่ MAC อะแด็ปเตอร์จะต้องส่งแต่ละแพ็กเก็ตที่ได้รับจากโปรโตคอลสแต็ก เลเยอร์เครือข่ายจะตรวจสอบการจับคู่ที่อยู่ IP แต่สิ่งนี้อาจไม่ได้ผลหากทำหลายครั้งเกินไป:การขัดจังหวะช่วยส่งผ่านแพ็กเก็ตที่อาจมีราคาแพง

โดยสรุป สำหรับเลเยอร์ต่างๆ ที่เป็นหน่วยการสร้างอิสระส่วนใหญ่ในสถาปัตยกรรมเครือข่าย หลายเลเยอร์จำเป็นต้องมีรูปแบบการกำหนดที่อยู่

สรุปโดยย่อ เราพบที่อยู่สามประเภทจนถึงขณะนี้:

  • ชื่อโฮสต์สำหรับเลเยอร์แอปพลิเคชัน (ilovecookies.com) สิ่งเหล่านี้จะถูกแปลงเป็นที่อยู่ IP ที่สอดคล้องกันโดยใช้ DNS
  • ที่อยู่ IP สำหรับเลเยอร์เครือข่าย
  • ที่อยู่ MAC สำหรับเลเยอร์ลิงก์

เช่นเดียวกับระบบชื่อโดเมน ซึ่งช่วยแก้ไขที่อยู่ IP จากชื่อโฮสต์ Address Resolution Protocol (ARP) มีประโยชน์ในการกำหนดที่อยู่ MAC (ปลายทาง) จากที่อยู่ IP

ARP สร้างตารางใน RAM ซึ่งมีการจับคู่ที่อยู่ IP กับที่อยู่ MAC โปรโตคอลมีข้อกำหนด (เช่น แพ็กเก็ตเฉพาะ) สำหรับการสร้างตารางนี้โดยอัตโนมัติ

เลเยอร์เครือข่ายส่งผ่านแพ็กเก็ตและที่อยู่ MAC (จากตาราง ARP) ของโหนดปลายทางไปยังเลเยอร์ลิงก์ link-layer ห่อหุ้มแพ็คเก็ตในแพ็คเก็ต link-layer และย้ายไปตามลิงค์ไปยังโหนดปลายทาง

บทช่วยสอนเกี่ยวกับเครือข่ายคอมพิวเตอร์ – วิธีที่แอปพลิเคชันเครือข่ายพูดคุยผ่านอินเทอร์เน็ต
เครือข่ายที่มีสองโฮสต์และหนึ่งเราเตอร์

สมมติว่าในการตั้งค่าด้านบนโฮสต์ 222.222.222.220 ต้องการส่งแพ็กเก็ตไปยังโฮสต์อื่น 222.222.222.222 เลเยอร์เครือข่ายใช้ ARP เพื่อแก้ไขที่อยู่ MAC ที่สอดคล้องกันเป็น 49-BD-D2-C7-56-A2 และส่งแพ็กเก็ตและที่อยู่ MAC ไปยังเลเยอร์ลิงก์ เลเยอร์ลิงก์จะย้ายแพ็กเก็ตไปวางเหนือลิงก์ระหว่างโฮสต์ทั้งสอง

ต่อไป ให้พิจารณาสถานการณ์ที่ซับซ้อนมากขึ้นซึ่งโฮสต์ต้องการส่งแพ็กเก็ตไปยังโฮสต์อื่นในเครือข่ายอื่น ตัวอย่างเช่น แพ็กเก็ตจากคอมพิวเตอร์ของฉันไปยัง ilovecookies.com เดินทางจากเครือข่ายในบ้านของฉันไปยังเครือข่ายอื่น

บทช่วยสอนเกี่ยวกับเครือข่ายคอมพิวเตอร์ – วิธีที่แอปพลิเคชันเครือข่ายพูดคุยผ่านอินเทอร์เน็ต
เราเตอร์เชื่อมต่อสองเครือข่ายย่อย เราเตอร์มีอแดปเตอร์สองตัวสำหรับเชื่อมโยงและสองที่อยู่ IP ซึ่งระบุได้ในแต่ละซับเน็ต

มีสองสิ่งที่ควรสังเกตเกี่ยวกับภาพนี้ อันดับแรก เราเตอร์มีที่อยู่ IP สองที่อยู่ เนื่องจากเราเตอร์มีส่วนร่วมในเครือข่ายที่แตกต่างกันสองเครือข่าย จึงจำเป็นต้องมีที่อยู่ IP สองแห่งเพื่อระบุในเครือข่ายที่เกี่ยวข้อง สำหรับรายละเอียดเพิ่มเติม โปรดดูที่นี่

ประการที่สอง ทั้งสองเครือข่ายแยกกันเรียกว่าเครือข่ายย่อย ซับเน็ตคือการจัดกลุ่มอุปกรณ์เครือข่ายแบบลอจิคัลที่ทำให้การจัดการอุปกรณ์เครือข่ายเข้าถึงได้ง่ายขึ้น

สมมติว่าในการตั้งค่านี้ โฮสต์ 222.222.222.222 ต้องการส่งแพ็กเก็ตไปยังโฮสต์ 111.111.111.111 ซึ่งเกี่ยวข้องกับการเดินทางข้ามเครือข่าย จะไม่ค้นหาโฮสต์ปลายทาง (111.111.111.111) ในเครือข่ายย่อย และจะส่งต่อแพ็กเก็ตไปยังเกตเวย์เริ่มต้น (เราเตอร์)

เลเยอร์เครือข่ายใช้ตาราง ARP เพื่อแก้ไขที่อยู่ MAC เป็น 88-B2-2F-54-1A-0F เราเตอร์ใช้ตารางเส้นทางเพื่อส่งแพ็กเก็ตไปยังลิงก์ที่เชื่อมต่อกับซับเน็ตอื่น อีกครั้ง ตาราง ARP ช่วยแก้ไขที่อยู่ MAC ของโฮสต์ปลายทาง และแพ็กเก็ตจะย้ายไปตามลิงก์

โดยสรุป ส่วนอะแดปเตอร์ของฮาร์ดแวร์คอมพิวเตอร์ของคุณใช้โปรโตคอลเลเยอร์ลิงก์ โปรโตคอลลิงค์เลเยอร์กำหนดรูปแบบการกำหนดที่อยู่ที่เรียกว่าที่อยู่ MAC และ ARP ใช้เพื่อจับคู่ที่อยู่ IP กับที่อยู่ MAC เลเยอร์ลิงก์จะห่อหุ้มแพ็กเก็ตเลเยอร์เครือข่ายและย้ายแพ็กเก็ตเหล่านั้นไปบนลิงก์

หนึ่งในโปรโตคอลเลเยอร์ลิงค์ยอดนิยมคืออีเธอร์เน็ต มาดูตัวอย่างของเรากัน (ilovecookies.com) เพื่อตรวจสอบการทำงานของโปรโตคอลอีเทอร์เน็ต

บทช่วยสอนเกี่ยวกับเครือข่ายคอมพิวเตอร์ – วิธีที่แอปพลิเคชันเครือข่ายพูดคุยผ่านอินเทอร์เน็ต
แพ็กเก็ตอีเทอร์เน็ตที่ห่อหุ้มแพ็กเก็ต IP

เราสามารถสังเกตได้ว่าแพ็กเก็ตอีเทอร์เน็ตประกอบด้วยที่อยู่ MAC ปลายทางและต้นทาง (ละเว้น) และห่อหุ้มแพ็กเก็ต IP

สรุป

มาสรุปสิ่งที่เราเห็นในบทความนี้โดยใช้ภาพด้านล่างกัน

บทช่วยสอนเกี่ยวกับเครือข่ายคอมพิวเตอร์ – วิธีที่แอปพลิเคชันเครือข่ายพูดคุยผ่านอินเทอร์เน็ต
สิ้นสุดการสื่อสารเครือข่ายระหว่างโฮสต์ A และโฮสต์ B

แอปพลิเคชันคอมพิวเตอร์ที่ทำงานบนสองระบบที่แตกต่างกัน (เรียกว่าโฮสต์) สื่อสารโดยใช้โปรโตคอล

โปรโตคอลเป็นกฎที่ควบคุมการสื่อสารระหว่างสองโฮสต์ สแต็คโปรโตคอลช่วยแก้ปัญหาย่อยหลายอย่างเพื่อแก้ปัญหาการสื่อสารเครือข่าย แต่ละเลเยอร์มุ่งเน้นไปที่การแก้ปัญหาย่อยโดยใช้บริการที่ชั้นล่างเสนอในลำดับชั้นนามธรรม

โปรโตคอลชั้นแอปพลิเคชันทำงานในระดับสูงสุดของนามธรรม แอปพลิเคชันสื่อสารโดยส่งข้อความที่เป็นไปตามกฎของโปรโตคอลแอปพลิเคชัน (เช่น HTTP)

DNS ใช้เพื่อจับคู่ชื่อโฮสต์ (www.ilovecookies.com) กับที่อยู่ IP ข้อความเหล่านี้จะถูกส่งผ่านอินเทอร์เฟซซ็อกเก็ตเพื่อส่งผ่านเครือข่ายโดยใช้เลเยอร์การขนส่ง

เลเยอร์การขนส่งเปิดเผยการสื่อสารเชิงตรรกะระหว่างสองแอปพลิเคชันที่ทำงานบนโฮสต์ที่ต่างกัน โดยจะแบ่งข้อความของแอปพลิเคชันออกเป็นชิ้นเล็กๆ และห่อหุ้มไว้ในแพ็คเก็ตที่มีข้อมูลเพิ่มเติม (ส่วนหัว)

ข้อความแอปพลิเคชันถูกสร้างขึ้นจากแพ็กเก็ตเหล่านี้และผลักผ่านอินเทอร์เฟซซ็อกเก็ตโดยใช้หมายเลขพอร์ตบนแพ็กเก็ต แพ็กเก็ตเหล่านี้ถูกส่งผ่านเครือข่ายโดยอาศัยเลเยอร์เครือข่าย

ถัดไป เลเยอร์เครือข่ายจะเข้าแทนที่ โดยให้การสื่อสารเชิงตรรกะระหว่างสองโฮสต์ นอกจากนี้ยังห่อหุ้มแพ็คเก็ตการขนส่งในแพ็กเก็ตเครือข่าย

อินเทอร์เน็ตประกอบด้วยอุปกรณ์สลับแพ็กเก็ตที่ส่งต่อแพ็กเก็ตเครือข่าย โดยใช้ตารางเส้นทางที่จัดเก็บไว้ใน RAM และสร้างแบบไดนามิกโดยใช้โปรโตคอลการกำหนดเส้นทาง เลเยอร์เครือข่ายอาศัยเลเยอร์ลิงก์เพื่อย้ายแพ็กเก็ต

Link-layer มีหน้าที่ในการย้ายแพ็กเก็ตข้ามแต่ละลิงค์ อุปกรณ์ฮาร์ดแวร์ที่เรียกว่าอะแด็ปเตอร์ ใช้โปรโตคอลเลเยอร์ลิงก์และมีที่อยู่ถาวรที่เชื่อมโยงอยู่ ซึ่งเรียกว่าที่อยู่ MAC ที่อยู่ MAC ทำหน้าที่เป็นตัวระบุสำหรับเลเยอร์นี้ Address Resolution Protocol (ARP) จับคู่ที่อยู่ IP กับที่อยู่ MAC

สุดท้าย ลิงค์เลเยอร์จะส่งแพ็กเก็ตไปยังฟิสิคัลเลเยอร์ ซึ่งประกอบเป็นสายที่ข้อมูลเดินทาง

ขอบคุณสำหรับการอ่าน! ฉันหวังว่าคุณจะได้เรียนรู้สิ่งใหม่ๆ เกี่ยวกับเครือข่ายคอมพิวเตอร์ในวันนี้

แหล่งที่มา

ระบบเครือข่ายคอมพิวเตอร์:วิธีจากบนลงล่าง รุ่นที่ 7 ระบบเครือข่ายคอมพิวเตอร์:วิธีจากบนลงล่าง รุ่นที่ 7 บทช่วยสอนเกี่ยวกับเครือข่ายคอมพิวเตอร์ – วิธีที่แอปพลิเคชันเครือข่ายพูดคุยผ่านอินเทอร์เน็ต James F. Kurose, University of Massachusetts, Amherst Keith RossPearson บทช่วยสอนเกี่ยวกับเครือข่ายคอมพิวเตอร์ – วิธีที่แอปพลิเคชันเครือข่ายพูดคุยผ่านอินเทอร์เน็ต Wireshark · เจาะลึก บทช่วยสอนเกี่ยวกับเครือข่ายคอมพิวเตอร์ – วิธีที่แอปพลิเคชันเครือข่ายพูดคุยผ่านอินเทอร์เน็ต บทช่วยสอนเกี่ยวกับเครือข่ายคอมพิวเตอร์ – วิธีที่แอปพลิเคชันเครือข่ายพูดคุยผ่านอินเทอร์เน็ต