SteffenLee

[NetWork]3 Way-Handshake 본문

NetWork

[NetWork]3 Way-Handshake

SteffenLee 2018. 7. 25. 14:02

3 Way-Handshake에 대해 알아보겠습니다.


3 Way-Handshake는 TCP/IP 프로토콜에서 정보 전송을 하기전에 먼저 세션을 수립하는 과정이다.


간단하게 표현하면 밑의 그림과 같다.


 TCP 패킷에는 Sequence Number(시퀀스 넘버)를 가지고 있습니다.


위에 예제로 설명하자면

클라이언트의 시퀀스 넘버는 1000이고, 서버의 시퀀스 넘버는 2001이라고 가정하면


서버는 클라이언트에게 SYN 패킷을 받으면, 서버는 수락의 의미로 SYN/ACK 패킷을 보낸다. 

이때  SYN/ACK 패킷에는 서버 자신의 시퀀스 넘버와 ACK 넘버를 포함하여 전송한다

ACK 넘버는 통신을 수락하는 상대 즉 클라이언트의  시퀀스 넘버에 +1을 하여 전송한다.

그리고 클라이언트가 SYN/ACK패킷을 받으면 서버에게 ACK패킷을 보낸다


이때  ACK패킷에는 시퀀스 넘버와 ACK 넘버가 들어있다.


간단 예시

(시퀀스 넘버/ACK 넘버)


실제로 와이어 샤크를 이용해서 패킷을 떠봐도 같은 결과를 보인다



위에서 설명했던대로 ACK 넘버는 클라이언트의 시퀀스 넘버 + 1이다.


다음에는 간단한 nc 패킷을 캡쳐해보고 4 Way-handshake에 대해 알아보겠습니다


'NetWork' 카테고리의 다른 글

[NetWork]4Way-Handshake  (0) 2018.07.26
Comments