TCP ต้องใช้ IP หรือไม่


108

เป็นความจริงไหมว่าTCPนั้นสั้นสำหรับ TCP / IP และพวกมันหมายถึงสิ่งเดียวกันหรือไม่?

มันเป็นไปได้สำหรับTCPจะถูกสร้างขึ้นบนโปรโตคอลอื่นนอกเหนือจากIP ?


31
ทำไมจะไม่ล่ะ? ฉันอาจเห็น TCP บนรหัสมอร์สหนึ่งครั้ง
soandos

2
ตัวอย่างจะเป็นอุโมงค์ ICMP ซึ่งใช้ TCP ผ่าน ICMP แต่มันเป็นความจริงที่ปกติแล้วมันจะไม่สร้าง TCP บนสิ่งใด ๆ ที่ไม่ใช่ IP โดยปกติจะเป็นเลเยอร์การเข้าถึงเครือข่ายโดยใช้โปรโตคอลและช่องทางที่กว้างขึ้น (เช่นกลองบองโก)
มิสเตอร์สมิ ธ

1
@TomWijsman พยายามล้มเหลวหรือไม่ จากสิ่งที่ฉันเข้าใจปัญหาใด ๆ ที่พวกเขาต้องเกี่ยวข้องกับการจัดการกับปัญหาและความสามารถในการทำงานร่วมกันแทนที่จะเป็นปัญหาในการทำให้ TCP ทำงาน
tylerl

2
@harper ด้วยรหัสมอร์สปกติ 200 ตัวอักษร / นาทีเป็นสิ่งที่ไม่เคยได้ยินมาก่อนสำหรับผู้ประกอบการที่มีทักษะและ 100 c / นาที (20 wpm) สามารถทำได้โดยคนส่วนใหญ่ที่มีการฝึกฝนเพียงพอ แน่นอนว่าด้วยความเร็วเหล่านั้นคุณจะไม่ได้ยินตัวละครแต่ละตัวจริงๆ (กล่าวกันว่าจุดเด่นของผู้ปฏิบัติงานที่มีทักษะคือพวกเขาจำบทสนทนาได้ แต่ไม่ใช่คำที่ใช้) ฉันคิดว่าอย่างไรก็ตามตัวอักษร 100 c / นาทีที่เว้นระยะด้วยความเร็วโดยรวม 50-60 c / นาทีจะทำได้ด้วย อัตราข้อผิดพลาดของตัวละครเล็กน้อย
CVn

2
@ ฮาร์เปอร์มันขึ้นอยู่กับระดับความแม่นยำที่คุณต้องการ สำหรับการคุยกันส่วนใหญ่ (การเคี้ยวเศษผ้าในรายการวิทยุสมัครเล่น) การได้คำศัพท์ที่นี่และมีความผิดไม่ใช่ปัญหาจริงๆเพราะบริบทมีความสำคัญมากกว่าคำที่ใช้จริง สำหรับทราฟฟิกโทรเลขการสื่อสารฉุกเฉิน / ความทุกข์และอื่น ๆ โดยเฉพาะอย่างยิ่งถ้าข้อความถูกเข้ารหัสทุกคำและแน่นอนว่าตัวละครทุกตัวจะต้องคัดลอกอย่างถูกต้อง ( ไม่ใช่เพิ่งได้รับ แต่ยัง) โปรดทราบว่าฉันบอกว่า 200 c / นาทีเป็น "ไม่เคยได้ยิน"; ไม่ธรรมดา 100 c / นาทีอย่างไรก็ตามเป็นเรื่องธรรมดาในวงวิทยุสมัครเล่น
CVn

คำตอบ:


16

TCP และ IP (v4 & v6) สามารถแยกกันได้อย่างแน่นอนและหนึ่งไม่ได้หมายถึงอื่น ๆ ตามที่พิสูจน์โดยตัวอย่างของ TCP over IPX ( RFC 1791 )

