[Network] TCP와 UDP
본문 바로가기
IT 이야기/공부합시다

[Network] TCP와 UDP

by 찬찬이 아빠 2023. 6. 28.
반응형

개인적으로 네트워크 공부를 위해 정리한 내용들입니다.

함께 공부하자는 취지로 내용을 공유합니다.


1. TCP(Transmission Control Protocol) 개념

(1) TCP 정의

  • 전송 계층에서 3-Way Handshaking을 통해 연결 지향적 신뢰성 있는 데이터 전송 프로토콜

(2) TCP의 응용계층 제공 서비스

구분 설명
프로세스 대
프로세스 통신
/수신지의 포트 번호를 통해 프로세스 간 연결을 수립하여 데이터 전송 수행
스트림 배달
서비스
두 프로세스 간 바이트 스트림 형태로 생성/소비되도록 스트림을 전달

(3) TCP의 특징

구분 특징 설명
구성
형태
측면
송신 버퍼와
수신 버퍼
 /수신 데이터 전송 속도 차이 보정
 흐름 및 오류 제어 메커니즘에 활용
세그먼트
형태로 전송
IP 계층에서는 패킷 형태로 전송하므로 바이트를 세그먼트 형태로 그룹화
서비스
측면
다중화와
역다중화
 연결 지향 프로토콜이므로 송/수신지의 해당 프로세스 간 연결 설정
연결 지향
서비스
 연결 수립-데이터 전송-연결 종료의 3단계로 가상의 연결 기반 서비스
신뢰성 있는
서비스
 데이터가 오류없이 전송되는지 확인 위해 확인/응답 메커니즘 이용
  • TCP는 신뢰성 있는 서비스를 위해 연결 지향성 특징을 가지며, 흐름 제어를 수행

2. TCP의 연결 지향성 특징

(1) TCP 연결 지향성 특징 구성도

TCP 연결 지향성 특징 구성도

(2) TCP 연결 지향성 특징 요소

구분 특징 설명
서비스
특징
논리적
연결
호스트 간 연결 지향 데이터 전송을 위해 논리적 연결 설정 및 해제
바이트
순서 정렬
IP 계층에서 패킷 순서가 바뀌어 수신되어도 바이트 번호 기반 정렬
절차적
특징
3-Way
Handshaking
연결 수립-데이터 전송-연결 해제의 3단계 절차를 통해 신뢰성 확립
헤더 제어
필드 활용
TCP 헤더의 제어 필드를 활용하여 SYN, ACK, FIN 등의 절차 수행
  • TCP 연결 수립 후 데이터 전송 시 송/수신 속도 제어를 위해 윈도우 기반 흐름 제어를 수행

3. 송수신 속도 제어 위한 네트워크 흐름 제어 기법

(1) 네트워크 흐름제어 기법 사례

네트워크 흐름제어 기법 사례

(2) 네트워크 흐름제어 사례를 통한 기법 설명

No Client 상황 전송 Server 상황
서버로 200bytes 전송 Client SeqNo: 101
Data: 200 bytes
Data 수신
rwnd600 감소
송신 버퍼 Size 600 Server AckNo: 301
rwnd: 600
 수신 응답
rwnd600 조정
서버로 300bytes 전송 Client SeqNo: 301
Data: 300 bytes
 수신, 100byte처리
rwnd400 감소
송신 버퍼 Size 400 Server AckNo: 601
rwnd: 400
 수신 응답
rwnd400 조정
송신 버퍼 Size 600 Server AckNo: 601
rwnd: 600
 응답, 200byte처리
rwnd600 조정
  • TCP 흐름 제어는 속도 차이를 극복할 수 있으나, 적은 데이터 전송 시 오버헤드 발생 등 문제점 존재

4. TCP 통신 시 발생 가능 문제점 및 해결 방안

문제점 해결 방안
Data 1 byte 생성 시 헤더 포함 41byte 전송 필요 충분한 Data를 버퍼에 저장하는 Nagle 알고리즘 사용
Data 1 byte 소비 시 송신 대기 현상 발생 충분한 버퍼 확보 시 까지 윈도우 크기를 0으로 통보
데이터 시작과 끝의 개념이 없음 recoed-oriented 특성 도입, datagram 단위 전송
연결지향 통신 특성으로 TCP 소켓 범위의 제약 멀티스트리밍멀티호밍, SCTP 프로토콜 사용
  • SCTP는 TCP와 UDP의 장점을 융합하여 만든 프로토콜이며, LTE 등 이동통신에서 SCTP 활용 중

5. UDP(User Datagram Protocol) 개요

(1) UDP (User Datagram Protocol)의 정의

  • 인터넷에서 정보 송수신 시 서로 주고 받는 형식이 아닌 한 쪽에서 일방적으로 보내는 방식의 비연결성 프로토콜

(2) TCP/IP에서 UDP

TCP/IP에서 UDP

  • TCP와 함께 TCP/IP 프로토콜에서 4계층의 주요 프로토콜

(3) UDP의 특징

특징 설명
단순 전송방식 단순한 전송방식으로 서비스 신뢰성이 낮고데이터 도착 순서의 변동중복누락 건 발생 가능.
실시간 전송 실시간 빠른 전송이 가능하여실시간 음성/방송 서비스에 적합
비연결형 목적지와 연결 설정이 없는 비연결형 서비스.

6. UDP의 개념도 및 Header 구성 요소

(1) UDP의 개념도

UDP의 개념도

  • 수신 여부 확인 절차 없이 일방적으로 데이터를 송신하는 프로토콜로 영상, 음성 실시간 스트리밍 서비스 등에 적합

(2) UDP Header 구성도/구성 요소

UDP Header 구성도

구성 요소 길이 설명
Source Port 16 bit 출발지 포트 번호 (0 ~ 65535)
Destination Port 16 bit 목적지 포트 번호 (0 ~ 65535)
Length 16 bit UDP Header + Data 길이
Checksum 16 bit UDP Header + Data 에러 검출
  • UDP 헤더 길이는 8 byte로 TCP 헤더의 길이(20 byte) 보다 작아 TCP 대비 오버헤드가 낮음

7. 정보 출처

http://blog.skby.net/tcp-transmission-control-protocol/

 

TCP (Transmission Control Protocol) > 도리의 디지털라이프

I. 연결 지향적 신뢰 기반 프로토콜, TCP의 개념 가. TCP (Transmission Control Protocol의 정의 전송 계층에서 3-Way Handshaking을 통해 연결 지향적 신뢰성 있는 데이터 전송 프로토콜 나. TCP의 응용계층

blog.skby.net

http://blog.skby.net/udp-user-datagram-protocol/

 

UDP (User Datagram Protocol) > 도리의 디지털라이프

I. 실시간 전송에 적합한 일방적 정보 전달, UDP의 개요 가. UDP (User Datagram Protocol)의 정의 인터넷에서 정보 송수신 시 서로 주고 받는 형식이 아닌 한 쪽에서 일방적으로 보내는 방식의 비연결성

blog.skby.net

반응형

댓글