TCP 프로토콜
TCP가 하는 일
전송 제어 프로토콜(Transmission Control Protocol, TCP)은 인터넷에 연결된 컴퓨터에서 실행되는 프로그램 간의 통신을 안정적으로, 순서대로, 에러없이 교환할 수 있게 한다.
TCP의 안정성을 필요로 하지 않는 애플리케이션의 경우 일반적으로 TCP 대신 비접속형 사용자 데이터그램 프로토콜(User Datagram Protocol)을 사용한다.
TCP는 UDP보다 안전하지만 느리다.
TCP 프로토콜의 구조
- Source Port :
- Destination Port :
- Sequence Number
- Acknowledgement Number
- Offset : 헤더의 길이. 4로 나눔
- Reserved : 예약된 필드. 사용x
- TCP Flags CEUAPRSF : 현재 패킷의 종류를 표시
- Window : 사용공간을 상대방에 알려주는 필드. 남아있는 TCP 버퍼 공간을 알려주는 필드
- Checksum : 체크썸
- Urgent Pointer :
- TCP Options (variable length, optional) : 일반적으로 잘 안 붙고 4byte씩 10개(총 40byte)까지 붙음
🌟(중요)TCP 플래그
TCP 플래그의 종류
- U(Urgent Flag) : 긴급 bit. 우선순위가 높은 데이터가 포함되어있다. 1로 표시 Urgent Pointer와 세트. *Urgent Pointer : 어디서부터가 긴급 데이터인지 알려주는 위치값
- A(ACK Flag) : 승인 bit. TCP에서 많이 사용되고 중요한 flag. 응답(승인)할 때 사용
- P(Push Flag) : 밀어넣기 bit. TCP 버퍼가 일정 크기만큼 쌓여야 추가적으로 전송하는데 이와 상관없이 데이터를 밀어넣겠다. 많이 사용x
- R(Reset) : 초기화 bit. 상대방과 연결된 상태에서 데이터를 주고받으려는데 문제가 발생했을 때 연결을 reset하는 bit
- S(Sync) : 동기화 bit. 상대방과 연결을 시작할 때 무조건 사용함. 제일 중요✨ 얘가 처음 보내지고나서 둘 사이의 연결이 서로 동기화되기 시작함.
- F(Fin) : 종료 bit. 데이터를 다 주고 받은 뒤 연결을 끊을 때
https://youtu.be/cOK_f9_k_O0