에러 복구
, 흐름 제어
, 윈도우 제어
, 애플리케이션 식별
등 전달할(혹은 전달한) 데이터에 대해 신뢰성(Reliablity)이 높은(or 에러가 적은) 순차적(In-order delivery)데이터 전송을 하기 위한 처리를 합니다.에러 복구(Error Detection & Recovery)
: 송신처에서 일정시간(RTT) 내에 확인응답이 오지 않으면 에러로 인식하고, 다시 마지막에 보낸 시퀀스 번호 기준으로 Data를 다시 보냄으로써 에러를 복구합니다.흐름 제어(Flow Control)
: 해당 수신처가 받을 수 있는 최대 바이트 수(reveive window)를 전송해 허용 범위 안에서 데이터를 주고받을 수 있도록 제어합니다. 👉🏻 수신처 버퍼가 오버플로우(Overflow) 되지 않도록 관리혼잡 제어(Congestion control)
: 네트워크 정체를 방지하기 위해 receive window와 별도로 congestion window를 사용하는데 이는 네트워크에 유입되는 데이터양을 제한하기 위해서 사용합니다. 흐름 제어와 달리 송신자가 단독으로 구현합니다.애플리케이션 식별(Connection oriented)
: TCP 연결 식별자로 수신처 포트를 식별해 해당 애플리케이션에 데이터를 전달합니다.✨👆🏻 TCP의 경우 모든 수신처와 연결성을 보장받고, 통신을 시작하기 때문에 브로드캐스트와 같이 모든 수신처와 연결을 보장받아야하는 작업에는 부적합합니다.
TCP (Transmission Control Protocol) | UDP (User Datagram Protocol) | |
---|---|---|
신뢰성 | 보장 | 없음 |
속도 | 상대적으로 느림 | 고속 |
연결 확인 과정 | 있음(Connection-oriented) | 없음(Connection-less) |
패킷의 단위 | 세그먼트(Segment) | 데이터그램(Datagram) |
헤더의 구조 | 복잡함 | 단순함 |
통신의 단위 | 유니캐스트, 점대점방식(point-to-point) | 멀티캐스트, 브로드캐스트 |
장점 | 큰 규모의 양방향 데이터 전송을 보장한다. 데이터가 순서대로 전송된다. | 고속으로 다수에게 데이터전송이 가능하다. |
단점 | 대기시간이 있다. | 데이터 전송의 신뢰성과 순서를 보장하지 않는다. |
EXAMPLE | HTTP, FTP, SMTP, TELNET | DNS, DHCP, VoIP, 비디오 스트리밍 서비스 |