728x90
반응형
SMALL
반응형
# TCP & UDP
## TCP
Transmission Control Protocol
패킷을 한 컴퓨터에서 다른 컴퓨터로 전달해주는 IP 프로토콜을 기반으로 하고 있다.
### 특징
- 연결형 서비스 3-way-handshaking (연결 성립)
- open()을 실행한 client가 syn을 보내고 syn_sent 상태로 대기한다.
- server는 syn를 받고 syn_rcvd 상태로 바뀌고, syn와 ack를 client에게 보낸다.
- syn와 ack를 받은 client는 established로 상태를 바꾸고 server에 ack를 보낸다.
- ack를 받은 server는 established 상태가 된다.
- 연결형 서비스 4-way-handshaking (연결 해제)
- client는 server에게 연결을 종료한다는 fin 플래그를 보낸다.
- server는 fin을 받고 close_wait 상태가 된 이후, 확인했다는 ack를 client에게 보낸다
- server는 데이터를 모두 전송했다면, 연결이 종료되었다는 fin 플래그를 client에게 보낸다.
- client는 fin을 받고, 확인 했다는 ack를 server에 보낸다. 이때 바로 소켓을 닫는 것이 아니라
- time_wait 상태로 아직 server로부터 도착하지 않은 데이터가 있을 수 있으니 대기한다.
- server는 ack를 받은 이후 소켓을 닫는다.
- client는 time_wait이 지나면 소켓을 닫는다.
- 흐름 제어
- 데이터 처리 속도를 조정하여 수신자의 버퍼 오버플로우를 방지한다.
- 혼잡 제어
- 네트워크 내의 패킷 수가 넘치지 않게 방지한다.
- 신뢰성 서비스
- ACK 응답값을 판단하여 재전송을 진행한다.
- 전이중 서비스
- 양방향으로 동시에 전송이 가능하다.
- 점대점 서비스
- 각 연결이 정확히 2개의 종단점을 가지고 있다.
- 멀티 캐스팅 & 브로드 캐스팅 미지원
## UDP
User Datagram Protocol
패킷을 한 컴퓨터에서 다른 컴퓨터로 전달해주는 IP 프로토콜을 기반으로 하고 있다.
### 특징
- 비연결형 서비스
- 연결 자체가 없기에 소켓 구분이 없고, IP를 기반으로 전송한다.
- 낮은 신뢰성
- 연결 자체가 없기에 데이터 전송이 제대로 이루어졌는지 알 수 없다.
- 빠른 서비스
- 간단한 데이터를 빠른 속도로 전송하고자 할 때 사용한다.
- TCP 보다 빠르다.
반응형
참조
728x90
반응형
LIST
'Develope > Network' 카테고리의 다른 글
[Network] LB - Load Balancer (0) | 2022.11.03 |
---|---|
[Network] DNS (0) | 2022.11.02 |
[Network] OSI 7 Layers (0) | 2022.08.12 |