TCP 프로토콜
Transmission Control Protocol
– 연결형 서비스를 제공
– 전이중 FULL Duplex 방식의 양방향 가상 회선을 제공
– 신뢰성 있는 데이터 전송을 보장
연결 설정 방식
Connect가 완성되려면? – 3단계 설정 방식
<A프로세스가 전송할 데이터가 없을 때>
A프로세스가 Connection Request를 보내면 (연결 요청) — connect
B프로세스가 Connection Ackowledge를 보낸다. (연결 수락) – (listen하고 있다가) accept
A프로세스가 Connection Ackowledge에 대한 응답을 보낸다.
<A프로세스가 전송할 데이터가 있을 때>
A프로세스가 Connection Request를 보내면 (연결 요청) — connect
B프로세스가 Connection Ackowledge를 보낸다. (연결 수락) – (listen하고 있다가) accept
A프로세스가 Data Request를 보낸다. (응답하면서 데이터 요청) – send
연결 해지 방식
한 프로세스가 Disc_req를 하고 바로 종료하는 방식 -> 상대 프로세스가 문제 방생 (잘 사용하지 않는 방식)
두 프로세스 둘 다 Disc_req를 해야지 종료하는 방식 (TCP에서 채택한 방식)
TCP 헤더 구조
UDP 프로토콜
User DataGram Protocol
– 비연결형 서비스를 제공
– Best Effor전달 방식을 지원 (비신뢰성)
– 헤더와 전송 데이터에 대한 체크섬 기능을 제공
신뢰성은 떨어지지만 프로토콜을 처리하는 기능이 작아 TCP보다 데이터 처리가 빠르므로 데이터 전송 시간에 민감한 응용 환경에서는 UDP를 사용하는 것이 유리
데이터는 분실돼도 책임지지 않음
데이터의 도착 순서는 변경될 수 있음
TCP와 달리 일방적인 통신
연결 설정 과정이 없음 (연결을 허가하거나 허가 메시지를 다시 응답하는 과정이 없음)
-> 송신은 ‘데이터 전송’만 함, 수신은 ‘데이터 받음’만 함