อย่างไรก็ตาม TCP ไม่สามารถสร้างได้ผ่านโปรโตคอลเครือข่ายใด ๆ เหตุผลสองประการ:

  1. ไม่มีฟิลด์ขนาดเซ็กเมนต์ในส่วนหัว TCP (เฉพาะ Data Offset ซึ่งให้ขนาดของส่วนหัว TCP) ดังนั้น TCP จะทำงานเฉพาะกับโปรโตคอลเลเยอร์ที่ต่ำกว่าซึ่งมีข้อมูลเพียงพอที่จะคำนวณขนาดของเซ็กเมนต์ TCP (เช่นขนาดของเพย์โหลดของโปรโตคอลเลเยอร์ที่ต่ำกว่า) สมมติฐานนั้นเป็นจริงสำหรับ IPv4 ( RFC 791 ), IPv6 ( RFC 2460 ) และ IPX ( RFC 1791 ) แต่ไม่เป็นความจริงโดยทั่วไปเช่นไม่ใช่สำหรับผู้ให้บริการนก ( RFC 1149 ) (ดูหมายเหตุก)
  2. TCP ได้รับการออกแบบมาเพื่อทำงานผ่านโปรโตคอลเครือข่ายไร้สาย TCP อย่างมีประสิทธิภาพไม่สามารถทำงานกับโปรโตคอลเครือข่ายที่มุ่งเน้นการเชื่อมต่อบางอย่าง (เช่นบริการอัตราบิตคงที่ของ ATM) เนื่องจากฟังก์ชั่นการควบคุมอัตราการต่อสู้สองฟังก์ชั่นนำไปสู่ประสิทธิภาพที่ไม่ดีหรือไม่แน่นอน อีกตัวอย่างหนึ่งที่เลวลงคือ TCP ผ่านอุโมงค์ TCP

ข้อมูลจำเพาะ TCP, RFC 793ไม่ใช่แหล่งข้อมูลที่ดีในการตัดสินใจคำถามนี้เนื่องจากยอมรับว่าจะปล่อยให้อินเตอร์เฟสกับเลเยอร์ที่ต่ำกว่าส่วนใหญ่ไม่ได้ระบุ

หมายเหตุ a) สำหรับ TCP เพื่อรวบรวมดาตาแกรมที่พิมพ์ใหม่บนกระดาษแผ่นเล็ก ๆ (ไม่ว่าจะเป็นนกพิราบหรือเครือข่าย corvid ที่ฉลาดกว่า) ขนาดของเพย์โหลดจะต้องถูกเขียนในตำแหน่งมาตรฐาน อีกทางเลือกหนึ่งชั้นการปรับตัวสามารถกำหนดขนาดเซ็กเมนต์ สแกนเนอร์แบบออพติคอลที่ใช้ในการติดตั้งโฮสต์สแต็คของ spec ผู้ให้บริการนก ( RFC 1149 ) ได้รวมเลเยอร์การปรับแบบฮิวริสติกเข้าด้วยกัน แต่ก็ยังไม่มีเอกสาร


2
ความถูกต้องทางเทคนิค (เท่าที่ฉันสามารถบอกได้) อย่างละเอียดได้รับการสนับสนุนจากการอ้างอิงชัดเจนและมีน้ำใจ ฉันจะยกมันขึ้นหนึ่งกำมือฉันสามารถทำได้
Scott

2
ตัวอย่างนกนั้นชัดเจนและเฮฮา!
john

88

ฉันไม่ได้อ่านRFCทั้งหมดแต่ภาษาในส่วนที่ 1.4 ดูเหมือนว่าจะแนะนำว่าสามารถใช้โปรโตคอล "ระดับต่ำกว่า" ได้

อินเตอร์เฟสระหว่าง TCP และโปรโตคอลระดับล่างนั้นไม่ได้ระบุเป็นหลักยกเว้นว่ามีการสันนิษฐานว่ามีกลไกที่ทั้งสองระดับสามารถส่งผ่านข้อมูลแบบอะซิงโครนัสได้ซึ่งกันและกัน โดยทั่วไปแล้วหนึ่งคาดว่าโปรโตคอลระดับล่างเพื่อระบุอินเตอร์เฟซนี้ TCP ถูกออกแบบมาเพื่อทำงานในสภาพแวดล้อมทั่วไปของเครือข่ายที่เชื่อมต่อกัน โปรโตคอลระดับล่างซึ่งถูกสันนิษฐานตลอดทั้งเอกสารนี้คือ Internet Protocol


