두 번째 실험 : 응용 프로그램 계층 프로토콜의 이해

두 번째 실험 : 응용 프로그램 계층 프로토콜의 이해

  • 이름 : 왕 룰루
  • 학생 ID : 201,821,121,037
  • 등급 : 1,812 계산

0 추상

네트워크 전송의 각 응용 프로그램 계층 프로토콜에 대한 심층적 인 지식이 보고서에서, 나는 패킷 DNS, FTP, DHCP, SMTP, POP3 및 기타 응용 프로그램 계층 프로토콜을 잡기 위해 노력할 것입니다 및 분석을위한 데이터 패킷을 잡아 역할을한다.

1 명 목적

패킷 트레이서 도구로 친숙한. 구문 분석, 의미, 타이밍 포함한 애플리케이션 계층 프로토콜 패킷, 응용 계층 프로토콜 깊이 이해를 탔다.

이 실험 내용

패킷 트레이서를 사용, 적절하게 구성된 네트워크 파라미터, 패킷 데이터 수집 및 분석 애플리케이션 계층 프로토콜, DNS, FTP, DHCP, STMP, POP3 프로토콜을 포함. 단계는 다음과 같습니다 :

  • 네트워크 토폴로지 구축
  • 구성 매개 변수
  • 천상의
  • 데이터 패킷의 분석

3 시험 보고서

실험을하는 동안, 네트워크 토폴로지를 구성하기 위해, 다음 클라이언트 및 서버 구성 매개 변수를 실행하는 클라이언트에서 액세스 할 수 있도록 패키지를 가져 오기 한 다음 서버의 주소를 입력 선택, 크롤링 데이터 패킷의 분석.

3.1 네트워크 토폴로지 구축

 

이 실험에 사진은 네트워크 토폴로지에서 사용됩니다. 네트워크 토폴로지는 단순한 라인 연결을 사이에두고 오른쪽 서버 서버-PT로, 왼쪽 PC-PT 클라이언트 간단하다.

 

3.2 DNS 패킷

  • DNS 란 무엇인가 : DNS는 사람들이 IP 주소로 컴퓨터 이름을 사용하여 쉽게 변환에 사용되는 인터넷 명명 시스템입니다.
  • IP 주소 확인 과정에 도메인 이름 : 응용 프로그램 프로세스가 호스트 이름을 IP 주소로 해결해야하는 경우, 응용 프로그램 프로세스는 분석 절차라고하고, DNS에 배치됩니다 해결하기 위해 클라이언트 DNS 도메인 이름이 될 것이다 UDP 사용자 데이터 그램 방식에 요청 패킷은 로컬 이름 서버에 분산. 도메인 이름 뒤에 로컬 도메인 이름 서버를 찾아 응답 메시지에서 해당 IP 주소는 대상 호스트의 IP 주소를 얻기 위해 응용 프로그램을 반환 통신합니다.

구성 매개 변수 3.2.1

(1) 클라이언트와 서버의 구성의 IP 주소를 이전.

클라이언트 IP :

서버 IP :

 

 

 (2) 서비스 윈도우 서버, DNS 도메인 이름 개방 구성에서, 도메인 이름 서버의 IP 주소를 확인할 수있는 DNS에 도메인 이름을 추가합니다. 아래 작업 :

(3) 서버 포트가 DNS 구성을 완료 한 후, 클라이언트의 IP 설정은 DNS 서버를 구성합니다. 아래 작업 :

 

 

 (4)이 매개 변수는 도메인의 콘텐츠에 액세스하는 클라이언트의 도메인 이름의 주소를 입력 한 후 시뮬레이션의 DNS 패킷의 크롤링을 선택하고, 구성.

 

 

 (5) 마지막으로, 다음과 같은 결과는 시뮬레이션에 나타납니다 :

 

 

 

 이 결과를 획득 한 후,이 DNS 패킷에 크롤링 분석 될 수있다.

3.2.2 캡처 및 분석 캡처 패킷

3.2.2.1 헤더

는 DNS 메시지에서 일반적으로이 정보를 포함합니다 :

    Header-- 메시지 헤더

    질문 --DNS 요청

    Answer-- 응답 리소스 레코드 요청 (리소스 레코드 (들))

    Authority-- 리소스 레코드는 도메인을 가리

    Additional-- 기타 리소스 레코드

 

  • QDCOUNT는 메시지 요청 문제 섹션에서 레코드 수를 (QD가 나타내는 표시 백작 질문 )
  • ANCOUNT이 단락에서 메시지 응답에 응답 레코드의 수를 나타냅니다 (AN은 대표 답변 )
  • NSCOUNT 단락에인가 된 패킷의 인증 레코드 번호를 나타내고, (NS가 나타내는 정식 이름 서버 )
  • ARCOUNT는 추가 메시지 부분의 추가 기록 횟수를 나타낸다 (AR은 표현 추가를 Recoreds )

 

