2008. 6. 3. 12:07

프로토콜1 (3-Way HandShake)

사용자 삽입 이미지

많은 사람들이 많이 들어봤던 3-Way HandShake 입니다.
이거에 맞게 와이어 샤크에서 패킷을 주고 받는 모습을 보겠습니다.


◆ 첫번째 SYN 패킷

웹 브라우져에 http://10.0.0.68을 입력하였습니다.
그러하니 아래 그림과 같은 패킷이 나타났습니다.
SYN 패킷은 32비트의 일련번호(Sequence number)로 TCP 패킷의 헤더에 위치 합니다.
와이어샤크 에서는 일련번호(Sequence number) 나열하기 쉽게 첫번째 값을 0 으로 보여줍니다.

사용자 삽입 이미지


◆ 두번째 SYN/ACK, 서버 응답

서버는 SYN 패킷을 받으면 일련번호(Sequence Number)를 읽고, SYN/ACK 패킷을 이용하여 클라이언트에게 응답하게 됩니다.
클라이언트에게 받은 일련번호(Sequence Number)에 ACK패킷의 승인번호(Acknowledgement number) 의 1을 증가시켜 보내게 됩니다. 그러면 클라이언트는 서버와 통신이 가능하다는것을 판단합니다. SYN/ACK 패킷에서 SYN는 서버와 클라이언트의 통신에서 클라이언트가 서버에 승인을 받을수 있게 하는 일련번호를 전송하는 역활을 합니다.

사용자 삽입 이미지

◆ 세번째 ACK 패킷

서버와 통신을 하기 위한 마지막 ACK 패킷입니다.
일련번호(Sequence number) 1을 더해 서버에 ACK패킷을 보내게 됩니다.
서버가 이 패킷을 받게 되면 통신을 하게 됩니다.

사용자 삽입 이미지


◆ 초기 통신하기 위해서 일련번호(Sequence number)가 순서대로 증가하였지만, 추 후 통신은 데이터들의 프래임에 영향을 받아 순차적으로 증가하지 않습니다.