Internet
인터넷이란?
인터넷(Internet)이란 여러 통신망을 하나로 연결한다는 의미의 ‘인터 네트워크(inter-network)’라는 말에서 시작되었으며, 이제는 전 세계 컴퓨터들을 하나로 연결하는 거대한 컴퓨터 통신망을 의미합니다
World Wide Web
- WWW는 World Wide Web의 약자이며, 간단히 Web 또는 W3 라고도 한다.
CERN
의 한 프로젝트로서 시작된 웹은 분산 하이퍼미디어 시스템의 하나로 전 세계에 퍼져있는 인터넷 내의 정보들이 서로 거미줄(web)처럼 연결되어 형성된 공간.
- 디바이스에 대한 제약없이 웹 클라이언트 프로그램만 있다면 누구나 접근이 가능
- Web으 등장으로 인터넷을 통한 다양한 멀티미디어 서비스가 가능하게 되었다.
CERN(유럽 입자 물리 연구소)
1989년 3월 스위스와 프랑스 사이에 위치한 유럽 입자 물리 연구소(CERN)의 컴퓨터과학자 팀 버너스-리(Tim Berners-Lee, 영국 옥스퍼드대학 교수)가 멀리 떨어져 있는 동료 연구자와 지식을 공유하기 위해 만들었다
IP(Internet Protocol)
- 인터넷에 연결되어 있는 모든 장치들을 식별할 수 있도록 각각의 장비에게 부여되는 고유 주소
Protocol이란?
네트워크상에 있는 디바이스 사이에서 정확한 데이터의 전송과 수신을 하기 위한 일련의 규칙 또는 협약
IP의 역할
IP 패킷 정보
출발지 IP, 목적지 IP, 전송 데이터 등을 포함한 정보
IP의 한계
- 비연결성: 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송
- 대상 서버가 패킷을 받을 수 있는 상태인지 모름
- 비신뢰성: 전송하는 데이터가 정확하게 갔는지 확인하지 않음
- 목적지까지 가는 과정에서 거쳐가는 서버중에 문제가 생겨서 패킷이 소실되어도 확인 불가
- 패킷의 용량이 크면(1500byte 이상) 나눠서 보내게 되는데 서로 다른 루트로 인해 순서가 다르게 도착할 수 있다.
- 프로그램 구분: 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 여러개일때 구분을 못함
TCP, UDP
- TCP(Transmission Control Protocol)
- UDP(User Datagram Protocol)
- OSI 참조모델의 전송계층에 해당되는 프로토콜이다.
OSI 참조모델
국제표준화기구(ISO)에서 개발한 모델로, 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 것.
일반적으로 OSI 7계층이라 불림
인터넷 프로토콜 스택의 4계층
프로토콜 계층
TCP
- 전송 제어 프로토콜(Transmission Control Protocol)
- 전송 데이터에 출발지 Port, 목적지 Port, 전송 제어, 순서, 검증 정보 등을 추가한다.
- IP의 한계였던 비연결성, 비신뢰성 부분을 TCP가 해결해줌
TCP 특징
- 연결지향 - TCP 3 way handshake (가상 연결)
- 데이터 전달 보증
- 데이터 전송시 서버가 잘 받았다면 응답 메시지를 준다.
- 순서 보장
- 잘못된 순서로 도착할시에 잘못온 패킷부터 다시 요청
- 신뢰할 수 있는 프로토콜
UDP
- 사용자 데이터그램 프로토콜(User Datagram Protocol)
- 데이터 전달 보증 X
- 순서 보장 X
- 데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠름
- IP 기능에 + Port, Checksum 정도만 추가
- 애플리케이션에서 추가 작업 필요
Cheksum이란?
체크섬은 중복 검사의 한 형태로, 오류 정정을 통해, 공간이나 시간 속에서 송신된 자료의 무결성을 보호하는 단순한 방법이다.
- 이 메시지에 대해서 잘 왔는지 검증해주는 데이터
PORT
- 같은 IP 내에서 프로세스를 구분하기 위한 용도
- TCP 통신에서 패킷데이터에 PORT 번호를 추가시킨다.
- 0 ~ 65535 할당 가능
잘알려진 PORT
Well Known Port
- 이는 서버 측에 각 용도별로 예약되어 동작되고 있으며
- 이를 사용하게되는 클라이언트 자신은 보통 임시(Ephemeral) 포트 번호를 이용하여 접속
- 0 ~ 1023: Well Known Port, 사용하지 않는 것이 좋다.
- FTP: 20, 21
- TELNET: 23
- HTTP: 80
- HTTPS: 443
DNS
- 도메인 네임 시스템(Domain Name System)
- 각 IP주소마다 유일한 이름을 연결시키며, 평면 구조 혹은 계층구조를 갖도록 구성한다.
인터넷상에서 사용되는 호스트 컴퓨터에 할당되는 이름의 모호성과 혼란을 최소화하기 위해서 IP주소와 이름 사이에 제어가 가능한 이름 공간을 구성한 다음, 이로부터 각 호스트 컴퓨터에 이름을 부여하도록 한다.
DNS의 필요성
- 기억하기 어려운 IP 주소를 기억하기 쉬운 도메인 이름으로 사용할 수 있다.
- IP는 변경될수가 있는데 도메인을 지정하게되면 IP가 변경되는것과 상관없이 일관된 도메인주소를 사용할 수 있다.
Reference