요약 :
이 문서에서는 TCP 연결 설정과 해제 과정을 분석하기 위해 HTTP 패킷을 잡아서, 패킷 트레이서 도구를 제대로 구성 네트워크 매개 변수를 사용하는 방법에 대해 설명합니다.
1. 개인 정보
- 이름 : 황 작가의 [견권
- 학생 ID : 201,821,121,104
- 등급 : 1814 계산
2. 네트워크 토폴로지의 설립
전술 한 바와 같이도 네트워크 토폴로지, 네트워크 토폴로지가 PC합니다 (PC0), 라우터 및 서버 (Server0의 합계)로 구성되며 그 중 셋은 접속되어있다.
3. 구성 매개 변수
- 클라이언트의 IP 주소입니다
192.168.1.104
- 서버의 IP 주소입니다
192.168.1.105
-
라우터 구성 매개 변수 :
• 라우터> 가능
• 라우터 #의 구성 t
-
에 의해 Fa0 / 0 인터페이스를 구성 :
• R (구성) #interface의 F0 / 0
• R (구성 - 경우) #ip 주소 192.168.1.105 255.255.255.0
• R (구성 - 경우) #no 종료
-
구성에 의해 Fa0 / 1 인터페이스;
• R (구성) #interface의 F0 / 1
• R (구성 - 경우) #ip 주소 192.168.2.105 255.255.255.0
• R (구성 - 경우) #no 종료
입력 라우터 구성 쇼 IP 인터페이스 개요를 완료 한 후 다음과 같이 설정이 올바른지 확인 :
4. 캡처, TCP 연결 설정을 분석
웹 브라우저에서 열기 엔드 데스크톱 PC, 서버의 IP 주소를 입력 : 192.168.2.104이 캡처를 시작합니다. 아래 그림과 같이 :
다음과 같이 메시지에 크롤링 :
TCP 패킷 :
HTTP 메시지 :
그림의 공과에 TCP 패킷 헤더 형식으로 : 우리는 TCP 연결 분석을 설정할 수 있습니다.
(1) TCP 연결의 개략도를 그립니다
아래 그림과 같이 :
번호와 승인 번호 (2) 변경
두 분석은 세도 수, 즉 세 방향 핸드 셰이크 패킷을 세 개의 북 교환 TCP 세그먼트에 대응 :
- 首先由PC端创建传输控制模块TCB。然后向Server发送连接请求报文端,这时候首部中的SYN同步位=1,同时该报文段不能携带数据,故seq=0(x),ack=0(x),TCP客户进程进入SYN_SENT状态。
- 然后Server接受到请求报文段后,进行回复确认。在确认报文段中把SYN位和ACK位置为1,并把ack值+1(x+1)变为1。
- 然后PC端再次确认,ACK=1,ack值不变为1(x+1),seq值+1变为1(x+1)。(SYN=1时,表明这是一个请求连接或接受连接报文)
(3)解答:为什么连接建立需要第三次握手
主要是为了防止以及PC失效的连接请求报文段突然又传送到了Server,因而产生错误(Server的许多资源会被失效的连接端口所浪费)
5.分析TCP连接释放
TCP连接释放抓取到的报文如下:
三部分报文分别如下:
同上诉分析TCP连接建立,我们先画出分析图:
从TCP报文段中我们可以看到只有三次交换过程:
- PC端发出连接释放请求,置ACK,FIN均为1,此时seq=103(即u=103)
- Server端收到连接释放请求后,置ACK,FIN为1,将seq=472(即v=472),ack=u+1=103+1=104
- PC端在收到Server发出的来连接释放报文后,对此发出确认。在确认报文段中置ACK为1,ack=w+1(不得而知),seq=u+1=103+1=104。
6.通过该实验产生的新的疑问
实际上,完成了整个实验,实现了TCP连接建立与释放之后,能够发现TCP的连接建立过程与课本中描述的完全相同。但是在完成实验的拓展——TCP连接释放的时候,像上文所述,它的报文交换只有3次,与课本的四报文握手并不一致,其中的一些数据也是不尽相同的。在完成的时候我做出假设是——Server端将第二次和第三次的报文握手过程整合到一个步骤了,这也就是上图中为何一个报文端有两个序号的原因(仅仅是我的大胆假设)。这样似乎能在一定程度上解释与课本不符的原因,但是还遗留了一个问题,在PC端的确认报文中ack=w+1,ack的值是无从得知的(因为并不知道w是之前哪个报文的值),从数据分析是得出了ack=v,也与课文不太一致。总之做完拓展后,我针对TCP连接的释放这方面的理论与实际产生了一定的困惑,希望老师看到能否解释一下?
2019-10-19 20:45:20