ID: key_26_09_02_26_15_08_48_51300 Created date: Feb 26 2026 Thursday, 9th 15:08
연관 문서
OSI 7 Layer
- 개요
- 네트워크 통신을 7개 계층으로 나눈 표준 참조 모델로 각 계층은 독립적으로 수행하며, 상위 계층은 하위 계층의 서비스를 활용
- 목적: 계층화를 통해 복잡성을 줄이기 위함
- 독립성: TCP에서는 WI-FI or 유선 케이블이 관심 대상 X
- 유지 보수 용이성: 범위 정의 용이함
- 표준화 응용 프로그램 ↕ ⑦ 응용 계층 (Application) - 사용자와 직접 상호 작영 (ex Http) ⑥ 표현 계층 (Presentation) - 데이터 형식 변환, 암호화 (ex SSL) ⑤ 세션 계층 (Session) - 연결 설정 관리 (대부분 7 계층에서 구현) ④ 전송 계층 (Transport) - 종단간 데이터 전송 (ex TCP, UDP) ③ 네트워크 계층 (Network) - 논리적 주소 (ex IP) ② 데이터 링크 계층 (Data Link) - 물리적 주소 (ex MAC) ① 물리 계층 (Physical) - 실제 전기 신호 및 비트 (ex 광섬유) ↕ 물리적 네트워크
Transport Layer (TCP vs UDP)
- 목적
- Network Layer: 어떤 컴퓨터로 보낼지 정의 (IP)
- Transport Layer: 해당 컴퓨터의 어떤 프로그램으로 얼마의 신뢰성 유지
- 핵심 개념
- 포트: 해당 컴퓨터의 어떤 프로그램
- 연결 수립 및 종료 방식
- TCP
- 수립: 3 Way Handshake
- 흐름
- → 연결 요청 (SYN, seq=100)
- ← 연결 수락 (SYN-ACK, seq=200, ack=100)
- → 최종 확인 (ACK, ack=200)
- seq: 데이터 순서를 보장하기 위한 번호
- ack: 해당 seq 까지 받았다는 의미
- 흐름
- 종료: 4 Way Handshake
- 흐름
- → 종료 요청 (FIN, seq=100)
- ← 종료 요청 수신 (ACK, seq=200, ack=100)
- ← 종료 완료 (FIN, seq=300)
- → 종료 확인 (ACK, ack=300)
- 서버에서 아직 보내야할 데이터가 남아있을 수 있으므로 끝까지 확인
- 흐름
- 강제 종료
- 프로세스 강제 종료, 방화벽 차단 등
- 흐름
- → 데이터 요청 (ACK, seq=100 w/ 데이터)
- ← RST (서버 OS에서 발송)
- 소켓 Read 시 Connection Exception 발생 (즉시 감지)
- Slient Drop (조용한 단절)
- 방화벽 테이블에서 제거해버림 (FIN, RST 없음)
- 흐름
- → 데이터 요청 (ACK, seq=100 w/ 데이터)
- 패킷 버려짐
- 위 상황 Half-Open Connection
- 한쪽은 연결됨, 한쪽을 끊김
- 해결: TCP KeepAlive or 미들웨어 Heartbeat
- TCP 연결 유지 방법
- 수립: 3 Way Handshake
- TCP
- 데이터 전송 방식
- TCP: 전송 신뢰성 확보 방법
- 세그먼트 분할 & 순서 보장
- 큰 데이터를 쪼개서 보내고, 순서가 뒤바뀌어 도착해도 재조립
- TCP 연결과 종료 그리고 데이터 전송 구분
- ACK & 재전송 (손실 복구)
- seq1에 대한 ack1에 timeout 발생 한다면
- seq2로 다시 요청
- 흐름 제어 (Flow Control) - 수신자 보호
- 수신 측의 버퍼를 보고 받아 (WIndow Size) 속도 조절
- Window Size는 TCP 헤더에 포함
- 혼잡 제어 (Congestion Control) - 네트워크 보호
- 네트워크 자체의 부하를 감지해 패킷 발송 속도를 제어
- 세그먼트 분할 & 순서 보장
- TCP 헤더 내 존재하는 데이터로 조작을 많이함
- UDP 대비 5-8배 큼 (TCP: ~ 60 Byte, UDP: 8 Byte)
- TCP Header 상세
- TCP: 전송 신뢰성 확보 방법
- TCP vs UDP
- 비교
- 비교
