시소당
TCP(Transmission Control Protocol)는 IP와 함께 사용되는 프로토콜로 이 둘을 묶어 TCP/IP라고 한다. TCP는 데이터나 파일을 패킷으로 나누거나 재조립하는 역할을 하며 IP는 패킷을 전달하거나 받는 역할을 한다. 데이터나 파일은 네트워크로 전달될 때 여러 개의 작은 조각으로 나뉘어지는데, 이것을 패킷(packet)이라고 부른다.
TCP는 연결지향성과 신뢰성을 큰 특징으로 한다. 클라이언트의 연결이 확실할 때만 통신이 가능하며 데이터를 주고받을 때 데이터의 손실이 없음을 보장하는 것이다. 따라서 신뢰성을 기반으로 하는 프로그램에 적합하다.
UDP(User Datagram Protocol)도 IP와 함께 사용되는 프로토콜로 TCP와 유사한 점이 많지만 연결 상태와 데이터의 손실 여부를 체크하지 특징이 있다. 즉, TCP와는 대조적으로 연결성과 신뢰성이 없는 프로토콜이다. 따라서 일부 데이터가 손실되어도 치명적이지 않는 프로그램 등에 적합하다. TCP에서의 패킷을 UDP에서는 데이터그램(datagram)이라고 부른다. TCP와 UDP는 모두 양방향 전송(Full Duplex)을 지원한다.
자바는 TCP와 UDP를 모두 지원하는데, TCP를 위한 Socket 클래스와 UDP를 위한 DatagramSocket 클래스가 있다.