127.0.0.1 เร็วแค่ไหน?


36

ฉันสงสัยว่ามันเชื่อมโยงกับ NIC ของฉันเลยหรือว่า OS หรือไดรเวอร์ดักจับและส่งคืนข้อมูลที่ส่งไปยังที่อยู่ลูปแบ็คทันทีหรือไม่

สัญญาณเดินทางไปยัง NIC ของฉันจริง ๆ หรือไม่แล้ว NIC ส่งคืน


5
เรื่องไม่สำคัญยิ่งกว่า 127/8 ทั้งหมดมีไว้เพื่อวนซ้ำ
Jacob

2
มันน่าสนใจที่จะเห็นทรูพุตและ / หรือเวลาแฝงสำหรับการวนลูปแบ็คถ้าใครมีมัน
NPE

3
แม้ว่าอิเล็กตรอนจะเดินทางไปที่นั่น NIC ก็อาจจะไม่ได้อิเล็กตรอนกลับมาเหมือนกัน :)
Halil Özgür

:) ใช่ฉันควรพูดสัญญาณ ..

1
ไม่มีสถานที่เช่น 127.0.0.1

คำตอบ:


29

คุณไม่ได้พูดถึงระบบปฏิบัติการที่เฉพาะเจาะจง แต่ส่วนใหญ่สิ่งที่เกิดขึ้นคือข้อมูลเดินทางลงในสแต็กจนกว่าจะได้รับ IP ณ จุดที่มันถูกส่งกลับมาค่อนข้างมาก นั่นหมายถึงการขยายใหญ่มาก แต่หมายความว่ากระบวนการทั้งหมดมักจะถูกผูกไว้กับ CPU ดังนั้นประสิทธิภาพจึงเชื่อมโยงโดยตรงกับความเร็วของ CPU และประสิทธิภาพของสแต็ก ในแง่การใช้งานจริงซีพียูและระบบปฏิบัติการที่ทันสมัยควรสามารถรับส่งข้อมูลย้อนกลับ 'ตีกลับ' ได้เร็วกว่า 40Gbps - ซึ่งเป็น NIC ที่เร็วที่สุดที่ฉันคิดว่าฉันสามารถซื้อได้วันนี้ หวังว่านี่จะช่วยได้


39

ไม่มีทราฟฟิก 127.0.0.1 ทั้งหมดที่ไม่เคยเข้าชมเครือข่ายทางกายภาพมันได้รับการประมวลผลโดยอะแดปเตอร์วนกลับในเคอร์เนล


ดังนั้นนั่นหมายความว่าเร็วสุด ๆ :)

@Mrk Mnl ใช่คุณเดิมพัน สำหรับ ping 00ms ของฉันโดยใช้ XAMP 1.7.4

12
ที่อยู่ในพื้นที่ใด ๆ จะไม่เข้าถึงเครือข่ายทางกายภาพ 127.0.0.1 เพียงหนึ่งในนั้น
alvosu

1
"การกดปุ่มเครือข่ายทางกายภาพ" นั้นค่อนข้างคลุมเครือเนื่องจากสามารถส่งไปยัง NIC ของคุณได้โดยไม่ถูกส่งไปและไม่ชนเครือข่ายทางกายภาพอย่างไรก็ตามหากเคอร์เนลส่งคืนเช่น OS แสดงให้เห็นว่าไม่ได้ไปที่ NIC

12

คุณอาจสนใจฟีเจอร์ "Loopback Fast Path" ที่ Microsoft เพิ่มใน Windows 8 และ Windows Server 2012 ดู:

http://blogs.technet.com/b/wincat/archive/2012/12/05/fast-tcp-loopback-performance-and-low-latency-with-windows-server-2012-tcp-loopback-fast- path.aspx

นอกจากนี้ยังมีภาพประกอบของเส้นทางที่ลูปแบ็คใช้ทั้งที่มีและไม่มีการปรับให้เหมาะสม


7

