คำถามติดแท็ก tcp

TCP ย่อมาจาก Transmission Control Protocol และเป็นหนึ่งในโปรโตคอลหลักของ Internet Protocol Suite TCP เสริม Internet Protocol (IP) ดังนั้นชุดทั้งหมดจะถูกเรียกว่า TCP / IP

4
จำลองการเชื่อมต่อช้าระหว่างเครื่องเซิร์ฟเวอร์อูบุนตูสองเครื่อง
ฉันต้องการจำลองสถานการณ์ต่อไปนี้: เนื่องจากฉันมีเครื่องเซิร์ฟเวอร์อูบุนตู 4 เครื่อง A, B, C และ D ฉันต้องการลดแบนด์วิดท์เครือข่ายลง 20% ระหว่างเครื่อง A และเครื่อง C และ 10% ระหว่าง A และ B วิธีการ ทำสิ่งนี้โดยใช้เครื่องมือการจำลองเครือข่าย / การควบคุมปริมาณ

1
TCP แพ็กเก็ตถูกส่งใหม่ 7 ครั้งเมื่อ sysctl tcp_retries1 ถูกตั้งค่าเป็น 3 - เพราะเหตุใด
Ubuntu 12.04 ฉันพยายามทำความเข้าใจให้ดีขึ้นว่ากี่ครั้งที่ TCP จะพยายามส่งแพ็กเก็ตใหม่เมื่อไม่ได้รับการยืนยันปลายทางที่ได้รับ หลังจากอ่านหน้าคน tcpดูเหมือนว่านี่ถูกควบคุมโดย sysctl tcp_retries1: tcp_retries1 (integer; default: 3) The number of times TCP will attempt to retransmit a packet on an established connection normally, without the extra effort of getting the network layers involved. Once we exceed this number of retransmits, we first have the …

1
ไม่มีการตอบสนองต่อแพ็คเก็ต SYN บางตัวเมื่อเปิดใช้งานการประทับเวลา
ฉันมีเซิร์ฟเวอร์ TCP ฟังบนเครื่อง ("เซิร์ฟเวอร์") ที่ใช้งาน Ubuntu 12.04.3 (เคอร์เนล 3.8.0-31-generic) ได้รับการเชื่อมต่อจาก 2 เครื่องไคลเอนต์ที่แตกต่างกัน Machine A กำลังเรียกใช้ Ubuntu 12.04.4 (3.11.0-17-generic) และเครื่อง B กำลังเรียกใช้ Ubuntu 11.10 (3.0.0-32-server) หากเปิดใช้งานการประทับเวลา TCP บนเซิร์ฟเวอร์ (sysctl net.ipv4.tcp_timestamps = 1) ดังนั้นบางครั้ง SYN แพ็กเก็ตจากเครื่อง A จะถูก "เพิกเฉย" การใช้ tcpdump บนเซิร์ฟเวอร์ (ในโหมดที่ไม่มี promiscuous) ฉันสามารถเห็น SYN มาถึงแล้วพร้อมกับ checksums ที่ถูกต้อง - ไม่มีการตอบสนอง - …
9 tcp  timestamp  syn 

1
สาเหตุหลักของข้อผิดพลาด“ curl: (56) SSL อ่าน: errno -5961” ข้อผิดพลาด
ฉันกำลังประเมินความล้มเหลวของ SSL บางอย่างและสังเกตว่าเมื่อฉันใช้curlกับหนึ่งในไซต์ที่ล้มเหลวฉันได้รับcurl: (56) SSL read: errno -5961; อย่างไรก็ตามการค้นหา google ของฉันสำหรับข้อผิดพลาดนั้นไม่ได้แสดงสาเหตุของความล้มเหลว openssl คำถาม : การขดล้มเหลวหมายความว่าcurl: (56) SSL read: errno -5961อย่างไร? ฉันกำลังรวมที่สมบูรณ์curlด้านล่าง ... [mpenning@mpenning-lnx ~]$ curl -vk https://192.0.2.168/ * About to connect() to 192.0.2.168 port 443 (#0) * Trying 192.0.2.168... connected * Connected to 192.0.2.168 (192.0.2.168) port 443 (#0) * Initializing …
9 ssl  tcp  timeout  curl 

