ฉันสามารถสร้างเครือข่ายอีเธอร์เน็ตโดยไม่ใช้ IP ได้ไหม


14

ตามที่ฉันเข้าใจจากแบบจำลอง ISO-OSI ที่อยู่ MAC ทำงานในชั้นที่แตกต่างจากที่อยู่ IP ชัดเจนสำหรับฉัน

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


คำถามของฉันมีดังต่อไปนี้:

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

ตามคำนิยามเครือข่าย Ethernet เป็นเครือข่ายที่อุปกรณ์ไม่มีที่อยู่ IP เครือข่าย TCP / IP อย่างที่คุณเห็นเป็นอีกสิ่งหนึ่งและ IP ไม่สนใจว่าจะทำงานบน IEEE 802.3, 802.11 หรือ 802.5
miken32

คำตอบ:


5

Ethernet สามารถใช้ที่อยู่ IP แทน data-link-layer address ของตัวเองได้หรือไม่? ไม่อย่างแน่นอนถ้ามันต้องการที่จะไม่เชื่อเรื่องพระเจ้าเกี่ยวกับสิ่งที่มันใช้โปรโตคอลชั้น 3

เราออกแบบโปรโตคอลเครือข่ายในเลเยอร์เพื่อให้เราสามารถผสมและจับคู่เลเยอร์

เดิมที Ethernet ได้รับการพัฒนาโดย Bob Metcalfe et alia ที่ Xerox PARC เพื่อเป็นผู้ไม่เชื่อเรื่องพระเจ้าในเครือข่ายเพราะเป้าหมายของพวกเขาไม่ได้เป็นเพียงการเข้าถึง TCP / IP แต่ยังสำหรับเครือข่ายโปรโตคอล XNS ของ Xerox

DEC (Digital Equipment Corporation) กลายเป็นผู้เริ่มต้นอีกกลุ่มใช้เป็นหลักสำหรับชุดโปรโตคอล / ชุด DECnet

ในช่วงปลายยุค 80 และต้นยุค 90 มีการแข่งขันชุดโปรโตคอล LAN จำนวนมาก (ทั้งหมดเป็นอิสระจาก TCP / IP) ที่ทำงานบน LAN Ethernet ขององค์กร นอกจาก XNS และ DECnet แล้วยังมี AppleTalk ของ Apple (EtherTalk), IPX ของ Novell, Banyan VINES, NetBEUI, DLC / LLC, IBM SNA, OSI / ISO และอื่น ๆ ที่ฉันลืมไป

ใช่คุณสามารถใช้อีเธอร์เน็ตโดยไม่มี IP เครือข่ายองค์กรจำนวนมากทำในยุค 80 และ 90

เนื่องจากอีเทอร์เน็ตถูกออกแบบมาเพื่อไม่สนใจว่าโพรโทคอล Layer-3 (Network Layer) กำลังทำงานอยู่มันจึงค่อนข้างง่ายสำหรับ LAN ขององค์กรเหล่านั้นที่จะสนับสนุนการผสมผสานของอุปกรณ์ของผู้ค้าต่างๆและมันค่อนข้างง่ายสำหรับ LAN เหล่านั้นเพื่อเพิ่ม IPv4 การสนับสนุนเมื่ออินเทอร์เน็ตเริ่มขึ้นในช่วงกลางถึงปลายยุค 90 และมันค่อนข้างง่ายสำหรับเราที่จะเพิ่มการสนับสนุน IPv6 ในตอนนี้


1
ขอบคุณที่ให้คำตอบที่คุณใส่ในบริบท! ฉันหวังว่าคุณจะได้ขยายคำถามไปอีกเล็กน้อยในส่วนที่สองด้วย .. มันเป็นไปได้ไหมที่จะใช้อีเธอร์เน็ตที่ทำงานบน LAN โดยไม่ต้องใช้โปรโตคอลเลเยอร์เครือข่ายใด ๆ หากฉันตั้งค่าการเชื่อมต่อ Ethernet ข้ามเครือข่ายไปยังโฮสต์อื่นเหตุใดฉันจึงต้องใช้ IP เพื่อสื่อสารกับโฮสต์นั้น เป็นไปได้ไหมที่จะใช้TCP ผ่าน MACแทน TCP ผ่าน IP
jj_

4

เนื่องจากอีเธอร์เน็ตใช้ที่อยู่ MAC เพื่อการสื่อสารฉันสามารถสร้างเครือข่ายอีเทอร์เน็ตที่อุปกรณ์จะไม่มีที่อยู่ IP หรือเพียงแค่เป็นที่อยู่ MAC หรือไม่

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

โดยทั่วไปที่อยู่ MAC ในเครือข่ายของคุณจะไม่เป็นไปตามรูปแบบใด ๆ พวกเขาถูกเผาในฮาร์ดแวร์โดยผู้ผลิต พวกมันยาวและใหญ่ ของฉันตอนนี้คือ C8-60-00-CA-4B-9A คอมพิวเตอร์ถัดจากฉันคือ 00-40-F4-48-1B-88

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

นี่เป็นเรื่องที่ยุ่งยากมากดังนั้นคุณอาจจะต้องหาวิธีที่เครื่องในเครือข่ายค้นพบที่อยู่ MAC ของผู้อื่นโดยอัตโนมัติโดยใช้แพ็กเก็ตออกอากาศ จากนั้นคุณจะให้วิธีการระบุตัวตนของพวกเขาด้วยที่อยู่ที่มีความหมายบางส่วนดังนั้นคุณจะต้องพิมพ์คำสั่งเช่น "telnet C8-60-00-CA-4B-9A"

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

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

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

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