127.0.0.1 ไม่เร็วกว่า ip ท้องถิ่นอื่น ๆ ip แบบโลคอลเร็วเพราะมันไม่ได้ใช้อุปกรณ์ทางกายภาพและ 2 เลเยอร์ (มันไม่เคยกระทบ NIC ของคุณ)

iperf -c 109.191.109.xxx 1111 -t 5
iperf: ignoring extra argument -- 1111
------------------------------------------------------------
Client connecting to 109.191.109.241, TCP port 5001
TCP window size: 49.7 KByte (default)
------------------------------------------------------------
[  3] local 109.191.109.xxx port 32840 connected with 109.191.109.xxx port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0- 5.0 sec  4.72 GBytes  8.12 Gbits/sec

$ iperf -c 127.0.0.1 1111 -t 5
iperf: ignoring extra argument -- 1111
------------------------------------------------------------
Client connecting to 127.0.0.1, TCP port 5001
TCP window size: 49.7 KByte (default)
------------------------------------------------------------
[  3] local 127.0.0.1 port 56482 connected with 127.0.0.1 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0- 5.0 sec  4.62 GBytes  7.94 Gbits/sec

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

ยอดเยี่ยมสิ่งที่ฉันกำลังมองหา ฉันต้องการเห็นขีด จำกัด สูงสุดของฉันเมื่อเรียกใช้ไคลเอ็นต์ไปยังเซิร์ฟเวอร์ในพื้นที่ ... ขอบคุณสำหรับคำตอบ !!!!
Dean Hiller

@symcbean: คุณสามารถอธิบายรายละเอียดเกี่ยวกับ "ความผิด" ของคำตอบนี้ได้ไหม?
Sam Axe

5

ขึ้นอยู่กับว่าคุณใช้ระบบปฏิบัติการใด แต่ Windows 2000 มีข้อผิดพลาดในจุดที่คำขอบนอะแดปเตอร์วนกลับจะช้า มีเรื่องไม่สำคัญสำหรับคุณ!

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


2

ฉันอยากจะบอกว่าคุณหาคำตอบของคุณในชื่อของมันเอง ชื่อบอกว่า: "Local Loopback Address" ซึ่งในตัวของมันเองหมายความว่าเครือข่ายไม่เคยเข้ามาแทรกแซงในกระบวนการและการร้องขอจะวนกลับภายในเครื่อง


ฉันกำลังจะโพสต์สิ่งเดียวกันเมื่อฉันสังเกตเห็นว่าคุณชนะฉันมัน แน่นอน 'ที่อยู่ย้อนกลับ' ควรให้คำแนะนำ :)
luis.espinal

คำถามคือความรวดเร็วฉันรู้ว่ามันทำอะไร

ชื่อนี้ไม่ได้บอกอะไรคุณเลย ตัวอย่างเช่นฟิสิคัล RS-232 ลูปแบ็คจะช้าพอ ๆ กับพอร์ตอนุกรมของคุณในขณะที่ถ้าคุณต้องนำไปใช้ในระดับไดรเวอร์มันจะเร็วขึ้น แน่นอน localhost จะได้รับการจัดการในซอฟต์แวร์ แต่คุณไม่สามารถบอกได้ว่าเพียงแค่จากชื่อ "loopback" ในกรณีที่คุณยังเด็กเกินไปที่จะรับรู้สิ่งเหล่านี้ฉันให้google.com/search?q=rs232+loopback&tbm=isch
aij

1

ถ้าคุณอยู่บน Linux ...

พิมพ์ "ifconfig -a" เป็นรูท ...

สังเกตเห็นบรรทัด "ขัดจังหวะ" ใน NICs ทั้งหมด ... สังเกตว่าไม่มีบรรทัด "ขัดจังหวะ" บน "lo" ... ซึ่งหมายความว่ามันไม่ได้มีการขัดจังหวะที่กำหนดไว้ดังนั้นสวยเร็วอย่างรวดเร็ว ;-)


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