1. 인터넷 통신
-바로 붙어 있을 때는 연결을 통해 가능
2. IP(인터넷 프로토콜)
-IP 주소 통해서 인터넷 망 연결
IP 역할
- 지정한 IP 주소(IP Address)에 데이터 전달
- 패킷(Packet)이라는 통신 단위로 데이터 전달
-(출발IP, 도착IP, 메시지) 전송
IP 프로토콜의 한계
-비연결성
- 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송
-비신뢰성
- 중간에 패킷이 사라지면?
- 패킷이 순서대로 안오면?
-프로그램 구분
- 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면?
(EX. 작업, 노래 듣기, 영상 시청 등 동시 진행)
(1) 대상이 서비스 불능, 패킷 전송
(2) 패킷 소실
(3) 패킷 전달 순서 문제 발생
3. TCP, UDP
: IP 프로토콜에서 발생한 문제들을 해결함.
IP 스택의 4계층
프로토콜 계층
메시지 전송
TCP/IP 패킷 정보
-IP 패킷: 출발지IP, 목적지IP, 기타
-출발지 포트, 목적지 포트, 전송 제어, 순서, 검증 정보 등
TCP 특징
: 전송 제어 프로토콜(Transmission Control Protocol)
-연결지향(연결 우선) - TCP 3 way handshake (가상 연결)
-데이터 전달 보증(메시지 누락 등 확인 가능)
-순서 보장
• 신뢰할 수 있는 프로토콜
• 현재는 대부분 TCP 사용
(1) TCP 3 way handshake
-요새는 3. ACK 전송 시 데이터도 같이 전송
-논리적 연결임(실제 연결됨은 X, 실제 연결 보장은 X)
(2) 데이터 전달 보증
(3) 순서 보장
UDP 특징
: 사용자 데이터그램 프로토콜(User Datagram Protocol)
-하얀 도화지에 비유(기능이 거의 없음)
- 연결지향 X - TCP 3 way handshake X
- 데이터 전달 보증 X
- 순서 보장 X
-데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠름
=> 최적화 시에 TCP를 바꿀 수 없으므로, UDP를 최적화함
HTTP 3.0에서 최근 사용
정리
- IP와 거의 같다. +PORT +체크섬 정도만 추가
- 애플리케이션에서 추가 작업 필요
4. PORT
한번에 둘 이상 연결해야 하면?
서버 안에서 돌아가는 애플리케이션 구분=> PORT
TCP/IP 패킷 정보
PORT: 같은 IP 내에서 프로세스 구분
PORT 번호
-0 ~ 65535 할당 가능
-0 ~ 1023: 잘 알려진 포트, 사용하지 않는 것이 좋음
- FTP - 20, 21
- TELNET - 23
- HTTP - 80
- HTTPS - 443
5. DNS
-IP는 기억하기 어렵다.
-IP는 변경될 수 있다.
DNS
: 도메인 네임 시스템(Domain Name System)
-전화번호부 같은 서버 제공
-도메인 명을 IP 주소로 변환
DNS 사용
->IP의 문제 해결함