101
IP ตัวเองได้รับการดำเนินการมากกว่าเทคโนโลยีเครือข่ายจำนวนมากแม้นกพิราบสื่อสาร นกเหล่านี้ถูกนำมาใช้เพื่อแสดงการส่งแพ็คเก็ต ICMP Ping โดยมีการสูญเสียแพ็กเก็ต 55% (เห็นได้ชัดว่าเกิดจากข้อผิดพลาดของผู้ปฏิบัติงาน) และเวลาแฝงอยู่ระหว่างหนึ่งถึงสองชั่วโมง มันจะเป็นไปได้ที่จะเรียกใช้ TCP ด้านบนของที่ แต่การตั้งค่าการเชื่อมต่อจะต้องมีจำนวนมากของนก ....
RBerteig

21
เกี่ยวกับความคิดเห็นของ RBerteig; พิจารณานกพิราบผู้ให้บริการที่พกการ์ด mini-SDHC มีความแตกต่างระหว่างความหน่วงและปริมาณงาน :-)
CVn

16
@ MichaelKjörlingสิ่งนี้จะไม่ทำงานร่วมกับ RFC 1149:“ IP datagram ถูกพิมพ์ลงบนกระดาษม้วนเล็ก ๆ ”
kmkaplan

4
@kmkaplan นอกจากเดตาแกรมถูกพิมพ์บนฉลากของการ์ด SDHC มันเหมือนความคิดโบราณจากภาพยนตร์หลายเรื่อง - "โอ้จริง ๆ แล้วมันอยู่บนฮาร์ดไดรฟ์!"
จอนฮันนา

40
จะต้องมีช่องโหว่ขนาดใหญ่ในไฟร์วอลล์เพื่อให้ผู้ให้บริการนกผ่าน
squillman

76

Internet Protocol Suite

TCP ไม่สั้นสำหรับ TCP / IP

TCP / IP มักถูกใช้เป็นวิธีการจดชวเลข " ชุดโปรโตคอลอินเทอร์เน็ต " และมักจะมีโปรโตคอลมาตรฐานอื่น ๆ เมื่อคนพูด TCP / IP พวกเขามักจะรวม UDP ผ่าน IP (ซึ่งใช้ UDP แทน TCP) และโปรโตคอลอื่น ๆ อีกมากมายเช่น ARP, ICMP, DNS, SNMP และโปรโตคอลเลเยอร์แอปพลิเคชันอื่น ๆ

Application Layer

แอปพลิเคชันใช้โพรโทคอลเลเยอร์เช่น SMTP (สำหรับอีเมล) สิ่งเหล่านี้อยู่บนโปรโตคอล transport layer หนึ่งในสองโปรโตคอล - TCP และ UDP โปรโตคอลชั้นแอปพลิเคชันไม่กี่จะใช้อย่างใดอย่างหนึ่งหรือทั้งสองอย่างของ UDP และ TCP แต่ส่วนใหญ่จะใช้กับโปรโตคอลการขนส่งชั้นเดียวเท่านั้น

เลเยอร์การขนส่ง

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

เลเยอร์เครือข่าย

ในขณะที่มันอาจเป็นไปได้ในทางทฤษฎีที่จะใช้ TCP กับสิ่งอื่นที่ไม่ใช่ IP แต่ในทางปฏิบัติ TCP มักใช้งานผ่าน IP - โปรโตคอลอินเทอร์เน็ต IP ย้ายแพ็กเก็ตระหว่างเครือข่าย (คิดว่า IP เป็นการเชื่อมต่อหลาย LAN เข้าด้วยกัน)

Network Interface Layer

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

แผนภาพเลเยอร์ IP จาก bootdiscs.net


ภาคผนวก 1 - หมายเหตุเกี่ยวกับ Transport Layer Protocol

โปรโตคอลการขนส่งเลเยอร์เพียงอย่างเดียวในการใช้งานที่สำคัญในเครือข่ายที่ใช้ Internet Protocol Suite คือ TCP และ UDP

†เพียงเพื่อความสนุกฉันวัดปริมาณการใช้งานบน LAN ขนาดเล็ก (มาก) ซึ่งรวมถึง NetBIOS (ผ่าน TCP), SSH, Rsync, อีเมล, การอัปเดตซอฟต์แวร์, DNS, การพูดคุยแบบกล่อง Windows ทั่วไปและการรับส่งข้อมูลประเภทอื่น ๆสถิติลำดับขั้นของโปรโตคอล Wirshark

โปรดทราบว่าข้อความนี้ในคำถามที่พบบ่อยของ Google สำหรับโปรโตคอล QUIC

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

(ความสำคัญของฉัน)


