tcpdump
리눅스에서 tcpdump 명령어를 통하여 서버에 들어오는 패킷 정보를 볼 수 있음
- tcpdump src [IP] : IP로 부터 오는 패킷을 보여줌
- tcpdump dst [IP] : IP로 향하는 패킷을 보여줌
- tcpdump port [port] : 포트가 [port]인 것(양방향)
tcpdump src port [port] / tcpdump dst port [port]
- tcpdump -i eth192 : 인터페이스 eth192로 통하는 패킷을 보여줌
- tcpdump tcp : TCP 인것만 보여줌
- tcpdump udp : UDP 인것만 보여줌
*combine : and, or, not
- tcpdump src [IP] and not dst port [port] : [IP]로 부터 들어오며 목적지 포트가 [port]가 아닌 패킷
-tcpdump -w tcpdump.log : 결과를 파일로 떨구며, wireshark 등으로 분석에 쓰임
-tcpdump -r tcpdump.log : 떨어진 tcpdump 파일을 읽음 (cat 으로 읽을 수 없음)
TCP 헤더 구조
Source Port addres 필드 : 데이터를 생성한 애플리케이션에서 사용하는 포트번호
Destination Port address 필드 : 목적지 애플리케이션이 사용하는 포트 번호
Sequence Number 필드 : 세그먼트 순서를 맞추기 위한 필드
Acknowledgement Number 필드 : 다음 세그먼트 수신 준비 및 모든 데이터 수신 확인 역할
Offset 필드 : TCP 헤더의 크기 ( 5~15 : 5*32<160bit> ~ 15*32<480bit> )
Reserved 필드 : 차후의 사용을 위한 예약된 필드
Control Flags 필드 : 긴급, 혼잡, 확인, 수신 거부 등의 기능
Window size 필드 : 수신자가 한번에 받을 수 있는 데이터의 양. 송신자는 Window size만큼 ACK를 기다리지 않고 데이터를 전송. ACK가 계속 왔다갔다 하지 않아도 된다
Checksum 필드 : 세그먼트 내용의 유효성과 손상 여부 검사
3-way-handshake & 4-way-handshake
참고
https://mindnet.tistory.com/entry/네트워크-쉽게-이해하기-19편-TCP-Header-4계층-TCP-헤더-구조?category=702276
https://www.joinc.co.kr/w/Site/Network_Programing/AdvancedComm/Window_size
댓글