3.2.2.2 질의 메시지

  • 이름은 쿼리 이름을 나타냅니다. 쿼리 이름이 스터핑 바이트를 사용하지 않고, 고정되어 있지, 일반 필요에 의해 표현 된 필드는 도메인 이름 조회하기
  • TYPE 쿼리의 유형을 나타냅니다. TYPE : 4 의미 메일 전달자가
  • 클래스는 쿼리 유형을 나타냅니다. CLASS 일반적인 값은 인터넷 주소 것을 나타내는 1
  • TTL은 생존 시간을 나타냅니다. 시간 (초)은, 일반적으로 리소스 레코드를 제거한 후 주소 확인 절차는 시간을 절약하고 캐시 된 데이터를 사용하기로 결정하면, 그것은 또한 리소스 레코드의 안정성의 정도를 표시 할 수 있습니다 사용되는 리소스 레코드의 수명주기를 나타내는 매우 안정 정보는 (초 하루 등 86400)을 큰 값을 할당 할
  • LEBGTH 자원 데이터 길이를 나타낸다. 이 필드는 주소가 될 수 섹션의 요구 사항에 따라 쿼리에 의해 반환 된 데이터 관련 리소스 레코드를 표시하는 가변 길이 필드 (당신이 원하는 질의 응답 메시지는 IP 주소가 있음을 나타냅니다) 또는 CNAME은 (원하는 질의 메시지를 표시 반응) 등 정식 호스트 이름

TYPE의 경우 다른 값이 에뮬레이션이 있습니다 :

유형 기억을 돕는 설명
1 에이 도메인 이름에서 IPv4 주소를 얻습니다
NS 도메인 이름 서버 쿼리
5 CNAME 쿼리 사양 이름
6 SOA 라이센싱
(11) WKS 알려진 서비스
(12) PTR 도메인 이름에 IP 주소를 변환
(13) HINFO 호스트 정보
(15) MX 메일 교환
(28) YYYY 도메인 이름에서 IPv6 주소를 얻습니다
(252) AXFR 전송 요청 지역 전체
255 어떤 모든 레코드에 대한 요청

 3.2.2.3 응답 메시지

 

 

비슷한 의미와 각 매개 변수 쿼리 응답 메시지의 메시지.

  • 이름은 리소스 레코드에 포함 된 도메인 이름을 나타냅니다. 그것의 형식과 이름 쿼리 쿼리 필드 영역은 동일합니다. 패킷 도메인 반복 한 차이가 존재하고,이 필드는 포인터의 오프셋을 나타내는 2 바이트를 사용
  • TYPE 리소스 레코드의 형태를 나타내고
  • 클래스는 리소스 레코드의 클래스를 나타내는
  • TTL은 리소스 레코드의 수명주기를 나타냅니다
  • LENGTH 자원의 데이터 길이를 나타낸다
  • IP는 DNS에 의해 얻어진 결과를 나타냅니다

3.3 FTP 패킷

구성 매개 변수 3.3.1

(1) 완전한 DNS 기어, 변화는 좋은 클라이언트 IP 주소와 서버의 IP 주소 값을 설정하지

(2) FTP 서버 서비스를 열고 기록 FTP 사용자 이름과 암호를 설정합니다

(3) 크롤링 FTP 패키지를 수정

 

 

 (4) 명령 프롬프트 클라이언트를 엽니 다

(5) 명령 프롬프트 액세스 FTP 서버 주소

이 때, 당신은 패킷을받을 것이며, 요청은 사용자 이름을 입력합니다.

, 당신은 FTP에 액세스하기 위해 입력 할 수 있습니다 (6) 사용자 이름의 암호를 입력 한 후, 암호 입력 라인에 암호를 입력 요청

 

 

 

 

 

 "도움"명령을 사용할 수 조회 할 수 있습니다 입력합니다

 

 

 (7) 아래의 최종 데이터 패킷 후의 시뮬레이션을 도시

3.3.2  캡처 및 분석 캡처 패킷

(1) 요청에 대한 서버 응답은 FTP 서버 요구 사항을 입력합니다

 

  •  코드 : (220)는 서비스의 새로운 사용자가 ftp를 준비 나타냅니다
  • 메시지 코드는 사용자가 서버 FTP를 입력하라는 메시지가 표시되어있는 출력 명령 설명한다 설명 프롬프트입니다

(2) FTP에 대한 액세스를 요청하고, 사용자 이름 명령 프롬프트 사용자 이름 입력하고, 서버에 커맨드 정보에 나타나는

 

  • FTP 명령 : 사용자가 원격 컴퓨터에 지정된 FTP 사용자를 나타냅니다
  • FTP 인수는 시스코 원격 컴퓨터 사용 시스코에 로그인하기 위해 지정된 사용자 이름을 나타내는

