แบบจำลอง OSI และความสัมพันธ์ของโปรโตคอลเครือข่าย


27

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

  • IS-IS ทำงานบนเลเยอร์ OSI ใด
  • HTML เป็นการนำเสนอหรือโปรโตคอลแอปพลิเคชันหรือไม่
  • VPN Tunnels เป็นเลเยอร์ 2 หรือ 3 หรือไม่

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

คำตอบ:


35

มีข้อเท็จจริงสำคัญสองประการเกี่ยวกับแบบจำลอง OSI ที่ต้องจดจำ:

  1. มันเป็นรูปแบบแนวคิด นั่นหมายถึงมันอธิบายกลุ่มฟังก์ชันเครือข่ายในอุดมคติที่เป็นนามธรรมและเป็นทฤษฎี มันไม่ได้อธิบายสิ่งที่คนอื่นสร้างขึ้นจริง (อย่างน้อยก็ไม่มีอะไรที่ใช้อยู่ในปัจจุบัน)

  2. มันไม่ได้เป็นรุ่นเดียว มีรุ่นอื่น ๆ ที่โดดเด่นที่สุดคือชุดโปรโตคอล TCP / IP (RFC-1122 และ RFC-1123) ซึ่งใกล้เคียงกับที่ใช้อยู่มาก

ประวัติเล็กน้อย: คุณคงเคยได้ยินเกี่ยวกับวันแรก ๆ ของการสร้างเครือข่ายแพ็คเก็ตรวมถึง ARPANET ซึ่งเป็นผู้บุกเบิกอินเทอร์เน็ต นอกเหนือจากความพยายามของกระทรวงกลาโหมสหรัฐในการสร้างโพรโทคอลเครือข่ายแล้วกลุ่มอื่น ๆ และ บริษัท ต่างๆก็มีส่วนเกี่ยวข้องเช่นกัน แต่ละกลุ่มมีการพัฒนาโปรโตคอลของตนเองในด้านการสลับแพ็คเก็ต IBM และ บริษัท โทรศัพท์กำลังพัฒนามาตรฐานของตนเอง ในฝรั่งเศสนักวิจัยกำลังทำโครงข่าย Cyclades ของตัวเอง

การทำงานกับแบบจำลอง OSI เริ่มขึ้นในปลายปี 1970 ส่วนใหญ่เป็นการตอบสนองต่ออิทธิพลที่เพิ่มขึ้นของ บริษัท ใหญ่ ๆ เช่น IBM, NCR, Burroughs, Honeywell (และอื่น ๆ ) และโปรโตคอลและฮาร์ดแวร์ที่เป็นกรรมสิทธิ์ของพวกเขา แนวคิดเบื้องหลังคือการสร้างมาตรฐานแบบเปิดที่จะให้การทำงานร่วมกันระหว่างผู้ผลิตที่แตกต่างกัน แต่เนื่องจากรูปแบบ ISO เป็นระดับสากลจึงมีผลประโยชน์ทางการเมืองวัฒนธรรมและทางเทคนิคที่แข่งขันกันมากมาย ใช้เวลากว่าหกปีกว่าจะได้ฉันทามติและเผยแพร่มาตรฐาน

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

ประเด็นก็คือโปรโตคอลทั้งหมดที่ใช้อยู่ในปัจจุบันคือชุด TCP / IP โปรโตคอลการกำหนดเส้นทางเช่น RIP, OSPF และ BGP; และโฮสต์โปรโตคอล OS เช่น Windows SMB และ Unix RPC ได้รับการพัฒนาโดยไม่ต้องคำนึงถึงรูปแบบ OSI บางครั้งพวกเขาก็มีความคล้ายคลึงกับมันบ้าง แต่มาตรฐาน OSI ไม่เคยปฏิบัติตามในระหว่างการพัฒนา ดังนั้นคนโง่จึงต้องพยายามปรับโปรโตคอลให้เหมาะสมกับ OSI พวกเขาไม่พอดี

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

สิ่งที่สำคัญที่สุดที่จะเข้าใจเกี่ยวกับโมเดล OSI (หรืออื่น ๆ ) คือ:

  • เราสามารถแบ่งโปรโตคอลเป็นเลเยอร์
  • เลเยอร์จัดเตรียมการห่อหุ้ม
  • เลเยอร์ให้สิ่งที่เป็นนามธรรม
  • เลเยอร์ decouple ฟังก์ชั่นจากคนอื่น ๆ

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

