[PSH, ACK] กำลังทำอะไรในระหว่างการเชื่อมต่อกับเซิร์ฟเวอร์แค็ตตาล็อกส่วนกลาง


14

เซิร์ฟเวอร์ linux ของฉันกำลังพยายามสร้างการเชื่อมต่อ LDAPS ไปยังเซิร์ฟเวอร์แคตตาล็อกส่วนกลางและการเชื่อมต่อเริ่มลดลง

สำหรับวัตถุประสงค์ของการสนทนาสมมติว่า 1.1.1.1 เป็นเซิร์ฟเวอร์ Linux และ 1.2.3.4 เป็นเซิร์ฟเวอร์แค็ตตาล็อกส่วนกลาง

ถ้าฉันพยายามใช้telnetจากกล่อง Linux ฉันเห็น:

[root@foobox ~]# telnet gcfoo.exampleAD.local 3269
Trying 1.2.3.4...
Connected to gcfoo.examplead.local.
Escape character is '^]'.
Connection closed by foreign host.

ไม่มีความล่าช้าระหว่างบรรทัดที่ 4 และ 5 มันลดการเชื่อมต่อทันที

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

นี่คือสิ่งที่ฉันเห็น (อีกครั้ง IP และพอร์ตต้นทางได้รับการเปลี่ยนชื่อเพื่อปกป้องผู้บริสุทธิ์):

No.     Time      Source     Destination      Protocol    Length    Info
1       0.000000  1.1.1.1    1.2.3.4          TCP         66        27246 > msft-gc-ssl [SYN] Seq=0 Win=5840 Len=0 MSS=1460 SAC_PERM=1 WS=128
2       0.000162  1.2.3.4    1.1.1.1          TCP         62        msft-gc-ssl > 27246 [SYN, ACK] Seq=0 Ack=1 Win=8192 Len=0 MSS=1460 SACK_PERM=1
3       0.000209  1.1.1.1    1.2.3.4          TCP         54        27246 > msft-gc-ssl [ACK] Seq=1 Ack=1 Win=5840 Len=0
4       0.003462  1.1.1.1    1.2.3.4          TCP         248       27246 > msft-gc-ssl [PSH, ACK] Seq=1 Ack=1 Win=5840 Len=194
5       0.007264  1.2.3.4    1.1.1.1          TCP         60        msft-gc-ssl > 27246 [RST] Seq=1 Win=64046 Len=0

ฉันเป็นสนิมเล็กน้อยกับ TCP / IP ดังนั้นโปรดให้อภัยความไม่รู้ของฉัน ... ฉันเห็นการจับมือสามทางเกิดขึ้นในแพ็คเก็ต 1-3 นั่นทำให้รู้สึก เกิดอะไรขึ้นในแพ็กเก็ต # 4 อะไร[PSH, ACK]หมายถึง? ดูเหมือนว่าจะเป็นการตอบรับที่ซ้ำซ้อนซึ่งไม่จำเป็น ข้อมูลจริงถูกส่งในแพ็กเก็ตที่ 4 นี้หรือไม่ หรือนี่คือความต่อเนื่องที่แปลกประหลาดของการจับมือกัน?

คำตอบ:


24

PSHเป็นธง Push: http://ask.wireshark.org/questions/20423/pshack-wireshark-capture

ธงกดบอกเครือข่ายสแต็กของผู้รับเพื่อ "ดัน" ข้อมูลตรงไปยังซ็อกเก็ตที่รับและไม่ต้องรอแพ็กเก็ตอีกต่อไปก่อนที่จะทำเช่นนั้น

ธงกดมักจะหมายถึงข้อมูลที่ได้รับการส่งขณะที่เอาชนะพอร์ต TCP ล่าช้าประสิทธิภาพในการสร้างเช่นอัลกอริทึม Nagle ของหรือกิตติกรรมประกาศล่าช้า

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

บน Linux นี้จะทำกับsetsockopt()ธงและTCP_QUICKACK TCP_NODELAYดูman 7 socketข้อมูลเพิ่มเติม


5

@DarkMoon อธิบายว่าธง PSH มีความหมายอย่างไร ในส่วนที่เกี่ยวกับข้อมูลของคุณการสร้างการเชื่อมต่อเสร็จสมบูรณ์ (การจับมือ 3 ทาง) จากนั้นใช่ลูกค้าส่ง 194 ไบต์ของข้อมูลไปยังเซิร์ฟเวอร์ ( Len=194) เซิร์ฟเวอร์ไม่ชอบข้อมูลและปิดการเชื่อมต่อ อาจเป็นไปได้ว่าไคลเอ็นต์ไม่ได้รับการกำหนดค่าอย่างเหมาะสมเพื่อสื่อสารกับเซิร์ฟเวอร์หรือในทางกลับกันเช่น SSL / TLS ไม่ตรงกัน

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

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