네트워크 기본 중 기본! OSI 4계층의 TCP와 UDP 프로토콜을 알아보자.
TCP
TCP(Transmission Control Protocol)와 UDP의 가장 차이점은 '연결' 아닐까! TCP는 연결 지향성이다. 한 번 연결을 하면 양방향으로 통신할 수 있다는 것을 의미한다. 또한 TCP는 흐름 제어, 에러 제어, 혼잡 제어 같은 기능을 제공한다. 연결 오버헤드와 순차성 제어를 위해 속도가 느리다.
- 연결 지향성이다.
- 연결 후 양방향 통신
- 흐름제어, 에러제어, 혼잡제어 기능 제공
- 흐름제어 : 송신측과 수신측 사이 데이터 처리 속도 차이로 인해 수신측의 버퍼가 오버플로우 나지 않도록 제어하기 위한 기능이다. 전송량 > 수신량일 경우 전송율을 낮춘다.
- stop and wait 방식
- sliding window 방식
- 에러제어 : ARQ 방식을 이용해 프레임이 손상/손실 되었을 경우, 재전송을 통해 오류를 복구한다.
- stop and wait ARQ : 패킷의 ACK를 받아야 다음 패킷을 전송
- go-back-N ARQ : 연속적으로 패킷 전송, 오류가 발생한 시점부터 재전송
- SR(Selectvie-Reject) ARQ : 오류가 발생한 패킷만 재전송
- 혼잡제어 : 네트워크가 처리하지 못할 정도로 여러 발신지에서 많은 데이터를 전송하는 것
- AIMD : 윈도우 크기를 조금씩 증가시키며 송신, 초반에 네트워크 느림, 혼잡 상황 감지X
- slow start : 지수로 증가
- fast retransmit
- fast recovery
- 흐름제어 : 송신측과 수신측 사이 데이터 처리 속도 차이로 인해 수신측의 버퍼가 오버플로우 나지 않도록 제어하기 위한 기능이다. 전송량 > 수신량일 경우 전송율을 낮춘다.
- 손실된 패킷 재전송
- 신뢰도가 높다
- 연결할 때 오버헤드 발생
- UDP 보다 느림
- 최적 사용 : HTTP, HTTPS, SMTP, POP, FTP ...
SMTP도 TCP를 ?!
UDP
UDP(User Datagram Protocol)은 훨씬 간단한 통신이다. 도착지(dst)의 주소와 포트 번호만 있으면 통신을 할 수 있다! 또한 연결 오버헤드가 발생하지 않는다. 하지만 연결을 하지 않다보니 에러 제어를 할 수 없다.
- 비연결 지향성
- 연결 오버헤드 없음
- TCP 보다 빠름
- real-time 통신에 적합 (스트리밍 같은 실시간 서비스)
- 순차를 보장하지 않는다
- 손실된 패킷을 신경쓰지 않는다.
- 신뢰도가 낮다
- 최적 사용 : 스트리밍, DNS, VoIP ...
'컴퓨터공학 > 네트워크' 카테고리의 다른 글
[네트워크] 프록시와 로드밸런싱 (1) | 2023.09.11 |
---|---|
[웹] HTTP/1.0 HTTP/1.1 HTTP/2, HTTP/3 차이 (0) | 2023.05.18 |
[네트워크] 네트워크 성능 분석 명령어 (0) | 2023.04.27 |
[네트워크] 주소창에 URL을 입력 시 일어나는 일 (0) | 2023.04.21 |
[네트워크] OSI 7계층, PDU (0) | 2023.04.20 |