인터넷 네트워크의 기본적인 프로토콜
만약 내가 사랑하는 사람에게 연애편지를 써서 우체통에 넣었다고 가정해보자.
상대방이 편지를 받으려면 아래와 같은 항목들이 필요할 것이다.
- 편지지
- 편지봉투
- 우표
- 편지의 내용(메시지)
- 보내는 사람, 받는 사람 주소
- 신뢰할 수 있는 우체부
인터넷 환경에서도 위와 같은 항목들을 각 프로토콜이 담당하고 있다.
이제부터 어떤 프로토콜이 어떤 역할을 하게 되는지 알아보자.
IP(Internet Protocol)
나는 누구? 여긴 어디? 너는 누구? 너는 어디?
IP(Internet Protocol)
는 어디
와 누구
를 표현할 수 있는 프로토콜이다.
IP 특징
- 지정한 IP 주소에 데이터 전달
- 패킷(Packet)이라는 통신 단위로 데이터 전달
IPv4 구조
- 3개의
.
을 기준으로 구분 - 구분자 앞뒤로 각 8bit(0~255) 까지의 숫자를 조합하여 주소를 표시
IPv6 구조
- IPv4(4,294,967,296 개 할당 가능)로 할당가능한 주소의 개수보다
통신장비의 수가 더 많아져서 주소를 할당할 수 없는 지경 - 이런 문제점을 극복하고자 128bit의 IPv6를 설계
- 하지만 IPv6는 IPv4를 호환되지 않기 때문에 IPv4와 IPv6를 혼용해서 사용
IP 프로토콜의 한계
- 비연결성
- 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송
- 비신뢰성
- 중간에 패킷이 사라지면?
- 패킷이 순서대로 안오면?
- 중간에 패킷이 사라지면?
- 프로그램 구분
- 같은 IP를 사용하는 장비로 통신하는 애플리케이션이 2개 이상이면?
- 주소를 외우기 힘들다
TCP, UDP
이전 포스팅을 살펴보면 인터넷 프로토콜 5계층 중
전송계층(Transport Layer)를 담당하고 있는 대표적인 2개의 프로토콜인TCP
, UDP
가 있다.
TCP(Transmission Control Protocol) 특징
- 연결지향 - TCP 3 way Handshake(가상 연결)
- 데이터 전달 보증
- 순서 보장
- 신뢰할 수 있는 프로토콜
- 현재는 대부분 TCP 사용
3 Way handshake
TCP의 가장 큰 특징 중 하나인 3 way handshake
다.
이를 통해 연결성을 보장하며, IP의 한계점이었던, 비연결성, 비신뢰성을 극복할 수 있다.
TCP의 나머지 특징들은 모두 연결성으로 부터 야기된다.
- 데이터 순서를 보장할 수 있다.(1번 못받았으니 1번부터 다시보내)
- 데이터 전달 보증
- (데이터 보냈는데 받았어? –> 아니 못받았으니 다시보내)
- (데이터 보냈는데 받았어? –> ㅇㅇ 잘 받음)
- 연결되어 있으니 서로 신뢰할 수 있다.
UDP(User Datagram Protocol) 특징
- 기능이 거의 없음
- 3 Way Handshake 없음
- 비신뢰성
- 데이터 전달 보증 X
- 순서 보장 X
- 데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠름
- IP와 거의 같지만
PORT
,체크섬
정도만 추가 - 애플리케이션에서 추가 작업이 필요하다
- IP와 거의 같지만
TCP vs UDP
소싯적에 스타크래프트를 즐겨했으면,
게임속에서 TCP와 UDP를 살펴 볼 수 있다.
위의 TCP / UDP의 특징을 이해했으면, 각각의 특징을 살린 프로토콜을 사용해 게임을 했던 것이 기억날 것이다.
- 입력한 명령에 비해 비교적 느린 응답속도를 보이지만, 절대적인 연결이 중요할 때
- TCP에서 게임 진행
- 네트워크 상태가 비교적 좋아서, 빠른 반응속도가 더 중요할 때
- UDP에서 게임 진행
PORT
우체부 아저씨는 주소(IP)까지 찾아갈 수 있다.
만약 아파트라면, 호수(Port)를 알려줘야 편지를 정확하게 전달 할 수 있다.
IP의 한계 중 비연결성과 비신뢰성을 극복하기 위해 TCP를 사용했다면,
동일한 클라이언트에서 두 개 이상의 애플리케이션에 연결해야 하는 경우는 어떻게 해결 할 수 있을까?PORT
가 그 해결방안이 될 수 있다.
PORT 사용 시 주의사항
- 0 ~ 65535 할당 가능
- 0 ~ 1023 : Well Known Port(잘 알려진 포트)로 사용하지 않는 것을 권장함
- ex1) FTP - 20, 21
- ex2) telnet - 23
- ex3) http - 80
- ex4) https - 443
DNS
- IP는 기억하기 어렵다는 한계점이 존재했다.
- IP는 부족하기 때문에 사용하지 않으면, 반환 / 재할당을 통해 주소가 변경될 수 있다
- DNS는 이런 한계점을 극복하고자 만들어 졌다.
- example.com 이라는 Domain name으로 접속한다.
- DNS 서버는
example.com : IP주소
정보를 가지고 있다. - 따라서, 우리는 example.com이라고 쳐도 dns가 이를 IP로 변경해 준다.