메뉴 닫기

TCP,UDP 차이점 및 헤더 분석

★ TCP 에서의 데이터 전송 단위는 세그먼트라 함

1 .TCP 헤더 분석 (TCP는 양방향성 입니다.)

 

TCP패킷

 

○ Source / Destination Port Number ( 각 16 비트) 

1.source port (출바지 포트) : 종류에 따라 출발지 포트가 정해져 있는 것도 있지만 대부분의 경우 처음 세그먼트를 전송하는 측에서 임의의 번호를 사용 합니다.

(client port, 1024~ 이상의 port 사용)

2.destination port(목적지 포트) : 종류에 따라 처음 세그먼트를 전송하는 측에서 사용하는 목적지 포트가 정해져 있습니다.

예를 들어서 웹으로 접근하는 프로토콜은 80번 입니다. (Well-know port 1~1023)

 

○ Sequnce Number(순서번호 32비트)

  • TCP 세그먼트의 순서번호를 표시 합니다. 통신을 시작하는 양단의 장비들이 별개로 임의의 번호부터 시작합니다.
  • 0~43억 순서제어 가능
  • TCP 각 세그먼트의 첫번째 바이트에 부여되는 번호 (바이트 단위로 구분되는 번호임)
  • 32 비트이므로 최대 4기가 바이트 크기의 (232) 의송신
  • 데이터에 순서화된 일련번호를 붙일 수 있음

○ Acknowledgement Number (확인응답번호) (32비트) –

수신하기를 기대하는 다음 바이트 번호 = ( 마지막 수신 성공 번호 +1)

상대방이 보낸 세그먼트를 잘 받았다는 것을 알려주기 위한 번호 입니다.

 

 

○ 헤더 길이 필드 (Header length,HLEN, 4비트)

– 4 바이트 단위로 표시, 따라서 TCP 헤더 길이는 최소 20바이트 총 60바이트(3way-handshake 절차 협상에 사용) 이하

○ 6개의 Flag bits (URG,ACK,PSH,RST,SYN,FIN) – TCP 세그먼트 전달과 관련되어 TCP 회선 및 데이터 관리 제어 기능을 하는 플래그

흐름제어, 연결설정, 연결종료, 연결리셋, 데이터 전송모드

○ 윈도우 크기(Window size, 16비트)

-흐름제어를 위해 사용하는 16비트 필드 (65,535 byte까지 가능)

TCP 흐름제어를 위해 통신의 상대편에게 자신의 버퍼 여유용량 크기를 지속적으로 통보하여주는 기능을 함.

– 수신측에 의해 능동적으로 흐름제어를 수행하게 됨 ○ Checksum (16비트) : 헤더와 데이터의 에러를 확인 하기 위한 필드 입니다.

○ Urgent Pointer (16비트) – TCP 세그먼트에 포함된 긴급 데이터의 마지막 바이트에 대한 일련번호 입니다.

현재 일련번호(sequence number)로 부터 긴급 데이터까지의 바이트 오프셋 (offset) 해당 세그먼트의 일련번호에 urgent point 값을 더해 긴급 데이터의 끝을 알수있음

○ 옵션 – 최대 40바이트까지 옵션 데이터 포함 가능.

TCP MMS 옵션을 협상 하거나, 타임스탬프 옵션정의, 최대 세그먼트 사이즈 지정 등 추가적인 옵션이 있을 경우 표시 합니다.

 

2. UDP 헤더 분석

udp 의 경우 신뢰성이 낮은 프로토콜로써 완전성을 보증하지 않으나, 유연하며 효율적 응용의 데이타 전송에 사용 합니다.

UDP

  •  발신 포트 번호 (source port 16비트) : TCP 와 동일
  • 수신 포트 번호 (destination port 16비트) : TCP 와 동일
  • 패킷 전체 길이 : 헤더와 데이터를 포함한 바이트 단위의 길이. 최소값 8 (헤더만 포함될 때)
  • 체크섬 : 선택 항목, 헤더와 데이터의 에러를 확인 하기 위한필드  (체크섬 값이 0이면 수신측은 체크섬 계산 안함)

3. UDP 주요 기능 및 특징

○ 비 연결성이고, 신뢰성이 없으며, 순서화 되지 않은 데이타그램 서비스 제공

  • data 가 제대로 도착했는지 확인하지 않음 ( 확인응답 없음)
  • 수신된 패킷의 순서를 맞추지 않음 (순서제어 없음)
  • 흐름 제어를 위한 피드백을 제공하지 않음 (흐름제어 없음)
  • udp를 사용하는 프로그램 쪽에서 오류제어 기능을 스스로 갖추어야 합니다.

○ 빠른 요청과 응답이 필요한 응용에 적합

실시간!! 응용 등에 사용

 ○ 헤더가 단순함

  • udp 는 tcp 처럼 16비트의 포트 번호를 사용
  • 헤더는 고정크기의 8바이트 (TCP는 20바이트) 만 사용
  • 즉 헤더처리에 많은 시간과 노력을 요하지 않는다

○ udp 위에서 동작되는 프로토콜 또는 응용분야

  – TFTP, SNMP, DHCP, DNS, RIP 등

○ 최대 데이터 크기

 – 65,507바이트 = 65,535 바이트 – udp 헤더 8바이트 – ip 헤더 20바이트

 

출처 : http://heartbleed.tistory.com/ 

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x