1
พาฉันกลับไปที่ปี 1996 และโมเดล OSI en.wikipedia.org/wiki/OSI_model
ฤดี

มีโปรโตคอลการขนส่งเลเยอร์มากกว่า 2 รายการ: en.wikipedia.org/wiki/Transport_layer#Protocols
Stuart Blackler

@ StuartBlackler: จุดที่น่าสนใจขอบคุณ มี (นอกเหนือจาก TCP & UDP) ที่ไม่ได้อยู่ในสิ่งที่ฉันเรียกว่าหมวดหมู่ "ใช้ผู้เชี่ยวชาญขนาดเล็กหาย" และที่ใช้ผ่าน IP หรือไม่ ถ้าฉันวัดปริมาณการใช้งาน IP ที่จุดแลกเปลี่ยนทางอินเทอร์เน็ตสัดส่วนของโพรโทคอลเลเยอร์การขนส่งจะเป็นอย่างอื่นนอกเหนือจาก TCP หรือ UDP
RedGrittyBrick

ยกตัวอย่าง DCCP มันยังคงเป็นโปรโตคอลใหม่ แต่ฉันคิดว่าในอีกไม่กี่ปีข้างหน้าคุณจะเห็นแอปพลิเคชันเพิ่มเติมใช้โปรโตคอล เหตุผลที่ฉันไม่คิดว่ามันเป็นกระแสหลัก แต่เป็นเพราะฉันไม่เชื่อว่ามีการสนับสนุนใน Windows คิดว่ามันเป็น UDP พร้อมระบบควบคุมความแออัด มีประโยชน์มากสำหรับแอปพลิเคชั่นมากมายเช่น Skype และเกม :) ดูที่มัน เพื่อตอบคำถามของคุณอาจเป็นจำนวนเล็กน้อยในขณะนี้
Stuart Blackler

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

34

เหตุผลที่ TCP / IP นั้นเป็นตัวย่อที่ใช้กันทั่วไป (เมื่อเทียบกับพูดว่า UDP / IP หรือ SCTP / IP) เป็นเพราะทั้งสองโปรโตคอลได้รับการออกแบบร่วมกันและในกระดาษต้นฉบับโดย Vint Cerf และ Bob Kahn ทั้งสองแนวคิดคือ รวมเข้าด้วยกันเป็นโปรโตคอลเดียว หลังจากนั้นไม่นานพวกเขาก็ถูกแบ่งออกเป็น IP เพื่อจัดเส้นทางและ TCP เพื่อให้การควบคุมการไหลมัลติเพล็กซ์การตรวจจับข้อผิดพลาดและอื่น ๆ จนกระทั่งเมื่อหกปีต่อมาก็มีการแนะนำ UDP เพื่อให้เลเยอร์มัลติเพล็กซิ่ง "เบา" โอเวอร์เฮดที่เกี่ยวข้องกับ TCP

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

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


1
ถูกต้อง - เวอร์ชันแรกของ TCP รวมถึงการทำงานของ IP อาจเป็นอีกเหตุผลหนึ่งว่าทำไมคนถึงพูดว่า "TCP / IP" นั้นเป็นเวลาส่วนใหญ่เมื่อคุณกำลังส่งข้อมูลผ่าน IP คุณต้องการรับประกันว่าทั้งหมดจะได้รับการส่งมอบและในลำดับที่ถูกต้องดังนั้นคุณจึงใช้ TCP ตัวอย่างเช่นทราฟฟิก HTTP และ FTP ทั้งหมดใช้ TCP ข้อยกเว้นหนึ่งหมวดหมู่คือข้อมูลเรียลไทม์ ตัวอย่างเช่น Skype ใช้ UDP เนื่องจากคุณต้องการรับแพ็คเก็ตล่าสุดในการสนทนาแทนที่จะหยุดทุกอย่างเพื่อรับแพ็คเกจที่คุณพลาด
นาธานลอง

21

คุณสามารถเปลี่ยน IP เป็นอย่างอื่นได้ ในความเป็นจริงนั่นคือสิ่งที่คุณกำลังทำเมื่อคุณใช้ TCP ผ่าน IPv6 TCP ยังคงเป็น TCP แต่ IP คือ v6 แทนที่จะเป็น v4

AFAIK ไม่มีใครสร้างโพรโทคอลเลเยอร์ 3 อื่น ๆ เพื่อทำงานกับ TCP ด้านบน แต่ไม่มีเหตุผลที่คุณทำไม่ได้


