728x90
반응형
안녕하세요! 개발하는 윤기사입니다! 오늘 포스팅은 저번 HTTP & HTTPS에 이은 TCP & UDP 통신에 관한 내용을 가져왔습니다!
바로 시작해 보시죠!
전송계층은 프로토콜 내에서 송신자와 수신자를 연결하는 통신 서비스를 제공하는 계층인데,
IP에 의해 전달되는 패킷의 오류를 검사하고 재전송 요구 등의 제어를 담당합니다.
이러한 전송계층에서 사용되는 프로토콜이 바로 TCP와 UDP!!
하나하나 설명드리겠습니다~~
📡 TCP(Transmission Control Protocol) : 전송 제어 프로토콜
- - TCP는 신뢰성 있는 데이터 전송을 지원하는 연결 지향형 프로토콜.
- 연결지향성은 송신자와 수신자가 서로 연결이 되었는지를 먼저 확인한 뒤 데이터를 교환한다는 의미.
- 일반적으로 TCP와 IP가 함께 사용
- IP가 데이터의 전송을 처리한다면 TCP는 패킷 추적 및 관리
- 연결 지향형인 TCP는 3-way handshaking이라는 과정을 통해 연결 후 통신을 시작하는데, 흐름 제어(보내는 측과 받는 측의 데이터 처리속도 차이 조절)와 혼잡 제어(네트워크 내의 패킷 수가 넘치게 증가하지 않도록 방지)를 지원하며 데이터의 순서를 보장.
- 즉, 데이터를 안정적으로, 순서대로, 에러 없이 교환할 수 있게 해 줍니다.
😎 TCP 특징
- 데이터의 전송 순서 보장
- 데이터의 경계를 구분하지 않음
- 데이터 전달 보증 (수신자가 데이터를 정상적으로 받았는지 송신자가 알 수 있게 해 준다.)
- UDP보다 전송속도가 느림
- 연결을 설정(3-way handshaking)과 해제(4-way handshaking)를 이용
📡 UDP(User Datagram Protocol) : 사용자 데이터그램 프로토콜
- UDP는 비연결 지향형 프로토콜
- 서로 정보를 주고받을 때 정보를 보낸다는 신호나 받는다는 신호 절차를 거치지 않고 보내는 쪽에서 일방적으로 데이터를 전달하는 통신 프로토콜
- TCP와는 다르게 연결 설정이 없으며, 혼잡 제어를 하지 않기 때문에 TCP보다 전송 속도가 빠름.
- UDP는 기능이 없어 헤더가 굉장히 가벼움. IP와 TCP의 헤더가 20 ~ 60 bytes를 차지하는 반면에 UDP의 헤더는 고작 8 bytes를 차지하고 있다. 이는 UDP의 빠른 전송 속도에도 직접적인 도움이 됨.
- 데이터 전송에 대한 보장을 하지 않기 때문에 패킷 손실이 발생할 수 있음.
- 즉, UDP는 아무런 기능이 없는 하얀 도화지와 같아서 원하는 기능을 커스터마이징하여 올려 쓴다고 생각하면 된다.
- 구조적으로 이미 완성되어 있고, 다양한 애플리케이션 기반에서 작동하고 있는 TCP의 구조를 바꿔내는 것보다 UDP의 하얀 도화지에 기능을 올려 쓰는 것이 훨씬 쉽고 효율적인 것!
😎 UDP 특징
- 비연결형 서비스로 데이터그램 방식을 제공
- 비신뢰성
- 데이터의 경계를 구분
- 패킷 오버헤드가 적어 네트워크 부하 감소
- 혼잡 제어를 하지 않기 때문에 TCP보다 빠름
- TCP의 handshaking 같은 연결 설정이 없음
🙇🏻♂️ TCP vs UDP 간단 비교
TCP(Transfer Control Protocol) | UDP(User Datagram Protocol) |
연결형 프로토콜 | 비연결형 프로토콜 |
데이터의 경계를 구분하지 않음 | 데이터의 경계를 구분함 |
신뢰성있는 데이터 전송 | 비신뢰성 데이터 전송 |
일 대 일(Unicast) 통신 | 일 대 일, 일 대 다(Broadcast), 다 대 다(Multicast) 통신 |
🖼️ TCP vs UDP 간단 비교
참고 :
[Network] TCP와 UDP의 특징과 차이점
🚀 이번 포스팅은 OSI 7 계층 중 Layer 4: 전송계층에서 사용되는 프로토콜에 대한 내용입니다! 전송계층은 프로토콜 내에서 송신자와 수신자를 연결하는 통신 서비스를 제공하는 계층인데, IP에
cocoon1787.tistory.com
728x90
반응형
'CS_정리 & 정보처리기사 💾' 카테고리의 다른 글
[정보처리기사] 2020_06_06 (1회,2회 통합)_2과목 (31) | 2023.03.21 |
---|---|
[정보처리기사] 2020_06_06 (1회,2회 통합)_1과목 (30) | 2023.03.20 |
[CS_정리] HTTP/HTTPS (비연결 지향 통신) _ 4 (30) | 2023.01.19 |
[CS_정리] 객체 지향프로그래밍 특징 & 장단점 _ 3 (31) | 2023.01.16 |
[CS_정리] SOLID 객체 지향의 5가지 원칙 _ 2 (30) | 2023.01.15 |