TCP/IP (흐름/혼잡 제어, 3-way/4-way handshake)

TCP/IP

TCP와 IP의 개념에 대해서 먼저 알아보자!

TCP/IP는 OSI 7계층 에서 3계층과 4계층을 다루는 프로토콜(통신 규약)이다. TCP/IP는 패킷 통신 방식의 인터넷 프로토콜인 IP전송 조절 프로토콜인 TCP로 이루어져 있다.

즉, TCP/IP는 TCP와 IP를 합쳐 부르는 말로 TCP/IP를 사용한다는 것은 IP주소 체계를 따르고 IP Routing을 이용해 목적지에 도달하며 TCP의 특성을 활용해 송신자와 수신자의 논리적 연결을 생성하고 신뢰성을 유지할 수 있도록 하겠다는 것을 의미한다.

<aside> 💡 TCP/IP를 말한다는 것은 송신자가 수신자에게 IP주소를 사용하여 데이터를 전달하고 데이터가 제대로 전송 되었는지, 너무 빠르지는 않는지, 제대로 받았다고 연락이 오는 지에 대한 이야기!

</aside>

TCP

TCP는 위에서 말한 것처럼 데이터를 안정적으로 모두 보내는 것을 가장 중요시 한다. 데이터를 안정적으로 보내기 위해 필요한 정보들을 TCP Header에 담아서 전달한다.

Untitled

SYN, ACK, FIN, RST, Source Port, DEstination Port, Sequence Number, Window size, Checksum과 같은 정보를 전달하는데 이는 신뢰성 보장과 흐름 제어, 혼잡 제어에 관여할 수 있는 요소들도 포함되어 있다.

TCP는 이 정보들을 기반으로 상대와 신뢰성 있는 연결을 맺고 데이터를 전송하는데 그 때 하는 행동이 있다. 이 행동이 바로 3-way handshake이다.