TCP (전송 제어 프로토콜)
호스트를 연결, 데이터를 교환하는 네트워크 프로토콜
TCP의 역활
데이터의 전달을 보증 & 순서대로 받게 해준다
도착한 패킷들을 점검하고 망가지거나 빠진 패킷들을 다시 요청
즉, 패킷이 신뢰할 수 있게 전달 되었는지를 보증해 주는 것
3way 핸드쉐이킹 방식을 사용
송신측 SYN(패킷 출발) 수신측
송신측 SYN/ACK(패킷을 무사히 받았는지 여부) 수신측
송신측 ACK(확인) 수신측
- 송신측은 수신측에게 패킷을 보냄
- 수신측은 송신측에게 패킷을 잘 받았는지에 대한 여부를 전달함
- 송신측은 수신측에게 ok 또는 재전송을 대답해줌
TCP 프로토콜 (네이버 시나리오)
- www.naver.com 입력
- DNS로 네이버 서버 IP 주소를 할당
- 응용 계층에서 메세지 데이터 패킹 (HTTP)
- 전송 계층에서 PORT정보, 전송제어 정보, 순서정보, 검증 정보 패킹 (TCP)
- 인터넷 계층에서 IP정보 (출발지, 목적지) 패킹
- 네트워크 엑세스 계층에서 MAC 주소 패킹
- 게이트웨이를 통해 인터넷망 접속
- 라우터를 통해 목적지를 찾아 연결
- 네이버 서버에 도착 => 패킷을 풀면서 데이터 조립
TCP의 순서 보장 시스템
- 클라이언트에서 패킷1, 패킷2, 패킷3 순서로 데이터 전송
- 서버에서 패킷1, 패킷3, 패킷2 순서로 받음
- 서버에서 패킷2번부터 다시 보내라고 요청