Internet

BBaeng·2023년 12월 14일
0

본문은 roadmap.sh 에서 백엔드 로드맵을 따라가며 배운 내용을 정리한 내용입니다.

이 글을 보는 대부분은 개발자이겠죠? 요즘은 이러한 지식을 크게 알지 못해도 어느 정도 개발을 진행할 수 있습니다. (저 또한 그렇습니다 ㅎㅎ..) 하지만 인터넷이 어떻게 작동하는지에 대해 잘 아는 것이 실제 서비스를 구축할 때 효율적이고 완벽한 아키텍쳐를 구성하는데 도움이 된다고 생각합니다. 그래서 개발을 시작한지 1년차가 되어가는 저는 자투리 시간을 이용해 이러한 정보들을 기초부터 다시 정리하는 시간을 가지려합니다.

인터넷

Network

  • 컴퓨터들이 통신망을 통해 서로 그물처럼 연결된 체계

인터넷은 이러한 네트워크들이 서로 연결되어 형성되는 관계라고 볼 수 있습니다.

예를 들어 철수라는 친구 집에는 철수가 사용하는 휴대폰, 컴퓨터 등으로 형성되어 있는 네트워크가 존재하고, 영희라는 친구 집에는 영희가 사용하는 휴대폰, 컴퓨터 등으로 형성되어 있는 네트워크가 존재합니다. 철수와 영희는 이러한 본인의 네트워크에서도 서로가 소통을 하며 새로운 네트워크를 형성합니다. 이것을 인터넷이라고 볼 수 있습니다.

인터넷의 역사

1960년, 미군 국방부에서 핵 전쟁등의 상황에서도 살아남을 수 있는 분산형 통신망 즉, 네트워크의 목적으로생성되었습니다.

1983년 기점으로 현재와 같은 TCP/IP 기반의 네트워크가 형성되었고 1989년에는 그래픽 환경의 개선, 월드와이드웹(www)의 등장으로 상업적 목적의 온라인 서비스의 추가 및 이용자층이 확산되며 콘텐츠 및 이용자의 면에서 양/질적 팽창이 이루어졌습니다.

이후 1993년 상업적 이용의 허용, 인터넷을 편리하게 사용할 수 있는 최초의 브라우저인 모자이크가 출시되면서 사용자가 폭발적으로 증가되었다고 합니다.

이러한 흐름으로 복잡하고 정교하게 인터넷은 발전해나가면서 현재는 우리 삶에 깊게 녹아들어와 있습니다.

인터넷의 작동 방식

//더 정리
인터넷은 표준화된 프로토콜을 이용해 통신하면서 작동합니다.
여기서의 프로토콜은 기기간 정보를 어떻게 전송할지와 데이터가 안전하게 전송되도록 합니다.

인터넷은 상호 연결된 라우터들이 모인 글로벌 네트워크로 구성되며 해당 라우터들은 서로 다른 장치와 시스템 간의 트래픽을 관리합니다.
인터넷을 통해 데이터를 전달할 대, 데이터들은 작은 패킷단위로 나누어져 라우터로 전송되고 해당하는 라우터는 패킷을 검사하고 목적지를 향해 다음 라우터로 전송해주는 역할을 합니다.

패킷들을 검사하여 안전하게 전달하기 위한 방법으로 인터넷은 다양한 프로토콜을 사용하여 전송합니다.

  • TCP : 패킷들이 확실하고 올바른 순서로 전송되도록 하는 역할
  • IP : 해당하는 목적지로 패킷들을 전송하는 역할

이러한 프로토콜외에도 DNS, SSL/TLS(Secure Sockets Layer/Transfer Layer Security) 프로토콜과 같은 다양한 프로토콜들이 존재합니다.

프로토콜의 역할

프로토콜
기기 및 컴퓨터간 정보, 데이터의 교환 방식을 정의하는 규칙 체계입니다. 이러한 프로토콜은 인터넷 상에서 데이터 통신에 중요한 역할을 합니다.

위에서 살펴 보았듯 인터넷에는 다양한 프로토콜이 사용됩니다.

  • IP (Internet Protocol)
    - 수신 호스트에 패킷들을 전송하느 ㄴ역할
  • TCP (Transmission Control Protocol)
  • UDP (User Datagram Protocol)
  • DNS (Domain Name System)

이러한 표준화된 프로토콜을 이용할 때에 서로 다른 시스템, 기기들이 서로 원활하게 통신할 수 있게 해줍니다.

IP Address and Domain Names

IP 주소 및 도메인이름은 인터넷 작동을 이용할 때 중요한 개념입니다.
IP 주소란 하나의 네트워크를 담당하는 디바이스에 부여되는 유일한 식별자로 데이터가 의도된 수신 호스트에서 올바르게 전달할 수 있도록 사용됩니다.

현재 인터넷에서 사용되는 IP 주소 체계로는 IPv4가 있습니다.
그러나 Ipv4는 주소공간 고갈 문제가 발생하여 그에 대한 Ipv6 또한 대표적인 Ip 주소체계로 자리잡았습니다.

Example

  • Ipv4 : 192.168.1.1
  • Ipv6 : 2001:0db8:85a3:0000:0000:8a2e:0370:7334

도메인 주소는 웹사이트 혹은 인터넷 리소스들을 사람이 읽을 수 있는 수준의 이름으로 표시한 것으로 해당 주소는 DNS를 통해 IP 주소로 변경됩니다. 컴퓨터는 이렇게 변경된 Ip 주소를 통해 유저가 요청한 웹사이트 혹은 인터넷 리소스에 접근합니다.

HTTP and HTTPS

두 프로토콜은 인터넷 기반의 서비스 개발에 가장 많이 사용되는 프로토콜입니다.

HTTP는 클라이언트와 서버 간 통신을 위한 통신규칙입니다.

예를 들어 chrome을 통해 웹사이트 방문 시에 chrome이라는 웹 브라우저가 해당 웹사이트를 담은 서버에 HTTP 요청을 보냅니다. 이후 서버는 해당 웹사이트를 담은 response를 반환해줍니다.

HTTPs는 HTTP의 보안단계가 강화된 버전으로 SSL/TLS 암호화 방식을 이용해 암호화한 데이터를 클라이언트와 서버간 통신하는 통신규약입니다.
이것은 기존의 계층에서 로그인 정보, 결제 정보 등과 같이 보안에 민감한 정보들을 보호하기 위한 보안 계층이 추가된 형태로 제공됩니다.

HTTPS를 사용해 웹사이트 방문 시 다음과 같이 주소 바에 자물쇠 아이콘이 보여집니다.

SSL/TLS 보안 연결

  • 증명서
  • 클라이언트와 서버간의 신뢰를 보장하기 위해 사용되는 증명서로 제 3자를 통해 서명된 정보와 서버 식별자를 포함하여 클라이언트의 인증을 진행합니다.
  • Handshake
    • SSL/TLS 핸드쉐이크 과정 동안 클라이언트와 서버는 보안연결을 위한 암호화 알고리즘 및 매개 변수들을 협상하기 위한 정보를 교환합니다.
  • Encryption
    + 보안 연결이 성립된 후, 데이터는 협의된 알고리즘을 사용하여 암호화되며 클라이언트와 서버간 보안성을 갖추어 전송됩니다.

0개의 댓글