전송계층이란?
•
송신자와 수신자를 연결하는 통신 서비스를 제공
•
연결 지향 데이터 스트림 지원, 신뢰성, 흐름 제어를 제공
•
애플리케이션 계층과 인터넷 계층 사이의 데이터가 전달될 때 중계역할
•
대표적으로 TCP, UDP 가 있음
TCP와 UDP
•
TCP
◦
패킷 사이의 순서를 보장
◦
연결지향 프로토콜을 사용해서 연결을 하여 신뢰성을 구축해서 수신 여부를 확인
◦
가상회선 패킷 교환방식 사용
◦
데이터의 손실 없는 전송을 보장
가상회선 패킷 교환방식
•
UDP
◦
순서를 보장 X
◦
수신 여부를 확인 X
◦
빠른 데이터 전송을 중요시
◦
실시간 스트리밍과 같은 빠른 전송 속도가 필요한 서비스에서 주로 사용
◦
데이터그램 패킷 교환 방식 사용
데이터그램 패킷 교환방식
TCP 연결 성립 과정
3-way handshake 방식
1.
SYN(Synchronization, 연결 요청 플래그)
클라이언트 — ISN(첫 번째 패킷에 할당된 임의의 시퀀스번호) →서버
2.
SYN+ACK
서버에서 SYN 수신, 서버 — 서버의 ISN, 승인번호(클라이언트의ISN+1) → 클라이언트
3.
ACK(Acknowledgement, 응답 플래그)
클라이언트 — 승인번호(서버의 ISN+1) → 서버
•
이러한 과정으로 신뢰성 구축
•
UDP는 이 과정이 X → 신뢰성 X
TCP 연결 해제 과정
4-way handshake 방식
1.
클라이언트 — FIN 세그먼트 → 서버
세그먼트?
2.
서버 — ACK 세그먼트 → 클라이언트
3.
클라이언트가 FIN_WAIT_2 상태가 되면
서버 — FIN 세그먼트 → 클라이언트
4.
클라이언트 — ACK → 서버
→ 서버는 CLOSED상태, 클라이언트는 일정 시간 대기후 CLOSED상태
왜 일정시간 대기?