9

TCP และ IP เป็นเหมือนเนยทั่วทั้งขนมปัง

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

ถาม อย่างไรก็ตามมันเป็นไปไม่ได้ที่ TCP จะสร้างบนโปรโตคอลอื่นนอกเหนือจาก IP หรือไม่

ตอบ ใช่เป็นไปได้ ฉันชอบรหัสมอร์สและตัวอย่างนกพิราบของ TCP ที่ไม่มี IP


5

ฉันเคยได้ยินเสมอว่า TCP สั้นสำหรับ TCP / IP

จริงๆแล้วมันหมายถึงTransmission Control Protocol ผ่าน Internet Protocol

และพวกเขาหมายถึงสิ่งเดียวกัน

ไม่ถูกต้อง

อันดับแรกอีเธอร์เน็ตเป็นระบบฮาร์ดแวร์ระดับต่ำที่ควบคุมการทำงานของชิ้นส่วนฮาร์ดแวร์ที่เกิดขึ้นจริง

ต่อไปให้คิดว่าIPเป็นระบบโทรศัพท์หรือสัญญาณไฟจราจร มันให้การควบคุมพื้นฐานของระบบเชื่อมต่อสองจุดเข้าด้วยกัน

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

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

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

มีคำอธิบายที่นับไม่ถ้วนกับอุปมาและรายละเอียดทางเทคนิคที่มีอยู่โดยเฉพาะอย่างยิ่งในรูปแบบวิดีโอ DifferenceBetween.net มีเนื้อหาที่ดีเป็นพิเศษเกี่ยวกับเรื่องนี้

อย่างไรก็ตามมันเป็นไปไม่ได้ที่ TCP จะถูกสร้างขึ้นบนโปรโตคอลอื่นนอกเหนือจาก IP หรือไม่

ใช่คุณสามารถสร้างระบบสำรองให้กับ TCPที่ใช้ IP ได้ ดูรายละเอียดบางอย่างในInternet Protocol Suite


13
เป็นการเข้าใจผิดเล็กน้อยที่จะกล่าวว่า IP จัดเตรียมไว้สำหรับ "เชื่อมต่อ" สองจุดเข้าด้วยกัน IP จัดเตรียมวิธีการส่งแต่ละแพ็กเก็ตแยกจากเครื่องหนึ่งไปอีกเครื่องหนึ่ง แต่ละแพ็คเก็ตเป็นอิสระจากคนอื่น ๆ ทั้งหมด TCP แสดงภาพลวงตาของการเชื่อมต่ออย่างต่อเนื่องซึ่งเป็นลำดับของแพ็กเก็ตที่ส่งผ่าน IP
ไวซาร์ด

4
IP ไม่เกี่ยวข้องกับฮาร์ดแวร์หรือสัญญาณจริง จัดการโดยเทคโนโลยีระดับล่างเช่นอีเธอร์เน็ต
Wyzard

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

3
@synetech คำถามไม่ได้ "อย่างอื่นสามารถใช้กับ IP" มันคือ "สามารถใช้ TCP กับสิ่งอื่น" เช่นไม่มี IP
Wyzard

2
> the fact that !TCP can go over IP does not necessarily mean TCP can go over !IP Huh?psusi พยายามฉลาดโดยใช้ "!" เป็น "not operator" ความคิดเห็นของเขาควรอ่านเป็น: "ความจริงที่ว่าสิ่งที่ไม่ใช่ TCP สามารถผ่าน IP ไม่จำเป็นต้องหมายความว่า TCP สามารถผ่านสิ่งที่ไม่ใช่ IP" มันทำในการอ้างอิงถึงประโยคสุดท้ายของคำตอบของคุณซึ่งแสดงให้เห็นการดำรงอยู่ของ "ระบบสำรองเพื่อ TCP" อย่างไรก็ตามการแสดงให้เห็นว่ามีทางเลือกอื่นสำหรับ TCP อยู่ไม่ได้แปลว่าจะบอกเป็นนัยว่าทางเลือกอื่นสำหรับ IP นั้นมีอยู่
โกหก Ryan

5

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

IP เป็นโปรโตคอลเลเยอร์ 3 มันให้การขนส่งจากโฮสต์หนึ่งไปยังอีก

ตราบใดที่มีโปรโตคอลที่สามารถโฮสต์การถ่ายโอนข้อมูล TCP จะทำงาน