(3) 최종 사용자의 이름을 입력하는 서버 응답 패킷 분석

 

  • 코드 : (331)는 입력 사용자 이름의 존재를 나타내는 암호가 필요합니다
  • 메시지 코드는 사용자에게 메시지를 표시에 대한 자세한 설명입니다

(4) 다음 암호 명령은 클라이언트에 나타납니다, 당신은 여기에 암호를 입력해야

 

  • FTP 명령 : PASS는 ftp 명령은 암호입니다 나타냅니다
  • FTP 인수 : 명령이 시스코입니다 입력 될 위치를 시스코를 나타냅니다

(5) 암호를 입력을 완료 한 후, 서버가 클라이언트에게 리턴하는 응답 패킷

 

  •  코드 : FTP 착륙 (230)의 성공적인 표현입니다
  • 메시지는 코드의 해석 즉, 사용자에게 메시지를 표시하기위한 표시

명령이 종료 사용자가 FTP를 종료하고자 할 때 (6), 당신은 입력 할 수 있습니다, 클라이언트는 FTP 서버 요청 패킷에 명령을 보내드립니다

 

  • FTP 명령 : QUIT 종료하는 데 사용되는 ftp 명령을 나타냅니다
  • FTP 인수가 끝난 정보는 명령이 다시 QUIT 입력 정보가 ​​아니며 나타냄

종료가 성공하면 (7), 서버는 클라이언트가 응답 패킷을 원하는 반환

 

  • 코드 : 221 서버가 FTP 제어 연결을 닫습니다 나타냅니다
  • 메시지는 사용자에게 코드의 해석뿐만 아니라 프롬프트입니다

은 ftp에서 일반적으로 사용되는 명령은 다음과 같습니다 :

  USER <사용자 이름> 시스템 로그인

  PASS <암호> 시스템 로그인 암호

  TYPE <데이터 형식> 파일 형식 (A = ASCII, E = EBCDIC, I = 이진)

  STRU <type>은 데이터 구조 (F = 파일, R = 기록, P = 페이지)

  MODE <모드> 전송 모드

  데이터를 기다리는 PASV 연결 요청

  PORT <주소> IP 주소와 두 바이트 포트 ID

  CWD는 <dirpath> 서버의 작업 디렉토리를 변경

  LIST <이름> 파일 및 디렉토리 표시 목록

  PWD 현재 작업 디렉토리

  서버에서 클라이언트로 파일을 다운로드 RETR <파일 이름>

  REST는 <오프셋> 특정 오프셋 파일 전송을 다시 시작합니다

  STOR <파일 이름> 서버에 파일을 업로드

  STOU <파일 이름> 서버에 업로드 파일 (같은 이름의 파일을 덮어 쓰지)

  ACCT <계정> 시스템 우선 순위

  서버를 삭제 DELETE <파일 이름>의 파일을 지정합니다

  RMD는 <디렉토리> 서버에 지정된 디렉토리를 삭제

  MKD <디렉토리> 서버에 지정된 디렉토리를 설정합니다

  FTP 서버에서 로그를 종료

일반적인 응답 코드는 다음과 같이 :

  332 명 331 유효한 사용자 계정 이름이 필요 암호가 필요합니다

  로그인 성공 로그인 (230) (530)를 실패

  200 개 성공

  수동 모드로 (227) (IP 및 포트 번호를 전송)

  220 서버는 서버를 종료 할 준비가 421

  데이터 접속을 열 (225)의 데이터 연결 (425)가 개방 될 수 없다

  데이터 연결을 닫습니다 (226)

  충분한 디스크 공간 할당 된 저장 공간보다 452 552 이상

  426 연결구

  500 잘못된 명령 504 잘못된 명령 파라미터

  501 502 명령 에러 파라미터를 수행하지

  데이터 연결 (125)은 짧은 시간에 송신을 시작하는 개방

  준비하는 짧은 시간에 120 서버 준비

  (250) 완성 된 파일 동작

  257 현재 경로 (550)를 사용할 수 없게 파일

  553 551 파일 이름이 페이지의 유형을 모르는 허용하지 않습니다

3.4 DHCP 패킷

구성 매개 변수 3.4.1

(1) DHCP 서버 서비스가 열리고 IP 주소 192.168.1.0을 설정하기 시작합니다

 

 (2) 클라이언트의 IP 주소를 얻기 위해 DHCP로 설정된

 

 (3) 변화 DHCP위한 데이터 패키지를 크롤링

 

 (4) 얻어진 시뮬레이션 결과를 시작

3.4.2 캡처 및 분석 캡처 패킷

