요약 #
IP #
- 출발지 IP, 목적지 IP
- Packet 단위 사용 (Layer 3)
- 비연결성
- 패킷 받을 대상이 없는지 확인 X
- 패킷 받을 대상이 어떤 상태인지 알 수 X
- 비신뢰성
- 패킷을 잘 받았는지 확인 X
- 중간에 소실될 수 도 있음
- 패킷을 순서대로 잘 보냈는지 확인 X
- 늦게 보낸 게 더 빨리 도착할 수도 있음
- 패킷을 잘 받았는지 확인 X
- 프로그램 구분 X
‘비연결성, 비신뢰성, 프로그램 구분’ 을 어떻게 해결 ??
=> TCP(UDP)
TCP (혹은 UDP) #
참고 (TCP/IP Layer)
Application Layer : HTTP, FTP, … (Applicaiton)
Transport Layer : TCP, UDP (OS)
Internet Layer : IP (OS)
Network Interface Layer : LAN 장비/드라이버, … (Ethernet) (HW)
- 출발지 PORT(응답 시 사용), 목적지 PORT(요청 시 사용)
- 연결성 (IP 의 비연결성 해결)
- 신뢰성 (IP 의 비신뢰성 해결)
- PORT (IP 의 프로그램 사용 미구분 해결)
- 흐름제어, 혼잡제어, 순서 등
* 현재 TCP 는 개선하기 힘들다.
이미 너무 많은 곳에서 사용하고 있기 때문.
최근 들어서는 UDP 를 활용하기 시작
참고 1 - UDP #
- 비연결
- 비신뢰성
- PORT (IP 의 프로그램 사용 미구분 해결)
- 체크섬 (간단한 오류 검증 정도만 사용)
- 즉, Application 단에서 추가적인 검증 과정이 필요할 것
참고 2 - DNS #
- IP 외우기 힘듬
- IP 변경 가능성