CafeM0ca

[NetWork] 3 way handshake 본문

Hacking/기본기

[NetWork] 3 way handshake

M0ca 2018. 7. 24. 14:03
반응형

tcp/ip에서 씀


ACK는 세션이 같다는걸 인증하기위해 계속 보내줘야함

클라이언트의 sequence 번호와 서버의 sequence 번호가 존재.

임의로 정하자.

클라이언트 : 1000

서버 : 2000


클라이언트 -> 서버 SYN패킷 전송 sequence(1000)


서버가 응답을 보낸다

서버 -> 클라이언트 SYN(2000), ACK(1001)


클라이언트가 잘 받았다고 응답을 보낸다.

클라이언트 -> 서버 ACK(2001)


클라이언트가 서버에게 "Hello"메시지를 보낸다.

클라이언트 -> 서버 PSH(SYN(1001),ACK(2001))


"Hello"메시지 뒤에는 메시지의 끝임을 알려주는 문자가 있다.(NULL)

서버는 잘 받았다고 메시지의 길이만큼 더해서 ACK를 보낸다.

서버 -> 클라이언트 ACK(1007)


종료과정을 4way handshake라고 한다

클라이언트는 연결을 종료하기위해 FIN을 보낸다.

클라이언트 -> 서버 FIN(SYN(1007), ACK(2001)


서버는 응답한다

서버 -> 클라이언트 ACK(1008)


서버가 연결을 끊는다고 FIN을 보낸다

서버 -> 클라이언트 FIN(SYN(2001),ACK(1008))


클라이언트가 알았다고 한다.

클라이언트 -> 서버 ACK(2002)


FIN : 합의하에 끊음

RST(reset) : 강제로 끊음



tcpdump에서 [S] 는 SYN

[.]은 ACK

[S.]은 SYN,ACK

[P]는 PSH

반응형

'Hacking > 기본기' 카테고리의 다른 글

[Network] TCP 정리  (0) 2020.11.21
[Network] Proxy와 VPN(Virtual Private Network)  (0) 2019.03.30
[기본기]심볼이 깨진 바이너리파일  (0) 2018.02.01
[기본기]함수 호출 규약  (0) 2018.01.12
Comments