1. Transport Layer (전송계층)
- 목적지에 신뢰할 수 있는 데이터를 전달하는 계층
- 역할
- 공통
- TCP헤더, UDP헤더에 포트번호가 포함된다.
TCP
UDP
2. TCP(Transmission Control Protocol)
- HTTP,SSH,FTP
- 데이터를 메시지 형태로 보내기 위해 IP와 함께 사용하는 프로토콜
- IP주소 체계를 따르고 IP Routing을 이용해 목적지에 도달하며 TCP의 특성을 활용해 신뢰성을 유지하겠다.
- IP → 데이터의 배달
- TCP → 패킷 추적 및 관리
- 패킷 : 라우팅을 효율적으로 하기 위해 데이터를 여러 조각들로 나누어 전송하는 것
- 연결형 서비스
- 연결을 위해 할당되는 논리적 경로가 있다.
- 연결 설정(3-way handshaking)
- 해제 설정(4-way handshaking)
- 흐름 제어 및 혼잡 제어
- 흐름제어
- 데이터를 송신하는 곳과 수신하는 곳의 데이터 처리 속도를 조절
- 수신자의 버퍼 오버플로우 방지
- 혼잡제어
- 네트워크 내의 패킷 수가 증가하지 않도록 방지
- 정보의 소통량이 과다하면 패킷을 조금만 전송하여 혼잡 붕괴 현상을 막음
- 단점
- 매번 connection을 연결해서 시간 손실 발생 (3-way-handshaking)
- 패킷을 조금만 손실해도 재전송
- 언제 사용?
- 연속성보다 신뢰성있는 전송이 중요할 때 사용하는 프로토콜
- ex) 파일전송, HTTP, 메일
1. TCP 3-way handshaking
: 양쪽 모두 데이터를 전송할 준비가 되었다는 것을 보장한다.
- 0단계 - 통신전
- 클라이언트는 포트가 닫힌 Closed 상태
- 서버는 해당 포트로 항상 서비스를 제공할 수 있도록 Listen 상태
- 1단계 - 클라이언트의 통신 요청 (SYN)
- 임의의 포트 번호가 클라이언트 프로그램에 할당
- 클라이언트 SYN Sent 상태
- 2단계 - 서버의 통신 수락 (SYN + ACK)
- 서버는 SYN Received 상태
- 클라이언트 Established 상태
- 3단계 - 클라이언트의 서버 응답 확인 (ACK)
- 클라이언트는 서버의 응답을 확인했다는 표시로 ACK 전송
- 서버 Established 상태