TCP·UDP 전송 특성과 헤더
설명 영상 TCP·UDP 전송 특성과 헤더 · 2:12
핵심 정리
전송 계층의 대표 프로토콜은 TCP와 UDP이며, 두 프로토콜은 신뢰성과 연결 방식에서 뚜렷하게 갈린다. 전송 계층은 호스트의 응용 프로그램 사이에서 데이터를 나르는 계층이다. TCP는 호스트 사이에 신뢰성 있는 스트림 전송 서비스를 제공한다. 또한 TCP는 양방향으로 동시에 전송할 수 있는 전이중 연결 서비스를 제공한다. 이 두 특성이 TCP의 기본 틀이다.
UDP는 흐름 제어가 필요 없는 비신뢰적 통신에 쓰는 프로토콜이다. UDP는 비연결형이어서 연결 설정 없이 데이터를 전송한다. 이는 TCP가 사용자 데이터를 보내기 전에 소켓 연결을 세우는 데 세 개의 패킷을 쓰는 것과 대비된다.
UDP는 손실된 데이터에 대해 재전송을 요구하지 않는다. 그래서 UDP 위에서 신뢰성이 필요하면 응용 프로그램이 이를 직접 맡아야 한다.
TCP 헤더의 플래그는 SYN, ACK 등 1비트 크기로 TCP 동작을 제어하는 데 쓰인다. 플래그 값을 보면 연결 설정과 확인 응답 같은 동작을 가려낼 수 있다.
두 프로토콜 가운데 무엇을 쓸지는 신뢰성과 지연 가운데 무엇을 우선하느냐로 정해진다. 정확한 전달과 순서가 중요한 전송에는 TCP가 맞고, 손실을 감수할 수 있는 짧은 메시지 전달에는 UDP가 맞다.
자세히
연결 설정과 전송 방향
TCP는 연결 지향 프로토콜이므로 종단 간 통신을 설정하기 위해 핸드셰이킹이 필요하다. 데이터를 보내기 전에 상대와 통신 경로를 먼저 맞추며, 이 과정이 있어야 이후의 확인과 재전송이 가능하다. 연결이 설정되면 사용자 데이터는 그 연결을 통해 양방향으로 흐른다. 연결 설정에는 세 개의 패킷이 쓰이며, 이것이 데이터 전송 전에 드는 오버헤드로 꼽힌다. 반면 UDP는 상대의 준비 상태를 확인하지 않고 원본에서 목적지로 단방향으로 정보를 보낸다. 두 방식의 차이는 연결을 먼저 세우느냐, 바로 보내느냐에 있다.
재전송과 오류 대응
TCP에서 손실된 데이터는 다시 보내지며, 누락이 계속되거나 시간 초과가 여러 번 나면 연결이 끊어진다. 재전송은 확인 응답이 돌아오지 않을 때 같은 데이터를 다시 보내는 동작이다. 시간 초과는 기다리는 시간이 지나면 손실로 보고 재전송을 시작하는 기준이다. UDP 메시지는 도중에 손실될 수 있다. 그래서 UDP는 손실을 감수할 수 있는 응용에 맞는다.
이어지는 내용
- 순서와 스트림 전달
- 헤더 필드와 포트 번호
- 두 프로토콜의 비교
- 자주 헷갈리는 것
- 기출에서는
로그인하면 하루 5페이지까지 무료로 전체를 읽을 수 있습니다.
앱에서 이 절 읽기