TCP와 UDP는 4계층에서 사용되는 프로토콜이다. TCP는 연결 지향 프로토콜이고, UDP는 비연결 지향 프로토콜로 서로 각자의 장점과 단점을 가진다.
TCP는 연결 지향 프로토콜로 보안성을 중요시 한다. "안녕하세요"라는 문구를 TCP를 통해 보낸다고 가정하자. 그러면 TCP에서는 "안녕하세요"를 비트 단위로 쪼개서 순서대로 index를 붙여서 보낸 후 받았을 때 다시 재조립하여 "안녕하세요"가 나오게 한다.
UDP는 비연결 지향 프로토콜로 속도를 중요시 한다. 똑같은 문구를 UDP를 통해 보낸다고 가정하자. 처음에는 똑같이 비트 단위로 쪼개지만 보내는 과정에서 쪼개지는 대로 바로 보낸다. 그리고 나서 다시 재조립한다.

방금 전에 봤던 통신 과정을 보면 각각의 장단점이 보인다.
먼저 TCP는 각 비트마다 index를 붙여서 보내기 때문에 보내는 정보가 틀릴 일이 없다. 예를 들어, 인터넷 뱅킹 업무를 보고 있는 데 index 번호가 없어서 보냈을 때 틀린 정보가 가게 된다면 AB에게 보내야할 정보를 BA에게 보내는 실수가 있을 수 있다. 하지만 index를 붙임으로써 이 실수를 없앨 수 있다. 하지만 이렇게 안정적인 통신을 하면서 속도가 느려질 수 있다.
다음 UDP는 각 비트마다 index를 붙이지 않고 바로바로 보내기 때문에 속도가 빠르다. 예를 들어, 통화를 하는 데 음질이 끊긴다면 전화를 하는 사람과 받는 사람 모두가 의사소통이 안되어 답답하고 불편할 것이다. 게임도 마찬가지로 플레이 도중에 끊김이 발생하면 플레이어는 화가 날 것이다. 하지만 UDP를 사용하면 보내려는 정보를 바로바로 보내기 때문에 끊김없이 통화하고 게임할 수 있을 것이다. 하지만 TCP처럼 인터넷 뱅킹 같은 곳에서 사용했다가는 계좌번호가 잘못 인식되어 엉뚱한 사람에게 송금이 되는 그런 안타까운 일이 발생하게 될 것이다.