기본적으로 웹 통신은 클라이언트와 서버가 있음 요청을 보내는 곳은 클라이언트 그 요청에 응답을 보내주는게 서버.
인터넷 통신은 여러 통신 방법이 있음 기본적인 구조는 클라이언트가 요청을 패킷에 담아 보내면 인터넷 망(해저 광케이블, 위성, 로컬 광케이블 등)의 노드(서로 연결되어 있는 가지?)를 통해 서버로 전달되고 서버도 마찬가지고 인터넷 망을 통해 클라이언트로 응답을 보냄
한계
위의 IP 프로토콜의 단점을 보완해줌
인터넷 프로토콜 스택의 4계층
애플리케이션 계층 ( HTTP, FTP )
전송 계층 ( TCP, UDP )
인터넷 계층 ( IP )
네트워크 인터페이스 계층 ( LAN드라이버, LAN장비 )
TCP/IP 패킷은 일반 IP패킷에 TCP세그먼트 (전송제어,순서, 검증 정보, 포트 등등)을 추가로 더해진것
TCP 특징
전송 제어 프로토콜
TCP 3way handshake
1. SYN (싱크로) : 접속 요청 / 클라이언트 -> 서버
2. SYN+ACK : 요청 수락 / 서버 -> 클라이언트
3. ACK : 요청 확인 / 클라이언트 -> 서버 (ACK와 함께 데이터 전송도 가능)
4. 클라이언트 <- -> 서버 데이터 전송
한마디로 데이터 전달을 보증해줌. 클라이언트에서 데이터를 전송하면 서버에서는 데이터를 받았다고 응답을 줌
UDP 특징
사용자 데이터그램 프로토콜
하나의 클라이언트에서 한번에 둘 이상 의 서버와 연결 해야 한다면?
클라이언트가 (하나의 IP에서) 게임도 하고 음악도 듣고 채팅도 한다면? 게임서버, 음악서버, 채팅서버 각각에서 오는 패킷들이 어느 서버에서 왔는지 모름. 그런데 이를 해결해주는게 PORT(포트)
TCP/IP 패킷의 구조 : 출발지IP / PORT, 도착지IP / PORT, 전송 데이터 등등...
- 패킷에 출발지 IP와 PORT가 명시 돼 있어서 서버에서 다시 응답 가능
PORT
IP주소는 기본적으로 외우기 어렵다. 변할 수 도 있음 그래서 클라이언트가 서버에 요청을 하고 싶으면 IP를 일일이 다 기억해야됨. 그게 어렵기 때문에 DNS사용
Domain Name System
전화번호부 개념
도매인명을 (naver.com, google.com 등) 실제 서버의 IP주소로 변환 해줌
클라이언트가 도메인 명으로 주소창에 입력하면 DNS서버를 통해 해당 도메인 명이 있는지 확인하고 해당 도메인이 있으면 실제 IP주소를 넘겨줌