เพื่อให้ใช้งานได้จริงต่อไปคุณจะต้องแฮ็คโค้ดในสแต็กเครือข่ายของคุณเพื่อใช้ระบบนี้ โดยทั่วไปคุณจะทำทุกสิ่งที่เกี่ยวข้องกับ ARP (วิธีที่ IP ใช้ในการแปลที่อยู่ IP เป็นที่อยู่ MAC) คุณจะฉีกส่วนที่สร้าง / อ่านส่วนหัว IP แต่คุณจะแทนที่มันด้วยโค้ดง่าย ๆ ที่กำหนดให้แพ็กเก็ต IP ถูกส่งไปยังโฮสต์ที่ที่อยู่ wxyz ให้สร้างเฟรมอีเธอร์เน็ตด้วยที่อยู่ DEST ที่ตั้งค่าเป็น 00-00-wxyz

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

แล้วงานนี้จะซื้ออะไรให้คุณ

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

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

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

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

สำหรับแอพพลิเคชั่นที่มีความพิเศษมาก ๆ ฉันเคยทำงานในระบบเรียลไทม์ที่ใช้เฉพาะการออกอากาศแพ็คเก็ต UDP สำหรับการสื่อสารระหว่างโฮสต์ทั้งหมดด้วยเหตุผลเดียวที่หลีกเลี่ยงการมีลำดับ ARP เหล่านั้นที่เตะเข้ามาและเพิ่มความล่าช้าและกระวนกระวายใจโดยไม่คาดคิด ฉันยังเคยทำงานกับระบบฝังตัวที่ จำกัด ทรัพยากรที่ทำงานโดยการส่ง UDP payloads ในแพ็กเก็ต IP โดยตรง (ไม่มีส่วนหัวของ IP) เพราะมันบันทึกความซับซ้อนและหน่วยความจำทั้งหมดที่จำเป็นในการใช้ ARP และ netmask และการตรวจสอบพิเศษทั้งหมด


1

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

ฉันเดาว่าอีเทอร์เน็ตอาจใช้ที่อยู่สี่ไบต์เช่น IPv4 แทนที่อยู่หกไบต์ มันอาจจะดีที่พวกเขาไม่ได้ทำตามที่ตัวเลขในตอนนี้ฉันพนันได้แล้ว

เนื่องจากอีเธอร์เน็ตใช้ที่อยู่ MAC เพื่อการสื่อสารฉันสามารถสร้างเครือข่ายอีเทอร์เน็ตที่อุปกรณ์จะไม่มีที่อยู่ IP หรือเพียงแค่เป็นที่อยู่ MAC หรือไม่

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

คุณต้องการ IP layer เท่านั้นหากคุณวางแผนจะกำหนดเส้นทางโดยเฉพาะหากเครือข่ายอื่นอาจใช้เทคโนโลยี Layer 2 ที่แตกต่างจาก Ethernet เช่น Token Ring ซึ่งเป็นไปได้จริงเมื่อพัฒนาส่วนใหญ่แล้ว ใครจะรู้ว่าเทคโนโลยี Layer 2 อื่นอาจแพร่หลายในอนาคตถ้าเป็นเช่นนั้น IP จะเป็นอิสระจากมัน


0
> Couldn't Ethernet make use of IP addresses to send messages? I'm not
> saying it should, I'm just asking if it could have chosen to do so.

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

> As Ethernet uses MAC addresses for communication, could I create an
> Ethernet network where devices would not have an IP address, just a
> MAC address?

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

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

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


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

0

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

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

หากคุณต้องการสิ่งต่าง ๆ เช่นการส่งข้อความ 1: 1 คุณจะต้องใช้โปรโตคอลอื่นที่อยู่ด้านบนของเฟรมอีเธอร์เน็ตเพื่อจัดการการฟังทั้งหมดนี้สำหรับคุณ โพรโทคอล Point to Point (PPP) มักใช้สำหรับเรื่องนี้มากกว่าอีเธอร์เน็ตซึ่งเป็นที่รู้จักกันในชื่อ PPPoE PPPoE ให้คุณรับรองความถูกต้องและการเข้ารหัสทั้งความคิดที่ดีมากในเครือข่ายออกอากาศ

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


0

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

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

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

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

เป็นคำตอบสำหรับคำถามที่สองของคุณสถานการณ์แบบนี้มีอยู่ในเวลาที่ต่างกันบน Ethernet LAN ที่ใช้Dynamic Host Configuration Protocol (DHCP)สำหรับการจัดสรรที่อยู่ IP เมื่อโฮสต์ใหม่เชื่อมต่อกับ LAN จะไม่มีที่อยู่ IP ดังนั้นจึงส่งเฟรมอีเธอร์เน็ตที่ออกอากาศไปยังอุปกรณ์ทั้งหมดและรอการตอบกลับจากเซิร์ฟเวอร์ DHCP ณ จุดนี้เวลาลูกค้าไม่ทราบที่อยู่ MAC ของเซิร์ฟเวอร์ DHCP หรือที่อยู่ IP ของตนดังนั้นการถ่ายทอด เมื่อได้รับการร้องขอเซิร์ฟเวอร์จะทราบที่อยู่ MAC ของลูกค้าและเพื่อให้สามารถตอบกลับได้อย่างถูกต้อง

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