인터넷이 무엇인가에 대해 알기 전에 네트워크란 무엇인가에 대해 이해할 필요가 있다.
💡 네트워크는 서로 연결된 컴퓨터 또는 기타 장치의 그룹, 인터넷은 네트워크들의 네트워크
상위 단계에서, 인터넷은 여러 개의 표준화된 프로토콜을 이용해서 장치들과 컴퓨터 시스템들을 연결합니다.
여기서 프로토콜들은 기기들간에 정보들이 어떻게 교환될 것인지 정의하고, 이 데이터들이 신뢰성 있고 안전하게 전송된다는 것을 보장합니다.
인터넷의 핵심은 다른 기기들과 시스템간의 직접적인 트래픽을 담당하는 서로 연결된 라우터들의 글로벌 네트워크입니다.
데이터를 인터넷으로 전송하면, 데이터는 작은 패킷으로 쪼개져 디바이스에서 라우터로 전송됩니다.
이후 라우터는 그 패킷을 검사해서 다음 라우터로 전송하는 과정을 반복하고 최종 그 정보를 수신하는 곳에 데이터가 전달되게 됩니다.
패킷들이 보내지고 정확하게 전달되었다는 것을 보장하기 위해 인터넷은 IP ( Internet Protocol ) 와 TCP ( Transmission Control Protocol ) 을 포함한 다양한 프로토콜을 사용합니다.
IP
는 데이터가 가야할 곳으로 정확히 라우팅되는 것을 담당하는 반면 TCP
는 정확한 순서로 신뢰성있게 전송되는 것을 담당합니다.
패킷은 데이터 전송의 기본 단위입니다. 데이터는 패킷으로 나누어져서 전송되며, 각 패킷은 고유한 주소와 목적지 주소를 가지고 있습니다. 이렇게 나누어진 패킷들은 전송 중에 각각 다른 경로를 통해 목적지에 도달하게 됩니다. 이러한 방식은 전체 데이터가 손상되거나 분실되었을 때에도 데이터의 일부분만 재전송하면 되기 때문에 전송 속도와 신뢰성을 높일 수 있습니다.
라우터는 여러 개의 네트워크를 연결하고, 패킷을 받아서 해당 패킷이 목적지에 도달할 때까지 적절한 경로를 찾아서 전달하는 역할을 합니다.
라우팅 테이블을 사용하여 패킷이 흐르는 경로를 결정합니다. 라우팅 테이블은 네트워크 계층 주소와 다음 라우터의 주소를 포함하고 있습니다. 라우터는 패킷의 목적지 주소를 확인하고 라우팅 테이블을 사용하여 다음 라우터로 패킷을 전달합니다.
라우터는 패킷을 다른 네트워크로 전달할 때 패킷의 헤더를 수정합니다. 이는 목적지 주소를 바꾸고 TTL (Time To Live) 값을 줄입니다. TTL 값은 패킷이 네트워크를 통과할 때마다 1씩 감소합니다. 만약 TTL 값이 0이 되면 패킷은 폐기됩니다. 이렇게 함으로써 라우터는 패킷이 무한정 루프를 도는 것을 방지하고, 네트워크의 안정성을 유지합니다.
IP 주소는 인터넷 프로토콜 주소의 약자로, 각각의 네트워크와 디바이스를 고유하게 식별하기 위한 숫자로 된 주소입니다. IP 주소는 32비트 이진수로 된 숫자 4개로 구성되며, 각 숫자는 점으로 구분됩니다. 예를 들어, 192.168.0.1
과 같이 표기합니다. 이를 통해 인터넷 상의 각각의 네트워크와 디바이스가 서로를 식별하고 통신할 수 있습니다.
IPv4는 인터넷에서 사용되는 주소 체계 중 하나로, 32비트로 구성되어 있습니다. 이는 총 4바이트로 구성된 43억 개 이상의 주소를 가지고 있습니다. 그러나 IPv4 주소의 한계로, 이제는 대부분의 IPv4 주소가 사용되어 지고 있어, 이를 대체하기 위한 IPv6 주소 체계가 등장하였습니다.
IPv6는 IPv4의 한계를 극복하기 위해 등장한 주소 체계로, 128비트로 구성되어 있습니다. 이는 16바이트로 구성된 340경 개 이상의 주소를 가지고 있습니다. IPv6는 IPv4에 비해 IP 주소의 부족 문제를 해결하고, 데이터의 안전성과 보안성을 높일 수 있는 기능을 제공합니다.
IPv4에서는 NAT(Network Address Translation)이 보안 이슈를 해결하는 데 일부 기능을 제공했습니다. NAT은 사설 IP 주소를 사용하는 네트워크에서 인터넷에 연결하기 위해 공인 IP 주소를 공유하는 기능으로, 내부 네트워크와 외부 네트워크 간의 연결을 쉽게 만들어줍니다.
그러나 NAT은 보안 위협에서 완전한 보호를 제공하지는 않습니다. 예를 들어, NAT는 공격자가 내부 네트워크에 침입하고 내부 IP 주소를 탈취해 외부 네트워크에 있는 다른 시스템에 대한 공격을 수행하는 것을 방지하지 못합니다.
IPv6에서는 NAT를 사용하지 않으며, 대신 IPSec(Internet Protocol Security)을 내장하고 있습니다. 이러한 기능들은 IPv4에서는 별도의 보안 프로토콜을 사용해야 했지만 IPv6에서는 기본적으로 제공되므로 보안성이 향상됩니다.
IPSec (Internet Protocol Security)은 인터넷 프로토콜(IP)을 이용해 통신하는 데 있어서 기밀성, 무결성, 인증, 접근 제어 등의 보안 기능을 제공하는 프로토콜입니다.
IPSec은 IP 패킷을 암호화하고, 패킷의 내용이 변경되지 않았는지를 검증하는 기능 등을 수행합니다. 이를 통해 IP 패킷이 중간에서 탈취되어도 내용을 해독할 수 없게 됩니다. 또한, IPSec을 이용하면 VPN(Virtual Private Network)과 같은 보안 연결을 구성할 수 있습니다.
IPSec은 다음과 같은 보안 기능을 제공합니다.
IPSec은 기본적으로 IPv6에서 지원되며, IPv4에서도 사용할 수 있습니다. IPSec은 AH(Authentication Header)와 ESP(Encapsulating Security Payload)라는 두 가지 프로토콜을 사용합니다. AH는 패킷의 무결성과 인증을 보호하는 반면, ESP는 패킷의 기밀성을 보호합니다.
IPSec은 VPN 연결을 구성하는 데 사용됩니다. VPN은 인터넷을 통해 데이터를 안전하게 전송하기 위한 기술로, IPSec을 이용하여 안전한 터널을 만들어 데이터를 전송합니다.
VPN을 이용하면 인터넷에서도 안전하게 데이터를 전송하고, 사내 네트워크에 원격으로 접속할 수 있습니다.
도메인이란 IP 주소를 좀 더 사람이 이해하기 쉬운 문자열로 변환한 것입니다. 예를 들어, "www.google.com"은 "172.217.25.68"로 매핑됩니다. 도메인 이름은 DNS (Domain Name System) 서버에서 관리됩니다. 이러한 시스템을 통해 사용자는 도메인 이름을 입력하여 해당 웹사이트의 IP 주소를 찾아낼 수 있습니다.
DNS는 Domain Name System의 약어로, 도메인 이름과 IP 주소 간의 매핑을 관리하는 시스템입니다. 사용자가 도메인 이름을 입력하면, DNS 서버는 해당 도메인 이름과 연관된 IP 주소를 찾아내고, 사용자의 컴퓨터에게 전달합니다. 이를 통해 사용자는 도메인 이름을 통해 웹사이트에 접속할 수 있습니다. DNS는 전 세계적으로 분산되어 있으며, 인터넷에서 핵심적인 역할을 담당합니다.
HTTP는 HyperText Transfer Protocol의 약자로, 웹 브라우저와 웹 서버 간에 데이터를 교환하는 프로토콜입니다.
HTTP는 웹에서 가장 많이 사용되는 프로토콜 중 하나이며, HTML, CSS, JavaScript, 이미지 등의 리소스를 전송하기 위해 사용됩니다. HTTP는 클라이언트와 서버 간의 요청과 응답 메시지를 교환하며, 이를 통해 웹 페이지를 열고 데이터를 전송합니다.
HTTPS는 HyperText Transfer Protocol Secure의 약자로, 보안 연결을 사용하여 데이터를 교환하는 프로토콜입니다.
HTTPS는 HTTP의 보안 버전으로, SSL (Secure Sockets Layer) 또는 TLS (Transport Layer Security) 프로토콜을 사용하여 데이터를 암호화합니다. 이를 통해, 중간자 공격 및 데이터 유출 등의 보안 위협으로부터 데이터를 보호할 수 있습니다.
HTTPS는 일반적으로 인터넷에서 민감한 정보를 전송하는 경우, 예를 들어 사용자의 로그인 정보나 개인 정보 입력 등에 사용됩니다. HTTPS는 일반적으로 HTTP의 포트인 80 대신 443 포트를 사용합니다.
HTTP와 HTTPS는 모두 인터넷에서 데이터를 교환하는 프로토콜입니다. 하지만 HTTPS는 HTTP에 보안 기능을 추가한 프로토콜입니다.
HTTP는 데이터를 암호화하지 않고 전송하기 때문에 데이터를 가로채면 내용이 노출될 수 있습니다. 반면 HTTPS는 SSL 또는 TLS 프로토콜을 사용하여 데이터를 암호화하고 보호합니다.
이를 통해 데이터의 안전성을 보장할 수 있습니다.
예를 들어, 사용자가 로그인 정보를 입력하는 과정에서 HTTP를 사용하면, 해당 정보는 암호화되지 않은 상태로 전송되므로 해커가 정보를 가로채면 사용자의 개인 정보가 유출될 수 있습니다. 반면 HTTPS를 사용하면, 해당 정보가 SSL 또는 TLS 프로토콜을 통해 암호화되어 전송되므로 해커가 정보를 가로채더라도 정보를 해독할 수 없습니다.
따라서, 민감한 정보를 전송하는 경우에는 HTTPS를 사용하는 것이 안전합니다.