- 전송 제어 프로토콜 ( Transmission Control Protocol )
- 인터넷에 연결된 컴퓨터에서 실행되는 프로그램 간에 통신을 안정적으로, 순서대로, 에러없이 교환할수 있게 함
- TCP의 안정성을 필요로 하지 않는 애플리케이션의 경우 일반적으로 TCP 대신 비접속형 사용자 데이터그램 프로토콜 ( UDP )을 사용함
- TCP는 UDP보다 안전하지만 느림
- 출발지 포트번호 ( 2바이트 ) / 목적지 포트번호 ( 2바이트 )
- 일반적으로 20바이트인데 TCP Oprions가 붙는것에 따라 60바이트까지 늘어날 수 있음
- TCP Options은 일반적으로 잘 안붙고 붙더라도 4바이트씩 총 10개까지 붙을수 있음
- Offset은 길이인데 4로 나눠서 씀
- Reserved 예약된필드 - 사용X, Checksum
- Window는 사용공간이 얼마만큼 남았는지 알려주는 것 - 연결지향형
: TCP 버퍼 공간을 알려줌- Urgent Pointer : TCP Flags와 같이 보자
- TCP가 계속해서 통신하면서 연결상태를 물어보는데
- 어떤 플래그를 세팅해서 보내느냐에 따라서 연결하려고 물어보는건지 데이터를 보내도된다고 대답을 하는건지 연결을 종료하려고 하는지 연결 초기화하는건지 데이터를 보내는건지 급한건지아닌지 지정하는 것
- TCP의 주된 기능은 플래그로 나눠짐
- 패킷캡쳐해서 플래그를 보면
- 위의 네모는 잘 안쓰고 밑의 것을 많이 쓰는데 현재는 Syn만 세팅됨
- 동시에 여러개가 세팅되기도 함
https://www.youtube.com/watch?v=cOK_f9_k_O0&list=PL0d8NnikouEWcF1jJueLdjRIC4HsUlULi&index=21