TCP 프로토콜 구조
개요
Connection Oriented Protocol (연결 지향 프로토콜)
- 물리적을 전용회선이 연결되어 있는 것처럼 가상의 연결통로를 설정해서 통신하는 방식으로 가상의 연결통로를 가상회선 이라한다.
- 논리적인 연결통로를 통해 데이터를 주고받음으로써 데이터의 전송순서를 보장해준다, 이를 순서제어 라고 한다.
- 스트림 기반의 전송방식을 사용한다. 즉 데이터를 정해진 크기로 전송하는 것이 아니라 임의의 크기로 나누어 연속해서 전송하는 방식을 사용한다.
Reliable Protocol (신뢰할 수 있는 프로토콜)
흐름제어 (Flow Control) 수행
- 흐름제어란 상대방이 받을 수 있을 만큼만 데이터를 효율적으로 전송하는 것을 말한다.
오류제어 (Error Control) 수행
- 오류제어란 데이터의 오류나 누락없이 안전한 전송을 보장해주는 것을 말한다.
# 오류 판단 기준
- 데이터 오류 판단 기준은 송신측에서 계산한 체크섬을 수신측에서 검증하여 오류 여부를 판단한다.
혼잡제어 (Congestion Control) 수행
- 혼잡제어란 네트워크의 혼잡정도에 따라 송신자가 데이터 전송량을 제어하는 것을 말한다.
TCP 프로토콜 구조
① Source Port (16bits): 출발지 포트 번호
② Destinations Port (16bits): 목적지 포트 번호
③ Sequence Number (32bits): 송신 데이터 순서 번호
- 송신 시 전송하는 데이터의 시작 바이트 순번을 담는다. 바이트 순번은 전송하는 데이터의 바이트 단위로 부여하는 연속된 번호를 의미한다.
④ Acknowlegment Number (32bits): 상대방이 다음에 전송할 순서 번호
- 수신확인 응답(ACK)와 함께 해당 필드에 상대방이 다음에 전송할 순서 번호를 담아서 보낸다.
⑤ HLEN (4bits): 헤더의 길이
- 4bytes 단위로 표시하며 헤더는20bytes와 옵션헤더 최대 40bytes로 구성된다.
⑥ Reserved (4bits): 예약
⑦ Control Flags (6bits)
- URG: 긴급 데이터 설정
- ACK: 수신 확인 응답 설정
- PSH: 송수신 버퍼에 있는 데이터를 즉시 처리
- RST: 연결 중단(강제종료)
- SYN: 연결 설정
- FIN: 연결 종료
⑧ Windows Size (16bits)
- 수신측에서 송신측에 보내는 Receiver window size로 수신버퍼의 여유 공간 크기를 의미한다.
⑨ Checksum (16bits)
- 헤더를 포함한 전체 세그먼트에 대한 오류를 검사하기 위한 필드
⑩ Urgent Pointer (16bits)
- 세그먼트가 긴급 데이터를 포함하고 있는 경우에 사용되는 필드로 긴급 데이터의 위치값을 담고 있다.