1
ทำไม WireShark จึงคิดว่าเฟรมนี้เป็นส่วน TCP ของ PDU ที่ประกอบขึ้นใหม่
โปรดหาไฟล์ pcap ขนาดเล็กที่นี่เพื่ออธิบายปัญหาของฉัน ฉันมี TCP handshake สามทางแล้วตามด้วยการเข้าสู่ระบบ FIX สองครั้ง (แก้ไขเป็นโปรโตคอลที่ใช้ในการซื้อขาย.) เข้าสู่ระบบการแก้ไขครั้งแรก (กรอบ 4) คือการตีความและการแยกวิเคราะห์เพียงแค่ปรับโดย WireShark แต่การเข้าสู่ระบบที่สอง (กรอบ 6) TCP segment of a reassembled PDUจะถูกตีความว่าเป็น อย่างไรก็ตาม frame 6 ไม่ใช่ส่วน TCP ของ PDU ที่ประกอบขึ้นใหม่ มันมี TCP PDU เต็มรูปแบบที่ควรตีความและแยกวิเคราะห์เป็นเข้าสู่ระบบแก้ไข ฉันได้ตรวจสอบแล้วว่าลำดับหมายเลขหมายเลข ACK ความยาวทั้งหมดของ IP และอื่น ๆ นั้นดีทั้งหมด ทำไมเฟรม 6 ตีความเป็นส่วน TCP ของ PDU ที่ประกอบขึ้นใหม่?
9 tcp  wireshark 

3
ลดปริมาณงาน TCP จากเซิร์ฟเวอร์ 1Gbps กว่าเซิร์ฟเวอร์ 100Mbps ผ่าน RTT ขนาดใหญ่
เรามีโครงสร้างพื้นฐานกระจายอยู่ในสถานที่สำคัญไม่กี่แห่งทั่วโลก - สิงคโปร์ลอนดอนและลอสแองเจลิส RTT ระหว่างสถานที่สองแห่งนั้นมีระยะ> มากกว่า 150 มิลลิวินาที เมื่อเร็ว ๆ นี้เราได้อัปเกรดเซิร์ฟเวอร์ทั้งหมดเพื่อใช้ลิงก์ 1Gbps (จาก 100Mbps) เราได้ทำการทดสอบบน TCP ระหว่างเซิร์ฟเวอร์ในสถานที่ต่างกันและได้เห็นผลลัพธ์ที่น่าประหลาดใจ ผลลัพธ์เหล่านี้สามารถทำซ้ำได้อย่างสมบูรณ์ ลอสแองเจลิส (100Mbps) ถึงลอนดอน (100Mbps): ~ 96Mbps ปริมาณงาน ลอสแองเจลิส (100Mbps) ถึงลอนดอน (1Gbps): ~ 96Mbps ปริมาณงาน ลอสแองเจลิส (1Gbps) ถึงลอนดอน (100Mbps): ความเร็ว10-40Mbps (ระเหย) ลอสแองเจลิส (1Gbps) ถึงลอนดอน (1Gbps): ความเร็ว10-40Mbps (ระเหย) ลอสแองเจลิส (1Gbps) ถึงลอสแองเจลิส (1Gbps):> อัตราความเร็ว 900Mbps …

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

