두 애플리케이션이 통신하기 위해 반드시 포트 번호를 결정해야 한다.
IP가 제공하는 오류 체크 기능은 프로토콜 동작을 위해 반드시 필요한 부분에만 국한된다.
즉 IP헤더에 대한 오류는 체크하지만 데이터에 대한 오류는 체크하지 않는다.
반면, TCP와 UDP는 헤더와 데이터에 대한 오류를 체크한다.
연결형 (connnection-oriented)
프로토콜이며, 연결이 성공해야 통신이 가능하다.신뢰성
있는 데이터를 전송한다. 데이터의 순서 유지를 위해 각 바이트마다 번호를 부여한다. 데이터를 재전송한다.1 대 1 통신(unicast)
느리다.
패킷관리가 필요없다.
연결의 설정(3-way handshaking)과 해제(4-way handshaking)
데이터 흐름 제어(수신자 버퍼 오버플로우 방지)
및 혼잡 제어(네트워크 내 패킷 수가 과도하게 증가하는 현상 방지)
비연결형 (connectionless)
프로토콜이며, 연결 없이 통신이 가능하다.비신뢰
적인 데이터를 전송한다. 데이터 재전송과 데이터 순서 유지를 위한 작업을 하지 않는다.1 대 1 통신(unicast), 1 대 다 통신(broadcast), 다 대 다 통신(multicast)
빠르다.
패킷관리가 필요하다.
TCP는 신뢰성 있는 통신을 위해 사용하는 프로토콜로 높은 신뢰성을 보장하지만, UDP보다는 속도가 느립니다. 3way, 4way handshake로 서버와 클라이언트가 1:1로 통신을 하구요. 흐름제어와 혼잡제어가 이루어지게 됩니다.
UDP는 비연결형 프로토콜로, 손상된 데이터에 대해서 재전송하지 않습니다. 대신에 신뢰성이 낮지만, TCP보다 속도가 빨라서 스트리밍같은 서비스에 주로 사용됩니다. 1:1, 1:N, N:M으로 연결이 가능합니다.
[출처]