공시 한 판

정보보호론 개념서 · 네트워크 보안 프로토콜과 무선랜

TCP·UDP 전송 계층

설명 영상 TCP·UDP 전송 계층 · 2:35

핵심 정리

전송 계층은 응용 계층이 넘긴 데이터를 상대 호스트의 해당 프로세스까지 전달하는 계층이다. 네트워크 계층의 IP가 호스트와 호스트 사이의 전달을 맡는다면, 전송 계층은 호스트 안에서 어느 프로세스와 통신하는지를 정한다. 이 구분 때문에 TCP 소켓은 IP 주소와 포트 번호를 합친 주소로 정의되며, 이 주소로 통신 상대를 식별한다. 같은 호스트에서 여러 서비스가 함께 돌아가더라도 TCP는 포트 번호를 이용하여 서비스를 구별한다.

TCP의 요건은 연결 지향성이다. TCP는 연결 지향 프로토콜이며, 비연결 지향은 UDP의 특징이다. 데이터를 보내기 전에 3-Way Handshaking으로 연결을 세우는 것이 TCP의 기본 절차다. TCP는 3-Way Handshaking으로 연결을 설정한다. 연결 설정에 성공한 클라이언트는 CLOSED에서 SYN_SENT를 거쳐 ESTABLISHED 상태가 된다.

연결이 세워진 뒤 TCP는 순서 번호로 세그먼트의 흐름을 관리한다. 첫 세그먼트의 순서 번호는 고정된 값이 아니다. TCP 연결 설정 시 첫 세그먼트의 순서 번호는 임의로 정하며 항상 0에서 시작하지 않는다. 다음 세그먼트의 순서 번호는 앞 세그먼트가 성공적으로 운반한 데이터 바이트 수만큼 증가한 값이다. 이 증가 기준은 데이터 바이트 수만큼 증가로 정리해 두면 된다.

UDP는 연결을 세우지 않는 비연결 지향 프로토콜이라 연결 상태를 관리하는 필드가 헤더에 없다. 헤더는 UDP 헤더는 발신지 포트 번호, 목적지 포트 번호, 길이, 체크섬의 4개 필드로 구성된다. 순서 번호는 UDP 헤더의 구성 요소가 아니다.

UDP는 헤더가 짧고 연결 관리가 없어 가볍지만, 전달 순서와 도착 여부를 헤더 필드만으로 보장하지 못한다. 그래서 응용 계층이 필요한 신뢰성을 직접 구현하거나 다른 방식에 맡겨야 한다. 데이터그램 기반 응용에 보안을 주는 DTLS는 스트림 지향 TLS를 바탕으로 하며, 전송의 의미를 보존하도록 설계되었다. 두 프로토콜의 장단점은 결국 헤더에 어떤 정보를 담았는지에서 갈린다.

자세히

UDP 헤더 필드와 역할

UDP 헤더의 네 필드는 역할이 나뉜다. 발신지 포트 번호는 응답을 돌려받을 프로세스를 알려 주고, 목적지 포트 번호는 데이터를 받을 프로세스를 가리킨다. 길이 필드는 헤더를 포함한 크기를 나타내며, 체크섬은 오류 검출을 위해 헤더에 포함되는 필드다. 필드 수가 적다는 점은 UDP의 장점이면서 동시에 한계다. 필드에 연결 상태나 순서 정보가 없으므로, 그 역할은 TCP의 헤더 필드가 맡는 것과 대비해서 기억해야 한다.

이어지는 내용

로그인하면 하루 5페이지까지 무료로 전체를 읽을 수 있습니다.

앱에서 이 절 읽기