2018년 11월 27일
TCP (Transmission Control Protocol)
1. 연결 지향적 신뢰 기반 프로토콜, TCP의 개념
(1) TCP (Transmission Control Protocol)의 정의
- 전송 계층에서 3-Way Handshaking을 통해 연결 지향적 신뢰성 있는 데이터 전송 프로토콜
(2) TCP의 응용계층 제공 서비스
| 프로세스 대 프로세스 통신 | – 송/수신지의 포트 번호를 통해 프로세스 간 연결을 수립하여 데이터 전송 수행 |
| 스트림 배달 서비스 | – 두 프로세스 간 바이트 스트림 형태로 생성/소비되도록 스트림을 전달 |
(3) TCP의 특징
| 구분 | 특징 | 설명 |
|---|---|---|
| 구성 형태 측면 | 송신 버퍼와 수신 버퍼 | – 송/수신 데이터 전송 속도 차이 보정 – 흐름 및 오류 제어 메커니즘에 활용 |
| 세그먼트 형태로 전송 | – IP 계층에서는 패킷 형태로 전송하므로 바이트를 세그먼트 형태로 그룹화 | |
| 서비스 측면 | 다중화와 역다중화 | – 연결 지향 프로토콜이므로 송/수신지의 해당 프로세스 간 연결 설정 |
| 연결 지향 서비스 | – 연결 수립-데이터 전송-연결 종료의 3단계로 가상의 연결 기반 서비스 | |
| 신뢰성 있는 서비스 | – 데이터가 오류없이 전송되는지 확인 위해 확인/응답 메커니즘 이용 |
- TCP는 신뢰성 있는 서비스를 위해 연결 지향성 특징을 가지며, 흐름 제어를 수행
2. 신뢰성 있는 서비스 위한 TCP의 연결 지향성 특징
(1) TCP 연결 지향성 특징 구성도
|
(2) TCP 연결 지향성 특징 요소
| 구분 | 특징 | 설명 |
|---|---|---|
| 서비스 특징 | 논리적 연결 | – 호스트 간 연결 지향 데이터 전송을 위해 논리적 연결 설정 및 해제 |
| 바이트 순서 정렬 | – IP 계층에서 패킷 순서가 바뀌어 수신되어도 바이트 번호 기반 정렬 | |
| 절차적 특징 | 3-Way Handshaking | – 연결 수립-데이터 전송-연결 해제의 3단계 절차를 통해 신뢰성 확립 |
| 헤더 제어 필드 활용 | – TCP 헤더의 제어 필드를 활용하여 SYN, ACK, FIN 등의 절차 수행 |
- TCP 연결 수립 후 데이터 전송 시 송/수신 속도 제어를 위해 윈도우 기반 흐름 제어를 수행
3. 송수신 속도 제어 위한 네트워크 흐름 제어 기법
(1) 네트워크 흐름제어 기법 사례
![]() |
(2) 네트워크 흐름제어 사례를 통한 기법 설명
| No | Client 상황 | 전송 | Server 상황 |
|---|---|---|---|
| ① | – 서버로 200 bytes 전송 | Client SeqNo: 101 Data: 200 bytes | – Data 수신 – rwnd→600 감소 |
| ② | – 송신 버퍼 Size→600 | Server AckNo: 301 rwnd: 600 | – 수신 응답 – rwnd→600 조정 |
| ③ | – 서버로 300 bytes 전송 | Client SeqNo: 301 Data: 300 bytes | – 수신, 100byte처리 – rwnd→400 감소 |
| ④ | – 송신 버퍼 Size→400 | Server AckNo: 601 rwnd: 400 | – 수신 응답 – rwnd→400 조정 |
| ⑤ | – 송신 버퍼 Size→600 | Server AckNo: 601 rwnd: 600 | – 응답, 200byte처리 – rwnd→600 조정 |
- TCP 흐름 제어는 속도 차이를 극복할 수 있으나, 적은 데이터 전송 시 오버헤드 발생 등 문제점 존재
4. TCP 통신 시 발생 가능 문제점 및 해결 방안
| 문제점 | 해결 방안 |
|---|---|
| Data 1 byte 생성 시 헤더 포함 41byte 전송 필요 | 충분한 Data를 버퍼에 저장하는 Nagle 알고리즘 사용 |
| Data 1 byte 소비 시 송신 대기 현상 발생 | 충분한 버퍼 확보 시 까지 윈도우 크기를 0으로 통보 |
| 데이터 시작과 끝의 개념이 없음 | recoed-oriented 특성 도입, datagram 단위 전송 |
| 연결지향 통신 특성으로 TCP 소켓 범위의 제약 | 멀티스트리밍, 멀티호밍, SCTP 프로토콜 사용 |
- SCTP는 TCP와 UDP의 장점을 융합하여 만든 프로토콜이며, LTE 등 이동통신에서 SCTP 활용 중
One Comment

공부하고 갑니다. 내용이 좋아서 퍼갑니다.
출처 꼭 남기겠습니다.