일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 알고리즘트레이닝
- 서평
- 지혜를가진흑곰
- 프로그래밍언어
- 돈
- 다독
- C++
- 투자
- C
- 성분
- 책을알려주는남자
- 화장품
- 채권
- 재테크
- 책알남
- 경제
- 알고리즘공부
- 알고리즘 공부
- 프로그래머스 알고리즘 공부
- 자바
- 주식
- algorithmStudy
- Java
- 자바스크립트
- 백준알고리즘
- algorithmtraining
- algorithmTest
- 독서
- JavaScript
- 독후감
- Today
- Total
탁월함은 어떻게 나오는가?
TCP와 UDP의 차이 본문
TCP(Transmission Control Protocol)
1. 개요와 특징
1) 네트워크 계층의 프로토콜로, 강력한 에러 제어 기능을 바탕으로 신뢰성 있는 데이터 전송, 흐름 제어 등의 기능을 수행한다.
2) 연결지향형 프로토콜로, 먼저 송수신자 간의 연결이 확인되면 메시지 송수신을 시작한다.
- 송수신 가능 여부를 파악하는 것은 TCP/IP 프로토콜 내부의 ICMP 프로토콜이다.
3) 주요 기능은 신뢰성 있는 데이터 송수신, 순서 제어, 전이중통신(Full Duplex), 흐름 제어, 혼잡 제어 등이 있다.
4) TCP에서 가장 중요한 요소로, TCP의 연결 성립(Established) 단계부터 연결 요청, 종료까지의 상태 변화이다.
5) 상태전이 과정의 신호 상세이다.
2. 흐름 제어
슬라이딩 윈도우
- 클라이언트가 수신받을 수 있는 용량만큼만 서버가 데이터를 전송하는 방법이다.
- 신뢰성을 중시하는 TCP 프로토콜의 느린 전송 속도를 보완하여 클라이언트가 ACK를 보내지 않더라도 서버-클라이언트 간 미리 정해진 프레임 수(Window Size, 데이터가 나가는 윈도우의 크기)만큼을 연속적으로 전송한다.
- 데이터가 전송되고 ACK가 수신될 때마다 전송이 확인된 패킷 이후의 패킷으로 윈도우의 범위를 이동(Sliding, 슬라이딩)하여 뒤이어 전송하기 때문에 '슬라이딩 윈도우'라 한다.
3. 혼잡제어
1) TCP Slow Start
- 서버가 데이터를 보낼 때, 처음에는 최소 단위(1)로 보내다 점차 지수의 크기로(2배씩) 증가된 단위로 늘려가며 데이터를 보내는 방식이다.
- 점차 단위를 올리다 클라이언트로부터 이전과 동일한 ACK가 오면 데이터 전송에 실패했음을 파악하고 송신 속도를 다시 최소 단위(1)로 낮춘다.
- 이전 데이터 전송에 실패했던 임계 값에 이르게 되면 Congestion Avoidance를 시작하고, 전송 단위를 1/2로 낮추고 다시 올리는 것을 반복하여 최적 단위를 도출한다.
2) Congestion Avoidance
- 데이터 전송 단위가 지수적으로 증가하다 데이터 패킷 로스가 일어나는 임계 값에 도달하게 되면 전송이 증가되는 비율을 낮추어 선형적으로 증가하게 한다.
4. 주로 사용하는 포트의 개념과 특징
- FTP: 20번, 21번: 파일 전송 및 제어
- TELNET: 23번: 터미널 에뮬레이션
- SMTP: 25번: 메일 메시지 전송 프로토콜
- HTTP: 80번: 웹 전송
- NTP: 123번: 네트워크 타임 프로토콜
- BGP: 179번: BGP 라우팅 프로토콜
UDP(User Datagram Protocol)
1. 개요와 특징
- 네트워크 계층의 프로토콜로 비연결성, 비신뢰성을 바탕으로 빠른 속도로 데이터를 전송한다.
- 재전송 기능이 없어 송수신과정에서 패킷의 손실이 발생할 수 있다.
- 정보 누출 가능성이 있으나 프로토콜의 부하가 적어 데이터를 분산하여 전송할 때 많이 사용한다.
- 클라이언트의 수신 여부(ACK)를 확인하지 않으며, 체크섬만 계산한다.
2. 주로 사용하는 포트의 개념과 특징
- DNS: 53번: 도메인 네임 응답
- TETP: 69번: 중요도 낮은 파일 전송 프로토콜(Trivial File Transfer Protocol)
- WINS: 137번: NetBIOS Name Service
- SNMP: 161번: Simple Network Management Protocol(TCP 프로토콜의 25번 포트 SMTP와 헷갈리기 쉬움)
'[Snow-ball]프로그래밍(컴퓨터) > 네트워크' 카테고리의 다른 글
DHCP (Dynamic Host Configuration Protocol) 이란? (0) | 2022.05.22 |
---|---|
서브넷마스크(Subnet Mask)와 서브넷팅(Subnetting), 서브넷(Subnet)에 대해서 구별하고 알아보자! (0) | 2022.05.18 |
쿠키와 세션의 사용 이유와 개념에 대해서 (0) | 2022.05.06 |
HTTP와 HTTPS 그리고 GET과 POST의 차이점은? (0) | 2022.04.25 |
네트워크 7 계층 (OSI 7 계층)이란? OSI7 개념에 대해 쉽고 간단하게 알아보자!! (0) | 2022.01.25 |