2017-11-27 20 views
0

나는 서버 프로젝트에서 작업 중이며 tcpdump로 클라이언트와 서버 간의 패키지 교환을 스니핑하고 있습니다. 나는 tcpdump의 출력을 해석/해석하는 데 약간의 문제가 있습니다. 의미있는 정보를 온라인에서 찾을 수없는 것 같습니다. 그래서 이것은 내가 가진 것입니다.tcpdump 출력에서 ​​클라이언트와 서버간에 교환되는 데이터 유형을 결정하는 방법

패키지를 스니핑 한 후이를 수행하여 16 진수와 8 진수로 읽습니다.

tcpdump -nnvvv -XX -i any -r vcs_tcp_noimg.pcap 

나는이

The Server is running on port 6126 and Client port 45852 

enter image description here 내가 하나가 항상 그가 널 바이트 기호와 시작 빨간색으로 표시된 것을 알고 있었다 다음 E..N -> 네트워크 IP 등이다. 파란색 메시지는 실제 메시지/페이로드입니다. 처음 2는 읽을 수 없으므로 형식은 data exchange is Byte입니다. 그러나 3 marked Blue, 나는 매개 변수/필드 사용자와 이름을 볼 수 있습니다. 어떤 텍스트 그래서 나는 데이터 형식이 Text이라고 결론 지었다.

그래서이 경우 서버와 클라이언트간에 교환되는 페이로드/데이터 유형이 mixture of text and Bytes이라고 결론 지을 수 있습니까?

호기심을 증명하기 위해 ASCII 텍스트의 경우 tcpdump 형식을 -A로 변경했습니다.

tcpdump -nnvvv -A -i any -r vcs_tcp_noimg.pcap 

이유 : 내가 -A을하고 ASCII 텍스트 모든 페이로드를 얻을 경우 데이터를 읽을 수 있다면, 난, 데이터 교환 형식이 텍스트 인 결론을 내릴 수 있기 때문에, 그럼 내가 데이터 유형이 Byte

말할 수 있습니다 > 블루 표시된 명확하게 읽을 수 - -

내가이 읽기 표시된 있어요> 분명히 놀랍게도 다음

enter image description here

과 readbale,이있어빨간색으로 표시 -> 읽을 수 없음 -> 바이트 파란색으로 표시 -> 읽을 수 있고 링크가 있습니다.

enter image description here

그래서 내 질문입니다. 1. 클라이언트와 서버 간의 데이터 교환 유형은 어떻게 결정합니까? 2. 내 연구에서 바이트와 ASCII 텍스트가 섞여 있다고 결론 내릴 수 있습니까?

마지막으로 [F]와 [F]의 차이점은 무엇입니까? 나는 [.]가 인정하고 [F] FIN이라는 것을 알고있다. 이것이 [F] FIN ACK 일 수 있으며 통신이 종료되었음을 의미합니까?

미리 감사드립니다.

답변

0

TCP/IP 통신에서 입문서를 실제로 활용할 수 있습니다. 프로토콜 작동 방식과 헤더 구문 분석 방법을 완전히 설명하는 RFC 문서 (예 : 793)를 살펴 봐야합니다.

TCP를 통한 통신은 클라이언트에서 서버로의 SYN, 클라이언트에서 서버로의 SYN ACK 및 클라이언트에서 서버로의 최종 ACK가되는 RFC에 의해 3 방향 핸드 셰이크로 시작됩니다. 이렇게하면 IP 포트 쌍을 통해 두 개의 반이중 연결이 열립니다.

RFC는 정상적으로 통신을 종료하기 위해 4 가지 방법으로 설명합니다. 연결의 한 쪽은 FIN ACK로 시작합니다. 각 쪽은 항상 스트림의 현재 위치를 확인하기 때문입니다. 상대방은이 사실을 확인하기 위해 ACK로 응답합니다. 그 쪽은 실제로 데이터를 계속 보낼 수 있지만 FIN ACK를 보낸 쪽이 이미 채널을 닫았으므로이 시점에서 ACK 만 할 수 있습니다. 마지막으로 (사실 FIN ACK 이후에는 일반적으로 추가 데이터가 돌아 가지 않습니다), 연결의 다른 쪽은 FIN ACK와 동일한 패턴으로 닫힙니다. FIN ACK는 적절한 응답이 ACK 인 것입니다.

+0

감사합니다. David 님의 답변입니다. 나는 이미 그것을했고, 나의 연구를 제출했다. 감사합니다 RFC는 항상 유익합니다. –

+0

Super. 그것이 도움이된다면, upvotes는 높이 평가됩니다. –