-
TCP 패킷 구조 (전송계층 프로토콜)Knowledge/Network 2019. 5. 29. 00:50
TCP 패킷은 전송계층의 프로토콜로 연결지향형이다.
그리고 전송계층에서는 포트번호를 주소로 삼는다.
TCP 패킷 구조
S.Port
길이 : 2 Bytes
Source Port
출발지 포트
D.Port
길이 : 2 Bytes
Destination Port
목적지 포트
Seq.Number
길이 : 4 Bytes
Sequence Number
패킷의 순서 값
Ack.Number
길이 : 4 Bytes
Acknowledgment Number
통신 상대의 패킷 순서 값
Data Offset
길이 : 4 bits
TCP 패킷의 헤더 길이를 나타내며 32bits가 몇 행인지를 가리킨다.
최소값 : 5
Reserved
임시공간
Control Bits
길이 : 6 bits
6개의 비트는 각각 다음과 같이 TCP 패킷의 종류와 특성을 가리키고 있다.
URG (Urgent) - 1 이면 헤더의 마지막 필드인 긴급 포인터의 내용을 실행
ACK (Acknowledgment) - 1 이면 확인 번호 필드가 유효
PSH (Push) - 1 이면 송신자에게 높은 처리율을 요구
RST (Reset) - 1 이면 TCP 연결을 다시 설정
SYN (Synchronize) - 1 이면 연결 요청과 설정, 확인 응답에서 순서 번호를 동기화
FIN (Finish) - 1 이면 TCP 연결을 종료
ex) URG, RST, SYN의 값 : 1
-> 100110
Window
길이 : 2 Bytes
TCP에서는 흐름 제어를 할 때 슬라이딩 윈도우와 혼잡 윈도우 방식을 사용
슬라이딩 윈도우 (Sliding Window) - 데이터를 한 번에 처리할 수 있는 버퍼의 용량을 의미하는 윈도우의 개념을 사용한다.
슬라이딩 윈도우는 송신 시스템이 전송한 전체 세그먼트에 대한 확인 메시지를 수신하기 전에 다른 세그먼트를 전송할 수 있게 해준다.
혼잡 윈도우(Congestion Window) : 네트워크 혼잡 문제를 해결하기 위해 송신 시스템이 사용하는 방법이다.
네트워크 혼잡이 발견되면 보내는 ㄷㅔ이터의 양을 조절하여 줄이고 혼잡이 줄어들면 다시 원래 보내던 만큼 데이터 양을 늘린다.
Checksum
길이 : 2 Bytes
데이터 오류를 검사하기 위한 값
데이터 크기와 체크섬의 값이 틀리다면 데이터 전송에 오류가 있었다는 것을 의미한다.
Urgent Pointer
길이 : 2 Bytes
Control Bits가 URG인 경우에 현재 전송되는 데이터와 관계없는 TCP 데이터를 보내 우선 처리할 때 사용한다.
이때 우선 처리하려는 긴급 데이터의 마지막 바이트 위치를 Urgent Pointer로 나타낸다.
Options
옵셥의 종류와 길이, 데이터를 저장
Padding
옵션이 32bits가 안될 때 나머지 값을 0으로 채워주는 역할
Data
Data가 입력되어 있다.
'Knowledge > Network' 카테고리의 다른 글
TCP scan - TCP Open Scan (TCP Open 스캔) (0) 2019.06.18 DNS 레코드의 종류 (0) 2019.06.06 주요 포트와 서비스 정리 (0) 2019.05.28 ICMP 패킷 구조 (0) 2019.05.28 IP 패킷 구조 (0) 2019.05.28