전송 계층 - 현구

전송계층이란?

송신자와 수신자를 연결하는 통신 서비스를 제공
연결 지향 데이터 스트림 지원, 신뢰성, 흐름 제어를 제공
애플리케이션 계층과 인터넷 계층 사이의 데이터가 전달될 때 중계역할
대표적으로 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상태
왜 일정시간 대기?