1. OSI 7계층 이론과 실제 서버 통신 구조
네트워크 통신은 계층 구조로 나뉘어 있으며, 각 계층은 명확한 책임을 가진다.
서버 개발자는 이 구조를 이해해야 클라이언트-서버 간 트래픽, 패킷, 요청 흐름을 분석할 수 있다.
계층이름대표 프로토콜역할실무 연관
| 7 | 응용 (Application) | HTTP, HTTPS, SMTP, FTP | 사용자 요청을 처리하는 실제 서비스 계층 | API, WebSocket, gRPC |
| 6 | 표현 (Presentation) | TLS/SSL, JSON, XML | 암호화·인코딩·직렬화 수행 | HTTPS 암호화, JWT |
| 5 | 세션 (Session) | SSH, RPC, NetBIOS | 세션 생성 및 유지 | 로그인 세션, TCP 연결 유지 |
| 4 | 전송 (Transport) | TCP, UDP | 송수신 제어, 순서 보장, 포트 관리 | 소켓 통신, API 응답 지연 분석 |
| 3 | 네트워크 (Network) | IP, ICMP | 패킷의 목적지 결정 및 전달 | IP 라우팅, CIDR, ping |
| 2 | 데이터링크 (Data Link) | Ethernet, ARP | 물리적 주소(MAC) 간 데이터 전송 | ARP 캐시, MAC 주소 |
| 1 | 물리 (Physical) | 케이블, NIC | 전기 신호 단위로 데이터 전송 | NIC, 케이블, 하드웨어 장애 |
백엔드 실무에서 중요한 이유
HTTP 요청이 실제로 TCP/IP를 거쳐 물리적으로 전달되는 과정을 이해해야 네트워크를 튜닝할 수 있다.
- ARP, IP, TCP의 계층적 흐름을 알아야 **패킷 캡처(Wireshark)**나 서버 지연 분석이 가능하다.
2. TCP/IP 4계층 모델
TCP/IP 계층대응 OSI 계층주요 프로토콜실무 연관
| Application | 5~7계층 | HTTP, DNS, SSH | 서버·클라이언트 애플리케이션 |
| Transport | 4계층 | TCP, UDP | 소켓 통신, 포트 기반 제어 |
| Internet | 3계층 | IP, ICMP | 라우팅, IP 주소 관리 |
| Network Interface | 1~2계층 | Ethernet, ARP | MAC 주소 기반 전송 |
핵심
- TCP/IP는 실제 인터넷 구조이며, 백엔드 서버 통신은 모두 이 위에서 동작한다.
- OSI는 이론적 구조, TCP/IP는 실제 구현 구조이다.

3. TCP의 핵심 개념 (신뢰성, 순서 보장, 혼잡 제어)
TCP는 신뢰성 있는 전송을 위해 여러 메커니즘을 사용한다.
기능설명실무 연관
| 순서 보장 | Sequence Number로 순서 유지 | HTTP 요청/응답 순서 보장 |
| 재전송 | ACK 누락 시 재전송 | 패킷 손실에도 안정적 전송 |
| 흐름 제어 | 수신 윈도우 기반 속도 조절 | 서버 과부하 방지 |
| 혼잡 제어 | 네트워크 혼잡 시 전송 속도 감소 | 트래픽 폭주 시 안정적 운영 |
| 3-Way Handshake | 연결 수립 | 클라이언트 ↔ 서버 세션 생성 |
| 4-Way Handshake | 연결 종료 | 리소스 반환, TIME_WAIT 관리 |
백엔드 실무 연결
- TIME_WAIT 누적 → 포트 고갈 → 서버 부하 발생
- SO_REUSEADDR, SO_REUSEPORT 옵션으로 해결
- Keep-Alive 옵션으로 불필요한 연결 재생성 방지
- HTTP/2, gRPC 등은 TCP 연결을 멀티플렉싱하여 성능을 향상시킴
4. TCP 헤더 구조 이해
필드설명백엔드에서 중요 이유
| Source/Destination Port | 송신자/수신자 포트 | 8080, 3306, 6379 등 서비스 포트 관리 |
| Sequence / Ack Number | 데이터 순서, 확인 응답 | 신뢰성 보장 기반 |
| Flags | SYN, ACK, FIN, RST 등 제어 비트 | 연결 상태 분석, 네트워크 디버깅 |
| Window Size | 수신 버퍼 크기 | 성능 튜닝 핵심 (rmem, wmem) |
| Checksum | 오류 검출 | 패킷 손상 방지 |
| Options | 확장 옵션 (MSS, SACK 등) | 네트워크 최적화에 활용 |
5. TCP 3-Way Handshake (연결 과정)

