336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

C:\>SET
ALLUSERSPROFILE=C:\ProgramData
APPDATA=C:\Users\USER\AppData\Roaming
CommonProgramFiles=C:\Program Files\Common Files
CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
CommonProgramW6432=C:\Program Files\Common Files
COMPUTERNAME=DESKTOP-USER
ComSpec=C:\Windows\system32\cmd.exe
HOMEDRIVE=C:
HOMEPATH=\Users\USER
LOCALAPPDATA=C:\Users\USER\AppData\Local
LOGONSERVER=\\DESKTOP-USER
NUMBER_OF_PROCESSORS=4
OS=Windows_NT
Path=C:\Perl64\site\bin;C:\Perl64\bin;C:\Python27\;C:\Python27\Scripts;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
PROCESSOR_ARCHITECTURE=AMD64
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 69 Stepping 1, GenuineIntel
PROCESSOR_LEVEL=6
PROCESSOR_REVISION=4501
ProgramData=C:\ProgramData
ProgramFiles=C:\Program Files
ProgramFiles(x86)=C:\Program Files (x86)
ProgramW6432=C:\Program Files
PROMPT=$P$G
PSModulePath=C:\Program Files\WindowsPowerShell\Modules;C:\Windows\system32\WindowsPowerShell\v1.0\Modules;C:\Program Files (x86)\Microsoft SQL Server\120\Tools\PowerShell\Modules\
PUBLIC=C:\Users\Public
SESSIONNAME=Console
SystemDrive=C:
SystemRoot=C:\Windows
TEMP=C:\Users\USER\AppData\Local\Temp
TMP=C:\Users\USER\AppData\Local\Temp
USERDOMAIN=DESKTOP-USER
USERDOMAIN_ROAMINGPROFILE=DESKTOP-USER
USERNAME=USER
USERPROFILE=C:\Users\USER
VS100COMNTOOLS=c:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools\
windir=C:\Windows


'Analysis > Windows' 카테고리의 다른 글

Windbg 사용  (0) 2016.06.23
WebDAV에서 사용하는 메소드  (0) 2016.06.21
윈도우 보안 이벤트 // IIS 로그 분석  (0) 2016.06.21
윈도우 커맨드라인 명령어  (0) 2016.04.07
윈도우 디버깅 툴  (0) 2016.04.07
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

기본적으로 TCP 프로토콜은 초기 3Way Handshaking 후
데이터 전송 시 수신자의 윈도우 사이즈만큼(65536bytes) 수신확인(Ack) 없이 전송한다.(윈도잉)


Next Squence Number 계산


1) Client, Seq는 [ 58 2e 7d 4d ], 3Way Handshaking 시작

Client  ----- [ TCP/syn ] ---->  Server

[ 58 2e 7d 4d ] Seq

[ 00 00 00 00 ] Ack (Server에서 보낸 확인 패킷이 없으니 Acknowledgment Number는 0)


2) Server, Seq는 [ 7c b7 34 26 ], Client의 Seq가 [ 58 2e 7d 4d ]인 패킷을 수신확인, 다음 Client의 Seq는 [ 58 2e 7d 4e ]

Client  <---- [ TCP/syn/ack ] ------  Server 

                                    [ 7c b7 34 26 ] Seq

                                    [ 58 2e 7d 4e ] Ack (Client에서 보낸 패킷에 대한 확인 응답 + Client의 Next Sequence Number)


3) Client Seq는 [ 58 2e 7d 4e ], Server의 Seq가 [ 7c b7 34 26 ]인 패킷은 수신확인, 3Way HandShaking 종료

Client  ----- [ TCP/ack ] ---->  Server

[ 58 2e 7d 4e ] Seq

[ 7c b7 34 26 ] Ack (Sever에서 보낸 패킷에 대한 확인 응답)


1) Client, Seq는 [ 58 2e 7d 4e ]

(TCP Segment 길이가 386(0x182), Server가 정상 수신하면 Server의 Ack는 [ 0x582e7d4e + 0x182 = 58 2e 7e d0 ])

다음 Server의 Seq는 [ 7c b7 34 27 ]

Client  ----- [ HTTP/psh,ack ] ---->  Server

[ 58 2e 7d 4e ] Seq

Next Sequence Number --> Seq + TCP Segment Length = [ 58 2e 7e d0 ]

[ 7c b7 34 27 ] Ack (Server의 Next Sequence Number)


2-1) Server, Seq는 [ 7c b7 34 27 ]

Client의 TCP Segment에 대한 확인응답 [ 0x582e7d4e + 0x182 = 58 2e 7e d0 ] 

Client  <---- [ TCP/ack ] -----  Server

[ 7c b7 34 27 ] Seq (다음 패킷부터 Data를 보내고 마지막 패킷에서 psh,ack로 데이터 전송 종료를 알림)

[ 58 2e 7e d0 ] Ack (Client에서 보낸 패킷에 대한 확인 응답 + Client의 Next Sequence Number)


2-2) Server, Seq는 [ 7c b7 34 27 ], HTTP/1.1 200 OK

(TCP Segment 길이가 1026(0x402), Client가 정상 수신하면 Client의 Ack는 [ 0x7cb73427 + 0x402 = 7c b7 38 29 ])

다음 Client의 Seq는 [ 58 2e 7e d0 ]

Client  <---- [ HTTP/psh,ack ] -----  Server

[ 7c b7 34 27 ] Seq (HTTP/psh,ack)

Next Sequence Number --> Seq + TCP Segment Length = [ 7c b7 38 29 ]

[ 58 2e 7e d0 ] Ack (Client에서 보낸 패킷에 대한 확인 응답 + Client의 Next Sequence Number)


3) Cient, Seq는 [ 58 2e 7e d0 ]

(TCP Segment 길이가 387(0x183), Server가 정상 수신하면 Server의 Ack는 [ 0x582e7ed0 + 0x183 = 58 2e 80 53 ])

다음 Server의 Seq는 [ 7c b7 38 29 ]

Client  ----- [ HTTP/psh,ack ] ---->  Server

[ 58 2e 7e d0 ] Seq

Next Sequence Number --> Seq + TCP Segment Length = [ 58 2e 7e d0 ]

7c b7 38 29 ] Ack (Server에서 보낸 패킷에 대한 확인 응답 + Server의 Next Sequence Number)

.

.

.

.




'Analysis > Network' 카테고리의 다른 글

[VPN] 터널링  (0) 2016.08.09
Tcpdump usage examples  (0) 2016.04.26
HTTPS와 SSL 이해  (0) 2016.04.15

+ Recent posts