[reference doc/site] 

http://sweet-memories.tistory.com/3

http://ccnpsecurity.blogspot.kr/2011/12/tcp-header-format.html

- http://blog.naver.com/ssamba?Redirect=Log&logNo=125712071

http://packetcrafter.wordpress.com/2011/02/13/tcp-flags-hackers-playground/


1. TCP 프로토콜 구조



- telnet 은 요즘은 리눅스에서도 사용되지 않고 ssh 로 대체됨

- 꼭 봐야할 프로토콜 : IP, ICMP, TCP, UDP


2. TCP 프로토콜 역할과 특징

1) 역할

- 데이터를 전송 전 양 종단 간의 연결 설정

- 연결 설정 후 가상회선 생성

- 데이터그램 연결이 설정된 것을 알리고 연결종료를 통해서 연결을 종료

- 패킷이 아닌 전체 메시지를 기다림

- 오류 검출 기능과 손상된 프레임의 재전송을 보장


2) 특징

- 높은 신뢰성

- 가상회선 연결 방식 : 전화선과 비슷한 개념

- 연결의 설정과 해제

- 데이터 체크섬 : 요즘은 장비들이 각각 기능에 따라 패킷을 건드려서(소스 IP 변경 등) 잘 사용안됨

- 시간 초과와 재전송

- 데이터 흐름 제어


3. TCP Segment Format


- TCP 세그먼트의 전문 구조 (20byte)


- TCP 세그먼트를 2바이트 단위로 쪼갠 구조



- 출발지, 목적지 포트 번호 : 호스트에 있는 응용 프로그램의 포트 번호

- 순서번호 : 전달되는 각 바이트에 대한 시퀸스 넘버로 1씩 증가

- 확인번호 : 수신측에서 수신하고자 하는 바이트의 번호

- 헤더길이 : TCP 헤더의 길이

- 예약 : 아직 사용하지 않는 필드로 값은 0


4. TCP Flag


1) URG (Urgent)

-  Urgent point 유효여부, Urgent pointer 란 전송하는 데이터 중 긴급히 전달해야 할 내용이 있을 

    경우에 사용


2) ACK (Acknowledgement)

- 받는 사람이 보낸 사람 시퀸스 번호에 TCP 계층에서 길이 또는 데이터 양을 더한 것과 같은 ACK

   를 보냄


3) PSH (Push)

- 대화형 트랙피에서 사용되는 것으로 버퍼가 채워지기를 기다리지 않고 데이터를 전달


4) RST (Reset)

- 재설정을 하는 과정이며 양방향에서 동시에 일어나는 중단 작업. 비 정상적인 세션 연결 끊기에

   해당


5) FIN (Finish)

- 세션을 종료시키는 데에 사용되며 보낸 사람이 더 이상 보낸 데이터가 없음을 보여줌


6) SYN (Synchronization)

- 세션을 설정하는 데에 사용되며 초기에 시퀸스 번호를 보내고, 시퀸스 번호는 임의적으로

   생성하여 보냄


- 와이어 샤크에서 TCP Flags



'My Security Study > Skill' 카테고리의 다른 글

OpenSSL HeardBleed 취약점 정리  (1) 2014.04.20
TCPdump  (0) 2013.11.12
TCP Connection  (0) 2013.11.11
Form SQL Injection  (0) 2013.11.10
다운로드 파일의 HASH 테스트 방법  (0) 2013.05.22
Posted by i kiss you
,