ดังนั้น TCP สามารถดำเนินการผ่านโปรโตคอลใด ๆ แต่เราได้ทำ IP เท่านั้น IP นั้นง่ายและทำงานได้

ไม่จำเป็นสำหรับโปรโตคอล Layer 3 อื่น


1
แล้ว IPv6 ล่ะ?
curiousguy

1
แล้ว IPv6 ล่ะ? มันเป็นแค่ IP อินเตอร์เฟสของการส่งและรับแพ็กเก็ตยังคงเหมือนเดิม ดังนั้น TCP สามารถใช้ฟังก์ชั่นเดียวกันได้ ระบบปฏิบัติการสามารถแทนที่ตัวชี้ฟังก์ชั่นจาก IPv4 และ IPv6 และมันจะยังคงทำงาน ฉันไม่แน่ใจว่าคุณกำลังพูดอะไรอยู่ที่นี่?
SurenNihalani

3
IPv6 และ IPv4 นั้นคล้ายคลึงกันโดยมีอินเตอร์เฟสที่คล้ายกันสำหรับเลเยอร์ด้านบน แต่แน่นอนว่าไม่ใช่โปรโตคอลเดียวกันและไม่เทียบเท่ากับการทำงานอย่างเคร่งครัด
curiousguy

คุณอาจแกล้งทำเป็นว่า UDP เป็นโปรโตคอลเดียวกันกับ IPเพราะมันมีส่วนต่อประสานที่คล้ายกันมากกับเลเยอร์ด้านบน: ตั้งค่าที่อยู่ในเครื่องปลายทางและระยะไกลปลายทางส่งและรับแพ็กเก็ต ...
2012

3

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

รุ่นที่เรียบง่าย: โปรโตคอลเป็นเหมือนกล่องที่เราใส่ข้อความของเรา กล่องเหล่านั้นมีขนาดแตกต่างกันและคุณใส่ข้อความของคุณลงในกล่องที่เล็กที่สุดจากนั้นกล่องที่เล็กที่สุดในกล่องที่ใหญ่กว่า ฯลฯ การเลือกชุดโปรโตคอลคือการเลือกกล่องที่คุณจะใช้สำหรับแต่ละกล่อง " เลเยอร์ "ที่ล้อมรอบข้อความของคุณ

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

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

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


2

ฉันคิดว่าเป็นไปได้ที่จะเรียกใช้ TCP ผ่านการขนส่ง IPX หากคุณต้องการย้อนยุค


1
คุณอาจคิดว่าเมื่อ IPX ถูก tunnelled ผ่าน TCP / IP ซึ่งไม่แปลกใจไม่นาน
andygavin


2

อย่างไรก็ตามมันเป็นไปไม่ได้ที่ TCP จะถูกสร้างขึ้นบนโปรโตคอลอื่นนอกเหนือจาก IP หรือไม่

นอกเหนือจาก TCP / IPv4 และ TCP / IPv6 แบบดั้งเดิมแล้วมีการออกแบบโปรโตคอลทดลองสองสามตัวอย่างเช่น:

เกือบ TCP ผ่าน UDP (atou)

ในฐานะที่เป็นส่วนหนึ่งของความพยายามของ Net100 และ Probe ในการปรับปรุงการถ่ายโอนจำนวนมากผ่านเครือข่ายความเร็วสูงและเวลาแฝงที่สูงเราจึงได้พัฒนา TCP ที่เป็นเครื่องมือและปรับแต่งได้ซึ่งทำงานบน UDP การขนส่งเหมือน UDP TCP ทำหน้าที่เป็นสายรัดทดสอบสำหรับการทดลองกับตัวควบคุมที่เหมือน TCP ที่ระดับแอปพลิเคชันที่คล้ายกับ TReno

และiproxy: การเรียกใช้บริการ TCP บน UDPซึ่งสนุกกว่า:

iproxy ประกอบด้วยพร็อกซีฝั่งไคลเอ็นต์และพร็อกซีฝั่งเซิร์ฟเวอร์ที่อนุญาตให้บริการ TCP / IP ตามอำเภอใจสามารถเรียกใช้ผ่าน Broadcast, Multicast หรือ Unicast UDP เดิมทีคิดว่าเป็นวิธีการกำหนดค่าเซิร์ฟเวอร์ที่ไม่ได้รับที่อยู่ IP บน LAN โดยใช้ส่วนต่อประสานทางเว็บ