2
สิ่งที่เป็นไปได้ในการตั้งค่าขนาดใหญ่ (มาก) initcwnd สำหรับการเชื่อมต่อแบนด์วิดธ์สูง?
ฉันได้ทดลองกับพารามิเตอร์ TCP ใน Linux (ด้วยเคอร์เนล 3.5) โดยทั่วไปเกี่ยวกับการเชื่อมต่อนี้: เซิร์ฟเวอร์: Gigabit อัปลิงค์ในดาต้าเซ็นเตอร์แบนด์วิดท์จริง (เนื่องจากการแบ่งปันอัปลิงค์) ประมาณ 70 MB / s เมื่อทดสอบจากดาต้าเซ็นเตอร์อื่น ไคลเอนต์: กิกะบิตท้องถิ่น LAN เชื่อมต่อกับไฟเบอร์ 200mbit การดึงไฟล์ทดสอบมาถึง 20 MB / s Latency: ประมาณ 50ms ไปกลับ รีโมตเซิร์ฟเวอร์ใช้เป็นเซิร์ฟเวอร์ไฟล์สำหรับไฟล์ในช่วง 10 ถึง 100mb ฉันสังเกตเห็นว่าการใช้ initcwnd จาก 10 เวลาในการถ่ายโอนไฟล์เหล่านี้ได้รับผลกระทบอย่างมากจาก TCP ช้าเริ่มต้นใช้เวลา 3.5 วินาทีในการโหลด 10mb (ความเร็วสูงสุดถึง: 3.3 MB / s) …

2
TIME_WAIT ของฉันอยู่ที่ไหนใน Mac OS X
ไม่มีTIME_WAITใน Mac OS X โดยปกติเมื่อปิดการเชื่อมต่อ TCP ซ็อกเก็ตด้านข้างที่close()เรียกว่าครั้งแรกจะถูกทิ้งให้อยู่ในTIME_WAITสถานะ เมื่อเพื่อนคนหนึ่งเป็นเครื่อง Mac OS X (Lion) TIME_WAITจะไม่มีรายชื่ออยู่netstat -anบน Mac หากclose()มีการเรียกครั้งแรกทางด้าน Mac อย่างไรก็ตามดูเหมือนว่าซ็อกเก็ตอยู่ในTIME_WAITสถานะจริงเนื่องจากพยายามโทรlisten()อีกครั้ง (โดยไม่ใช้ตัวเลือกซ็อกเก็ตSO_REUSEADDR) ทำให้listen()ล้มเหลว กำลังรอ 2 * MSL (อายุการใช้งานส่วนสูงสุดซึ่งคือ 15 วินาทีบน Mac OS X Lion ตามที่รายงานโดยsysctl net.inet.tcp.msl) จะล้างTIME_WAITสถานะและlisten()สามารถเรียกได้อีกครั้งโดยไม่มีข้อผิดพลาด ทำไมฉันไม่สามารถดูซ็อกเก็ตในTIME_WAIT? การทดสอบ ต่อไปนี้เป็นโปรแกรมทดสอบอย่างง่ายสองโปรแกรมใน Python เซิร์ฟเวอร์ #!/usr/bin/env python import socket HOST = '' PORT = 50007 l …

2
บังคับให้ส่งต่อ DNS ไปยังโหมด TCP
ฉันได้ตั้งค่า DNS-server บน SLES10 (ปัจจุบันผูก 9.6) บนเซิร์ฟเวอร์หลาย homed เซิร์ฟเวอร์นี้สามารถสอบถามจากเครือข่ายภายในทั้งหมดและส่งคำตอบสำหรับเครือข่ายภายในทั้งหมด เรามี DNS "master" สองโซนแยกกัน แต่ละโซนเหล่านี้มีการให้บริการโดย Windows-DNS-servers ที่เชื่อถือได้จำนวนหนึ่ง ตอนนี้ linux-server ของฉันเป็นเซิร์ฟเวอร์ DNS รองสำหรับหนึ่งในโซนเหล่านี้ (โซนภายในส่วนตัว) และทำหน้าที่เป็นตัวส่งต่อสำหรับโซนอื่น (โซนภายในสาธารณะ) จนกระทั่งเมื่อเร็ว ๆ นี้การตั้งค่านี้ทำงานได้โดยไม่มีปัญหา ตอนนี้ฉันได้รับ - เมื่อสอบถามโซนภายในสาธารณะ (เช่นโดยhostคำสั่งบนไคลเอนต์ linux) ข้อความแสดงข้อผิดพลาด ;; ถูกตัดทอนพยายามใหม่ในโหมด TCP wireshark-dump เปิดเผยสาเหตุของสิ่งนี้: เคียวรีแรกออกไปในโหมด UDP คำตอบไม่เหมาะกับ UDP (เนื่องจากรายการ longish ของ NS ที่มีสิทธิ์แบบยาว) จากนั้นจะลองใหม่ในโหมด TCP ส่งคำตอบที่ถูกต้อง …