“ ฟังก์ชั่น” (พูดอย่างกว้าง ๆ ) แต่ละห่อหุ้มชั้น (s) ด้านบน เลเยอร์เครือข่ายห่อหุ้มเลเยอร์ด้านบน ชั้นเชื่อมโยงข้อมูลห่อหุ้มชั้นเครือข่ายและอื่น ๆ

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

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

โมเดล TCP / IP คือชุดโปรโตคอล TCP / IP ที่ใช้ (แปลกใจ!) มันมีแค่สี่เลเยอร์และทุกอย่างที่เกี่ยวกับการขนส่งเป็นเพียง“ แอปพลิเคชั่น” มันง่ายกว่าที่จะเข้าใจและป้องกันคำถามที่ไม่รู้จบเช่น“ เลเยอร์เซสชั่นนี้หรือเลเยอร์การนำเสนอ?” แต่มันก็เป็นเพียงแบบจำลอง ไม่พอดีกับมันเช่นโพรโทคอลทันเนล (GRE, MPLS, IPSec เพื่อตั้งชื่อไม่กี่)

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


1
ฉันสงสัยอยู่เสมอว่าทำไมเราถึงอ้างถึงรูปแบบ OSI เมื่อในความเป็นจริงทุกรูปแบบ TCP / IP เหมาะกับการเรียกเก็บเงินที่ดีกว่า
Ryan Foley

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

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

นั่นคือเหตุผลที่รุ่นเป็นเพียงรุ่น
Ron Trunk

1
joelonsoftware.com/2002/11/11/the-law-of-leaky-abstractionsเราสร้าง abstractions เพื่อซ่อนรายละเอียดที่น่าเกลียดของสิ่งที่ซ่อนอยู่ แต่รายละเอียดบางอย่างของสิ่งที่ซ่อนอยู่รั่วซึมและก่อให้เกิดปัญหา สิ่งหนึ่งที่รั่วไหลไปจนถึงด้านบนสุดของสแต็คคือระบบที่อยู่
ปีเตอร์กรีน

2

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


1

โปรโตคอลการกำหนดเส้นทาง IGP ทั้งหมด (โปรโตคอลเกตเวย์ภายใน) ทำงานที่เลเยอร์ 3 BGP ภายนอกทำงานที่เลเยอร์ 4 ในขณะที่ทำงานภายในที่เลเยอร์ 3

Physical Layer - ข้อตกลงกับอุปกรณ์เครือข่ายฮาร์ดแวร์เช่นแล็ปท็อปโทรศัพท์มือถือเดสก์ท็อป เลเยอร์ 1 เป็นที่รู้จักกันว่าเป็นโดเมนปะทะกันชั้น 1 PDU (หน่วยข้อมูลโปรโตคอลเป็นบิต)

Data / link layer - เลเยอร์นี้เกี่ยวข้องกับสวิตช์เลเยอร์ 2, โดเมนการออกอากาศ, VLANS, STP, VTP หน่วยข้อมูลโปรโตคอลของเลเยอร์นี้เรียกว่าเฟรม

Network Layer - นี่คือเมื่อเกิดการเราต์โปรโตคอลส่วนใหญ่จะทำงานในชั้นนี้ สิ่งนี้เรียกว่าเลเยอร์ IP ที่ซึ่ง VLANS สื่อสาร PDU สำหรับเลเยอร์นี้เรียกว่าแพ็กเก็ต

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

เซสชันเลเยอร์ - ชั้นเลเยอร์คือที่ที่แพ็กเก็ตถูกห่อหุ้มจากการถูกแยกออกจากเลเยอร์ 3 เลเยอร์นี้เกี่ยวข้องกับภาษาการเขียนโปรแกรมฝั่งเซิร์ฟเวอร์หลายภาษาที่คุณสามารถสร้างแอปพลิเคชันที่ใช้ซอฟต์แวร์และแปลงเป็น ->

เลเยอร์การนำเสนอ - เลเยอร์นี้เกี่ยวกับรหัสฝั่งไคลเอ็นต์ที่คุณเห็นบนเว็บเบราว์เซอร์ของคุณหรือเมื่อคุณคลิกขวาและดูซอร์สโค้ดเหล่านี้ส่วนใหญ่จะเป็นรหัส HTM / CSS / Javascript ที่ให้คุณดู ->

ชั้นแอปพลิเคชัน - นี่คือที่ GUI (ส่วนต่อประสานกราฟิกผู้ใช้) แปลรหัส HTML / CSS จากชั้น 6 เป็นชั้นนี้ สิ่งที่คุณเห็นบนเว็บเบราว์เซอร์ของคุณคือ GUI ปลายสุด ชั้น 5,6,7 PDU เรียกว่าข้อความ

