ทุกสิ่งที่เชื่อมต่อกับอินเทอร์เน็ตใช้สแต็ก“ Application - TCP - IP - Hardware” เดียวกันเพื่อสื่อสาร?


15

ฉันไม่ได้เข้าใจอินเทอร์เน็ตเป็นพิเศษและเทคโนโลยี IoT ทำให้ฉันสับสนเป็นพิเศษ ผมอ่านนี้ Stanford กระดาษสีขาวเกี่ยวกับโครงสร้างอินเทอร์เน็ต ในไดอะแกรม 2 แสดงการเป็นตัวแทนของซอฟต์แวร์ "สแต็ค" ที่คอมพิวเตอร์ (PC) จะใช้ในการสร้างประมวลผลและส่งข้อความผ่านอินเทอร์เน็ตไปยังคอมพิวเตอร์เครื่องอื่น

  • คอมพิวเตอร์ทุกประเภทไม่ว่าจะเป็นสมาร์ทโฟน / ทีวี / เกมคอนโซล ฯลฯ ใช้รูปแบบนี้หรือไม่

  • ระบบปฏิบัติการมีความสำคัญหรือไม่?

  • (ในเรื่องนี้) มีความแตกต่างระหว่างอินเทอร์เน็ตเซลลูลาร์กับ Wifi / Ethernet หรือไม่?

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


ที่เกี่ยวข้องiot.stackexchange.com/questions/1119
Sean Houlihane

3
มันจะดีกว่าถ้าคุณถามคำถามเดียวต่อคำถาม - ซึ่งค่อนข้างยากสำหรับคำถามพื้นฐานเหล่านี้ หากคุณมีคำถามติดตามให้แน่ใจว่าได้ลองและทำให้พวกเขาเฉพาะเจาะจงมากขึ้น
Sean Houlihane

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

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

@SYS_V เมื่อฉันพูดว่า "อุปกรณ์มีแอปพลิเคชันเลเยอร์" ฉันหมายถึง "อุปกรณ์มีส่วนประกอบซอฟต์แวร์บางอย่างที่ใช้ TCP / IP ที่อธิบายว่าเป็นแอปพลิเคชันเลเยอร์"
user253751

คำตอบ:


26

มีความเข้าใจผิดที่อาจเกิดขึ้นหรือความเข้าใจผิดในคำถามที่จะกล่าวถึงในโพสต์นี้

  • ในไดอะแกรม 2 แสดงการเป็นตัวแทนของซอฟต์แวร์ "สแต็ค"ที่คอมพิวเตอร์ (PC) จะใช้ในการสร้างประมวลผลและส่งข้อความผ่านอินเทอร์เน็ตไปยังคอมพิวเตอร์เครื่องอื่น

  • คอมพิวเตอร์ทุกประเภทไม่ว่าจะเป็นสมาร์ทโฟน / ทีวี / เกมคอนโซล ฯลฯ ใช้รูปแบบนี้หรือไม่

  • (ในเรื่องนี้) มีความแตกต่างระหว่างอินเทอร์เน็ตเซลลูลาร์กับ Wifi / Ethernet หรือไม่?

  • สิ่งที่เกี่ยวกับอุปกรณ์ฟังก์ชั่นเดียวที่ไม่มีเลเยอร์ "แอปพลิเคชัน" - เช่นกล้องที่เชื่อมต่อกับเว็บไลท์สวิตช์หรือเทอร์โมสแตท

การมีความเข้าใจที่คลาดเคลื่อนเหล่านี้จำเป็นต้องมีการรวมคำอธิบายต่อไปนี้ (เพื่อจัดเตรียมบริบทสำหรับการสนทนาที่ตามมา):

  • อินเทอร์เน็ตคืออะไร
  • ชุดโปรโตคอล TCP / IP คืออะไร
  • แอปพลิเคชันคืออะไร

จากนั้นคำถามจะได้รับการแก้ไขโดยตรง

โปรดทราบว่าด้วยความสำคัญและความซับซ้อนหนังสือทั้งชุดได้ถูกเขียนลงในชุดโปรโตคอล TCP / IP คำนิยามและคำอธิบายที่นี่จะถูกวาดส่วนใหญ่มาจากวิกิพีเดีย, TCP / IP ภาพประกอบเล่ม 1 ฉบับที่สอง: โครงการวิจัยโดยสตีเวนส์และฤดูใบไม้ร่วงและของไอบีเอ็มสอน TCP / IP และภาพรวมทางเทคนิค

