일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 페이지네이션
- 비관적 락
- 자료구조
- Kotlin
- Redis
- DB
- gatway
- 자바
- 네트워크
- null
- 갱신 이상
- HTTP
- 3-way handshaking
- 낙관적 락
- 스레드 풀
- 삽입 이상
- MSA
- JPA
- buildSrc
- AWS
- Dirty Checking
- 삭제 이상
- well-know port
- Kafka
- java
- Spring
- 데이터베이스
- 정규화
- ocp
- 캐시 오염
Archives
- Today
- Total
어 나 갱수.
[네트워크] TCP와 UDP란? 🐝 본문
728x90
오늘은 네트워크의 계층들 중 전송 계층에서 사용하는 프로토콜에 대해서 알아보려고 합니다.
전송계층은 송신자와 수신자를 연결하는 통신서비스를 제공하는 계층으로, 쉽게 말해 데이터의 전달을 담당합니다.
TCP(Transmission Control Protocol)
TCP를 해석하면 전송을 제어하는 프로토콜이라는 뜻이다.
인터넷 프로토콜 스택의 4 계층
여기서 TCP는 3 계층인 전송계층에 속한다.
TCP 특징
연결지향 - TCP (논리적)
- 연결형 서비스로 연결이 성공해야 통신이 가능하다.
- 높은 신뢰성을 보장한다.
- UDP보다 속도가 느리다.
- 연결의 설정(3-way handshaking)과 해제(4-way handshaking)
- 순서를 보장
- 데이터 전달 보증
- 목적지까지 데이터가 전달됐는지 아닌지 알 수 있다.
3-way handshaking
- Client에서 Server에 연결 요청을 하기 위해 SYN 데이터를 보낸다.
- 요청을 받은 해당 포트는 SYN 데이터를 받고 SYN_RCV로 상태가 변경된다.
- Server에서 요청을 정상적으로 받았다는 응답(ACK)과 SYN을 같이 보낸다.
- Client에서는 SYN과 ACK를 받고 ESTABLISTHED로 상태를 변경하고 Server에 ACK를 전송한다
- ACK를 정상적으로 받은 Server는 상태가 ESTABLISHED로 변경된다.(ESTABLISHED는 3-way handshaking이 완료된 후 서로 연결된 상태)
대부분의 신뢰할 수 있는 프로토콜이라 현재는 대부분 TCP를 사용한다.
UDP(User Datagram Protocol)
udp를 해석하면 사용자 데이터그램 프로토콜이라는 뜻이다.
UDP 특징
- 비연결형 서비스로 데이터그램 방식을 제공한다.
- 데이터의 전송 순서가 바뀔 수 있다.
- 데이터 수신 여부를 확인하지 않는다.
- TCP의 3-way handshaking과 같은 과정 X
- 신뢰성이 낮다.
- 흐름제어가 없어서 제대로 전송되었는지, 오류가 없는지 확인할 수 없다.
- TCP보다 속도가 빠르다.
- TCP의 3-way handshaking과 같은 연결 과정이 없으니 속도는 TCP전송보다 빠르다.
요약
TCP는 연속성보다 신뢰성 있는 전송이 이루어질 때 사용되는 프로토콜이며, UDP는 TCP보다 빠르고 네트워크 부하가 적다는 장점이 있지만, 신뢰성 있는 데이터전송은 보장하지 않는다. UDP는 신뢰성보다는 연속성이 중요한 실시간 스트리밍과 같은 서비스에 자주 사용된다.
Reference
728x90
'네트워크' 카테고리의 다른 글
[Web] 웹 소켓(Web Socket)이란? 😙 (0) | 2023.10.01 |
---|---|
[네트워크] CORS 너 뭐냐?? 🐥 (0) | 2023.08.04 |
[네트워크] Web Server와 WAS의 차이 🙏 (0) | 2023.08.03 |
[네트워크] HTTP 했으니까 덤으로 HTTPS 까지??? 😙 (1) | 2023.07.31 |
[네트워크] HTTP는 기본 아니겠냐 ㅋㅋㅋㅋ (1) | 2023.07.30 |