3
วิธีง่ายๆในการ "แก้ไข" การรับส่งข้อมูลที่มาจากโฮสต์ tcp (linux)
ฉันต้องทำการปรับเปลี่ยนเล็กน้อยเพื่อทราฟฟิกขาเข้าจากโฮสต์ tcp ที่รู้จัก: พอร์ตก่อนกระบวนการที่จัดการการเชื่อมต่อจะได้รับกระแสข้อมูล ตัวอย่างเช่นให้ 192.168.1.88 เป็นรีโมตโฮสต์ที่รันเว็บเซิร์ฟเวอร์ ฉันต้องการสิ่งนั้นเมื่อกระบวนการในโลคัลโฮสต์ของฉันรับข้อมูลจาก 192.168.1.88:80 (เช่นเบราว์เซอร์) ข้อมูลจะถูกเปลี่ยนก่อนแทนที่text-Aด้วยtext-Bเช่นนี้ 127.0.0.1: ... เชื่อมต่อกับ 192.168.1.88:80 127.0.0.1: ... ส่งไปที่ 192.168.1.88:80: GET / 192.168.1.88:80 ส่งไปที่ 127.0.0.1: ... : HTTP/1.0 200 OK Content-Type: text/plain Some text-A, some other text ข้อมูลนั้นถูกดักโดยระบบและส่งไปยังโปรแกรมที่มีเอาต์พุต: HTTP/1.0 200 OK Content-Type: text/plain Some text-B, some other text ระบบจะให้ข้อมูลที่เปลี่ยนแปลงดังนั้นกับการจัดการกระบวนการ 127.0.0.1: ... …

4
เชื่อมต่ออุโมงค์ TCP อีกครั้งโดยอัตโนมัติ
ฉันมีการเชื่อมต่อเครือข่ายที่ไม่น่าเชื่อถือระหว่างเครื่องสองเครื่อง: บางครั้งการเชื่อมต่อ TCP ที่ทำงานอยู่จะตกเนื่องจากเหตุผลที่อยู่นอกเหนือการควบคุม ฉันต้องการสร้างการเชื่อมต่อ TCP ที่เชื่อถือได้ระหว่างเครื่องสองเครื่อง หากเครือข่ายเป็นที่เชื่อถือได้ผมทำงานเพียงssh -L 1234:localhost:1234 remotehostกับการฟังเซิร์ฟเวอร์บนพอร์ต 1234 บนและชี้ให้ลูกค้าที่remotehost localhost:1234แต่ถ้าการเชื่อมต่อ ssh ตายดังนั้นการเชื่อมต่อที่ส่งต่อจะ ฉันจะจัดการคืนค่าการเชื่อมต่อระหว่างไคลเอนต์และเซิร์ฟเวอร์โดยอัตโนมัติได้อย่างไร? ที่ไม่ใช่การแก้ปัญหา: นี่ไม่ใช่สำหรับแอปพลิเคชันแบบอินเทอร์แอคทีฟดังนั้นหน้าจอจึงไม่สามารถใช้ได้ นี้ไม่ได้เป็นเพียงเกี่ยวกับการเชื่อมต่อ SSH อุโมงค์โดยอัตโนมัติลาautossh ฉันต้องการดำเนินการต่อโดยใช้การเชื่อมต่อ TCP แบบช่องสัญญาณเดียวกันไม่ใช่เริ่มใหม่ โดยหลักการแล้ว VPN จะใช้เล่ห์เหลี่ยม แต่ดูเหมือน overkill เมื่อฉันต้องการการเชื่อมต่อ TCP และฉันต้องการโซลูชันที่ใช้งานได้แม้ว่าฉันจะไม่ได้รับอนุญาตรูททั้งสองด้าน ฉันมีหน่วยความจำสลัวของโปรแกรมที่เรียกrocksว่าทำอย่างนั้น แต่ดูเหมือนว่าจะหลุดจากหน้าเว็บ ฉันสนใจ Linux เป็นส่วนใหญ่ทั้งสองด้าน (แต่ฉันคาดหวังว่าโปรแกรมในระดับนี้จะพกพาไปยัง unices อื่น ๆ ) แต่ถ้าคุณรู้ว่าโปรแกรมที่ทำงานระหว่าง QNX และ VMS นั้นดีกว่าทั้งหมด
9 ssh  unix  tcp  tunneling 