앞의 그림처럼 클라이언트와 서버가 통신할 때 다음과 같은 세 단계의 과정을 거칩니다.
- 1 SYN 단계: 클라이언트는 서버에 클라이언트의 ISN을 담아 SYN을 보냅니다. ISN은 새로운 TCP 연결의 첫 번째 패킷에 할당된 임의의 시원스 번호를 말하며(예시로 12010을 들었습니다) 이는 장치마다 다를 수 있습니다.
- 2 SYN + ACK 단계: 서버는 클라이언트의 SYN을 수신하고 서버의 ISN을 보내며 승인번호로 클라이언트의 ISN + 1을 보냅니다.
- 3 ACK 단계: 클라이언트는 서버의 ISN + 1 한 값인 승인번호를 담아 ACK를 서버에 보냅니다.
6. TCP 4-Way Handshake (종료 과정)

- 1 번: 먼저 클라이언트가 연결을 닫으려고 할 때 FIN으로 설정된 세그먼트를 보냅니다. 그리고 클라이언트는 FIN_WAIT_1 상태로 들어가고 서버의 응답을 기다립니다.
- 2번: 서버는 클라이언트로 ACK라는 승인 세그먼트를 보냅니다. 그리고 CLOSE_WAIT 상태에 들어갑니다. 클라이언트가 세그먼트를 받으면 FIN_WAIT_2 상태에 들어갑니다.
- 3번: 서버는 ACK를 보내고 일정 시간 이후에 클라이언트에 FIN이라는 세그먼트를 보냅니다.
- 4번: 클라이언트는 TIME_WAIT 상태가 되고 다시 서버로 ACK를 보내서 서버는 CLOSED 상태가됩니다. 이후 클라이언트는 어느 정도의 시간을 대기한 후 연결이 닫히고 클라이언트와 서버의 모든 자원의 연결이 해제됩니다.
이 과정 중 가장 눈여겨봐야 할 것은 TIME_WAIT입니다. 그냥 연결을 닫으면 되지 왜 굳이 일정 시간 뒤에 닫을까요?
- 첫 번째는 지연 패킷이 발생할 경우를 대비하기 위함입니다. 패킷이 뒤늦게 도달하고 이를 처리하지 못한다면 데이터 무결성 문제가 발생합니다.
- 두 번째는 두 장치가 연결이 닫혔는지 확인하기 위해서입니다. 만약 LAST_ACK 상태에서 닫히게 되면 다시 새로운 연결을 하려고 할 때 장치는 줄곧 LAST_ACK로 되어 있기때문에 접속 오류가 나타나게 될 것입니다.
7. UDP의 특징과 실무 활용
항목설명실무 예시
| 비연결형 | 세션 없이 데이터 전송 | DNS, DHCP, 게임 서버 |
| 신뢰성 없음 | 손실 가능, 순서 불보장 | 스트리밍, 음성 통화 |
| 오버헤드 적음 | TCP보다 빠름 | 실시간 서비스 |
| 재전송 없음 | 손실시 상위 레벨에서 보완 | QUIC, WebRTC |
주의
- DNS도 일부 요청(Zone Transfer)은 TCP를 사용한다.
- HTTP/3는 UDP 기반 QUIC을 사용해 TCP의 Handshake 지연을 제거했다.
8. 네트워크 튜닝 주요 파라미터
항목설명설정 키
| SYN backlog | 미완료 연결 큐 크기 | net.ipv4.tcp_max_syn_backlog |
| Keep-Alive | 유휴 연결 유지 시간 | net.ipv4.tcp_keepalive_time 등 |
| TIME_WAIT 재사용 | 포트 고갈 방지 | net.ipv4.tcp_tw_reuse |
| 송수신 버퍼 | TCP 성능 조절 | net.ipv4.tcp_rmem, net.ipv4.tcp_wmem |
| 커넥션 재사용 | 소켓 재활용 | SO_REUSEADDR, SO_REUSEPORT |
9. 이론 + 실무 연결 핵심 요약
구분이론 개념실무 적용
| OSI 7계층 | 통신 흐름의 논리적 구조 | 요청·응답 지연 구간 분석 |
| TCP/IP | 실제 인터넷 프로토콜 구조 | 서버 네트워크 튜닝 기준 |
| TCP | 신뢰성 있는 연결 | API 서버, DB 통신 |
| UDP | 비연결형 전송 | 스트리밍, 게임, HTTP/3 |
| Handshake | 연결 수립·종료 과정 | SYN Flood 방어, 포트 관리 |
| 커널 파라미터 | 연결/버퍼 관리 | 리눅스 서버 튜닝 |
| QUIC (HTTP/3) | UDP 기반 신속 전송 | 최신 백엔드 프로토콜 이해 |