본문 바로가기

네트워크

패킷 구성요소

1.Source Port / Destination Port

출발지와 목적지의 서비스 포트 번호


2.Sequence Number

이 필드는 고유한 번호를 포함하며, TPC 세그먼트(Segment)를 식별한다. 여기서 세그먼트는 TCP를 이요하여 전송되는 데이터 단위를 말한다. 수신 측에서 이 번호를 이용하여 패킷을 재 조립하며, 번호는 각 패킷에 포함된 데이터의 Byte 수 만큼 증가한다.


3.Acknowledgement Number

이 필드는 패킷 전송 / 재조립 시 사용되며, 수신된 Sequence Number에 대한 다음에 수신할 패킷의 순차 번호를 표시한다.


4.Header Length (Data Offset)

이 필드는 TCP 헤더의 길이 값을 정의한다. 일반적으로 TCP 헤더의 길이는 20Byte 이며, TCP 헤더 길이를 확장할 경우 4Byte씩 증가한다. TCP 헤더의 길이는 TCP 헤더 옵션의 사용 유무에 따라 다양하게 변하기 때문에 이 필드가 필요하다.


5.Reserverd

현재 사용되고 있지 않는 필드이다.


6-1.URG(긴급 비트)

좀처럼 보이지 않는 비트이며, 긴급한 상황이 발생했을 경우 사용된다.


6-2.ACK(확인 응답 비트)

데이터가 정상적으로 전소되었음을 알리는 비트이다.


6-3.PSH(Push 비트)

TCP 버퍼는 버퍼의 패킷이 수신되면 개별적으로 바로 전송하는 것이 아니라 적절한 크기의 패킷 크기로 전송하기 위해 자신이 일정 크기까지 유지시킨다. PSH 플래그는 TCP 세그먼트를 발신자.수신자 측면에서 버퍼에 유지시키지 않고 바로 보낼 때 사용한다. 시간에 매우 민감하며, 사용자 중심의 어플리케이션의 경우 PSH 플래그를 설정한다.


6-4.RST(Reset 비트)

RST 비트를 설정하면, TCP 패킷은 TCP 연결을 재설정한다. 만약 어플리케이션이 종료가 되었지만, RST를 전송하지 않은 경우 TCP 연결은 그대로 유지가 된다. 어플리케이션에서 오류가 생긴 경우 통신 중간에 RST를 전송하여, TCP 연결을 재설정 할 수 있다.


6-5.SYN(동기화 비트)

SYN비트는 3-Way Handshaking 과정을 제의하고자 할 때 사용되며, 3-Way Handshaking 과정의 첫 번째 2개의 패킷에서 설정한다.


6-6.FIN(Finish 비트)

이 비트는 데이터 전송이 완료되어, 현재 세션을 종료하고자 할 때 사용한다.


7.Windows Size

이 필드는 TCP 수신 버퍼의 최대 버퍼 크기를 표시한다. Windows Size가 0으로 설정되면, 수신자가 사용 가능한 버퍼 공간이 없음을 나타내며 최대 값은 65,535 이다.


8.CheckSum

TCP 헤더와 데이터의 무결성을 보장해 주는 값이다.


9.Urgent Point

이 필드는 URG 비트가 설정된 경우에만 사용되며, URG 비트가 설정되면 수신자는 어디서부터 읽기를 다시 수행할 지를 확인하기 위해 반드시 이 필드를 검사한다.


10.Option

추가적인 기능을 사용하고자 할 때 사용한다. 아래 표는 일반적으로 볼 수 있는 TCP 옵션들이다.


'네트워크' 카테고리의 다른 글

TCP 통신방식  (0) 2019.02.13
netstat 상태값 정리  (0) 2019.02.13
TCP와 UDP의 차이점  (0) 2019.02.13