🪢 인터넷 통신
인터넷은 인터넷 망을 통해 상대(서버)에게 내용을 주고 받는다.
그 방법이 IP(인터넷 프로토콜) 이다.
🔧 IP 인터넷 프로토콜의 역할
목적지에 IP주소에 데이터를 전달
패킷이라는 통신 단위로 데이터 전달
패킷 정보
출발지 IP, 목적지 IP, 프로토콜, IP버전, 전송데이터 등을 가진다.
클라이언트가 패킷을 인터넷을 통하여 전달할때 각 노드를 타고 전송되는데
서버에서 클라이언트로 전달할 때는 다른 노드 경로로 보내질 수 있다.
❌ IP 프로토콜의 한계
- 비연결성
- 상대와 연결되지 않아도 패킷을 전송
(클라이언트는 대상 서버 상태를 모른다.)
- 상대와 연결되지 않아도 패킷을 전송
- 비신뢰성
- 전송 준간에 패킷이 사라지는 상황
- 패킷이 순서대로 오지 않는 상황
(전송 노드 경로가 다른 경우)
- 프로그램 구분
- 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상
이러한 문제를 해결해주는 것이 바로 TCP 이다.
🔹TCP / UDP
🔹 TCP/IP 4계층
애플리케이션 계층 | HTTP, FTP, SSH 등 프로토콜
전송 계층 | TCP, UDP
인터넷 계층 | IP (인터넷 프로토콜)
네트워크 인터페이스 계층 | 물리적인 주소인 MAC, LAN, 패킷망 등
애플리케이션 계층 - 웹 브라우저, 온라인 게임, 메시신저 프로그램
🔹 전송 단계
- 애플리케이션 계층 : 프로그램이 메시지를 생성하고
socket 라이브러리를 통해 전달
- 전송 계층 : TCP정보 생성하고 메시지 데이터를 감싼다.
- 인터넷 계층 : IP 패킷을 생성, TCP정보 데이터를 감싼다.
- 네트워크 인터페이스 계층 : Ethernet frame을 감싸고 인터넷으로 전송
(MAC주고 같은 물리적인 것이 포함됌)
🔹 TCP/IP 패킷 정보
IP : 출발지 IP, 목적지 IP, 프로토콜, IP버전, 전송데이터 등
TCP: 출발지 PORT, 목적지 PORT, 전송 제어, 순서, 검증정보 등
🔹 TCP 특징 (전송 제어 프로토콜)
- 연결지향 - TCP 3 way handshake (가상연결)
1. 클라이언트가 SYN를 서버로 전송
2. 서버가 SYN + ACK 전송
3. 클라이언트 ACK 전송
4. 데이터 전송
- SYN : 접속 요청
- ACK : 요청 수락
- 데이터 전달 보증
- 순서 보장
패킷순서가 맞지않으면 해당 부분부터 재전송 요청
- 신뢰할 수 있는 프로토콜
- 대부분 TCP 사용
🔹UDP 특징 (사용자 데이터그램 프로토콜)
- 위에서 언급한 TCP의 기능이 없다.
- 단순하고 빠름
- IP와 거의 같고 PORT + 체크섬 정도 추가
- 애플리케이션에서 추가 작업 필요
- 최적화 용도로 사용
🏷️ 체크섬
중복 검사의 한 형태, 오류 정정을 통해, 공간이나 시간 속에서 송신된 자료의 무결성을 보호하는 단순한 방법
✈️ PORT
같은 IP(IP 주소)내에서 프로세스 구분
TCP/IP 패킷을 보면
-------------------
| 출발지 IP,PORT |
| 목적지 IP,PORT |
| 전송 데이터 등 |
-------------------
위에서 TCP/IP 패킷 정보를 보면 알 수 있다.
즉 클라이언트에서 여러가지 애플리케이션(게임, 음악 등)을 이용할 때
각 애플리케이션의 프로세스를 구분하는 용도이다.
0 ~ 65535 : 할당 가능
0 ~ 1023 : 잘 알려진 포트로 사용 지양
FTP - 20, 21
TELNET - 23
HTTP - 80
HTTPS - 443
📖 DNS (도메인 네임 시스템)
도메인 명을 IP주소로 변환
*DNS 도입 계기 *
- IP 주소를 일일히 기억하기 어려움
- IP 주소의 변경 가능성
DNS 순서
- DNS서버에는
도메인 명 | IP 주소
형태로 있다. - 클라이언트가 DNS 서버에 도메인명을 요청하면
DNS 서버가 도메인 명에 맞는 IP 주소를 응답(반환)해준다. - 클라이언트는 응답받은 IP주소로 접속한다.
출처 및 참고자료
'Back-End > HTTP' 카테고리의 다른 글
HTTP 상태코드 (0) | 2024.08.17 |
---|---|
HTTP - 메서드 (0) | 2024.08.17 |
HTTP 기본 (1) | 2024.08.17 |
HTTP - URI & 웹 브라우저 요청 흐름 (0) | 2023.11.02 |