728x90
인터넷 프로토콜 스위트 (Internet Protocol Suite)
인터넷에서 컴퓨터들이 서로 정보를 주고받는 데 쓰이는 통신규약(프로토콜)의 모음
그 중 TCP와 IP가 가장 많이 쓰이기 때문에, 주로 TCP/IP 프로토콜 스위트라고 부른다.

- 애플리케이션 계층 (Application Layer): 기존 OSI 7계층의 애플리케이션/표현/세션 계층을 포함한다.
- 전송 계층 (Transport Layer)
: 송신자와 수신자를 연결하는 통신 서비스를 제공하여, 애플리케이션과 인터넷 계층 사이의 데이터가 전달될 때 중계 역할을 한다.
: TCP와 UDP가 대표적인 프로토콜이다. - 인터넷 계층
- 네트워크 인터페이스 (링크 계층)
TCP (Transmission Control Protocol)
전송을 제어하는 프로토콜로, 일반적으로 인터넷 상에서 데이터를 메시지 형태로 보내기 위해 IP와 함께 사용한다.
(IP가 데이터의 배달을 처리, TCP는 패킷을 추적 및 관리)
- 세그먼트: TCP 프로토콜 데이터 유닛 (PDU)
- 애플리케이션 계층으로 전달받은 데이터를 청크 단위로 분할한 뒤, TCP 헤더를 덧붙여 TCP 세그먼트를 생성한다.
- TCP 세그먼트는 IP 데이터그램에 패킷화 되어 상대방과 주고 받게 된다.
(데이터 그램: IP의 PDU)
TCP 헤더
: 검증 절차에 필요한 정보 때문에, UDP에 비하여 상대적으로 복잡한 헤더를 갖는다.

- 일련 번호 (sequence number): 순서를 보장
- 6비트의 코드 비트(= TCP 플래그)는 Urgent, Acknowledge, Push, Reset, Synchronize, Finish의 총 6개의 플래그로 구성되어 있다. (각 1비트, 초기값:0)

- 코드 비트는 클라이언트와 서버가 통신을 위해 연결하고 끊을 때 사용된다.
TCP의 3 way 핸드쉐이크 (연결)
패킷 요청을 3번 교환하여 연결을 확립한다.


- SYN - 송신자가 수신자에게 통신을 위한 연결 확립에 대한 요청을 보낸다.
: SYN 비트가 활성화(1)된 세그먼트를 전송한다. - SYN+ACK - 송신자에게 데이터 전송에 대한 허가를 받기 위해 연결 확립에 대한 요청(SYN) & 수신자가 송신자의 연결 확립 요청에 대한 응답을 보낸다.
: SYN, ACK 비트가 활성화된 세그먼트를 전송한다. - ACK - 송신자가 수신자의 요청에 대한 응답을 보낸다.
: ACK 비트가 활성화된 세그먼트를 전송한다.
TCP의 4 way 핸드쉐이크 (연결 종료)
패킷 요청을 4번 교환하여 연결을 종료한다.


- FIN - 송신자가 수신자에게 연결 종료를 위한 요청을 보낸다.
: FIN 비트가 활성화(1)된 세그먼트를 전송한다. - ACK - 수신자가 송신자의 연결 종료 요청에 대한 응답을 보낸다.
: ACK 비트가 활성화된 세그먼트를 전송한다. - FIN - 수신자가 송신자에게 연결 종료를 위한 요청을 보낸다.
: FIN 비트가 활성화(1)된 세그먼트를 전송한다. - ACK - 송신자가 수신자의 요청에 대한 응답을 보낸다.
: ACK 비트가 활성화된 세그먼트를 전송한다.
TCP의 연결 지향 방식
= 패킷을 전송하기 위한 논리적 경로를 배정한다는 뜻
장점
- TCP는 연결형 서비스로 신뢰성을 보장한다. ( 3-way 핸드쉐이크를 통해, 정확한 전송을 보장하기 위한 세션을 수립)
- 데이터의 흐름제어, 혼잡제어 등의 기능도 한다.
단점
- UDP보다 속도가 느리다.
따라서, TCP는 연속성보다 신뢰성있는 전송이 중요할 때 사용하는 프로토콜이다. (ex. 파일 전송)
UDP (User Datagram Protocol)
데이터를 데이터그램 단위로 처리하는 프로토콜로, 수신여부와 상관없이 데이터를 전송하는 방식이다.
- 애플리케이션 계층으로 전달받은 데이터에 UDP 헤더를 추가하여 User Datagram을 생성한다. (분할X)
UDP 헤더

- 출발지 포트 번호
- 목적지 포트 번호
- 길이(Length) 필드: 헤더와 데이터 필드를 합친 길이
- 체크섬(CheckSum)
: 비트 오류 검증 (UDP 데이터의 무결성을 검증)
: UDP는 데이터 무결성을 보장하는 방식이 아니므로, TCP 체크섬과 달리 UDP 체크섬은 필수가 아니다.
: 0으로 채워 보내도 문제가 되지 않으며, 이 경우 수신자가 데이터 무결성을 체크하지 않는다.
UDP의 통신 과정
UDP는 접속과 해제가 없는 비연결성 방식이다. (전송하면 끝)

장점
- 전송량이 제한되어 있는 TCP와 달리, UDP는 대용량의 데이터 전송이 가능하다.
- 스트리밍 같은 미디어 처리에 유용하다.
- 속도가 빠르다.
단점
- TCP와 달리, 수신을 확인하지 않기 때문에 손실/중복 방지, 흐름제어, 혼잡제어 등의 기능이 없다.
※ 정확성이 필요한 상황에서는 TCP를, 스트리밍과 같이 연속성이 필요한 상황에서는 UDP를 사용한다.
출처:
https://velog.io/@nnnyeong/Network-TCP-3-way-4-way-Handshake
728x90
'CS스터디' 카테고리의 다른 글
| [SW] REST API (0) | 2024.01.29 |
|---|---|
| [Web] 브라우저 저장소 - LocalStorage, SessionStorage, Cookie (0) | 2024.01.29 |
| [네트워크] OSI 7계층 (0) | 2024.01.28 |
| [Web] 웹 동작 방식 (0) | 2024.01.28 |
| [네트워크] IP 주소 (1) | 2024.01.25 |