❗TCP/IP 4계층에 대한 내용은 아래 글을 확인해 주세요 :)
TCP & UDP
TCP/IP 4계층 중 전송계층에 해당하며 애플리케이션과 인터넷 계층 사이의 데이터 전달 시 중계 역할을 합니다.
1. TCP (Transmission Control Protocol)
- 신뢰성 있는 연결형 서비스 제공
- 흐름 제어, 오류 제어, 순서 제어
- 정해진 시간 안의 대량 데이터를 연속으로 보낼 때 적합함
- 가상회선 패킷 교환 방식 사용 *
- 3-way-handshake (연결 성립), 4-way-handshake (연결 해제)
💡 핸드 쉐이크 (handshake)
상대와 연결 상태를 만들거나 해제하기 위해 거치는 과정
3-way-handshake (3-웨이-핸드쉐이크)
TCP/IP 프로토콜을 이용하여 통신하는 응용 프로그램이 데이터 전송 전 정확한 전송 보장을 위해 상대 컴퓨터와 사전에 세션을 수립하는 과정
- 신뢰성 확보
- 무의미한 데이터 전송 방지
- UDP에는 존재하지 않음 (비신뢰성)
# 역할
- 양쪽 데이터 전송 준비를 보장함
- 양쪽 모두 상대에 대한 초기 순차 일련번호를 얻을 수 있음
# 순서
- 가상 연결 후 메시지 전송 (ISN 담은 SYN 전송)
- 서버가 클라이언트의 SYN 수신하면 클라이언트에 서버의 ISN (ACK) 전송
- 클라이언트는 승인번호를 담아 요청 수락 메시지 (ACK)를 서버에 전송
💡 용어 정리
ISN : Initail Sequence Numbers (초기 일련 번호)
SYN : SYNchronization (연결 요청 플래그)
ACK : ACKnowledgement (응답 플래그)
4-way-handshake (4-웨이-핸드쉐이크)
데이터 전송 완료 후 두 컴퓨터 사이의 연결을 끊기 위한 과정
# 순서
- 클라이언트가 서버에 FIN(세그먼트) 전송
- 서버가 클라이언트에 ACK 전송
- 일정시간 후 서버가 클라이언트에 FIN(세그먼트) 전송
- 클라이언트 TINE_WAIT 상태 → 서버로 ACK 전송
💡 TIME_WAIT 상태
클라이언트가 서버로부터 FIN을 수신하더라도 일정 시간동안 세션을 남겨놓고 (소켓이 바로 소멸되지 않고) 잉여 패킷을 기다리는 상태
⇒ 지연 패킷이 발생할 경우를 대비하고 두 장치가 연결이 닫혔는지 확인하기 위함
💡 용어 정리
FIN : 연결 종료 플래그
2. UDP (User Datagram Protocol)
- 비연결형 서비스 제공
- 흐름 제어나 순서 제어가 없어 실시간 전송에 유리함
- 신뢰성 < 속도 인 네트워크에서 주로 사용
- 데이터그램 패킷 교환 방식 *
## 가상회선 패킷 교환 방식 vs 데이터그램 패킷 교환 방식
가상 회선 패킷 교환 방식 (TCP)
데이터를 전송하기 전 논리적 연결 설정
연결 지향형
- 각 패킷에 가상회선 식별자가 포함되어 모든 패킷을 전송하면 가상회선이 해제되고 전송 순서대로 패킷이 도착함
- 결로 설정 시 한 번만 수행
- 패킷의 순서를 보장함
데이터그램 패킷 교환 방식 (UDP)
데이터를 전송하기 전에는 논리적 연결이 설정되지 않으며 패킷이 독립적으로 전송됨
비연결 지향형
- 패킷이 독립적으로 최적의 경로를 선택하여 이동
- 하나의 메시지에서 분할된 여러 패킷은 서로 다른 경로로 전송될 수 있음
- 패킷 사이의 순서를 보장하지 않음
참고 도서
[주홍철] 면접을 위한 CS 전공지식 노트
[김정준 외 5명] 정보처리기사 필기
'STUDY > CS' 카테고리의 다른 글
[운영체제] 운영체제와 컴퓨터 (0) | 2023.02.04 |
---|---|
[네트워크] IP 주소 / IPv4, IPv6, 클래스 기반 할당 방식 (0) | 2023.01.22 |
[네트워크] TCP/IP 4계층 (0) | 2023.01.21 |
[네트워크] 네트워크 토폴로지 (Network Topology) / 네트워크 분류 (2) | 2023.01.20 |
[디자인 패턴] 옵서버 패턴 (Observer Pattern) / 자바스크립트, 프록시 객체 (2) | 2023.01.10 |