4
TCP Ping หรือ Traceroute ทำงานอย่างไร
tcp ping หรือ traceroute ทำงานอย่างไร ต้องคำนึงถึงเวลาที่ใช้ในการจัดตั้งแฮนด์เชค TCP หรือไม่ นอกจากนี้ใน ICMP ping คุณสามารถระบุขนาดแพ็คเก็ตซึ่งสามารถทำได้ใน TCP ping หรือไม่
9 tcp  ping  networking  icmp 

2
ห่อของ NIC ของฉันลดลง
ฉันมีเซิร์ฟเวอร์ที่ทำงานบน CentOS 5.3 (เซิร์ฟเวอร์แชทดาวหางจะมีการเชื่อมต่อ TCP จำนวนมาก) เมื่อเร็ว ๆ นี้ฉันพบว่ามันช้ามาก (บริการ http และ ssh) ดังนั้นฉันจึงใช้คำสั่ง "ifconfig" เพื่อหาว่าเกิดอะไรขึ้น eth0 Link encap:Ethernet HWaddr 00:1C:C0:B5:D5:EA inet addr:10.0.0.61 Bcast:10.0.0.255 Mask:255.255.255.0 inet6 addr: fe80::21c:c0ff:feb5:d5ea/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:871861 errors:0 dropped:489662344145 overruns:0 frame:0 TX packets:639044 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX …
9 linux  networking  centos  tcp  nic 

2
TCP: หน่วยความจำไม่เพียงพอ - Nginx
ฉันใช้งานเว็บไซต์ที่มีปริมาณการใช้งานสูงบนเซิร์ฟเวอร์ nginx ไม่กี่วันที่ผ่านมาฉันมีปัญหากับการล็อค VPS ของฉัน (ไม่สามารถ SSH และ nginx ดูเหมือนจะหยุดทำงาน) เมื่อฉันดูในบันทึกฉันสามารถดูสิ่งต่อไปนี้: TCP: out of memory เมื่อฉันตรวจสอบสถานะของฉันฉันจะเห็นว่ามีหน่วยความจำมากกว่า 50% ฉันคิดว่าฉันต้องปรับจำนวนหน่วยความจำ TCP ที่ได้รับอนุญาตให้ใช้ เมื่อ googling ฉันพบเคล็ดลับในการปรับแต่ง แต่ไม่สามารถแก้ไขได้ ฉันเปลี่ยนค่าใน / proc / sys / net / ipv4 / tcp_mem เป็นดังต่อไปนี้ 16392 21856 32784 นอกจากนี้ /etc/sysctl.conf ยังถูกปรับเป็น: # # /etc/sysctl.conf - Configuration file for setting …
-1 ubuntu  nginx  tcp  tcpip 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.