반응형
개인적으로 네트워크 공부를 위해 정리한 내용들입니다.
함께 공부하자는 취지로 내용을 공유합니다.
1. TCP(Transmission Control Protocol) 개념
(1) TCP 정의
- 전송 계층에서 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 상황 |
① | 서버로 200bytes 전송 | Client SeqNo: 101 Data: 200 bytes |
– Data 수신 – rwnd→600 감소 |
② | 송신 버퍼 Size → 600 | Server AckNo: 301 rwnd: 600 |
– 수신 응답 – rwnd→600 조정 |
③ | 서버로 300bytes 전송 | 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 활용 중
5. UDP(User Datagram Protocol) 개요
(1) UDP (User Datagram Protocol)의 정의
- 인터넷에서 정보 송수신 시 서로 주고 받는 형식이 아닌 한 쪽에서 일방적으로 보내는 방식의 비연결성 프로토콜
(2) TCP/IP에서 UDP
- TCP와 함께 TCP/IP 프로토콜에서 4계층의 주요 프로토콜
(3) UDP의 특징
특징 | 설명 |
단순 전송방식 | 단순한 전송방식으로 서비스 신뢰성이 낮고, 데이터 도착 순서의 변동, 중복, 누락 건 발생 가능. |
실시간 전송 | 실시간 빠른 전송이 가능하여, 실시간 음성/방송 서비스에 적합 |
비연결형 | 목적지와 연결 설정이 없는 비연결형 서비스. |
6. UDP의 개념도 및 Header 구성 요소
(1) UDP의 개념도
- 수신 여부 확인 절차 없이 일방적으로 데이터를 송신하는 프로토콜로 영상, 음성 실시간 스트리밍 서비스 등에 적합
(2) 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. 정보 출처
반응형
'IT 이야기 > 공부합시다' 카테고리의 다른 글
[Network] L2, L3, L4, L7 스위치 (0) | 2023.06.28 |
---|---|
[Network] NAT(Network Address Translation) (0) | 2023.06.28 |
[Network] 거리 벡터 라우팅와 링크 상태 라우팅 (0) | 2023.06.28 |
[Network] 전송 계층(Transport Layer) (0) | 2023.06.28 |
[Network] 라우팅 프로토콜 (0) | 2023.06.28 |
댓글