TCP vs UDP
면접용 답변
TCP와 UDP는 전송 계층에서 사용하는 프로토콜의 종류로 ‘통신 방식’과 ‘속도’에서 차이가 있습니다. TCP는 연결 지향 방식으로, 데이터 단위인 패킷을 전송하기 위한 논리적 경로를 배정합니다. 이후 3-way handshaking을 통해서 연결을 확립하고, 신뢰성 있는 전송을 하게 됩니다. 반면 UDP는 데이터를 데이터그램을 단위로 처리하며, 비연결형 방식으로 데이터를 전송합니다. 논리적인 경로가 없이 각각의 데이터그램을 다른 경로로 전송합니다. 사전 연결 과정이 없기 때문에 TCP보다 속도가 빠르다는 장점이 있습니다. 그러나, 연결의 신뢰성은 보장하지 않습니다. 따라서 연속성이 중요한 실시간 서비스에 많이 사용됩니다.
개념 설명
TCP란?
TCP: 신뢰성과 정확성을 우선으로 하는 연결형 통신 프로토콜
TCP 헤더: TCP로 전송할 때 붙이는 헤더
세그먼트: TCP 헤더가 붙은 데이터
TCP 헤더에는 목적지까지 데이터를 전송하기 위해 필요한 정보를 가지고 있음
데이터를 전송하기 전에 해야하는 작업 → 연결
연결: 가상의 독점 통신로를 확보하는 작업
연결은 어떻게 확립하는것?
TCP 헤더의 코드 비트 부분
코드 비트는 TCP 헤더의 107번째~112번째 비트까지 6비트 → 연결의 제어 정보가 기록되는 곳
코드 비트는 각 비트별로 역할이 있음
초깃값 0, 비트 활성화 시 1이됨
연결을 확립하려면 SYN과 ACK이 필요함
SYN: 연결 요청
ACK: 확인 응답
연결을 종료하려면 FIN과 ACK이 필요함
FIN: 연결 종료
3-way 핸드셰이크란?
연결 과정: 데이터를 전송하기 전에 패킷을 교환할 때 세 번 확인함
연결 확립 요청으로 SYN을 보냄
연결 확립 응답 + 연결 확립 요청으로 SYN+ACK을 보냄
연결 확인 응답으로 ACK을 보냄
이 과정에서 코드 비트의 SYN과 ACK이 1로 활성화 되는 것
3-way 핸드셰이크: 연결을 확립하기 위해 패킷 요청을 세 번 교환하는 것
컴퓨터1 → 컴퓨터2 연결 종료 과정: 연결을 끊기 전에 요청을 교환하고 확인 작업을 해야함
컴퓨터 1이 연결 종료 요청으로 FIN을 보냄
컴퓨터 2가 연결 종료 응답으로 ACK을 반환
컴퓨터 2가 연결 종료 요청으로 FIN을 보냄
컴퓨터 1이 연결 종료 응답 ACK을 반환
이 과정에서 FIN과 ACK가 1로 활성화됨
UDP란?
비연결형 통신 → 데이터를 전송할 때 TCP처럼 시간이 걸리는 확인 작업을 일일이 하지 않음
효율성을 중요시하는 프로토콜
장점: 데이터를 효율적으로 빠르게 보내는 것
UDP 헤더
UDP 데이터그램: UDP 헤더가 붙은 데이터
UDP 헤더 정보: 출발지 포트 번호, 목적지 포트 번호, 길이, 체크섬
효율성과 빠른 속도 중요시 → 상대방을 확인하지 않고 연속해서 데이터를 보냄
상대방도 받고 받았다는 응답을 이야기하지 않아도됨
브로드캐스트: 랜에 있는 컴퓨터나 네트워크 장비에 데이터를 일괄로 보낼 수 있음
cf) TCP는? 3-way 핸드셰이크와 같이 데이터를 전송할 때 확인 응답을 하나씩 보내야함 → 불특정 다수에게 보내는 브로드캐스트에는 적합하지 않음
UDP가 목적지에 관계없이 랜에서 일괄적으로 보내기 때문에 가능한 것
Last updated