ฉันหวังว่าสิ่งเหล่านี้จะตอบคำถามที่เกี่ยวข้องกับ OSI ทั้งหมด

IS-IS ทำงานบนเลเยอร์ OSI ใด - เลเยอร์ 3
HTML เป็นการนำเสนอหรือโพรโทคอลแอพพลิเคชันหรือไม่ - การนำเสนอ
VPN tunnels เป็นเลเยอร์ 2 หรือ 3 หรือไม่? -> L2TP เป็นเลเยอร์ 2 -> ช่องสัญญาณ VPN โดยปกติจะทำงานที่เลเยอร์ 3 เช่น IPSEC


1
นี่ไม่ตอบ OP; เขาไม่เคยถามสิ่งที่แต่ละชั้นทำเขาถามว่าใครควรเข้าใจเกี่ยวกับแนวคิดพื้นฐาน
Ryan Foley

1
ข้อมูลดีมาก แต่นี่เป็นไซต์ปัญหา / วิธีแก้ไข คำตอบของคุณดีมากหากคำถามคือ"เลเยอร์ต่าง ๆ ของแบบจำลอง OSI คืออะไรและแต่ละชนิดทำอะไรกัน" . คำถามเกี่ยวกับพื้นฐานที่สนับสนุนโมเดล OSI ไม่ใช่โมเดล OSI โดยตรง ข้อมูลเชิงลึกที่ยอดเยี่ยม แต่คำตอบที่ไม่ดีสำหรับคำถามนี้
Ryan Foley

5
คริสฉันขอขอบคุณคำตอบของคุณและคุณก็ถูกต้องแล้ว แต่ ISIS ทำงานบนไอพีนั่นทำให้เลเยอร์ 4 หรือไม่? BGP เป็นอย่างไร มันทำงานบน TCP มันเป็นชั้นที่ 5 หรือไม่ ประเด็นของฉันคือแม้ว่าคุณสามารถบีบโปรโตคอลลงในเลเยอร์ได้ แต่มันไม่พอดี หากคุณต้องดูข้อกำหนดคุณสมบัติเลเยอร์การนำเสนอ OSI ฉันไม่คิดว่า HTML จะมีคุณสมบัติเพียงพอ แม้แต่ OSI ก็ยอมรับว่าเลเยอร์ 2 นั้นกว้างเกินไปและพวกเขาต้องแบ่งมันออกเป็นสองชั้นย่อย
Ron Trunk

2
แบบจำลอง OSI เป็นเพียงแบบจำลองทางทฤษฎี แม้ว่าการกำหนดเส้นทางโปรโตคอล <ชื่อที่นี่> ใช้แพ็คเก็ต (L2 | L3) แต่ก็เป็นส่วนหนึ่งของ L7 เนื่องจากเป็นแอปพลิเคชันและต้องคำนวณตารางเส้นทางและอาจเป็นเลเยอร์เดียวกันในระหว่าง ไม่ใช่ทุกอย่างที่เป็นขาวดำ
mulaz

3
@Ron, ISIS ไม่ใช่โปรโตคอล IP ดั้งเดิม OSPF คือ (เพื่อเพิ่มความสับสนให้มากขึ้น :-))
John Jensen

1

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


1
คุณสามารถติดป้ายกำกับสิ่งต่าง ๆ ได้ตามที่เห็นสมควร แต่ HTTP ได้รับการพัฒนาโดยไม่คำนึงถึงรุ่น OSI และไม่สอดคล้องกับข้อกำหนด เช่นเดียวกับ VPNs - มาตรฐาน OSI ไม่เคยคาดคิดมาก่อน ดังนั้นความคล้ายคลึงใด ๆ ที่เกิดขึ้นโดยบังเอิญ
Ron Trunk

0

หนึ่งในสองสามสิ่งที่จริง ๆ แล้วมาจากแบบจำลอง OSI คือใบรับรอง X.509 และกลุ่มของ LDAP ขนาดใหญ่ที่มาจาก X.500 อีกสิ่งหนึ่งคือ X.400 สำหรับการส่งข้อความ MS Exchange มีสิ่งนี้อย่างน้อยใน 5.5 ไม่แน่ใจว่ามีรุ่นที่ใหม่กว่ามารวมอยู่ด้วยหรือไม่

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

การขุดลึกลงไปนั้นจะนำคุณไปสู่ความเจ็บปวดขององค์กรขนาดใหญ่ที่พยายามบังคับใช้มาตรฐานสิ่งที่น่ากลัวเช่น ASN.1 และ BER ... เหนือสิ่งอื่นใด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.