(1) 요구 메시지를 다음과 같이 :

  • OP (1)은 요구 패킷을 나타내며, 상기 패킷 타입을 나타낸다
  • HW 타입 1의 값은 이더넷가 10Mb / s의 하드웨어 주소를 나타내는 것을 특징으로 하드웨어 주소의 유형을 나타내며
  • HW LEN은 하드웨어 주소 길이를 나타내는 반면 이더넷 6의 값
  • 홉 홉이고, 클라이언트는 0으로 설정되고,이 값은 또한 프록시 설정 될 수있다
  • 거래 ID는, 서버와 클라이언트가 일치하는 클라이언트 요청 및 응답으로 교환 요청 및 그들 사이의 반응에 사용하는 클라이언트가 제공 한 ID를 트랜잭션 ID, 클라이언트에 의해 선택된 랜덤 넘버를 나타낸다 서버에 의해 반환 된 32 비트 정수
  • SECS는 클라이언트에 의해 채워, 초 단위의 사용을 갱신하기 위해 IP 주소 나 클라이언트의 IP 주소를 얻기 위해 시작한 후 표시
  • FLAGS 유니 캐스트 심볼을 나타내는 필드,이 16 비트의 필드 도움 만 최 좌측 비트는 비트가 0이고, 방송은 1을 나타내고
  • 클라이언트 주소가 클라이언트의 IP 주소를 나타냅니다. 하지만이 상태를 리 바인딩, 갱신 및 위해, ARP 요청에 채워에 응답 할 수 만 클라이언트가 바운드입니다
  • 클라이언트의 주소가 IP 주소를 나타냅니다 "자신의"또는 클라이언트
  • 서버 주소가 사용되는 서버의 IP 주소를 DHCP 프로토콜의 과정의 다음 단계를 나타냅니다
  • 릴레이 에이전트 주소는 DHCP 릴레이의 IP 주소를 나타냅니다
  • CLENT 하드웨어 주소는 클라이언트의 하드웨어 주소를 나타냅니다
  • 서버 호스트 이름은 선택 사항 서버 호스트 이름을 나타냅니다 필드는 서버가 완료 null로 끝나는 문자열입니다
  • 파일은 시작 파일 이름이 null로 끝나는 문자열을 나타냅니다
  • 옵션은 선택적 매개 변수 필드, "+ 길이 + 코드 데이터"의 형식을 나타냅니다

(2) 응답 메시지를 다음과 같이 :

2의 값의 의미와 일치하는 응답 패킷 요청 메시지는 OP 다양한 파라미터 응답 패킷을 나타낸다.

 

  • 도메인 이름 서버 : DNS 서버의 IP 주소를 제공하는

3.5 SMTP 및 POP3

구성 매개 변수 3.5.1

다음과 같이 (1) 서버에서 제공되는 서비스가 처음에 EMAIL SMTP 및 POP3 서비스 개방도 동작한다 :

 

 이메일 정보 (2) 아래 그림과 같이 클라이언트 구성을 구성합니다

 

 (3) 이메일 서버 구성 정보는 아래와 같이 구성 :

 

 (4) 메일 클라이언트를 작성하고 서버에 메시지를 보내

다음 프롬프트 할 때, 작은 집합 최대 2 DNS 도메인 이름에있는 조사 자료에 따르면, 오류를 보내는 표시 클라이언트는 서버의 IP 주소를 연결할 수 있도록

는 DNS (5)에 배치 된 서버

 

 (6) 다음 그림의 성공 이후에 나타납니다 메시지 보내기 :

 

 (7) 얻어진 메시지 패킷을 전송

(8) 패스를 통해 서버에서 파일을 수신, 클라이언트의 메시지에 "수신"를 클릭하면, 수신기는 도면 정보에 성공합니다

(9) 상기 수신 된 메시지 패킷 수득

3.5.2 캡처 및 분석 캡처 패킷

(1) 메일 메시지를 보낼 때

 (2) 메시지를 수신하는 경우 메일

4 참조 :

여러 부분이 DNS 요청 패킷 : http://09105106.blog.163.com/blog/static/2483578201342584441807/

원리 및 DNS 해결 과정 : https://www.cnblogs.com/gopark/p/8430916.html

DNS 메시지 형식 분석 : https://jocent.me/2017/06/18/dns-protocol-principle.html

자세한 FTP 명령 : http://blog.chinaunix.net/uid-21411227-id-1826769.html

FTP 구현 원리 및 패킷 캡처 분석 : https://www.jianshu.com/p/05212313d0e2

DHCP 메시지 구문 분석 : http://blog.chinaunix.net/uid-20530497-id-2203830.html

추천

출처www.cnblogs.com/jmuaia-wll/p/11567176.html