1. อินเทอร์เน็ต

อินเทอร์เน็ตเป็นเทคนิคWide Area Network (WAN)แต่วิธีที่เป็นประโยชน์มากขึ้นที่จะคิดว่ามันเป็นชนิดของ SUPERNETWORK (เครือข่ายของเครือข่าย) หรือรวมกันจำนวนมากที่แตกต่างกันระหว่างการเชื่อมต่อสุทธิผลงาน นี่คือรูปภาพของเส้นทางการส่งผ่านส่วนหนึ่งของอินเทอร์เน็ต:

การสร้างภาพเส้นทางเส้นทาง

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

สนุกอ่านวิธีการทำงานของอินเทอร์เน็ตที่สามารถพบได้ในบทความ ArsTechnica วิธีอินเทอร์เน็ตทำงาน: ใย Submarine, สมองในขวดและสาย

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

2. ชุด Internet Protocol

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

เป้าหมายหลายประการเป็นแนวทางในการสร้างสถาปัตยกรรมอินเทอร์เน็ต ใน [C88] คลาร์กเล่าว่าเป้าหมายหลักคือ "พัฒนาเทคนิคที่มีประสิทธิภาพสำหรับการใช้งานเครือข่ายเชื่อมต่อระหว่างกันที่มีอยู่แบบมัลติเพล็กซ์" สาระสำคัญของคำสั่งนี้คือสถาปัตยกรรมอินเทอร์เน็ตควรเชื่อมต่อเครือข่ายที่แตกต่างกันหลายอย่าง สามารถทำงานพร้อมกันบนเครือข่ายเชื่อมต่อที่เกิดขึ้น

จากInternet Protocol Suite (Wikipedia):

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

ชุดโปรโตคอล Internet ให้แบบ end-to-end การสื่อสารข้อมูลระบุว่าข้อมูลควรจะ packetized จ่าหน้าส่ง, ส่งและได้รับ ฟังก์ชั่นนี้แบ่งออกเป็นสี่เลเยอร์นามธรรมที่ใช้ในการเรียงลำดับโปรโตคอลที่เกี่ยวข้องทั้งหมดตามขอบเขตของเครือข่ายที่เกี่ยวข้อง

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

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

ชุดโปรโตคอล TCP / IP

3. การใช้งาน

จากแอพพลิเคชั่นซอฟต์แวร์ (Wikipedia):

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

แอพพลิเคชั่นซอฟต์แวร์

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

เมื่อแอปพลิเคชั่นส่งและรับข้อมูลผ่านอินเทอร์เน็ตมันจะต้องใช้การใช้ชุดโปรโตคอล TCP / IP ของระบบโฮสต์ จากเลเยอร์แอปพลิเคชัน (Wikipedia):

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

ชั้นแอปพลิเคชันของชุดโปรโตคอล TCP / IP ประกอบด้วยโปรโตคอลเช่น File Transfer Protocol (FTP), ระบบชื่อโดเมน (DNS) และอาจเป็นที่รู้จักกันดีที่สุด Hypertext Transfer Protocol (HTTP)

ตัวอย่างเช่นโปรโตคอลเลเยอร์ของแอปพลิเคชัน HTTP ระบุวิธีที่ข้อมูลถูกส่งระหว่าง 2 กระบวนการที่ทำงานบน (โดยทั่วไป) ระบบต่าง ๆ : แอปพลิเคชันไคลเอนต์, เว็บเบราว์เซอร์และแอปพลิเคชันเซิร์ฟเวอร์

การชี้แจงความเข้าใจผิดที่อาจเกิดขึ้น

  1. ในไดอะแกรม 2 แสดงการเป็นตัวแทนของซอฟต์แวร์ "สแต็ค"ที่คอมพิวเตอร์ (PC) จะใช้ในการสร้างประมวลผลและส่งข้อความผ่านอินเทอร์เน็ตไปยังคอมพิวเตอร์เครื่องอื่น

ชุดโปรโตคอล TCP / IP ไม่ใช่ซอฟต์แวร์สแต็ก จากTechnopedia :

