
전송 계층의 역할
특징
오류 점검기능, 목적지의 애플리케이션 식별 기능 제공
- OSI 7계층 중 4계층으로써 물리, 데이터 링크, 네트워크를 거쳐 넘어온 데이터를 목적지에 신뢰할 수 있도록 전달하는 기능을 담당. - 신뢰할 수 있는 데이터를 순차적으로 전달하는 역할
- 상위 계층들이 데이터 전달의 유효성이나 효율성을 신경쓰지 않도록 해줌.
- 터가 중복되거나 누락되지 않고 오류 없이 순서에 맞게 전송되도록 관리.
연결형 통신과 비연결형 통신

- 데이터를 목적지에 문제없이 전달하는 신뢰성/정확성과 데이터를 빠르게 전달하는 효율성으로 구분
- 연결형 통신
- TCP
- 데이터를 교환하기 전에 연결을 맺고 데이터를 교환하는 동안 계속 연결을 관리하는 프로톨의 형태
- 신뢰할 수 있고 정확한 데이터를 전송함
- 비연결형 통신
- UDP
- 연결에 대한 초기화 과정이 없는 통신으로써 효율적으로 데이터 전송
TCP (Transmission Control Protocol, 전송 제어 프로토콜)

특징
- 연결형 통신 방식 프로토콜로써 신뢰할 수 있는 데이터 전송을 보장.
- 데이터 링크 계층에서 이더넷 헤더를 붙여 프레임을 만들고 네트워크 계층에서 IP 헤더를 붙여 IP 패킷을 만든 것처럼 전송계층에서도 TCP 전송할때 TCP 헤더를 붙여서 세그먼트를 만듬.
- TCP 헤더 + 데이터를 세그먼트라고 함.
통신과정
3-way handshake (연결 시작)

- TCP는 연결형 통신 프로토콜이기에 TCP 헤더의 6개의 코드비트가 존재
- 이때 SYN(연결 요청), ACK(확인 응답) 비트를 이용하여 연결을 확립
- 클라이언트는 연결 허락 응답을 잘 받았다는 의미로 다시 응답합니다 ACK(확인 응답) 이후 연결이 확립된 상태 (ESTABLISHED)가 되어 데이터 통신이 가능
- 신뢰성을 제공하기 위헤 TCP에서 컴퓨터간에 연결을 맺는 초기화 과정인 이 과정을 3-way handshake라고 함
데이터 교환
- 클라이언트 혹은 서버가 ESTABLISHED 상태에서 데이터를 보내면 각 측은 전송이 잘 되었다는 의미로 응답을 보냄 (ACK=1)
- 만약 ACK 응답이 돌아오지 않는다면 송신측은 데이터를 재전송
4-way handshake (연결 해제)

- 데이터를 전송한 후에는 연결을 끊기 위한 요청을 교환
- 연결을 끊을 때는 FIN(연결 종료)과 ACK(확인 응답)을 사용
- TCP 연결해제하는 이 과정을 4-way handshake라고 함
UDP (User Datagram Protocol, 사용자 데이터그램 프로토콜)

특징
- 비연결형 통신 프로토콜로써 데이터를 전송함
- TCP와 효율성을 중시하여 3-way handshake와 같은 연결 확인작업이 없음
- 데이터를 효율적으로 빠르게 보내는 것이 장점
- TCP가 TCP 헤더를 붙여서 세그먼트를 만든 것처럼 UDP는 UDP 헤더를 붙여 UDP 데이터그램을 만듦
- UDP 헤더는 TCP 헤더에 비해 간단하게 구성
- UDP를 이용하면 목적지에 관계없이 랜에서 일괄적으로 데이터를 보내는 브로드캐스트 기능 사용 가능
UDP 헤더

발신지와 목적지, 패킷의 길이, 중복 검사를 위한 Checksum만이 존재
Socket(소켓)

개념
특징
- 프로세스가 데이터를 보내거나 받기 위해서는 반드시 소켓을 열어서 소켓에 데이터를 써보내거나, 소켓으로부터 데이터를 읽어들여야 함
- 프로토콜, IP주소, 포트 넘버로 정의
- Socket 통신은 서버와 클라이언트가 지속적으로 연결을 유지하는 양방향 통신
- 실시간으로 데이터를 주고받는 상황이 필요한 경우에 사용
종류
스트림 (TCP)
- 양방향으로 바이트 스트림을 전송
- 연결 지향성이고, 오류 수정, 전송 처리, 흐름 제어를 보장
- 송신된 순서에 따라 중복되지 않게 데이터를 수신해 중복과 순서를 보장
- 소량의 데이터보다 대량의 데이터 전송에 적합
데이터그램 (UDP)
- 비연결형 소켓
- 데이터 크기의 제한이 있고, 데이터 전달이 확실하게 보장되지 않음
- 주로 멀티미디어 정보를 처리하기 위해 사용
요약 및 비교
| 특징 | TCP | UDP |
|---|
| 통신 방식 | 연결형 통신 | 비연결형 통신 |
| 장점 | 신뢰성 | 효율성, 속도 |
| 전송 순서 보장 | O | X |
| 수신 여부 확인 | O | X |
| 통신 유형 | 1:1 | 1:1 / 1:N / N:N |
TCP: 연결형 통신, 신뢰성 높음, 전송 순서 보장 및 수신 여부 확인 가능. 주로 안정성을 요구하는 애플리케이션에 사용.
UDP: 비연결형 통신, 속도가 빠르고 효율적. 전송 순서나 수신 여부 확인이 불가. 실시간 데이터 전송에 적합.
참고: 블로그1 / 블로그2 / 블로그3