같은 데이터도 확인하며 보내는 길과 바로 보내는 길이 있습니다
연결 설정, 순서 번호, ACK, 재전송, 흐름 제어와 혼잡 제어를 통해 전달 상태를 관리합니다.
연결 설정과 재전송을 전송 계층에서 기본 제공하지 않고 작은 헤더로 바로 전달합니다.
TCP는 세 번의 신호로 연결을 시작합니다
이 과정을 3-way Handshake라고 합니다. 핵심은 데이터 내용이 아니라 통신을 시작할 준비와 순서 번호의 기준을 맞추는 것입니다.
TCP는 순서를 기억하고 빠진 데이터를 다시 보냅니다
Sequence Number로 데이터의 순서를 추적하고 ACK로 어디까지 받았는지 확인합니다. 중간 데이터가 빠지면 재전송을 통해 신뢰성을 높입니다.
수신자가 감당할 만큼만 보내는 것과 길 전체가 막히지 않게 하는 것은 다릅니다
Receive Window(rwnd) 등을 이용해 수신 측이 처리할 수 있는 범위를 넘지 않도록 조절합니다.
Congestion Window(cwnd) 등으로 중간 네트워크가 감당할 수 있는 전송량을 고려합니다.
Port는 한 컴퓨터 안에서 최종 프로그램을 구분합니다
IP 주소가 호스트를 찾는다면 Port 번호는 그 호스트 안에서 어떤 응용 프로세스와 통신할지를 구분합니다. 결국 실제 통신의 끝점은 IP와 Port가 함께 있는 Socket 관점으로 볼 수 있습니다.
TCP와 UDP의 차이는 “좋고 나쁨”이 아니라 애플리케이션이 필요한 확인 절차와 지연 특성에 따라 선택하는 전송 방식의 차이입니다.