nslookup
- nslookup 명령어로 패킷 분석을 하고자 하는 서버의 주소를 알아낸다.
- 원하는 서버의 주소를 필터링 값으로 입력한다.
TCP 분석
3way-handshaking
브라우저에 kau.ac.kr
주소를 입력하면 다음과 같이 [SYN] → [SYN,ACK\ → [ACK] 3way-handshake를 진행한다.
- source 주소는 192.168.45.29로, 사용 중인 노트북이다. 이 주소로부터 목적지 주소에 SYN을 보내고, 3 way-handshaking을 진행한다.
- 3 way-handshaking은 데이터의 길이가 0이기 때문에 len=0이다.
- TCP control flow에서 사용되는 MSS(Maximum Segment Size)는 1460이다.
- MSS란? 수신 측이 한 번에 처리할 수 있는 데이터의 양
TCP Retransmission & Dup Ack
#346, #350에서 seq=1724, ack=3629에 대한 패킷이 불필요하게 재전송되었음을 확인할 수 있다.
- TCP는 불필요한 데이터가 전송되거나, 받아야 할 소켓을 받지 못하면 Retransmission을 통해 재전송을 요청한다.
- 여기서 PSH란 버퍼링 없이 바로 위 Layer가 아닌 7 Layer의 응용프로그램으로 바로 데이터를 전달하는 것이다.
- TCP는 송신자/수신자 모두 Read/Write에 대한 버퍼를 갖는다. 패킷 기반 통신을 할 때 응용 프로그램이 언제든지 이 소켓으로부터 읽거나 쓸 수 있도록 버퍼를 제공하는 것이다. 응용 프로그램에서는 이 소켓에 push 옵션을 써서 데이터를 쓰는데, PSH를 사용하면 추가 데이터가 버퍼에 들어가는 과정없이 즉시 데이터를 보낼 수 있다.
TCP 4way-handshake