ดังนั้นคุณจะเห็น: TCP บน unicast UDP และ TCP บนbroadcast หรือ multicast UDP !

AFAIK เท่านั้น TCP / IPv4 และ TCP / IPv6 เพลิดเพลินกับการปรับใช้ขนาดใหญ่


ใช่ แต่นั่นคือ UDP ผ่าน IP ฉันเห็นสิ่งที่คุณทำที่นั่น ...
Tamara Wijsman

@TomWijsman ใช่มันเป็น TCP / UDP / IP
curiousguy

2

คำตอบคือไม่! ตัวอย่างเช่นมี RFC เก่าที่อธิบาย TCP ผ่าน IPX: http://tools.ietf.org/html/rfc1791

สำหรับผู้ที่มีความจำสั้น IPX เป็นโปรโตคอล Novell Netware: http://en.wikipedia.org/wiki/Internetwork_Packet_Exchange


ฉันรู้ว่าคำตอบนั้นเก่า แต่ถ้าเป็นไปได้โปรดอธิบายเพิ่มเติมเกี่ยวกับคำตอบของคุณและหลีกเลี่ยงการโพสต์ลิงก์เป็นคำตอบ / แหล่งที่มาธรรมดา ถ้าลิงก์หายไปคำตอบของคุณก็คือ
Lorenzo Von Matterhorn

2

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

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

สิ่งนี้อนุญาตให้โปรโตคอลข้ามข้อ จำกัด ของการแวะผ่าน NAT โดยไม่ต้องลงทะเบียนพอร์ตการแปล UPnP สำหรับโฮสต์ที่เฉพาะเจาะจง อนุญาตให้ปรับ MTU และ MSS ได้อย่างอิสระปรับให้เหมาะสมสำหรับไคลเอนต์แต่ละตัวแทนโดยแต่ละเราเตอร์ที่ใช้ร่วมกันระดับกลาง โปรโตคอลการกำหนดเส้นทางอื่น ๆ เป็นไปได้ (รวมถึงการจัดส่งผ่าน Multicast และเครือข่ายการออกอากาศ) และคุณมีทางเลือกของกลไกความปลอดภัย

ตัวอย่างการใช้งานคือ Gogo6.net (ซึ่งใช้ช่องทางการส่งผ่าน IPv6 ผ่านเซสชัน TCP โดยใช้การปรับใช้ TCP ผ่าน UDP v4 อีกครั้ง (ใช้งานได้กับเราเตอร์ที่บ้านส่วนใหญ่ที่ยังมีที่อยู่ IPv4 เท่านั้น) และไม่สนับสนุนวิธี UPnP เสมอ โดยไม่จำเป็นต้องกำหนดค่าโดยผู้ใช้โดยใช้หมายเลขพอร์ตคงที่เฉพาะกับแอปพลิเคชันแม้ว่าจะไม่ได้ทำงานอยู่ก็ตาม)

ตัวอย่างอื่นคือการห่อหุ้ม TCP ผ่าน HTTP (หรือ HTTPS) เวอร์ชัน 1.1 พร้อมด้วยส่วนขยาย "สตรีม" ดั้งเดิม VPN ส่วนใหญ่ที่อนุญาตการเชื่อมต่อเครือข่ายผ่านอินเทอร์เน็ตจะทำเช่นเดียวกัน บริดจ์ยังสามารถสรุปหลายโปรโตคอล: Ethernet, PPP, IPv4 และ IPv6 (ขยายส่วน LAN ท้องถิ่นหรืออีเทอร์เน็ตเท่านั้น), NetBEUI / LanMan, การค้นหาเราเตอร์ (ภายในเครือข่ายบริดจ์) รวมถึงในโหมดดิบ (อนุญาต DHCPv4 หรือ DHCPv6) เครือข่าย bridged ใช้ HTTPS เนื่องจากการห่อหุ้มผ่าน HTTPS ยังช่วยให้การเข้ารหัสและการรับรองความถูกต้องสำหรับการสร้างและรักษาความปลอดภัยของบริดจ์ แต่ไม่จำเป็นต้องมีการตรวจสอบ / เข้ารหัสแบบ end-to-end สำหรับไคลเอนต์และเซิร์ฟเวอร์ผ่านเครือข่าย bridged และเนื่องจากเราเตอร์ และ HTTPS


1

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

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