สแตกซอฟต์แวร์คือกลุ่มของโปรแกรมที่ทำงานควบคู่เพื่อสร้างผลลัพธ์หรือบรรลุเป้าหมายร่วมกัน Software stack หมายถึงชุดของแอพพลิเคชั่นใด ๆ ที่ทำงานในลำดับเฉพาะและที่กำหนดไปสู่เป้าหมายทั่วไปหรือกลุ่มของยูทิลิตี้หรือแอปพลิเคชันประจำที่ทำงานเป็นชุด ไฟล์ที่ติดตั้งได้คำจำกัดความซอฟต์แวร์ของผลิตภัณฑ์และแพตช์สามารถรวมอยู่ในซอฟต์แวร์สแต็ก หนึ่งในซอฟต์แวร์สแต็กซ์ที่ได้รับความนิยมคือ LAMP (Linux, Apache, MYSQL, Perl หรือ PHP หรือ Python) WINS (Windows Server, Internet Explorer, .NET, SQL, SQL Server) เป็นซอฟต์แวร์สแต็คที่ได้รับความนิยมจาก Windows

ค่อนข้างเป็นโปรโตคอลสแต็กซึ่งมักจะใช้งานโดยเคอร์เนล (เช่นจากTechnopedia ):

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

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


  1. คอมพิวเตอร์ทุกประเภทไม่ว่าจะเป็นสมาร์ทโฟน / ทีวี / เกมคอนโซล ฯลฯ ใช้รูปแบบนี้หรือไม่

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

  • ใช้ชุดโปรโตคอล TCP / IP อย่างถูกต้องและ
  • โปรโตคอลที่เหมาะสมภายในชุดนี้จะต้องถูกนำมาใช้เพื่อให้บรรลุการสื่อสารระหว่างกระบวนการ

  1. (ในเรื่องนี้) มีความแตกต่างระหว่างอินเทอร์เน็ตเซลลูลาร์กับ Wifi / Ethernet หรือไม่?

การตีความคำถามนี้ของฉันคือ "อุปกรณ์มือถือเชื่อมต่อกับเครือข่าย GSM และวิธีการที่อุปกรณ์มือถือเชื่อมต่อกับเครือข่าย WiFi หรือไม่"

ความแตกต่างอยู่ที่เลเยอร์เครือข่าย

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

Shitty TCP / IP diagram

ชั้นต่ำสุดที่เรียกว่า "ฮาร์ดแวร์" ควรจะเรียกว่าชั้นเชื่อมโยง , การควบคุมการเข้าถึงสื่อ (MAC) ชั้นหรือชั้นเชื่อมต่อเครือข่าย

จาก "บทช่วยสอน TCP / IP และภาพรวมทางเทคนิค" ของ IBM หน้า 34:

เลเยอร์เครือข่ายอินเทอร์เฟซเรียกอีกอย่างว่าเลเยอร์ลิงก์หรือเลเยอร์ดาต้าลิงค์เป็นอินเตอร์เฟสไปยังฮาร์ดแวร์เครือข่ายจริง อินเทอร์เฟซนี้อาจมีหรือไม่มีการส่งที่เชื่อถือได้และอาจเป็นแพ็กเก็ตหรือสตรีม ในความเป็นจริง TCP / IP ไม่ได้ระบุโปรโตคอลใด ๆ ที่นี่ แต่สามารถใช้เกือบทุกอินเตอร์เฟสเครือข่ายที่มีอยู่ซึ่งแสดงให้เห็นถึงความยืดหยุ่นของเลเยอร์ IP ตัวอย่างคือ IEEE 802.2, X.25 (ซึ่งเชื่อถือได้ในตัวเอง), ATM, FDDI และแม้แต่ SNA

นี่เป็นภาพที่ถูกต้องและเหนือกว่า (จากคู่มือ TCP / IP ):

แผนภาพที่เหนือกว่าของสแต็ก TCP / IP

เหตุผลที่การอภิปรายของเลเยอร์อินเทอร์เฟซเครือข่ายนั้นมีความเกี่ยวข้องก็คือมันอยู่ที่ชั้นนี้ซึ่งมีความแตกต่างในวิธีที่อุปกรณ์มือถือ / มือถือเชื่อมต่อกับเครือข่าย GSM กับเครือข่าย WiFi

  • เมื่อเชื่อมต่อกับเครือข่าย GSM โปรโตคอลชั้นเชื่อมต่อเครือข่ายที่ใช้ในการจัดการการเชื่อมต่อระหว่างอุปกรณ์มือถือและสถานีตัวรับส่งสัญญาณพื้นฐาน (BTS) จะถูกระบุโดย3G

  • เมื่อเชื่อมต่อกับจุดเชื่อมต่อไร้สาย Wi-Fi (WAP) โปรโตคอลที่ใช้ระบุโดยมาตรฐาน IEEE 802.11


  1. สิ่งที่เกี่ยวกับอุปกรณ์ฟังก์ชั่นเดียวที่ไม่มีเลเยอร์ "แอปพลิเคชัน" - เช่นกล้องที่เชื่อมต่อกับเว็บสวิตช์ไฟหรืออุณหภูมิ

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

