인터넷에서 컴퓨터 둘 즉, 클라이언트(사용자)와 서버는 어떻게 통신을 할까?
클라이언트와 서버를 연결하는 노드(프록시)들의 집합을 인터넷이라고 한다
어느 노드를 통해야 적절히 연결이 되는지 첫 연결시엔 알 수 없기에
우리는 집 주소처럼 컴퓨터마다 IP 주소를 부여한다
예를 들어,
광진구에 위치한 A와 성동구에 위치한 B가 있다고 가정 할 경우
A (광진구) - 화양동, 성수동, 군자동 - B(성수 1가 2동)
IP는 인터넷 프로토콜(Internet Protocol)의 약자로, 패킷 이라는 통신 단위로 데이터를 전달한다
IP가 전달하는 패킷은 출발지 IP, 목적지 IP, 기타 정보와 보내고자 하는 데이터를 담고 있다
클라이언트에서 패킷을 전달하면 목적지 IP로 다양한 노드들을 통해 도달하게 된다
서버가 정상적으로 패킷을 받게 된다면, 서버에서 제대로 받았는지에 대한 패킷을 통과한 노드의 역순으로 전달하여 오류 여부를 확인한다
비 연결성
비 신뢰성
프로그램 구분
전송 제어 프로토콜 (Transmission Control Protocol)의 약자로 세 가지 특징이 있으며, 신뢰할 수 있는 프로토콜이기에 현재 대부분 TCP를 사용한다
클라이언트와 서버의 연결 과정
클라이언트 ---SYN---> 서버
클라이언트 <---SYN+ACK--- 서버
클라이언트 ---ACK---> 서버
클라이언트 ---데이터---> 서버
SYC : 접속 요청
ACK : 요청 수락
※ 클라이언트가 서버에 ACK 전송시, 데이터도 같이 전송 가능함
사용자 데이터그램 프로토콜(User Datagram Protocol)의 약자로 IP의 상위호환, TCP의 하위호환으로 볼 수 있다.
IP에서 port와 체크섬 기능이 추가된 정도이며 TCP의 3가지 기능은 없음
TCP는 용량이 크기에 최적화에 한계가 있지만, UDP는 기능이 부족한 대신 단순하고 빠르다는 특징이 있음
클라이언트가 한번에 둘 이상의 서버와 연결시 필요한 기능
예를 들어, 클라이언트가 둘 이상의 데이터를 보낼때, 각 데이터가 어느 서버에 매칭되는지를 알려주는 것 이라고 생각하면 된다
서버의 IP가 변경됐을 경우, 접근에 오류가 생길 것을 방지하기 위해
전화번호부 형태로 만들어진 기능
예시로
www.google.com - 200.200.200.2
www.naver.com - 300.300.300.3
- 위와 같을경우, IP가 변경되도 전화번호부 상의 IP를 업데이트를 해준다면
클라이언트는 DNS로만 접근하기 때문에 오류 없이 접근이 가능하다
HTTP, FTP
ex) 웹브라우저, 게임, 채팅 프로그램 등
TCP, UDP
IP
LAN 드라이버, LAN 장비