전송 계층
송신자와 수신자를 연결하는 통신 서비스를 제공
연결 지향 데이터 스트림 지원, 신뢰성, 흐름 제어를 제공
애플리케이션과 인터넷 계층 사이의 데이터 전달 중계 역할
- TCP: 순서 보장, 연결 지향 프로토콜 사용, 수신 여부 확인 (가상회선 패킷 교환 방식)
- UDP: 순서 보장 X, 수신 여부 확인 X, 단순한 데이터 전달 (데이터그램 패킷 교환 방식)
가상회선 패킷 교환 방식
- 각 패킷에 가상회선 식별자가 포함
- 모든 패킷을 전송했다면 가상회선 해제, 패킷은 전송 순서대로 도착
데이터그램 패킷 교환 방식
- 패킷이 독립적 이동, 최적 경로 선택
- 서로 다른 경로로 전송될 수 있고 순서도 다를 수 있음
TCP의 연결 성립과 해제 과정
연결: 3-way handshake
- 클라이언트가 자신의 ISN을 담은 연결 요청 플래그를 발송
- 서버가 승인 번호로 서버의 ISN과 클라이언트의 ISN + 1을 반송
- 클라이언트가 서버의 ISN + 1을 승인번호와 함께 재응답
연결 해제: 4-way handshake
- 클라이언트가 FIN 설정된 세그먼트를 보내고 FIN_WAIT 돌입
- 데이러를 받은 서버가 클라이언트로 ACK 승인 세그먼트를 보내고 CLOSE_WAIT 돌입
- ACK 보낸지 일정 시간이 지난 이후 FIN 세그먼트 발송
- ACK를 받은 클라이언트 TIME_WAIT 돌입, 서버로 다시 ACK 재발송
- 받은 서버가 CLOSE
TIME_WAIT을 쓰는 이유: 지연 패킷의 가능성, 연결 해제 확실하게 확인