네트워크 - TCP vs UDP
컴퓨터 네트워크를 공부하면서 정리를 한 내용들 입니다.
-참고 K-mooc 부산 대학교 유영환 교수님 : 컴퓨터 네트워크 강의
TCP vs UDP (Summary)
TCP와 UDP를 비교 할 수 있는 하나의 특징은 TCP는 전송의 fairness가 보장
된다는 것이고, UDP는 그렇지 않다는 것 입니다.
UDP는 congestion control과 같은 메커니즘이 없기 때문에 sender가 보내고 싶으면 보내고 싶은 만큼 전송 할 수 있습니다.
TCP는 congestion control 메커니즘 때문에 에러가 발생하면, 에러를 감지하면 window size를 반으로 줄이고
천천히 증가 시키는 과정을 거치게 됩니다.
그림을 보시면 가로축은 connection 1의 throughput이고, 세로축은 connection 2의 throughput입니다.
만약 한 시점에서 connection 1의 throughput이 굉장히 높은데, connection 2의 throughput은 굉장히 낮다고 가정합니다.
어느 순간 에러가 감지 되었고 connection 1의 congestion window는 반으로 줄어드는 것입니다.
congestion 2도 반으로 줄어들게 됩니다.
그래서 이렇게 많이 전송하고 있었으면 window size가 크게 줄어들고, 조금만 전송 하고 있었으면 조금 줄어들게 됩니다.
Multiplicative decrease 때문에
그렇게 새로운 connection이 들어오면, 새로운 connection은 낮은 데서 부터 시작 하겠지만 window size 차이가
그래도 점차 맞아지게 됩니다.
여기서 fairness를 보장 할 수 있는 것 입니다.
멀티미디어 애플리케이션 같은 경우에는 congestion을 맞추는 것 보다 속도가 빠른 것을 원하기 때문에,
이런 경우에는 congestion control 때문에 원하는 만큼의 화질을 빠르게 얻을 수 없으므로 UDP를 선호 합니다.
TCP와 UDP를 마지막으로 비교 해 보면
TCP는 reliable transfer
를 제공 하지만 UDP에 비해서 상대적으로 속도가 느립니다.
UDP는 속도는 빠르지만 서비스 guarantee
를 하지 못 합니다.
TCP는 보통 e-mail
이나 web browsing
, 웹 서버 처럼 정확성이 요구되는 그런 응용들에 쓰이고
UDP는 좀 에러가 나더라도 속도가 빨라야 하는, 속도가 항상 보장 되어야 하는 VolP
나 Music streaming
에 사용 됩니다.
TCP는 연결을 중심으로 하기 때문에 P2P 방식으로 unicast
,
1:1 연결을 사용 하지만 UDP는 다양하게 multicast
나 broadcast
도 서비스 할 수 있습니다.