- 송신자와 수신자를 연결하는 통신 서비스 제공
- 연결 지향 데이터 스트림 지원, 신뢰성, 흐름 제어 제공
- 애플리케이션과 인터넷 계층 사이의 데이터가 전달될 때의 중계 역할
- TCP, UDP가 여기에 속함
- HTTP에게 신뢰할 만한 통신 방식 제공
- IP 패킷(IP 데이터그램)이라고 불리는 작은 조각을 통해 데이터 전송
- 일단 커넥션이 맺어지면 클라이언트 ↔ 서버 간 메시지의 무결성, 순서 보장
- network congestion avoidance algorithm 사용
TCP 연결 설정 시 일어나는 일련의 과정
1. 클라이언트 → 서버 - SYN 패킷
2. 서버 → 클라이언트 - ACK SYN 패킷
3. 클라이언트 → 서버 - ACK
TCP 연결 해제 시 일어나는 일련의 과정
1. 클라이언트 → 서버 - FIN 플래그
2. 서버 → 클라이언트 - ACK (모든 데이터를 보내기 위해 CLOSE_WAIT상태 됨)
3. 서버 → 클라이언트 - FIN (모든 데이터 보낸 후)
4. 클라이언트 → 서버 ACK
- 서버는 ACK를 받고 소켓 닫음
- 클라이언트는 TIME_WAIT 시간 경과 후 닫음
- 순서 보장 X
- 수신 여부 확인 X
- 단순히 데이터만 주는 데이터그램 패킷 교환 방식 사용