어떻게 빠르게 보내기, UDP
TCP는 받았는지 하나하나 확인하고, 오지 않으면 다시 보낸다. 덕분에 정확하지만 그만큼 기다려야 한다. 그런데 영상통화처럼 0.1초도 아까운 순간에는 한두 조각이 빠지더라도 일단 빠른 편이 낫다. 그럴 때 쓰는 것이 UDP예요.
확인을 생략한다
앞 레슨의 TCP를 떠올려 보자. 조각이 도착할 때마다 받았다는 확인(ACK)을 주고받았다. 그 한마디 덕분에 정확하지만, 주고받는 만큼 시간이 든다.
UDP는 생각을 바꾼다. 확인은 건너뛰고 일단 빠르게 보내는 것이다. 받았는지 묻지 않고 조각을 연달아 그냥 내보내요.
보내기 버튼을 누를 때마다 조각이 하나씩 곧바로 날아간다. TCP와 달리 확인(ACK)을 기다리지 않아서 다섯 조각이 쉼 없이 나가요.
확인을 기다리지 않으니 조각이 쉴 새 없이 나간다. 같은 시간에 훨씬 많이, 훨씬 빠르게 보낼 수 있다.
대신 한 가지를 포기했어요. UDP는 무엇이 도착했는지 신경 쓰지 않는다. 그렇다면 도중에 조각이 빠지면 어떻게 될까?
몇 개 빠져도 그냥 간다
TCP라면 빠진 조각을 다시 보내 달라고 했을 것이다. UDP는 그러지 않는다. 조각 하나가 길에서 사라져도 멈추지 않고 그냥 다음으로 간다.
빠진 것은 빠진 채로 두는 셈이에요. 무책임해 보이지만, 빠진 한두 개를 메우려고 전체를 멈추는 편이 더 손해인 경우가 있다.
보내기를 누를 때마다 조각이 하나씩 나아간다. 다섯 조각 가운데 두 개는 도중에 사라지지만, UDP는 다시 보내지 않고 끝까지 그냥 가요.
조각 몇 개가 빠졌는데도 전송은 끊김 없이 끝났다. 받는 쪽에는 구멍이 좀 생겼지만 흐름은 한 번도 멈추지 않았다.
이것이 UDP의 성격이에요. 완벽함보다 멈추지 않음을 고른다. 그런데 빠진 것이 있는데 정말 괜찮을까? 어디에 쓰는지를 보면 답이 나온다.
언제 쓰는가
UDP가 어울리는 곳은 늦으면 안 되는 일이다. 온라인 게임을 떠올려 보자. 한 박자 늦게 도착한 위치 정보는 다시 받아 봐야 이미 지나간 일이다.
영상통화도, 생방송도 마찬가지예요. 지금 이 순간이 중요하지, 조금 전에 빠진 한 조각을 다시 받는 것은 의미가 없다.
짧은 질문 하나를 주고받는 일에도 UDP가 쓰인다. 앞에서 본 이름 찾기도 대개 UDP로 묻고 답한다.
온라인 게임, 영상통화, 생방송 카드를 하나씩 누르면 왜 늦으면 안 되는지가 나온다. 셋 모두 늦는 것이 더 치명적이라 UDP가 어울려요.
세 경우에는 공통점이 있다. 조금 빠지는 것보다 늦는 것이 더 치명적이라는 점이다. 게임 화면이 멈추거나 통화 목소리가 끊겨 밀리면 그쪽이 훨씬 답답하다.
UDP는 그 답답함을 피한다. 조금 거칠어도 멈추지 않고 지금을 흘려보내는 쪽을 택하는 것이에요.
TCP와 UDP를 견준다
둘은 어느 쪽이 낫고 못하고의 문제가 아니다. 목적이 다를 뿐이다. TCP는 정확함을 먼저 챙긴다. 확인하고, 다시 보내고, 줄을 세우는 만큼 조금 더 기다린다.
UDP는 빠름을 먼저 챙긴다. 확인 없이 내보내고 빠진 것은 그냥 두는 만큼 거칠 수 있어요. 무엇이 더 중요하냐가 선택을 가른다.
두 버튼을 눌러 TCP와 UDP를 견준다. TCP는 네 조각이 다 도착하지만 더 오래 기다리고, UDP는 한 조각이 빠져도 기다림이 짧아요.
견주어 보니 분명하다. 빠짐없이 정확해야 하는 글이나 파일은 TCP에게 맡긴다. 지금 이 순간이 생명인 게임과 통화는 UDP에게 맡긴다.
인터넷이 둘을 다 갖춘 것은 세상에 두 가지 급함이 다 있기 때문이에요. 일에 맞는 도구를 골라 쓰면 된다.
정리
한 줄로 모으면 이렇다. UDP는 확인(ACK)을 생략하고 조각을 빠르게 연달아 내보내며, 몇 개가 빠져도 다시 보내지 않고 그냥 간다.
그래서 게임, 영상통화, 생방송처럼 늦으면 안 되는 일에 잘 맞아요. 정확함이 먼저면 TCP, 빠름이 먼저면 UDP. 목적이 다른 두 약속이다.
버튼을 누를 때마다 핵심이 하나씩 나타난다. (확인 생략 → 빠르게 연달아 → 몇 개 빠져도 그냥 → 게임·통화·방송에) 네 가지가 다 나오면 정리가 끝나요.
이제 TCP와 UDP를 둘 다 알았다. 정확함이 중요하면 TCP, 빠름이 중요하면 UDP. 인터넷은 이렇게 상황에 맞는 약속을 골라 쓴다.
그런데 컴퓨터 한 대에서는 브라우저, 메신저, 게임이 동시에 돌아가요. 주소를 보고 컴퓨터까지 온 조각은 그 가운데 어느 프로그램에게 가야 할까? 다음 레슨에서 그 답을 다룬다.