เลเยอร์เป็นแนวคิด พวกเขาไม่ได้อยู่ในระบบหรือบนแพลตฟอร์มฮาร์ดแวร์

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

ชุดโปรโตคอล TCP / IP และระบบฝังตัว ("IoT")

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

สถานการณ์ค่อนข้างแตกต่างเมื่อพูดถึงระบบฝังตัวที่หลากหลายซึ่งสื่อสารผ่าน TCP / IP นี่คือภาพประกอบของสิ่งนี้ (จากPostscapes ):

IoT และ TCP / IP 1

IoT และ TCP / IP 2

สำหรับข้อมูลเพิ่มเติมดูบทความเหล่านี้:

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

IoT มาตรฐานและโปรโตคอล

คู่มือเทคโนโลยี IoT


ในรายละเอียดในระดับนี้ด้าน netadmin ของฉันเศร้าที่ไม่มีคำเกี่ยวกับ TCP / IP หมายถึง TCP บน IP, TCP ไม่ได้ผูกกับ IP เลยมันถูกนำไปใช้กับเครือข่าย IPX ด้วย (แม้ว่าแม้ว่า sigle จะเป็น ซึ่งอยู่ใกล้กับพวกเขา 2 โปรโตคอลที่แตกต่างกันมาก)
Tensibai

1
@Tensibai TCP บน IPX จะไม่เหมือนกับ SPX (เช่นเวอร์ชันการส่งผ่านที่เชื่อถือได้และใช้พอร์ต) หรือไม่ - แต่นั่นเตือนฉันว่าการเรียกร้องที่สองโฮสต์ที่ต้องการสื่อสารผ่านอินเทอร์เน็ต (เช่นข้ามเครือข่ายที่แตกต่างกัน) ต้องใช้ TCP / IP ไม่เป็นความจริง: โฮสต์ A บนเน็ต 1 และโฮสต์ B บนเน็ต 3 อาจพูดได้ เช่น IPX / SPX แม้ว่าการเชื่อมต่อเน็ต 2 จะเป็น TCP / IP ที่บริสุทธิ์หากมีเกตเวย์อุโมงค์ในเน็ต 1 และ 3 ...
Hagen von Eitzen

2
@hagen nope, SPX นั้นเทียบเท่ากับ TCP แต่ไม่สามารถเชื่อมต่อกับระบบ TCP ได้ดังนั้นทำไม TCP over IPX จึงได้รับการพัฒนาเพื่อให้การสื่อสารแบบ TCP จบสำหรับระบบบน IP และ IPX กับเลเยอร์ 3 แบบง่ายๆ . และใช่อินเทอร์เน็ตขึ้นอยู่กับ IP, MPLS และโปรโตคอลการกำหนดเส้นทางส่วนใหญ่ (ฉันอาจลืมบางส่วน), TCP เล่นอะไรในการกำหนดเส้นทางโดยรวมก็แค่หมุนเวียนทั่วมัน ateotd
Tensibai

@Tensibai หากฉันได้ทำผิดหรือข้อผิดพลาดโปรดแจ้งให้เราทราบและฉันจะพยายามแก้ไขให้ดีที่สุด
julian

@SYS_V ไม่ใช่ข้อผิดพลาดจริง ๆ ทางลัดบางอันรบกวนฉันเล็กน้อย สมมติว่ามันใช้ได้ในมุมมองการสื่อสาร TCP :) มีข้อมูลที่จำเป็นทั้งหมดสำหรับคนที่เต็มใจจะขุดปัญหา ผมรู้สึกว่าคุณเป็นเล็ก ๆ น้อย ๆ สำหรับหยาบคาย OP ในวรรคแรกของคุณผมจะพยายามที่จะเสนอแก้ไขในวันพรุ่งนี้ (จากคอมพิวเตอร์) เพื่อความกังวลเรื่องของฉัน :)
Tensibai

12

คอมพิวเตอร์ทุกประเภทไม่ว่าจะเป็นสมาร์ทโฟน / ทีวี / เกมคอนโซล ฯลฯ ใช้รูปแบบนี้หรือไม่

