인터넷 통신
클라이언트와 서버 사이에 복잡한 인터넷(노드)이 존재하고 인터넷을 통해 통신을 하기 위해 IP(Internet Protocol) 이 필요하다.
IP
클라이언트, 서버는 각각 IP를 가지고 있다.
지정한 IP 주소에 데이터를 전달 (패킷이라는 단위로 전달 : 출발지IP+도착지IP+정보+.....)
(packet : package(화물) + bucket(덩어리))
IP 프로토콜의 한계
1. 비연결성 : 받을 대상이 없거나 서비스 불능 상태여도 일단 전송
2. 비신뢰성 : 중간에 패킷이 사라질 경우(패킷 소실), 패킷이 순서대로 오지 않을 경우
3. 프로그램 구분 : 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상일 경우
TCP( Transmission Control Protocol : 전송 제어 프로토콜 ), UDP ( User Datagram Protocool : 사용자 데이터그램 프로토콜 )
IP 프로토콜의 한계를 해결해주는 TCP
인터넷 프로토콜 스택 4계층
- 애플리케이션 계층 : HTTP, FTP
[ 소켓 라이브러리를 통해 HTTP 요청 메세지를 전달 ↓ ]
- 전송 계층 : TCP, UDP
[ 전달받은 요청정보에 TCP 정보(출발지 PORT, 목적지 PORT, 전송 제어, 순서, 검증 정보... )를 감싸서 전달 ↓ ]
- 인터넷 계층 : IP
[ 전달받은 요청정보에 IP 정보(출발지IP, 목적지IP, 기타... )를 감싸서 전달 ↓ ]
- 네트워크 인터페이스 계층
TCP특징
1. 연결지향 : 클라이언트, 서버가 먼저 연결이 되도록 함 (3 way handshake)
2. 데이터 전달 보증 : 중간에 누락된 정보가 있을 시 인지 가능
3. 순서 보증
UDP특징
1. 하얀도화지에 비유(거의 기능 없음)
2. 데이터 전달, 순서가 보장되지는 않지만 단순하고 빠름
* IP와 거의 같음 + PORT + 체크섬
=> 한 IP에서 여러 애플리케이션을 사용할 때 유용
PORT( 선착장 )
IP는 아파트, PORT는 호수라고 생각하자
한 IP 내에서 PORT마다 애플리케이션이 할당되고 클라이언트와 서버가 정보를 주고 받을 때 정해진 PORT로만 주고받도록 설정 -> TCP 단계에서 담게 된다.
0~65535 : 할당가능
0 ~ 1023 : 잘 알려진 포트, 사용하지 않는 것 권장
* FTP : 20, 21
* TELNEL : 23
* HTTP : 80
* HTTPS : 443
DNS( Domain Name System : 도메인 이름 시스템)
IP에 도메인 이름을 설정
- IP 변경, 관리가 쉽다.
- IP를 외울 필요가 없다.
'네트워크' 카테고리의 다른 글
HTTP 헤더 - 캐시와 조건부 요청 (0) | 2023.05.03 |
---|---|
HTTP 헤더 - 일반헤더 (0) | 2023.05.02 |
HTTP 상태코드 (0) | 2023.04.28 |
HTTP Method (0) | 2023.04.28 |
URI와 웹 브라우저 요청, 응답 흐름 (0) | 2023.04.26 |
댓글