시스템아 미안해
프로토콜 (TCP/UDP) 본문
공통점 : OSI 모형에서 4번째 계층인 전송 계층(Transport Layer)에서 사용하는 프로토콜.
TCP : Transmission Control Protocol
- 전화기같은 양방향 통신 가능; 항상 연결돼있는 ★연결지향형 << 상대방 연결이 끊어지면 통신불가
- 데이터 신뢰성↑. 데이터가 깨지거나 없어질 확률이 거의 없음 ( 컨펌 아크 패킷을 최소 3번을 보냄)
- UDP보아 전송속도가 느림
- 데이터 전송용량의 제한xx(패킷으로)
- 데이터를 묶어서, 끊어서 받을 수 있어서 데이터의 경계가 없음
- 주식. 뱅킹 프로그램 등에 사용
- Server Socket(써버소켓) , Socket(클라이언트소켓)사용
TCP의 연결 과정 ( 3-way handshake)
3-way handshake를 간단히 표현하면 다음과 같다.
#1. Client -> Server : 내 말 들려?
#2. Server -> Client : 어 잘 들려! 내 말은 들려?
#3. Client -> Server : 잘 들려!
TCP의 연결 해제 과정 (4-way handshake)
4-way handshake를 간단히 표현하면 다음과 같다.
#1. Client -> Server : 나는 다 보냈어! 이제 끊자!
#2. Server -> Client : 알겠어! 잠시만~
#3. Server -> Client : 나도 끊을게!
#4. Client -> Server : 알겠어!
출처: https://dev-coco.tistory.com/144 [슬기로운 개발생활:티스토리]
TCP와 UDP의 특징 및 차이점 알아보기
TCP와 UDP는 OSI 7 계층들 중 TCP/IP의 전송 계층에서 사용되는 프로토콜이다. ※ 전송 계층은 송신자와 수신자를 연결하는 통신서비스를 제공하는 계층이다. 즉, 데이터의 전달을 담당하며 전달되
dev-coco.tistory.com
UDP : User Datagram Protocol
- ★비연결지향형
- 데이터 신뢰성↓. 데이터 손실확률 있음. 데이터를 딱 1회 보내고 상대방 컴퓨터가 데이터를 온전히 받았는지 확인 못함.
- 전송속도 빠름 - 실시간 방송 등에 사용(+RTP RPTS)
- 1회 전송량 512byte 제한(자바기준)
- 데이터를 아예 따로따로 보냄 : 데이터의 경계가 있음
- Dategram Socket(브로드캐스팅 사용 가능) , MulticastSocket(데이트그램에서 상속받아서 브로드캐스팅 사용 가능)
- TCP의 3way handshake같이 수신여부를 확인하지 않음
그러나 UDP도 얼마든지 신뢰성있는 네트워크를 구축할 수 있다. TCP에서 하는 신뢰성 작업을 프로그래머가 직접 코딩해서 구현하면 된다. TCP에 쓰이는 흐름 제어 및 신뢰성 제어 알고리즘은 현대에 들어서는 성능 상으로 지나치게 비효율적이라는 평을 받고 있어 개발자들이 UDP 소켓에서 더 효율적인 알고리즘으로 TCP의 기능을 구현하려는 시도가 이어지고 있다. 실제 일부 P2P 시스템에서는 UDP를 사용하면서 동시에 신뢰성을 보장하는 별도의 통신방식을 개발하여 사용하기도 한다. 가장 유명한 것으로 일부 비트토렌트 클라이언트에서 사용하는 μTP가 있다.
'network&OS' 카테고리의 다른 글
캐시 (0) | 2022.06.13 |
---|---|
Session (0) | 2022.06.07 |
Cookie (0) | 2022.06.07 |
HTTP (0) | 2022.06.07 |