สำหรับบางสิ่งที่จะแลกเปลี่ยนบนอินเทอร์เน็ตมันจะต้องผ่าน IP stack ที่ไหนสักแห่ง

ระบบปฏิบัติการมีความสำคัญหรือไม่?

โปรโตคอล IP ถูกกำหนดโดยRFC 791ดังนั้นระบบปฏิบัติการ / เฟิร์มแวร์จะต้องปฏิบัติตาม

(ในเรื่องนี้) มีความแตกต่างระหว่างอินเทอร์เน็ตเซลลูลาร์กับ Wifi / Ethernet หรือไม่?

ความแตกต่างเล็กน้อยที่นี่จะอยู่ที่สัญญาณวิทยุเลเยอร์ 1 (ทางกายภาพ) และสัญญาณไฟฟ้าบนสาย รายละเอียดเพิ่มเติมเกี่ยวกับรุ่นOpen Systems Interconnection (รุ่น OSI)หน้า wikipedia

พวกเขาทั้งหมดทำหน้าที่ขนย้ายเลเยอร์ 3 (เครือข่าย), IP ในกรณีที่นี่บนสื่อเฉพาะของพวกเขา

สิ่งที่เกี่ยวกับอุปกรณ์ฟังก์ชั่นเดียวที่ไม่มีเลเยอร์ "แอปพลิเคชัน" - เช่นกล้องที่เชื่อมต่อกับเว็บไลท์สวิตช์หรือเทอร์โมสแตท

Application Layer นั้นเกี่ยวข้องกับโปรโตคอลการสื่อสารที่เฉพาะเจาะจง (HTTP, SSH และอื่น ๆ ) มันไม่จำเป็นต้องเป็นแอปพลิเคชันเช่น Chrome หรือ Firefox
โดยปกติโปรโตคอลเหล่านั้นจะถูกนำไปใช้งานบนTCPบางตัวอยู่ด้านบนของ UDP เมื่อมีความประสงค์ที่จะไม่ปิดกั้นการรอการตอบรับหรือเมื่อได้รับแพ็คเก็ตที่ล้าสมัย มีคนอื่น ๆ เป็นชั้น 4 โปรโตคอล แต่มักจะสำหรับประเพณีที่เฉพาะเจาะจงเช่น ICMP pingสำหรับ TCP เป็นโปรโตคอลที่เลือกเมื่อคุณต้องการให้แน่ใจว่าข้อมูลมาถึงปลายทางแล้ว

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


3
อาจคุ้มค่าที่จะอธิบายว่า TCP-IP นั้นค่อนข้างธรรมดา 'ต้องมี' ในระบบปฏิบัติการใด ๆ (ตั้งแต่ mbed / arduino จนถึง MC Windows และ Linux)
Sean Houlihane

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

คำตอบ 1 และคำตอบ 2 ไม่ใช่คำตอบและคำตอบ 3 ถูกอธิบายโดยใช้ OSI Reference Model แทนชุดโปรโตคอล TCP / IP คำตอบในโพสต์นี้ไม่มีข้อผิดพลาดทางแนวคิดที่เกิดขึ้นในคำถาม
julian

2
@Sys_v ผมก็ไม่ได้ขึ้นที่จะเขียน Novell :)
Tensibai

5

แม้ว่าจะเป็นความจริงที่ว่าอุปกรณ์ที่เชื่อมต่ออินเทอร์เน็ตใด ๆ จะใช้ TCP / IP (หรือ UDP) เพื่อการสื่อสาร แต่เป็นระดับถัดไปในกองซ้อนที่สิ่งต่าง ๆ น่าสนใจ

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

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


เกี่ยวกับสถานที่ตั้งของย่อหน้าที่สองฉันกลัวว่าเราอาจพบอุปกรณ์ที่ออกแบบมาช้ากว่าวันนี้และยังคงเพิกเฉย crypto
Hagen von Eitzen

1
ความหมายที่ทันสมัยได้รับการออกแบบโดยใช้แนวปฏิบัติที่ดีที่สุดในปัจจุบันไม่ใช่แค่เรื่องง่าย ๆ
Sean Houlihane

4

อุปกรณ์ทั้งหมดที่ต้องการใช้ TCP ผ่าน IP ต้องใช้สแต็ก TCP / IP

