[PSH, ACK] đang làm gì trong khi tôi kết nối với máy chủ cửa hàng toàn cầu?


14

Một máy chủ linux của tôi đang cố gắng thiết lập kết nối LDAPS đến máy chủ cửa hàng toàn cầu và kết nối đang bị hủy (có lẽ là do phía GC).

Với mục đích thảo luận, giả sử 1.1.1.1 là máy chủ Linux và 1.2.3.4 là máy chủ cửa hàng toàn cầu.

Nếu tôi thử sử dụng telnettừ hộp Linux, tôi thấy:

[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.

Không có độ trễ giữa dòng thứ 4 và thứ 5. Nó chỉ cần ngay lập tức giảm kết nối.

Tôi nghĩ rằng telnetkết quả có thể hơi sai lệch (vì nó không thực sự phù hợp với bất kỳ loại giao tiếp an toàn nào) vì vậy tôi đã thu thập được một gói chụp kết nối thực tế từ thiết bị (sử dụng chương trình thực tế yêu cầu LDAPS).

Đây là những gì tôi thấy (một lần nữa, IP và cổng nguồn đã được đổi tên để bảo vệ người vô tội):

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

Tôi hơi khó tính với TCP / IP vì vậy xin vui lòng tha thứ cho sự thiếu hiểu biết của tôi ... Tôi thấy việc bắt tay ba bước diễn ra trong các gói 1-3. Điều đó có ý nghĩa. Điều gì đang xảy ra trong gói số 4 mặc dù? Có [PSH, ACK]nghĩa là gì? Điều này có vẻ như một sự thừa nhận không cần thiết. Là dữ liệu thực tế được gửi trong gói thứ 4 này? Hay đây là một sự tiếp tục kỳ lạ của cái bắt tay?

Câu trả lời:


24

PSHlà cờ Đẩy: http://ask.wireshark.org/questions/20423/pshack-wireshark-capture

Cờ Push báo cho ngăn xếp mạng của người nhận "đẩy" dữ liệu thẳng đến ổ cắm nhận và không chờ thêm gói nào trước khi thực hiện.

Cờ Push thường có nghĩa là dữ liệu đã được gửi trong khi ghi đè độ trễ hiệu quả TCP được xây dựng, chẳng hạn như Thuật toán của Nagle hoặc Lời cảm ơn bị trì hoãn .

Những độ trễ này làm cho mạng TCP hiệu quả hơn với chi phí của một số độ trễ (thường là khoảng vài chục mili giây). Một ứng dụng nhạy cảm với độ trễ không muốn chờ đợi sự chậm trễ hiệu quả của TCP nên ứng dụng thường sẽ vô hiệu hóa chúng, khiến dữ liệu được gửi càng nhanh càng tốt với bộ cờ Đẩy.

Trên Linux, điều này được thực hiện với các setsockopt()cờ TCP_QUICKACKTCP_NODELAY. Xem man 7 socketđể biết thêm thông tin.


5

@DarkMoon đã giải thích những gì cờ PSH biểu thị. Liên quan đến dữ liệu của bạn, cơ sở kết nối hoàn thành (bắt tay 3 bước), sau đó, có, khách hàng đã gửi 194 byte dữ liệu đến máy chủ ( Len=194). Máy chủ không thích dữ liệu và đóng kết nối. Có khả năng máy khách không được cấu hình đúng để giao tiếp với máy chủ hoặc ngược lại, ví dụ như không khớp SSL / TLS.

Nếu bạn có quyền truy cập, tôi khuyên bạn nên kiểm tra nhật ký trên máy chủ để xem liệu nó có ghi lại những gì nó không thích về dữ liệu của khách hàng không.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.