다음은 호스트 A와 B 간의 쓰리 웨이 핸드셰이크 과정에서 호스트 A가 호스트 B에게 전송한 첫 번째 SYN 세그먼트의 일부입니다. 쓰리 웨이 핸드셰이크상에서 호스트 B가 호스트 A에게 전송할 다음 세그먼트의 Acknowledgment number(raw)는 무엇일까요?.(p.379)
3588415413
적혀져 있는 번호보다 +1된 번호가 오길 기대한다.
다음 그림은 두 호스트가 TLS 1.3 핸드셰이크를 수행하는 과정을 나타낸 그림 일부입니다. 괄호 안에 들어갈 TLS 관련메시지로 알맞은 말을 골라 보세요.(p.407)
ServerHello
와이어샤크에서 실제 TCP/UDP 패킷 확인해보기
와이어샤크에서 실제 TCP 이다 3 way handshake를 하는 모습을 볼 수 있다.
192.168... -> 142.250... : SYN 세그먼트 연결을 시작함!
142.250... -> 192.168... : SYN + ACK 넵 확인 완료, 연결시작 !
192.168... -> 142.250... : 넵 확인 완료!
첫 번째 패킷의 TCP 항목을 보면 맨처음에 송신지 포트번호와 수신지 포트 번호를 확인 할 수 있다.
송신지 포트 번호는 59182이다. 이는 동적 포트 번호이고 임의의 포트 번호가 할당된다.
수신지 포트 번호는 80이고, 이는 잘 알려진 포트 번호 범위인 웰 노운 포트에 속한다.(주로 HTTP에 사용_
즉, 첫 번째 패킷은 송신 호스트인 192.168...의 클라이언트 프로세스가 임의의 동적 포트 번호 59183를 할당받아 HTTP 서버로 동작하는 142.250... 에게 연결 요청을 보내는 것으로 추정
Flag도 보면 세그먼트의 SYN 피트는 1로 설정되어 있어야 한다. 실제 플레그를 보면 1로 설정된 것을 확인할 수 있다.
두 번째 패킷의 TCP를 보면
포트 번호가 바껴있음을 확인 할 수 있다.
스퀀스 넘버는 자신의 순서번호이다.
즉, 처음 패킷을 다시보면
자신의 순서 번호를 971386355로 알렸고, 다음으로 받기를 기대하는 순서 번호를 확인 응답 번호삼아 다음 패킷을보면
971386356을 전송하는 것을 볼 수 있다.
동일하게 응답 번호에 해당하는 2890741907을 보내준다.
즉, Sequence Number는 순서 번호이고, 이를 확인 응답 번호가 Acknowledgment number이다.
이는 Sequence Number + 1의 숫자가 온다.
이러한 과정을 통해 TCP의 연결이 수립된다.