I. 연결 지향적 신뢰 기반 프로토콜, TCP의 개념
가. TCP (Transmission Control Protocol의 정의
전송 계층에서 3-Way Handshaking을 통해 연결 지향적 신뢰성 있는 데이터 전송 프로토콜
나. TCP의 응용계층 제공 서비스
프로세스 대 프로세스 통신 | – 송/수신지의 포트 번호를 통해 프로세스 간 연결을 수립하여 데이터 전송 수행 |
스트림 배달 서비스 | – 두 프로세스 간 바이트 스트림 형태로 생성/소비되도록 스트림을 전달 |
다. TCP의 특징
구분 | 특징 | 설명 |
---|---|---|
구성 형태 측면 | 송신 버퍼와 수신 버퍼 | – 송/수신 데이터 전송 속도 차이 보정 – 흐름 및 오류 제어 메커니즘에 활용 |
세그먼트 형태로 전송 | – IP 계층에서는 패킷 형태로 전송하므로 바이트를 세그먼트 형태로 그룹화 | |
서비스 측면 | 다중화와 역다중화 | – 연결 지향 프로토콜이므로 송/수신지의 해당 프로세스 간 연결 설정 |
연결 지향 서비스 | – 연결 수립-데이터 전송-연결 종료의 3단계로 가상의 연결 기반 서비스 | |
신뢰성 있는 서비스 | – 데이터가 오류없이 전송되는지 확인 위해 확인/응답 메커니즘 이용 |
– TCP는 신뢰성 있는 서비스를 위해 연결 지향성 특징을 가지며, 흐름 제어를 수행
II. 신뢰성 있는 서비스 위한 TCP의 연결 지향성 특징
가. TCP 연결 지향성 특징 구성도
![]() ![]() |
나. TCP 연결 지향성 특징 요소
구분 | 특징 | 설명 |
---|---|---|
서비스 특징 | 논리적 연결 | – 호스트 간 연결 지향 데이터 전송을 위해 논리적 연결 설정 및 해제 |
바이트 순서 정렬 | – IP 계층에서 패킷 순서가 바뀌어 수신되어도 바이트 번호 기반 정렬 | |
절차적 특징 | 3-Way Handshaking | – 연결 수립-데이터 전송-연결 해제의 3단계 절차를 통해 신뢰성 확립 |
헤더 제어 필드 활용 | – TCP 헤더의 제어 필드를 활용하여 SYN, ACK, FIN 등의 절차 수행 |
– TCP 연결 수립 후 데이터 전송 시 송/수신 속도 제어를 위해 윈도우 기반 흐름 제어를 수행
III. 송수신 속도 제어 위한 네트워크 흐름 제어 기법
가. 네트워크 흐름제어 기법 사례
나. 네트워크 흐름제어 사례를 통한 기법 설명
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 흐름 제어는 속도 차이를 극복할 수 있으나, 적은 데이터 전송 시 오버헤드 발생 등 문제점 존재
IV. TCP 통신 시 발생 가능 문제점 및 해결 방안
문제점 | 해결 방안 |
---|---|
Data 1 byte 생성 시 헤더 포함 41byte 전송 필요 | 충분한 Data를 버퍼에 저장하는 Nagle 알고리즘 사용 |
Data 1 byte 소비 시 송신 대기 현상 발생 | 충분한 버퍼 확보 시 까지 윈도우 크기를 0으로 통보 |
데이터 시작과 끝의 개념이 없음 | recoed-oriented 특성 도입, datagram 단위 전송 |
연결지향 통신 특성으로 TCP 소켓 범위의 제약 | 멀티스트리밍, 멀티호밍, SCTP 프로토콜 사용 |
– SCTP는 TCP와 UDP의 장점을 융합하여 만든 프로토콜이며, LTE 등 이동통신에서 SCTP 활용 중
View Comments (1)
공부하고 갑니다. 내용이 좋아서 퍼갑니다.
출처 꼭 남기겠습니다.