เหตุใด ICMP จึงถูกจัดประเภทเป็นเลเยอร์โปรโตคอล 3 [ปิด]


11

ICMP จัดเป็นโพรโทคอลเลเยอร์ 3 ในโมเดล OSI แต่เท่าที่ฉันสามารถบอกได้ว่ามันไม่ตรงกับคำจำกัดความของโปรโตคอลเลเยอร์เครือข่าย

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


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

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

1
มีชั้นมากเกินไปนะมี :)
NickW

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

7
เป็นเรื่องสำคัญที่คุณจะต้องตระหนักว่าอินเทอร์เน็ตไม่เหมาะกับการทำความสะอาดให้เข้ากับโมเดล OSI อันที่จริง RFCs (3439 2.4) พูดถึงว่าพวกเขาคิดว่าเลเยอร์เป็นอันตรายเมื่อคนพยายามเข้มงวดเกินไปเกี่ยวกับเรื่องนี้ โดยทั่วไปจำเป็นต้องใช้ ICMP สำหรับ IP ดังนั้นเราสามารถโต้แย้งได้ว่ามันเป็นส่วนหนึ่งของ IP ICMP นั้นเป็นคุณสมบัติการแจ้งเตือนข้อผิดพลาดของ IP TCP / UDP ใช้ IP สำหรับข้อความแสดงข้อผิดพลาด (ไม่สามารถเข้าถึงพอร์ต) PMTU ทำโดย ICMP ดังนั้น ICMP จึงลด TCP / UDP ลงอย่างแน่นอน คุณต้องการเพียงแค่ยอมรับว่าใน TCP / IP ไม่มีเส้นขอบแข็งระหว่างชั้น มันสำคัญแค่บางสิ่งที่ใช้ได้ผล
Zoredache

คำตอบ:


15

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

พิจารณาว่าคล้ายกับ ARP ซึ่งอาจถือว่าเป็น "ที่ด้านบน" ของเลเยอร์ 2 ในขณะที่ใช้โปรโตคอล Ethernet เพื่อส่งแพ็กเก็ตจริง ๆ

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

@ Robbie Mckennie

ICMP ชั้นใดเป็นของเป็นเรื่องของการอภิปรายที่รุนแรง ส่วนหัวของ ICMP นั้นอยู่ที่ชั้น 4 เช่นเดียวกับ TCP และ UDP ดังนั้นผู้คนให้เหตุผลว่ามันอยู่ในชั้นที่ 4 ส่วนอื่น ๆ ยืนยันว่า ICMP เป็นโปรโตคอลชั้นที่ 3 เนื่องจากช่วย IP และไม่มีแนวคิดของพอร์ต

สำหรับฉันการจำแนกประเภทของโปรโตคอลว่าเป็นของชั้นหนึ่งในแบบจำลอง OSI ขึ้นอยู่กับวิธีการทำงานของโปรโตคอล ตัวอย่าง:

BGP ใช้เพื่อกำหนดเส้นทางที่เลเยอร์ 3 แต่ตัว BGP นั้นดำเนินการโดย TCP (และแน่นอน IP)


ดังนั้นคุณกำลังบอกว่ามันถูกจัดเป็นโพรโทคอลเลเยอร์ 3 เนื่องจากวิธีการประมวลผลในสแต็กไม่ใช่เพราะมันทำอะไร?
Robbie Mckennie

3
ไม่มีก็ทำงานอยู่ที่ชั้น 3 สำหรับทุกอย่างมันไม่ก็อยู่ที่ชั้น 3 สิ่งที่สำคัญที่คุณควรถามตัวเองของคุณWhat is the "data unit of layer 4 protocol"?
cuonglm

ฉันไม่รู้ด้วยซ้ำว่าคำถามนั้นหมายถึงอะไร ฉันแค่คิดตามคำจำกัดความที่ฉันได้อ่านสำหรับเลเยอร์ต่าง ๆ บางทีความคิดของฉันว่าเลเยอร์แบบจำลอง
osi

1
Ops เพียงคำใบ้ data unit of layer 1 is bits, ,data unit of layer 2 is frames data unit of layer 3 is packetsเลเยอร์ 4 เกี่ยวกับอะไร?
cuonglm

เพื่อตอบ cuonglm: PDU ของชั้นที่ 4 เป็น "ส่วน"
lobi

6

ICMP (และ ICMPv6, IGMP, ฯลฯ ) ทั้งหมดจัดการการเชื่อมต่อ Network Layer พวกเขาไม่ได้ (โดยทั่วไป) ใช้โดยผู้ใช้ แต่โดยระบบปฏิบัติการ ด้วยเหตุผลดังกล่าวมันอยู่ในเลเยอร์ 3 (เครือข่าย) แม้ว่าจะใช้ IP ในการกำหนดที่อยู่และการกำหนดเส้นทาง (เส้นทาง)

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

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