โปรโตคอลการสื่อสารเป็นระบบของกฎที่ช่วยให้สองคนหรือมากกว่าหน่วยงานของเป็นระบบการสื่อสารในการส่งข้อมูลผ่านทางชนิดของการเปลี่ยนแปลงใด ๆปริมาณทางกายภาพ
โปรโตคอลกำหนดกฎไวยากรณ์ความหมายและการประสานของการสื่อสารและเป็นไปได้วิธีการกู้คืนข้อผิดพลาด
โพรโทคออาจจะดำเนินการโดยฮาร์ดแวร์ , ซอฟแวร์หรือการรวมกันของทั้งสอง [1] ระบบการสื่อสารใช้รูปแบบที่กำหนดไว้อย่างดีสำหรับการแลกเปลี่ยนข้อความต่างๆ
แต่ละข้อความมีความหมายที่แท้จริงเพื่อกระตุ้นให้เกิดการตอบสนองจากช่วงของการตอบสนองที่เป็นไปได้ซึ่งกำหนดไว้ล่วงหน้าสำหรับสถานการณ์นั้น ๆ ลักษณะการทำงานที่ระบุโดยปกติจะเป็นอิสระจากว่ามันคือการได้รับการดำเนินการโปรโตคอลการสื่อสารต้องได้รับการตกลงกันโดยฝ่ายที่เกี่ยวข้อง
[2]การบรรลุข้อตกลงโปรโตคอลอาจจะพัฒนาเป็นมาตรฐานทางเทคนิคการเขียนโปรแกรมภาษาอธิบายเหมือนกันสำหรับการคำนวณจึงมีความคล้ายคลึงใกล้ชิดระหว่างโปรโตคอลและการเขียนโปรแกรมภาษา:
โปรโตคอลที่จะสื่อสารสิ่งที่ภาษาโปรแกรมจะคำนวณ[3]สูตรรัฐอื่นที่โปรโตคอลจะสื่อสารสิ่งที่อัลกอริทึมที่จะคำนวณ[4] โปรโตคอลหลายตัวมักอธิบายถึงแง่มุมที่แตกต่างกันของการสื่อสารเพียงครั้งเดียว
กลุ่มของโปรโตคอลที่ออกแบบมาเพื่อทำงานร่วมกันเรียกว่าชุดโปรโตคอล เมื่อนำไปใช้ในซอฟต์แวร์จะเป็นโปรโตคอลสแต็ก โปรโตคอลการสื่อสารทางอินเทอร์เน็ตเผยแพร่โดยInternet Engineering Task Force (IETF) IEEE
(สถาบันวิศวกรไฟฟ้าและอิเล็กทรอนิกส์) จับสายและเครือข่ายไร้สายและองค์การระหว่างประเทศเพื่อการมาตรฐาน (ISO) จัดการประเภทอื่น ๆ
ITU-Tจัดการโปรโตคอลการสื่อสารโทรคมนาคมและรูปแบบสำหรับประชาชนเปิดเครือข่ายโทรศัพท์ (PSTN) เมื่อ PSTN และอินเทอร์เน็ตมาบรรจบกันมาตรฐานต่างๆก็ถูกผลักดันไปสู่การบรรจบกัน ระบบการสื่อสารประวัติศาสตร์การใช้คำว่าโปรโตคอลครั้งแรกในบริบทการเปลี่ยนข้อมูลเกิดขึ้นในบันทึกที่ชื่อว่าโปรโตคอลสำหรับการใช้งานในเครือข่ายการสื่อสารข้อมูล NPL ซึ่งเขียนโดยRoger Scantleburyและ Keith Bartlett ในเดือนเมษายน พ.ศ. 2510 [5] [6] บนARPANETจุดเริ่มต้นของการสื่อสารแบบโฮสต์ถึงโฮสต์ในปี 1969 คือโปรโตคอล 1822ซึ่งกำหนดการส่งข้อความไปยัง IMP [7]โปรแกรมควบคุมเครือข่ายสำหรับ ARPANET ถูกนำมาใช้ครั้งแรกในปี 1970 [8]อินเตอร์เฟซ NCP อนุญาตซอฟต์แวร์ประยุกต์ในการเชื่อมต่อทั่ว ARPANET โดยการดำเนินการระดับสูงโปรโตคอลการสื่อสาร , ตัวอย่างแรกของlayering โปรโตคอลแนวคิด [9] การวิจัยเครือข่ายในช่วงต้นทศวรรษ 1970 โดยRobert E.KahnและVint Cerfนำไปสู่การกำหนดโครงการTransmission Control Program (TCP) [10]มันRFC 675สเปคที่เขียนขึ้นโดย Cerf กับYogen Dalalและคาร์ลซันไชน์ในเดือนธันวาคมปี 1974 ยังคงมีการออกแบบเสาหินในเวลานี้ เครือข่ายคณะทำงานระหว่างประเทศตกลง connectionless ดาต้ามาตรฐานซึ่งได้รับการเสนอให้CCITในปี 1975 แต่ไม่ได้รับการรับรองโดย ITU หรืออาร์พาเนต [11]การวิจัยระหว่างประเทศโดยเฉพาะงานของRémiDesprésมีส่วนในการพัฒนามาตรฐานX.25โดยอาศัยวงจรเสมือนโดยITU-Tในปีพ. ศ. 2519 [12] [13]ผู้ผลิตคอมพิวเตอร์ได้พัฒนาโปรโตคอลที่เป็นกรรมสิทธิ์เช่นของไอบีเอ็มระบบสถาปัตยกรรมเครือข่าย (SNA), อุปกรณ์ดิจิตอลคอร์ปอเรชั่นDECnetและซีร็อกซ์ระบบเครือข่าย [14] ซอฟต์แวร์ TCP ได้รับการออกแบบใหม่เป็นสแต็กโปรโตคอลแบบแยกส่วน เดิมเรียกว่าIP / TCPมันถูกติดตั้งบนSATNETในปี 1982 และบน ARPANET ในเดือนมกราคม 1983 การพัฒนาชุดโปรโตคอลที่สมบูรณ์ภายในปี 1989 ตามที่ระบุไว้ใน RFC 1122และ RFC 1123 , วางรากฐานสำหรับการเจริญเติบโตของTCP / IPเป็นชุดโปรโตคอลที่ครอบคลุมเป็นองค์ประกอบหลักของการเกิดขึ้นใหม่อินเทอร์เน็ต [15] งานระหว่างประเทศเกี่ยวกับรูปแบบการอ้างอิงสำหรับมาตรฐานการสื่อสารนำไปสู่แบบจำลอง OSIซึ่งตีพิมพ์ในปี 1984 ในช่วงปลายทศวรรษที่ 1980 และต้นปี 1990 วิศวกรองค์กรและประเทศต่างๆกลายเป็นขั้วในเรื่องของมาตรฐานแบบจำลอง OSI หรืออินเทอร์เน็ต ชุดโปรโตคอลจะส่งผลให้เครือข่ายคอมพิวเตอร์ที่ดีที่สุดและมีประสิทธิภาพมากที่สุด [16] [17] [18] แนวคิดข้อมูลที่แลกเปลี่ยนระหว่างอุปกรณ์ผ่านเครือข่ายหรือสื่ออื่น ๆ อยู่ภายใต้กฎและอนุสัญญาที่กำหนดไว้ในข้อกำหนดโปรโตคอลการสื่อสาร ลักษณะของการสื่อสารการแลกเปลี่ยนข้อมูลจริงและพฤติกรรมที่ขึ้นกับรัฐถูกกำหนดโดยข้อกำหนดเหล่านี้ ในระบบคอมพิวเตอร์ดิจิตอลกฎที่สามารถแสดงออกโดยขั้นตอนวิธีและโครงสร้างข้อมูล โปรโตคอลคือการสื่อสารว่าอัลกอริทึมหรือภาษาโปรแกรมใดบ้างที่ใช้ในการคำนวณ [3] [4] โดยปกติระบบปฏิบัติการจะประกอบด้วยชุดของกระบวนการทำงานร่วมกันที่จัดการกับข้อมูลที่แชร์เพื่อสื่อสารกัน การสื่อสารนี้อยู่ภายใต้โปรโตคอลที่เข้าใจกันดีซึ่งสามารถฝังอยู่ในรหัสกระบวนการได้ [19] [20]ในทางตรงกันข้ามเพราะไม่มีหน่วยความจำร่วมระบบการสื่อสารมีการสื่อสารกับแต่ละอื่น ๆ ที่ใช้ร่วมกันกลางส่ง การส่งข้อมูลไม่จำเป็นต้องเชื่อถือได้และแต่ละระบบอาจใช้ฮาร์ดแวร์หรือระบบปฏิบัติการที่แตกต่างกัน ในการใช้โปรโตคอลเครือข่ายโมดูลซอฟต์แวร์โปรโตคอลจะเชื่อมต่อกับเฟรมเวิร์กที่ใช้กับระบบปฏิบัติการของเครื่อง เฟรมเวิร์กนี้ใช้ฟังก์ชันเครือข่ายของระบบปฏิบัติการ [21]เมื่อแสดงอัลกอริทึมโปรโตคอลในภาษาโปรแกรมแบบพกพาซอฟต์แวร์โปรโตคอลอาจทำให้ระบบปฏิบัติการเป็นอิสระ ที่รู้จักกันดีกรอบเป็นTCP / IP รูปแบบและรูปแบบ OSI ในขณะที่อินเทอร์เน็ตได้รับการพัฒนาการแบ่งเลเยอร์นามธรรมได้พิสูจน์แล้วว่าเป็นแนวทางการออกแบบที่ประสบความสำเร็จสำหรับทั้งคอมไพเลอร์และการออกแบบระบบปฏิบัติการและเนื่องจากความคล้ายคลึงกันระหว่างภาษาโปรแกรมและโปรโตคอลการสื่อสารโปรแกรมเครือข่ายเสาหินเดิมถูกย่อยสลายเป็นโปรโตคอลที่ทำงานร่วมกัน [22]สิ่งนี้ก่อให้เกิดแนวคิดของโปรโตคอลแบบชั้นซึ่งปัจจุบันเป็นพื้นฐานของการออกแบบโปรโตคอล [23] โดยทั่วไประบบจะไม่ใช้โปรโตคอลเดียวในการจัดการการส่ง แต่พวกเขาใช้ชุดของความร่วมมือโปรโตคอลบางครั้งเรียกว่าชุดโปรโตคอล [24]บางคนที่รู้จักกันดีสวีทโพรโทคอล TCP / IP , IPX / SPX , X.25 , AX.25และAppleTalk โปรโตคอลสามารถจัดอยู่บนพื้นฐานของการทำงานในกลุ่มเช่นมีเป็นกลุ่มของโปรโตคอลการขนส่ง ฟังก์ชันต่างๆจะถูกแมปลงบนเลเยอร์โดยแต่ละชั้นจะแก้ปัญหาที่แตกต่างกันออกไปเช่นแอพพลิเคชั่นการขนส่งอินเทอร์เน็ตและฟังก์ชันอินเทอร์เฟซเครือข่าย [25]ในการส่งข้อความต้องเลือกโปรโตคอลจากแต่ละเลเยอร์ การเลือกโปรโตคอลถัดไปทำได้โดยการขยายข้อความด้วยตัวเลือกโปรโตคอลสำหรับแต่ละเลเยอร์ [26] ความต้องการขั้นพื้นฐานการรับข้อมูลผ่านเครือข่ายเป็นเพียงส่วนหนึ่งของปัญหาสำหรับโปรโตคอล ข้อมูลที่ได้รับจะต้องได้รับการประเมินในบริบทของความคืบหน้าของการสนทนาดังนั้นโปรโตคอลต้องมีกฎที่อธิบายบริบท กล่าวกันว่ากฎประเภทนี้แสดงถึงไวยากรณ์ของการสื่อสาร กฎอื่น ๆ กำหนดว่าข้อมูลมีความหมายสำหรับบริบทที่เกิดการแลกเปลี่ยนหรือไม่ กฎประเภทนี้กล่าวเพื่อแสดงความหมายของการสื่อสาร ข้อความจะถูกส่งและรับในระบบการสื่อสารเพื่อสร้างการสื่อสาร ดังนั้นโปรโตคอลควรระบุกฎที่ควบคุมการส่ง โดยทั่วไปควรกล่าวถึงสิ่งต่อไปนี้: [27] รูปแบบข้อมูลสำหรับการแลกเปลี่ยนข้อมูล มีการแลกเปลี่ยนบิตสตริงข้อความดิจิทัล บิตสตริงถูกแบ่งออกเป็นฟิลด์และแต่ละฟิลด์จะมีข้อมูลที่เกี่ยวข้องกับโปรโตคอล แนวคิด bitstring จะแบ่งออกเป็นสองส่วนที่เรียกว่า ส่วนหัวและ น้ำหนักบรรทุก ข้อความจริงจะดำเนินการในส่วนข้อมูล พื้นที่ส่วนหัวประกอบด้วยฟิลด์ที่เกี่ยวข้องกับการทำงานของโปรโตคอล บิตสตริงที่ยาวเกิน หน่วยรับส่งข้อมูลสูงสุด (MTU) จะถูกแบ่งออกเป็นชิ้น ๆ ที่มีขนาดเหมาะสม [28] รูปแบบที่อยู่สำหรับการแลกเปลี่ยนข้อมูล ที่อยู่ใช้เพื่อระบุทั้งผู้ส่งและผู้รับที่ต้องการ แอดเดรสจะดำเนินการในพื้นที่ส่วนหัวของบิตสตริงทำให้ผู้รับสามารถพิจารณาได้ว่าบิตสตริงนั้นน่าสนใจหรือไม่และควรประมวลผลหรือควรละเว้น การเชื่อมต่อระหว่างผู้ส่งและผู้รับสามารถระบุการใช้คู่ที่อยู่ (ที่อยู่ผู้ส่งที่อยู่รับ)โดยปกติค่าที่อยู่บางค่าจะมีความหมายพิเศษ อาจใช้ที่อยู่แบบ all- 1เพื่อหมายถึงที่อยู่ของสถานีทั้งหมดในเครือข่ายดังนั้นการส่งไปยังที่อยู่นี้จะส่งผลให้เกิดการแพร่ภาพบนเครือข่ายท้องถิ่น กฎการอธิบายความหมายของค่าที่อยู่จะเรียกว่า โครงการที่อยู่ [29] การแมปที่อยู่ บางครั้งโปรโตคอลจำเป็นต้องจับคู่ที่อยู่ของโครงการหนึ่งกับที่อยู่ของโครงการอื่น ตัวอย่างเช่นในการแปลที่อยู่ IP แบบลอจิคัลที่ระบุโดยแอปพลิเคชันเป็นที่อยู่ MAC ของอีเทอร์เน็ต นี้จะเรียกว่าเป็น แผนที่ที่อยู่ [30] การกำหนดเส้นทาง เมื่อระบบไม่ได้เชื่อมต่อโดยตรงระบบตัวกลางตาม เส้นทางไปยังผู้รับที่ต้องการจะต้องส่งต่อข้อความในนามของผู้ส่ง บนอินเทอร์เน็ตเครือข่ายเชื่อมต่อโดยใช้เราเตอร์ เชื่อมต่อโครงข่ายของเครือข่ายผ่านเราเตอร์ที่เรียกว่า internetworking การตรวจจับข้อผิดพลาดในการส่ง การตรวจจับข้อผิดพลาดเป็นสิ่งจำเป็นบนเครือข่ายที่ข้อมูลอาจเสียหายได้ ในแนวทางทั่วไป CRC ของพื้นที่ข้อมูลจะถูกเพิ่มที่ส่วนท้ายของแพ็กเก็ตทำให้เครื่องรับสามารถตรวจพบความแตกต่างที่เกิดจากความเสียหายได้ ผู้รับปฏิเสธแพ็กเก็ตที่มีความแตกต่างของ CRC และจัดเตรียมการส่งซ้ำ [31] กิตติกรรมประกาศ รับทราบการรับสัญญาณที่ถูกต้องของแพ็คเก็ตเป็นสิ่งจำเป็นสำหรับ การสื่อสารการเชื่อมต่อที่มุ่งเน้น กิตติกรรมประกาศจะถูกส่งจากผู้รับกลับไปยังผู้ส่งที่เกี่ยวข้อง [32] การสูญเสียข้อมูล - หมดเวลาและการลองใหม่ แพ็กเก็ตอาจสูญหายในเครือข่ายหรือล่าช้าในระหว่างการขนส่ง เพื่อรับมือกับสิ่งนี้ภายใต้โปรโตคอลบางอย่างผู้ส่งอาจคาดหวังว่าจะได้รับการตอบรับที่ถูกต้องจากผู้รับภายในระยะเวลาหนึ่ง ดังนั้นเมื่อ หมดเวลาผู้ส่งอาจต้องส่งข้อมูลอีกครั้ง [a]ในกรณีที่ลิงก์เสียอย่างถาวรการส่งซ้ำจะไม่มีผลดังนั้นจำนวนการส่งข้อมูลซ้ำจึงมี จำกัด การลองซ้ำเกินขีด จำกัด ถือว่าเป็นข้อผิดพลาด [33] ทิศทางการไหลของข้อมูล ทิศทางความต้องการที่จะได้รับการแก้ไขถ้าส่งสัญญาณสามารถเกิดขึ้นได้ในทิศทางเดียวที่เวลาใน ครึ่ง duplexการเชื่อมโยงหรือจากผู้ส่งคนหนึ่งในช่วงเวลาที่เป็นบน กลางที่ใช้ร่วมกัน นี้เรียกว่า การควบคุมการเข้าถึงสื่อ ต้องมีการเตรียมการเพื่อรองรับกรณีของ การปะทะกันหรือ การทะเลาะวิวาทที่สองฝ่ายส่งพร้อมกันตามลำดับหรือต้องการที่จะส่ง [34] การควบคุมลำดับ หากบิตสตริงยาวแบ่งออกเป็นชิ้น ๆ แล้วส่งไปยังเครือข่ายทีละรายการชิ้นส่วนอาจสูญหายหรือล่าช้าหรือในเครือข่ายบางประเภทใช้เส้นทางที่แตกต่างกันไปยังปลายทาง เป็นผลให้ชิ้นงานอาจไม่เรียงตามลำดับ การส่งซ้ำอาจทำให้ชิ้นส่วนซ้ำกันได้ ด้วยการทำเครื่องหมายชิ้นส่วนที่มีข้อมูลลำดับที่ผู้ส่งผู้รับจะสามารถระบุได้ว่าอะไรสูญหายหรือซ้ำกันขอการส่งข้อมูลใหม่ที่จำเป็นและรวบรวมข้อความต้นฉบับอีกครั้ง [35] การควบคุมการไหล จำเป็นต้องมีการควบคุมการไหลเมื่อผู้ส่งส่งข้อมูลเร็วเกินกว่าที่เครื่องรับหรืออุปกรณ์เครือข่ายระดับกลางจะประมวลผลการส่งได้ การควบคุมการไหลสามารถดำเนินการได้โดยการส่งข้อความจากผู้รับไปยังผู้ส่ง [36] เข้าคิว กระบวนการสื่อสารหรือเครื่องของรัฐใช้คิว (หรือ "บัฟเฟอร์") โดยปกติจะเป็นคิว FIFO เพื่อจัดการกับข้อความตามลำดับที่ส่งและบางครั้งอาจมีหลายคิวที่มีลำดับความสำคัญต่างกันการออกแบบโปรโตคอลมีการนำหลักการทางวิศวกรรมระบบมาใช้เพื่อสร้างชุดของหลักการออกแบบโปรโตคอลเครือข่ายทั่วไป การออกแบบโปรโตคอลที่ซับซ้อนมักเกี่ยวข้องกับการย่อยสลายเป็นโปรโตคอลที่ร่วมมือกันที่ง่ายกว่า ชุดของโปรโตคอลความร่วมมือดังกล่าวบางครั้งเรียกว่าตระกูลโปรโตคอลหรือชุดโปรโตคอล[24]ภายในกรอบแนวคิด ระบบสื่อสารทำงานควบคู่กันไป สิ่งสำคัญของการเขียนโปรแกรมพร้อมกันคือการซิงโครไนซ์ซอฟต์แวร์เพื่อรับและส่งข้อความของการสื่อสารในลำดับที่เหมาะสม การเขียนโปรแกรมพร้อมกันเป็นหัวข้อในตำราทฤษฎีระบบปฏิบัติการ [37] การตรวจสอบอย่างเป็นทางการดูเหมือนจะขาดไม่ได้เพราะโปรแกรมที่เกิดขึ้นพร้อมกันนั้นมีชื่อเสียงสำหรับจุดบกพร่องที่ซ่อนอยู่และซับซ้อนที่พวกเขามีอยู่ [38]วิธีการทางคณิตศาสตร์ในการศึกษาภาวะพร้อมกันและการสื่อสารเรียกว่าการสื่อสารกระบวนการตามลำดับ (CSP) [39]พร้อมกันนี้ยังสามารถจำลองการใช้เครื่องสถานะ จำกัดเช่นแป้งและมัวร์เครื่อง เครื่องจักร Mealy และ Moore ถูกใช้เป็นเครื่องมือออกแบบในระบบอิเล็กทรอนิกส์ดิจิทัลที่พบในรูปแบบของฮาร์ดแวร์ที่ใช้ในอุปกรณ์โทรคมนาคมหรืออุปกรณ์อิเล็กทรอนิกส์โดยทั่วไป [40] [ ต้องการแหล่งที่มาที่ดีกว่า ] วรรณกรรมนำเสนอการเปรียบเทียบมากมายระหว่างการสื่อสารด้วยคอมพิวเตอร์และการเขียนโปรแกรม ในการเปรียบเทียบกลไกการถ่ายโอนของโปรโตคอลเปรียบได้กับหน่วยประมวลผลกลาง (CPU) เฟรมเวิร์กแนะนำกฎที่อนุญาตให้โปรแกรมเมอร์ออกแบบโปรโตคอลการทำงานร่วมกันโดยอิสระจากกันและกัน เลเยอร์รูปที่ 2. โมเดล TCP / IP หรือโครงร่างการแบ่งชั้นอินเทอร์เน็ตและความสัมพันธ์กับโปรโตคอลทั่วไปบางอย่าง ในการออกแบบโปรโตคอลสมัยใหม่โพรโทคอลจะถูกแบ่งชั้นเพื่อสร้างโปรโตคอลสแต็ก การแบ่งเลเยอร์เป็นหลักการออกแบบที่แบ่งงานออกแบบโปรโตคอลออกเป็นขั้นตอนย่อย ๆ ซึ่งแต่ละส่วนจะทำในส่วนที่เฉพาะเจาะจงโดยโต้ตอบกับส่วนอื่น ๆ ของโปรโตคอลด้วยวิธีการที่กำหนดไว้อย่างดีเพียงเล็กน้อยเท่านั้น การแบ่งเลเยอร์ช่วยให้สามารถออกแบบและทดสอบชิ้นส่วนของโปรโตคอลได้โดยไม่ต้องมีการระเบิดของเคสแบบผสมผสานทำให้การออกแบบแต่ละแบบค่อนข้างง่าย โปรโตคอลการสื่อสารที่ใช้งานบนอินเทอร์เน็ตได้รับการออกแบบมาให้ทำงานในการตั้งค่าที่หลากหลายและซับซ้อน อินเทอร์เน็ตโปรโตคอลได้รับการออกแบบสำหรับความเรียบง่ายและต้นแบบและพอดีเป็นลำดับชั้นหยาบของชั้นการทำงานที่กำหนดไว้ในInternet Protocol สวีท [41]โปรโตคอลที่ทำงานร่วมกันสองโปรโตคอลแรกคือTransmission Control Protocol (TCP) และInternet Protocol (IP) ซึ่งเป็นผลมาจากการสลายตัวของ Transmission Control Program เดิมซึ่งเป็นโปรโตคอลการสื่อสารแบบเสาหินลงในชุดการสื่อสารแบบเลเยอร์นี้ แบบจำลอง OSIได้รับการพัฒนาในระดับสากลบนพื้นฐานของประสบการณ์กับเครือข่ายที่ฟิกอินเทอร์เน็ตเป็นรูปแบบการอ้างอิงสำหรับการสื่อสารทั่วไปที่มีกฎระเบียบที่เข้มงวดมากของการปฏิสัมพันธ์โปรโตคอลและการฝังรากลึกอย่างเข้มงวด โดยทั่วไปซอฟต์แวร์แอพพลิเคชั่นสร้างขึ้นจากชั้นการขนส่งข้อมูลที่แข็งแกร่ง ภายใต้เลเยอร์การขนส่งนี้คือการจัดส่งดาตาแกรมและกลไกการกำหนดเส้นทางที่โดยทั่วไปแล้วจะไม่มีการเชื่อมต่อในอินเทอร์เน็ต แพ็คเก็ตการถ่ายทอดผ่านเครือข่ายที่เกิดขึ้นในช่วงชั้นที่เกี่ยวข้องกับเทคโนโลยีการเชื่อมโยงเครือข่ายเท่านั้นซึ่งมักจะมีเฉพาะบางเทคโนโลยีชั้นกายภาพเช่นอีกอีเธอร์เน็ต การแบ่งเลเยอร์ให้โอกาสในการแลกเปลี่ยนเทคโนโลยีเมื่อจำเป็นตัวอย่างเช่นโปรโตคอลมักจะซ้อนกันในการจัดเรียงทันเนลเพื่อรองรับการเชื่อมต่อของเครือข่ายที่แตกต่างกัน ตัวอย่างเช่น IP อาจถูกจูนในเครือข่ายAsynchronous Transfer Mode (ATM) การแบ่งชั้นของโปรโตคอลรูปที่ 3. ข้อความไหลโดยใช้ชุดโปรโตคอล ลูปสีดำแสดงลูปการส่งข้อความจริงลูปสีแดงเป็นการสื่อสารที่มีประสิทธิภาพระหว่างเลเยอร์ที่เปิดใช้งานโดยเลเยอร์ล่าง การแบ่งชั้นของโปรโตคอลเป็นพื้นฐานของการออกแบบโปรโตคอล [23]ช่วยให้การสลายโปรโตคอลเดี่ยวที่ซับซ้อนเป็นโปรโตคอลที่ร่วมมือกันได้ง่ายขึ้น [41]โปรโตคอลแต่ละชั้นแก้ปัญหาการสื่อสารที่แตกต่างกัน เลเยอร์รวมกันเป็นโครงร่างหรือแบบจำลองการแบ่งชั้น การคำนวณจัดการกับอัลกอริทึมและข้อมูล การสื่อสารเกี่ยวข้องกับโปรโตคอลและข้อความ ดังนั้นอะนาล็อกของแผนภาพกระแสข้อมูลคือแผนภาพการไหลของข้อความ [4]เพื่อให้เห็นภาพการแบ่งชั้นของโปรโตคอลและชุดโปรโตคอลแผนภาพของข้อความที่ไหลเข้าและออกระหว่างสองระบบ A และ B จะแสดงในรูปที่ 3 ระบบ A และ B ทั้งคู่ใช้ประโยชน์จากชุดโปรโตคอลเดียวกัน โฟลว์แนวตั้ง (และโปรโตคอล) อยู่ในระบบและโฟลว์ข้อความแนวนอน (และโปรโตคอล) อยู่ระหว่างระบบ กระแสของข้อความอยู่ภายใต้กฎและรูปแบบข้อมูลที่ระบุโดยโปรโตคอล เส้นสีน้ำเงินทำเครื่องหมายขอบเขตของเลเยอร์โปรโตคอล (แนวนอน) การแบ่งชั้นซอฟต์แวร์รูปที่ 5: การแบ่งชั้นโปรโตคอลและซอฟต์แวร์ โมดูลซอฟต์แวร์ที่ใช้โปรโตคอลจะแสดงด้วยคิวบ์ การไหลของข้อมูลระหว่างโมดูลแสดงด้วยลูกศร ลูกศรสีแดง (แนวนอนสองตำแหน่งบนสุด) เป็นเสมือน เส้นสีน้ำเงินทำเครื่องหมายขอบเขตของเลเยอร์ ซอฟต์แวร์สนับสนุนโปรโตคอลมีการจัดชั้นและความสัมพันธ์กับการแบ่งชั้นของโปรโตคอลจะแสดงในรูปที่ 5 ในการส่งข้อความบนระบบ A โมดูลซอฟต์แวร์ชั้นบนสุดจะโต้ตอบกับโมดูลด้านล่างโดยตรงและส่งข้อความที่จะห่อหุ้ม โมดูลด้านล่างจะเติมข้อมูลส่วนหัวตามโปรโตคอลที่ใช้และโต้ตอบกับโมดูลด้านล่างซึ่งส่งข้อความผ่านช่องทางการสื่อสารไปยังโมดูลด้านล่างของระบบ B บนระบบรับ B สิ่งที่ย้อนกลับจะเกิดขึ้นดังนั้นในที่สุดข้อความ ได้รับการจัดส่งในรูปแบบดั้งเดิมไปยังโมดูลด้านบนของระบบ B [42] การแปลโปรแกรมแบ่งออกเป็นปัญหาย่อย ด้วยเหตุนี้ซอฟต์แวร์การแปลจึงมีการแบ่งชั้นเช่นกันทำให้สามารถออกแบบเลเยอร์ซอฟต์แวร์ได้อย่างอิสระ แนวทางเดียวกันนี้สามารถเห็นได้ในเลเยอร์ TCP / IP [43] โดยทั่วไปแล้วโมดูลที่อยู่ใต้ชั้นแอปพลิเคชันจะถือว่าเป็นส่วนหนึ่งของระบบปฏิบัติการ การส่งผ่านข้อมูลระหว่างโมดูลเหล่านี้มีค่าใช้จ่ายน้อยกว่าการส่งผ่านข้อมูลระหว่างโปรแกรมแอปพลิเคชันและเลเยอร์การขนส่ง ขอบเขตระหว่างชั้นแอปพลิเคชันและชั้นการขนส่งเรียกว่าขอบเขตของระบบปฏิบัติการ [44] การแบ่งชั้นที่เข้มงวดการปฏิบัติตามแบบจำลองแบบเลเยอร์อย่างเคร่งครัดซึ่งเรียกว่าการแบ่งเลเยอร์ที่เข้มงวดไม่ใช่แนวทางที่ดีที่สุดในการสร้างเครือข่ายเสมอไป [45] การแบ่งเลเยอร์ที่เข้มงวดอาจส่งผลเสียต่อประสิทธิภาพของการนำไปใช้งาน [46] ในขณะที่การใช้โปรโตคอลหลายชั้นในปัจจุบันแพร่หลายไปทั่วทั้งด้านเครือข่ายคอมพิวเตอร์นักวิจัยหลายคนได้รับการวิพากษ์วิจารณ์ในอดีต[47]เนื่องจากการแยกโพรโทคอลสแต็กด้วยวิธีนี้อาจทำให้เลเยอร์ที่สูงขึ้นซ้ำซ้อนกับการทำงานของเลเยอร์ที่ต่ำกว่า a ตัวอย่างที่สำคัญคือการกู้คืนข้อผิดพลาดทั้งแบบต่อลิงค์และแบบ end-to-end [48] รูปแบบการออกแบบโดยทั่วไปปัญหาในการออกแบบและการดำเนินงานของโปรโตคอลการสื่อสารที่เกิดขึ้นได้รับการแก้ไขโดยรูปแบบการออกแบบซอฟแวร์ [49] [50] [51] [52] [53] ข้อกำหนดที่เป็นทางการวิธีการอธิบายไวยากรณ์การสื่อสารอย่างเป็นทางการ ได้แก่Abstract Syntax Notation One ( มาตรฐาน ISO ) และแบบฟอร์ม Backus-Naur แบบ Augmented ( มาตรฐานIETF ) แบบจำลองเครื่อง จำกัด สถานะ[54] [55]และการสื่อสารเครื่อง จำกัด สถานะ[56]ใช้เพื่ออธิบายปฏิสัมพันธ์ที่เป็นไปได้ของโปรโตคอลอย่างเป็นทางการ การพัฒนาโปรโตคอลเพื่อให้การสื่อสารเกิดขึ้นต้องเลือกโปรโตคอล กฎสามารถแสดงโดยอัลกอริทึมและโครงสร้างข้อมูล ความเป็นอิสระของฮาร์ดแวร์และระบบปฏิบัติการได้รับการปรับปรุงโดยการแสดงอัลกอริทึมในภาษาโปรแกรมแบบพกพา ความเป็นอิสระของแหล่งที่มาของข้อกำหนดทำให้สามารถทำงานร่วมกันได้กว้างขึ้น มาตรฐานโปรโตคอลมักสร้างขึ้นโดยได้รับการอนุมัติหรือการสนับสนุนจากองค์กรมาตรฐานซึ่งเริ่มต้นกระบวนการกำหนดมาตรฐาน กิจกรรมนี้จะเรียกว่าการพัฒนาโปรโตคอลสมาชิกขององค์กรมาตรฐานตกลงที่จะปฏิบัติตามผลงานตามความสมัครใจ บ่อยครั้งที่สมาชิกอยู่ในการควบคุมส่วนแบ่งการตลาดขนาดใหญ่ที่เกี่ยวข้องกับโปรโตคอลและในหลาย ๆ กรณีมาตรฐานจะถูกบังคับใช้โดยกฎหมายหรือรัฐบาลเนื่องจากพวกเขาคิดว่าจะให้บริการเพื่อประโยชน์สาธารณะที่สำคัญดังนั้นการได้รับการอนุมัติจึงมีความสำคัญมากสำหรับโปรโตคอล ความต้องการมาตรฐานโปรโตคอลความจำเป็นในการมาตรฐานโปรโตคอลสามารถแสดงโดยการมองสิ่งที่เกิดขึ้นกับโปรโตคอลสองซิงค์ (BSC) คิดค้นโดยไอบีเอ็ม BSC เป็นโปรโตคอลระดับลิงค์เริ่มต้นที่ใช้ในการเชื่อมต่อสองโหนดที่แยกจากกัน เดิมทีไม่ได้มีวัตถุประสงค์เพื่อใช้ในเครือข่ายมัลติโหนด แต่การทำเช่นนั้นเผยให้เห็นข้อบกพร่องหลายประการของโปรโตคอล ในกรณีที่ไม่มีการกำหนดมาตรฐานผู้ผลิตและองค์กรต่างๆรู้สึกอิสระที่จะ 'ปรับปรุง' โปรโตคอลโดยสร้างเวอร์ชันที่เข้ากันไม่ได้บนเครือข่ายของตน ในบางกรณีเป็นการจงใจกีดกันผู้ใช้จากการใช้อุปกรณ์จากผู้ผลิตรายอื่น มีโปรโตคอล bi-sync ดั้งเดิมมากกว่า 50 รูปแบบ เราสามารถสันนิษฐานได้ว่ามาตรฐานจะป้องกันไม่ให้สิ่งนี้เกิดขึ้นอย่างน้อยที่สุด [21] ในบางกรณีโปรโตคอลจะมีอำนาจเหนือตลาดโดยไม่ต้องผ่านกระบวนการสร้างมาตรฐาน โปรโตคอลดังกล่าวจะเรียกว่ามาตรฐานพฤตินัยมาตรฐานโดยพฤตินัยเป็นเรื่องปกติในตลาดเกิดใหม่ตลาดเฉพาะหรือตลาดที่ผูกขาด (หรือผู้ขายน้อยราย) พวกเขาสามารถยึดครองตลาดในแง่ลบได้โดยเฉพาะอย่างยิ่งเมื่อใช้เพื่อทำให้การแข่งขันลดลง จากมุมมองทางประวัติศาสตร์การกำหนดมาตรฐานควรถูกมองว่าเป็นมาตรการเพื่อต่อต้านผลกระทบที่ไม่ดีของมาตรฐานโดยพฤตินัย มีข้อยกเว้นเชิงบวก ระบบปฏิบัติการ 'มาตรฐานโดยพฤตินัย' อย่างลินุกซ์ไม่มีการยึดติดเชิงลบนี้ในตลาดเนื่องจากแหล่งข้อมูลได้รับการเผยแพร่และดูแลในลักษณะที่เปิดกว้างจึงเชิญชวนให้มีการแข่งขัน มาตรฐานจึงไม่ได้เป็นเพียงการแก้ปัญหาสำหรับระบบเปิดเชื่อมต่อโครงข่าย องค์กรมาตรฐานองค์กรมาตรฐานบางแห่งที่เกี่ยวข้องกับโปรโตคอลการสื่อสาร ได้แก่องค์การระหว่างประเทศเพื่อการมาตรฐาน (ISO), สหภาพโทรคมนาคมระหว่างประเทศ (ITU), สถาบันวิศวกรไฟฟ้าและอิเล็กทรอนิกส์ (IEEE) และหน่วยงานวิศวกรรมอินเทอร์เน็ต (IETF) IETF ดูแลรักษาโปรโตคอลที่ใช้งานบนอินเทอร์เน็ต IEEE ควบคุมซอฟต์แวร์และโปรโตคอลฮาร์ดแวร์จำนวนมากในอุตสาหกรรมอิเล็กทรอนิกส์สำหรับอุปกรณ์เชิงพาณิชย์และอุปกรณ์สำหรับผู้บริโภค ITU เป็นองค์กรหลักของวิศวกรโทรคมนาคมที่ออกแบบเครือข่ายโทรศัพท์สาธารณะ (PSTN) ตลอดจนระบบสื่อสารวิทยุจำนวนมาก สำหรับทะเลอิเล็กทรอนิกส์NMEAมาตรฐานมีการใช้ World Wide Web Consortium (W3C) ผลิตโปรโตคอลและมาตรฐานสำหรับเทคโนโลยีเว็บ องค์กรมาตรฐานระหว่างประเทศควรมีความเป็นกลางมากกว่าองค์กรท้องถิ่นที่มีผลประโยชน์ส่วนตนในระดับชาติหรือเชิงพาณิชย์ที่จะต้องพิจารณา องค์กรมาตรฐานยังทำการวิจัยและพัฒนาเพื่อมาตรฐานแห่งอนาคต ในทางปฏิบัติองค์กรมาตรฐานที่กล่าวถึงให้ความร่วมมืออย่างใกล้ชิดซึ่งกันและกัน [57] กระบวนการมาตรฐานกระบวนการสร้างมาตรฐานเริ่มต้นด้วย ISO ว่าจ้างกลุ่มงานของคณะกรรมการย่อย กลุ่มงานจะออกร่างการทำงานและเอกสารการอภิปรายให้กับผู้ที่สนใจ (รวมถึงหน่วยงานมาตรฐานอื่น ๆ ) เพื่อกระตุ้นให้เกิดการอภิปรายและแสดงความคิดเห็น สิ่งนี้จะก่อให้เกิดคำถามมากมายการอภิปรายมากและโดยปกติจะมีความไม่เห็นด้วยกับสิ่งที่มาตรฐานควรให้และหากสามารถตอบสนองความต้องการทั้งหมดได้ (โดยปกติจะไม่) ควรนำมุมมองที่ขัดแย้งกันทั้งหมดมาพิจารณาโดยมักจะเป็นวิธีประนีประนอมเพื่อดำเนินการร่างข้อเสนอของคณะทำงาน ร่างข้อเสนอดังกล่าวมีการหารือโดยหน่วยงานมาตรฐานของประเทศสมาชิกและองค์กรอื่น ๆ ภายในแต่ละประเทศ ความคิดเห็นและข้อเสนอแนะจะถูกรวบรวมและจะมีการกำหนดมุมมองระดับชาติก่อนที่สมาชิกของ ISO จะลงคะแนนเสียงในข้อเสนอ หากถูกปฏิเสธร่างข้อเสนอจะต้องพิจารณาคำคัดค้านและข้อเสนอต่อต้านเพื่อสร้างร่างข้อเสนอใหม่สำหรับการลงคะแนนอีกครั้ง หลังจากที่จำนวนมากของข้อเสนอแนะการปรับเปลี่ยนและการประนีประนอมข้อเสนอถึงสถานะของการเป็นมาตรฐานสากลร่างและในที่สุดมาตรฐานสากล โดยปกติกระบวนการนี้จะใช้เวลาหลายปีกว่าจะเสร็จสมบูรณ์ แบบร่างกระดาษต้นฉบับที่ออกแบบโดยนักออกแบบจะแตกต่างจากมาตรฐานอย่างมากและจะมี 'คุณสมบัติ' บางประการดังต่อไปนี้:
มีการออกมาตรฐานสากลใหม่เป็นระยะเพื่อจัดการกับข้อบกพร่องและสะท้อนมุมมองที่เปลี่ยนไปเกี่ยวกับเรื่องนี้ [58] มาตรฐาน OSIบทเรียนที่ได้เรียนรู้จากARPANETซึ่งเป็นบรรพบุรุษของอินเทอร์เน็ตคือโปรโตคอลจำเป็นต้องมีกรอบในการทำงาน ดังนั้นจึงเป็นเรื่องสำคัญที่จะต้องพัฒนากรอบการทำงานที่มีวัตถุประสงค์ทั่วไปสำหรับอนาคตที่เหมาะสมสำหรับโปรโตคอลที่มีโครงสร้าง (เช่นโปรโตคอลแบบเลเยอร์) และการกำหนดมาตรฐาน สิ่งนี้จะป้องกันไม่ให้มาตรฐานโปรโตคอลที่มีฟังก์ชันการทำงานที่ทับซ้อนกันและจะให้คำจำกัดความที่ชัดเจนเกี่ยวกับความรับผิดชอบของโปรโตคอลในระดับต่างๆ (เลเยอร์) [59]สิ่งนี้ก่อให้เกิดโมเดลอ้างอิง OSI Open Systems Interconnection (RM / OSI) ซึ่งใช้เป็นกรอบสำหรับการออกแบบโปรโตคอลมาตรฐานและบริการที่สอดคล้องกับข้อกำหนดของเลเยอร์ต่างๆ [60] ในแบบจำลอง OSIระบบสื่อสารจะถือว่าเชื่อมต่อกันโดยสื่อทางกายภาพที่อยู่เบื้องหลังซึ่งมีกลไกการส่งข้อมูลพื้นฐาน (และไม่ระบุ) เลเยอร์ด้านบนมีหมายเลข (จากหนึ่งถึงเจ็ด) n ที่THชั้นจะเรียกว่า (n) -layer แต่ละเลเยอร์ให้บริการแก่เลเยอร์ที่อยู่ด้านบน (หรือที่ด้านบนสุดของขั้นตอนการสมัคร) โดยใช้บริการของเลเยอร์ที่อยู่ด้านล่างทันที เลเยอร์สื่อสารกันโดยใช้อินเทอร์เฟซที่เรียกว่าจุดเชื่อมต่อบริการ ชั้นที่สอดคล้องกันในแต่ละระบบที่เรียกว่าหน่วยงานที่เพียร์ในการสื่อสารเอนทิตีเพียร์สองเอนทิตีในเลเยอร์ที่กำหนดให้ใช้ (n) -protocol ซึ่งดำเนินการโดยใช้บริการของ (n-1) -layer เมื่อระบบไม่ได้เชื่อมต่อโดยตรงจะใช้เอนทิตีเพียร์ระดับกลาง (เรียกว่ารีเลย์ ) ที่อยู่ระบุจุดเชื่อมต่อบริการโดยไม่ซ้ำกัน โดเมนการตั้งชื่อที่อยู่ไม่จำเป็นต้อง จำกัด ไว้ที่เลเยอร์เดียวดังนั้นจึงเป็นไปได้ที่จะใช้โดเมนการตั้งชื่อเพียงรายการเดียวสำหรับทุกเลเยอร์ [61]สำหรับแต่ละเลเยอร์มีมาตรฐานสองประเภท: มาตรฐานโปรโตคอลที่กำหนดวิธีการสื่อสารของเอนทิตีเพียร์ในเลเยอร์ที่กำหนดและมาตรฐานการบริการที่กำหนดวิธีที่เลเยอร์หนึ่ง ๆ สื่อสารกับเลเยอร์ที่อยู่ด้านบน ใน RM / OSI เวอร์ชันดั้งเดิมเลเยอร์และฟังก์ชันการทำงานคือ (จากเลเยอร์สูงสุดไปต่ำสุด):
ตรงกันข้ามกับโครงร่างเลเยอร์ TCP / IPซึ่งถือว่าเป็นเครือข่ายที่ไม่มีการเชื่อมต่อ RM / OSI ถือว่าเป็นเครือข่ายที่เน้นการเชื่อมต่อ เครือข่ายที่เน้นการเชื่อมต่อเหมาะสำหรับเครือข่ายบริเวณกว้างและเครือข่ายที่ไม่มีการเชื่อมต่อเหมาะสำหรับเครือข่ายท้องถิ่นมากกว่า การใช้การเชื่อมต่อเพื่อสื่อสารหมายถึงรูปแบบของเซสชันและวงจร (เสมือน) บางรูปแบบดังนั้นชั้นเซสชัน (ในโมเดล TCP / IP ขาด) สมาชิกที่เป็นส่วนประกอบของ ISO ส่วนใหญ่เกี่ยวข้องกับเครือข่ายบริเวณกว้างดังนั้นการพัฒนา RM / OSI ที่เน้นไปที่เครือข่ายที่เน้นการเชื่อมต่อและเครือข่ายไร้การเชื่อมต่อจึงถูกกล่าวถึงในภาคผนวกของ RM / OSI เท่านั้น [69]ในเวลานั้น IETF ต้องรับมือกับเรื่องนี้และความจริงที่ว่าอินเทอร์เน็ตต้องการโปรโตคอลที่ไม่ได้อยู่ที่นั่น ด้วยเหตุนี้ IETF จึงพัฒนากระบวนการกำหนดมาตรฐานของตนเองโดยอาศัย "ฉันทามติคร่าวๆและรหัสที่ใช้งานอยู่" [70] กระบวนการมาตรฐานที่มีการอธิบายโดยRFC2026 ปัจจุบัน IETF ได้กลายเป็นองค์กรมาตรฐานสำหรับโปรโตคอลที่ใช้งานบนอินเทอร์เน็ต RM / OSI ได้ขยายรูปแบบเพื่อรวมบริการที่ไม่มีการเชื่อมต่อและด้วยเหตุนี้ทั้ง TCP และ IP จึงสามารถพัฒนาให้เป็นมาตรฐานสากลได้ อนุกรมวิธานโครงร่างการจำแนกประเภทสำหรับโปรโตคอลมักจะเน้นที่โดเมนการใช้งานและฟังก์ชัน ตามตัวอย่างของโดเมนการใช้งานโปรโตคอลที่เน้นการเชื่อมต่อและโปรโตคอลแบบไม่มีการเชื่อมต่อจะถูกใช้บนเครือข่ายที่มุ่งเน้นการเชื่อมต่อและเครือข่ายที่ไม่มีการเชื่อมต่อตามลำดับ ตัวอย่างของฟังก์ชันคือโปรโตคอลทันเนลซึ่งใช้ในการห่อหุ้มแพ็กเก็ตในโปรโตคอลระดับสูงเพื่อให้แพ็กเก็ตสามารถส่งผ่านระบบขนส่งโดยใช้โปรโตคอลระดับสูง โครงการ layeringรวมทั้งฟังก์ชั่นและประสิทธิภาพในการใช้ โครงร่างการแบ่งชั้นที่โดดเด่นคือแบบที่เสนอโดย IETF และตาม ISO แม้ว่าข้อเท็จจริงที่ว่าสมมติฐานพื้นฐานของโครงร่างการแบ่งชั้นจะแตกต่างกันมากพอที่จะรับประกันความแตกต่างของทั้งสองได้ แต่ก็เป็นเรื่องธรรมดาที่จะเปรียบเทียบทั้งสองโดยเกี่ยวข้องกับโปรโตคอลทั่วไปกับเลเยอร์ของทั้งสองแบบ [71] โครงการ layering จาก IETF เรียกว่าอินเทอร์เน็ตชั้นหรือชั้น TCP / IP โครงการ layering จาก ISO เรียกว่าแบบจำลอง OSIหรือISO ฝังรากลึก ในการกำหนดค่าอุปกรณ์เครือข่ายมักจะมีการดึงความแตกต่างของคำศัพท์: คำว่า "โปรโตคอล" หมายถึงเลเยอร์การขนส่งอย่างเคร่งครัดและคำว่า "บริการ" หมายถึงโปรโตคอลที่ใช้ "โปรโตคอล" สำหรับการขนส่ง ในกรณีทั่วไปของ TCP และ UDP บริการจะแตกต่างกันด้วยหมายเลขพอร์ต การปฏิบัติตามหมายเลขพอร์ตเหล่านี้เป็นไปโดยสมัครใจดังนั้นในระบบการตรวจสอบเนื้อหาคำว่า "บริการ" จึงหมายถึงหมายเลขพอร์ตอย่างเคร่งครัดและคำว่า "แอปพลิเคชัน" มักใช้เพื่ออ้างถึงโปรโตคอลที่ระบุผ่านลายเซ็นการตรวจสอบ ดูสิ่งนี้ด้วย
หมายเหตุ
อ้างอิง
บรรณานุกรม
อ่านเพิ่มเติม
ลิงก์ภายนอก
|