https://steady-coding.tistory.com/507
https://velog.io/@averycode/네트워크-TCPUDP와-3-Way-Handshake4-Way-Handshake
https://hyemsinabro.tistory.com/m/157
일반적으로 TCP와 IP를 함께 사용하는데, 패킷 통신 방식의 인터넷 프로토콜인 IP와 전송 조절 프로토콜인 TCP로 이루어져 있다. (IP가 데이터의 배달을 처리하면 TCP는 패킷을 추적 및 관리한다.)
IP는 패킷 전달 여부를 보장하지 않고, 패킷을 보낸 순서와 받는 순서가 다를 수 있다.
TCP는 IP위에서 동작하는 프로토콜로, 데이터의 전달을 보증하고 보낸 순서대로 받게 해준다. (HTTP, FTP, SMTP 처럼 TCP를 기반으로 하는 많은 애플리케이션 프로토콜들이 IP 위에서 동작한다.)
TCP/IP는 OSI 7 계층에서 Layer 3, Layer 4 를 다루는, 신뢰성 있는 데이터 전송을 지원하는 연결 지향형 프로토콜이다.
TCP/IP를 사용한다는 것은 IP 주소 체계를 따르고 IP Routing을 이용해 목적지에 도달하여, TCP의 특성을 활용해 송수신자들의 논리적인 연결을 생성하고 신뢰성을 유지할 수 있도록 하겠다는 뜻이다.
네트워크 통신시에 데이터가 손실되거나 전달 순서가 바뀌는 등의 문제가 발생할 수 있다. 이런 문제를 해결하고 통신의 신뢰성을 보장하기 위해 TCP/IP에서 사용하는 것이 흐름제어와 혼잡제어이다.
호스트와 호스트 간의 데이터 처리를 효율적으로 하기 위한 기법
수신 측이 송신 측보다 속도가 빠른 경우는 문제가 되지 않지만, 수신 측보다 송신 측의 데이터 처리 속도가 빠를 경우 문제가 생긴다.
수신 측에서 데이터 저장 용량을 초과하면 이후에 도착하는 데이터가 손실될 수도 있다. 데이터의 손실은 추가 패킷 전송이 필요하기에, 이를 조절하기 위해 강제로 송신 측의 데이터 전송을 줄인다.