โปรโตคอลมีมาตรฐานเพื่อให้อุปกรณ์จากผู้ผลิตที่แตกต่างกันหรือใช้ระบบปฏิบัติการที่แตกต่างกันสามารถเข้าใจซึ่งกันและกัน

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

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

ส่วนที่สำคัญคือมาตรฐาน


2

สแตกตัวเองเป็นแนวคิดเสมือนจริง แต่ละเลเยอร์ในสแต็กแก้ไขบิตสุดท้ายที่ส่งผ่านสื่อทางกายภาพ (คลื่นวิทยุหรือสัญญาณอิเล็กทรอนิกส์อื่น ๆ ) ไม่มีกฎที่บอกว่าแต่ละเลเยอร์ในสแต็กจะต้องได้รับการออกแบบในหน่วยที่ไม่ต่อเนื่องของรหัสหรือฮาร์ดแวร์ ตัวอย่างเช่นชิป iEthernetรวมเลเยอร์ TCP, IP, MAC และ PHY ออกจากนักพัฒนาที่มีหน้าที่ในการใช้งานซอฟต์แวร์ TLS และ Application Layer

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

ตามทฤษฎีแล้วอุปกรณ์ขนาดเล็กพิเศษบางอย่างอาจมีโปรเซสเซอร์เพียงตัวเดียวที่มี SoC (ซอฟต์แวร์บนชิป) ที่ฝังตัวซึ่งจัดการเลเยอร์เครือข่ายทั้งหมด (แอปพลิเคชัน TLS, TCP, IP, PHY) เป็นหน่วยแยกรหัสเดียว ฉันไม่สามารถหาตัวอย่างที่เป็นรูปธรรมได้ในตอนนี้ แต่มันจะไม่ทำให้ฉันประหลาดใจหากมีอุปกรณ์ขนาดเล็กพลังงานต่ำหรือฟังก์ชั่นเฉพาะที่รวมเลเยอร์ของสแต็กทั้งหมดไว้ในหน่วยเดียวเพื่อลดการใช้พลังงาน (ยืดอายุแบตเตอรี่) ผลิตภัณฑ์ที่มีขนาดใหญ่และซับซ้อนกว่าเช่นโทรทัศน์โทรศัพท์และระบบเกมอาจมีอย่างน้อย 3 ชั้น (แอปพลิเคชันระบบปฏิบัติการและฮาร์ดแวร์) ในขณะที่เครื่องปิ้งขนมปังอาจมีเพียง 1 หรือ 2 ชั้น


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


เครื่องปิ้งขนมปังจะไม่มีเลเยอร์ทั้งหมดได้อย่างไร คุณสามารถเสียบสายเคเบิลเครือข่ายหรือตอบสนองต่อคลื่น WiFi - ดังนั้นจึงใช้เลเยอร์ PHY ในสามารถสื่อสารกับอุปกรณ์ท้องถิ่นและระยะไกล (เช่น iPhone ของคุณ) - ดังนั้นจึงใช้เลเยอร์ IP มันต้องการการส่งข้อมูลที่ปลอดภัย (อิมเมจ) - ดังนั้นจึงควรใช้ TCP บางส่วนต้องใช้ความรู้สึกของข้อมูลที่ส่งดังนั้นเราจึงมีแอปพลิเคชันเลเยอร์อยู่ด้านบน --- (ก็อาจจะไม่ใช่ถ้าแทนที่จะใช้เครือข่ายพวกเขาใช้บลูทู ธ ... )
Hagen von Eitzen

@HagenvonEitzen โปรโตคอลกำหนดให้เลเยอร์อยู่ แต่จุดของฉันคือหนึ่ง "เลเยอร์" ใน TCP / IP "สแต็ก" อาจไม่เป็น "เลเยอร์" แยกกันในซอฟต์แวร์ / ฮาร์ดแวร์ "สแต็ก" ฉันยกตัวอย่างชิปเซ็ตที่ใช้ทั้งหมดสี่เลเยอร์โดยตัวมันเอง ในแง่ของฮาร์ดแวร์ / ซอฟต์แวร์นี่เป็น "เลเยอร์" เพียงหนึ่งเดียวใน "สแต็ก" ที่ใช้การเชื่อมต่อ การใช้ชิปนั้นบวกกับแอปพลิเคชันที่ใช้ TLS ของตัวเองส่งผลให้มีสองชั้นซ้อนกัน องค์ประกอบทางกายภาพไม่สอดคล้องกับสี่ชั้นตรรกะที่อธิบายไว้ใน OP
phyrfox
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.