TCP가 하는 일

TCP은 인터넷에 연결된 컴퓨터에서 실행되는 프로그램 간에 통신을 안정적으로, 순서대로, 에러 없이 교환할 수 있게 한다.

TCP의 안정성을 필요로 하지 않는 애플리케이션의 경우 일반적으로 TCP 대신 UDP을 사용한다.

TCP는 UDP보다 안전하지만 느리다. -> 체감은 못함 이론상 느림

TCP는 통신을 하면서 계속해서 상대방이랑 연결 상태를 물어본다. (보내도 돼? 안돼? 지금 보내는 건 중요한 거야)

 

TCP 프로토콜의 구조

Source Port

출발지 포트

Destination Port

도착지 포트

Sequence Number

 

Acknowledgment Number

 

Offset

헤더의 길이, 4로 나눈 값을 쓴다.

Reserved

사용하지 않는다

TCP Flags

C E U A P R S F

Window

데이터를 얼마큼 보내야 할지 물어볼 때 사용한다.

Checksum

헤더의 오류를 검사한다.

Urgent Pointer

TCP 플래그 중 U가 활성화되면 데이터 중 어디서부터 긴급 데이터인지 알려줌, 몰라도됌

TCP Options

일반적으로는 잘 안 붙지만 붙더라도 4byte씩 붙는다. 최대 10개까지 붙을 수 있다. 최대 60byte까지 늘어날 수 있다.

 

 

 

 

 

TCP 플래그

U A P R S F 만 알면 된다.

TCP는 통신을 하면서 계속해서 상대방이랑 연결 상태를 물어본다. (보내도 돼? 안돼? 지금 보내는 건 중요한 거야) 여러 가지 형태로 데이터를 보낸다. 그때 나타내는 것이 플래그 값이다. 어떤 플래그 값을 보내느냐에 따라 다르다.

 

U

긴급 비트, 내가 보내는 데이터가 우선순위가 높은 데이터가 포함되어 있다.

A

승인 비트, 상대방이 물어봤을 때 승인을 할 때 사용하는 비트이다.

P

밀어 넣기 비트

R

초기화 비트, 상대방과 연결이 돼 있는 상태에서 추가적으로 데이터를 주고받으려고 하는데 문제가 생겨 연결을 초기화할 때 사용

S

동기화 비트, 상대방과 연결을 시작할 때 사용하는 비트

F

종료 비트, 데이터를 다 주고받은 다음 연결을 끊을 때 사용하는 비트