인터넷 통신
- 크게 클라이언트와 서버로 구성되어 있는데, 그 사이에 수많은 노드 서버들이 존재하여 노드들을 거쳐서 통신하게 된다.
IP
인터넷 프로톸콜 역할
- 지정한 IP 주소(IP Address)에 데이터 전달
- 패킷이라는 통신 단위로 데이터 전달
* IP 패킷 정보 데이터(출발지 IP, 목적지IP, 기타...)
IP 프로토콜의 한계
비연결성
- 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송된다.
비신뢰성
- 중간에 패킷이 사라질수 있다.
- 패킷이 순서대로 도착 안 할 수 있다.
프로그램 구분
- 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면 어떻게 구분할 것인가?
* IP 프로토콜의 한계를 극복하고자 TCP UDP 프로토콜 등장
인터넷 프로토콜 스택의 4계층
- 애플리케이션 계층 - HTTP, FTP
- 전송 계층 - TCP, UDP
- 인터넷 계층 - IP
- 네트워크 인터페이스 계층
* TCP 세그먼트 정보(출발지 PROT, 목적지 PORT, 전송 제어, 순서, 검증 정보 ...)
TCP 특징
전송 제어 프로토콜(Transmission Control Protocol)
- 연결 지향 - TCP 3 way handshake (가상 연결)
- 데이터 전달 보증
- 순서 보장
- 신뢰할 수 있는 프로토콜
- 현재는 대부분 TCP 사용
TCP 3 way handshake
- IP 프로토콜 비연결성 해결
데이터 전달 보증
- IP 프로토콜 비신뢰성 해결
순서 보장
- IP 프로토콜 순서 비신뢰성 해결
UDP 특징
- 기능이 거의 없음
- 데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠름
- IP 프로토콜과 거의 같다 + PORT + 체크섬 정도 추가
- 애플리케이션 추가 작업 필요
- 요새 TCP의 SYN, ACK 과정들을 줄이기 위해서 다시 관심받고 있다.
PORT
- 같은 IP 내에서 프로세스 구분
- IP 프로토콜 프로그램 구분 해결
- 예) IP가 아파트 한동이라면 PORT는 호수
* IP는 기억하기 어렵고, 바뀔 가능성이 있다. 그래서 DNS 등장
DNS
도메인 네임 시스템(Domain Name System)
- 도메인 명을 IP 주소로 변환
참고
inflean 강의 (모든 개발자를 위한 HTTP 웹 기본 지식, 김영한)
'Network' 카테고리의 다른 글
URI, URL, URN (0) | 2021.09.06 |
---|