[네트워크] Socket programming with UDP and TCP

oldshoe·2024년 4월 18일

네트워크

목록 보기
14/34

Socket programming

앞선 게시물에서 application layer에서는 transport layer serveice를 받는다고 했다.
그리고 앞선 게시물에서 sockeet은 프로세스 간 메시지를 주고 받는 인터페이스라고 말했다.
이러한 것들을 프로그래밍 하기 위해선 중요한 프로토콜인 TCP와 UDP를 알아야한다.

UDP

UDP는 비연결형 프로토콜이고, 데이터의 신뢰성을 보장하지 못하지만 속도가 빠르다.
그 이유는 데이터를 보내기 전에 handshaking이 없기 때문이다.
checksum을 통한 최소한의 오류 검증만 진행한다.
Datagram 단위로 전송하지만 그에 따라 크기에 제한이 있다.
그리고 오류 제어와 혼잡 제어를 제공하지 않는다. (이 때문에 속도가 빠르다.)
속도가 빠른 대신에 패킷 손실이 발생할 수도 있다.

TCP

TCP는 연결형 프로토콜이고, UDP에서 지원하지 않는 신뢰성 데이터 전송을 지원하고, 흐름 제어와 혼잡 제어 등을 지원한다.
하지만 패킷에 대한 응답을 다시 보내기 때문에 성능이 낮다. 데이터의 전송 순서을 보장할 수 있다.

profile
toomuxi : There are many things in the world that I want to do

0개의 댓글