Computer Science/Network

Network] TCP 소켓 데이터 전송 특징

TwinParadox 2016. 7. 21. 13:20
728x90

TCP 헤더(IPv4)


바이트 스트림을 Segment 단위로 나눔

Segment : TCP를 이용하여 두 종단 호스트 간에 전달되는 데이터 단위


 

 

송신지 포트번호

16bit

수신지 포트 번호

16bit

순서번호(Sequence Number)

32bit

확인 응답 번호(Acknowledgement Number)

32bit

헤더 길이

4bit

예약

6bit

urg

ack

psh

rst

syn

fin

Window

16bit

검사 합

16bit

긴급 포인터(Urgent Pointer)

16bit

옵션 패딩(Padding)

 




1. 송/수신지 포트 번호


16bit

segment 전송하는 host에 있는 응용프로그램의 포트 번호를 의미



2. 순서 번호(SEQ)


32bit

segment에 포함된 데이터의 첫 번째 바이트에 부여된 32비트 부호 없는 번호를 의미

수신지 TCP에게 segment의 첫 번째 바이트가 순서 번호에 해당하는 바이트임을 알려줌



3. 확인 응답 번호(ACK)


segment를 수신하는 노드가 상대편 노드에게 받는 바이트의 번호를 의미

성공적으로 수신한 마지막 바이트 순서 번호 + 1



4. 헤더 길이


4bit

TCP 헤더 길이를 4bit 워드 값으로 나타냄



5. 예약


나중에 사용하기로 예약된 6bit field



6. 플래그


프로토콜의 동작을 제어하는데 사용

URG : 긴급 처리 데이터 있음

ACK : 응답 확인 번호 사용

PSH : TCP가 받은 데이터를 상위 계층에 전달

RST : 연결 재설정

SYN : 연결을 초기화하기 위해 순서 번호를 동기화

FIN : 데이터 송신 종료



7. 윈도우 크기


상대방에게 유지되어야 하는 바이트 단위의 윈도우 크기를 정의



8. 검사 합


의사 헤드를 포함한 헤드 부분의 오류를 검출하는 검사 합 계산을 포함




9. 긴급 포인터


URG 플래그 설정 시, 긴급 데이터의 마지막 바이트의 위치를 나타냄

이 포인터 값의 순서 번호의 합으로 계산



10. 옵션


송신자가 수신하기를 원하는 segment의 최대 크기

728x90