인터넷 프로토콜 스위트(internet protocol suite)
: 인터넷에서 컴퓨터들이 서로 정보를 주고받는 데 쓰이는 프로토콜의 집합
이를 TCP/IP 4계층 모델로 설명하거나 OSI 7계층 모델로 설명하기도 함
TCP/IP 4계층 모델을 중심으로 설명

TCP/IP 4계층과 OSI 7계층 비교
| 프로토콜 | 설명 |
|---|---|
| FTP | 장치 간 파일 전송용 표준 통신 프로토콜 |
| SSH | 보안되지 않은 네트워크 환경에서 안전하게 운영하기 위한 암호화 네트워크 프로토콜 |
| HTTP | 웹 페이지를 전송하는 기본 통신 프로토콜 (World Wide Web 기반) |
| SMTP | 이메일 전송을 위한 인터넷 표준 프로토콜 |
| DNS | 도메인 이름과 IP 주소를 매핑하는 서버 |
송신자와 수신자를 연결하는 통신 서비스를 제공
| 항목 | TCP | UDP |
|---|---|---|
| 연결 방식 | 연결지향 | 비연결지향 |
| 신뢰성 | 보장 (수신 여부 확인) | 보장하지 않음 |
| 순서 보장 | O | X |
| 패킷 교환 방식 | 가상회선 패킷 교환 방식 | 데이터그램 패킷 교환 방식 |


TCP는 신뢰성을 확보할 때 3-웨이 핸드셰이크 작업을 진행

1️⃣ SYN 단계
클라이언트 → 서버에 SYN + 클라이언트 ISN(초기 시퀀스 번호) 전송
2️⃣ SYN + ACK 단계
서버 → 클라이언트로 서버 ISN과 클라이언트 ISN+1을 담은 응답
3️⃣ ACK 단계
클라이언트 → 서버로 서버 ISN+1을 담아 응답
이렇게 3-웨이 핸드셰이크 과정 이후 신뢰성이 구축되고 데이터 전송을 시작
TCP는 이 과정이 있기 때문에 신뢰성이 있는 계층이라고 하고,
UDP는 이 과정이 없기 때문에 신뢰성이 없는 계층이라고 함
SYN
SYNchronization의 약자, 연결 요청 플래그
ACK
ACKnowledgement의 약자, 응답 플래그
ISN
Initial Sequence Numbers의 약어, 초기 네트워크 연결을 할 때 할당된 32비트 고유 시퀀스 번호
TCP가 연결을 해제할 때는 4-웨이 핸드셰이크 과정이 발생

1️⃣ 클라이언트 → 서버에 FIN 전송 (FIN_WAIT_1)
2️⃣ 서버 → 클라이언트에 ACK 응답 (CLOSE_WAIT)
3️⃣ 서버 → 클라이언트에 FIN 전송
4️⃣ 클라이언트 → 서버에 ACK 응답 후 TIME_WAIT 진입
TIME_WAIT의 이유
지연 패킷 처리를 위해: 늦게 도착한 패킷에 대비
완전한 연결 종료 확인: 오류 없이 새로운 연결 가능하게
TIME_WAIT: 소켓이 바로 소멸되지 않고 일정 시간 동안 유지되는 상태
(예: 리눅스 약 60초, 윈도우 약 4분)
장치로부터 받은 네트워크 패킷을 IP 주소로 지정된 목적지로 전송하기 위해 사용되는 계층
데이터를 어디로 보내야 할지를 결정하는 "주소지정과 전송" 역할을 수행
| 프로토콜 | 설명 |
|---|---|
| IP (Internet Protocol) | 패킷의 전송과 라우팅을 담당 |
| ARP (Address Resolution Protocol) | IP 주소를 MAC 주소로 변환 |
| ICMP (Internet Control Message Protocol) | 오류 보고, 네트워크 진단 (ex: ping 명령어 기반) |
링크 계층은 다시 물리 계층과 데이터 링크 계층으로 나뉨
전이중화 통신
CSMA/CD
| 종류 | 설명 |
|---|---|
| 트위스트 페어 케이블 (TP 케이블) | 8가닥 구리선을 두 개씩 꼬아 만든 케이블. UTP(비차폐), STP(차폐) 종류 존재 |
| 광섬유 케이블 | 레이저로 신호를 주고받아 장거리, 고속 통신 가능 (100Gbps) |
광섬유 내부 구조:
코어(Core): 빛이 통과하는 중심
클래딩(Cladding): 빛을 반사시키는 외부 층
반이중화 통신
CSMA/CA
| 주파수 | 특징 |
|---|---|
| 2.4GHz | 장애물에 강하지만 전파 간섭 많음 |
| 5GHz | 깨끗한 통신 환경, 빠른 속도 제공 |
와이파이
BSS
ESS
MAC 주소
네트워트 장치를 구별하는 48비트 식별 번호
사용자가 컴퓨터에서 HTTP 요청을 통해
다른 컴퓨터의 웹 서버로 데이터를 요청할 경우
보내는 쪽:
애플리케이션 계층 → 전송 계층 → 인터넷 계층 → 링크 계층
(캡슐화 과정)
받는 쪽:
링크 계층 → 인터넷 계층 → 전송 계층 → 애플리케이션 계층
(비캡슐화 과정)
상위 계층의 헤더와 데이터를 하위 계층의 데이터 부분에 포함시키고
해당 계층의 헤더를 삽입하는 과정
| 계층 | 동작 | 생성 데이터 (PDU) |
|---|---|---|
| 애플리케이션 계층 | 요청 메시지 생성 | 메시지 |
| 전송 계층 | TCP 헤더 추가 | 세그먼트 (또는 UDP는 데이터그램) |
| 인터넷 계층 | IP 헤더 추가 | 패킷 |
| 링크 계층 | 프레임 헤더/트레일러 추가 | 프레임 |
프레임화된 데이터가 물리 매체(유선/무선)를 통해 상대 서버로 전송
하위 계층에서 상위 계층으로 가며 각 계층의 헤더 부분을 제거하는 과정
링크 계층: 프레임 → 헤더 제거 → 패킷 전달
인터넷 계층: 패킷 → 헤더 제거 → 세그먼트 전달
전송 계층: 세그먼트 → 헤더 제거 → 메시지 전달
애플리케이션 계층: 사용자 요청에 대한 응답 처리
네트워크에서 계층 간 데이터를 주고받을 때의 기본 단위
각 계층에서 데이터를 전송하기 위해 구성한 헤더 + 페이로드로 구성됨
| 구성 요소 | 설명 |
|---|---|
| 헤더 (Header) | 제어 정보 (주소, 오류 검출 등) |
| 페이로드 (Payload) | 실제 데이터 내용 |
| 계층 | PDU 명칭 |
|---|---|
| 애플리케이션 계층 | 메시지 |
| 전송 계층 | 세그먼트 (TCP) / 데이터그램 (UDP) |
| 인터넷 계층 | 패킷 |
| 링크 계층 | 프레임 (데이터링크 계층) / 비트 (물리 계층) |
애플리케이션 계층은 '메시지'를 기반으로 데이터를 전달하는데,
HTTP 요청 시GET /index.html HTTP/1.1처럼 문자열 기반 헤더로 구성
참고: 북스터디 - 면접을 위한 CS 전공지식 노트 (Chapter 2-2)