FE-Roadmap을 참고해서 공부를 하고있다.
적어도 인터넷이 무엇이고, 어떻게 작동하는지는 알아야 웹 개발을 하든 공부를 할 수 있을 것 같아 처음부터 하나씩 알아보았다.
아래 문서를 번역하면서 작성한 내용이라 다소 어색할 수 있습니다.
https://cs.fyi/guide/how-does-internet-work
How works?
The internet is a network of networks.
네트워크
서로 연결된 컴퓨터나 기기들의 그룹
인터넷은 표준화된 프로토콜을 사용하는데, 이 프로토콜은 장치간 정보 교환 방법을 정의하고 데이터가 안전하게 전송되도록 보장한다.
다른 기기와 시스템들간의 트래픽 전달을 담당하는 상호연결된 라우터라는 것이 인터넷의 핵심이다.
아래 그림을 보자.
유저가 인터넷으로 데이터를 전송하면 데이터는 작은 패킷으로 나누어진다.
패킷이 라우터로 전달되면 라우터에서는 패킷을 조사하고 그 다음 라우터로 전달한다. 이 패킷이 도착할 때까지 계속 반복되는 것이다.
이 패킷들을 올바르게 전송하고 받기위해 인터넷은 IP나 TCP같은 다양한 프로토콜들을 사용한다.
용어 정리
패킷
인터넷에 전송되는 데이터의 아주 작은 조각(unit)
라우터
네트워크간 데이터의 패킷을 전달하는 장치
IP(Internet Protocol)
패킷이 올바른 목적지로 라우팅 되도록 하는 역할을 하는 프로토콜
IP주소
데이터를 올바른 목적지로 라우팅하는데 사용되는 식별자로, 네트워크의 각 장치(컴퓨터 등)에 할당된다.
보통 '.' 으로 구분된 4개의 숫자 모음들로 구성되어 있다.
ex) 192.168.1.1
TCP(Trnasmission Control Protocol)
패킷이 올바른 순서로 확실하게 전달되도록 하는 역할을 하는 프로토콜
Domain Name
웹 사이트 또는 인터넷 리소스를 식별하는데 사용하는 이름이다.
보통 '.'을 기준으로 2파트로 구분되어 있다.
ex) google.com
DNS
IP주소로 도메인 이름을 바꾸는 역할을 한다.
유저가 웹브라우저에 도메인 이름을 입력하면 DNS 서버에 DNS 쿼리를 전달하게 된다.
그러면 IP 주소가 반환이 되고, 유저의 컴퓨터가 이 IP 주소를 가지고 웹사이트나 리소스를 연결한다.
HTTP
client와 server간의 데이터 이동에 사용되는 프로토콜이다.
유저가 웹사이트를 방문하면 웹 브라우저는 서버에 HTTP request를 보낸다.
HTTP request를 받은 서버는 요청한 데이터를 담고있는 HTTP response(응답)을 client에게 돌려준다.
HTTPS
HTTP의 암호화된 버전으로 client와 server간의 통신을 보호하는데 사용된다.
결제정보나 개인정보 등을 보호할 때 사용하는 것이다.
HTTPS를 사용한 웹 사이트의 주소창 왼쪽에 보면 padlock icon이 뜨는 것을 확인할 수 있다.
SSL/TLS
인터넷에서 데이터를 암호화함으로써 안전한 통신을 할 수 있도록 한다.
(아래서 자세히 설명..)
프로토콜 역할
프로토콜은 인터넷에서 데이터 교환이나 통신을 가능케 하는 데 중요한 역할을 한다.
어떻게 정보 교환이 이루어지는 지에 대해 정의한 규칙과 표준의 집합이다.
IP, TCP, * UDP, DNS ... 등등 아주 많다.
* UDP : User Datagram Protocol
서로 다른 제조사(manufacturers)와 공급사(vendors)의 장치와 시스템이 서로 원활하게 통신할 수 있도록 한다.
TCP / IP
대부분의 인터넷 기반 애플리케이션, 서비스에 사용되는 기본 통신 프로토콜이다.
서로 다른 기기에서 실행되고 있는 애플리케이션들 사이에 신뢰성 있고 순서대로 오류 검사가 된 데이터를 전달할 수 있도록 한다.
Ports
기기에서 실행되는 서비스를 식별하는데 쓰인다.
각 애플리케이션이나 서비스는 데이터가 올바른 목적지(destination)에 보내지도록 고유한 포트 넘버(Port number)를 할당받는다.
Sockets
IP주소와 포트 넘버의 조합으로, 통신을 위한 특정 endpoint를 나타낸다.
기기간 연결 및 애플리케이션 간 데이터 전달에 사용된다.
Connections
서로 통신하고자 할 때 두 소켓 사이에서 만들어진다.
연결되는 동안 연결을 통해 데이터가 전송되는 방식을 결정하는 최대 segment 크기, 창 크기 등 다양한 parameters를 결정한다.
Data transfer
연결되면 데이터는 각 기기에서 실행되고 있는 애플리케이션들끼리 주고받을 수 있다.
데이터는 보통 세그먼트(segment)로 전송되며 이 세그먼트는 각각 안정적인 전송을 보장하는 시퀀스 넘버와 다른 메타데이터가 포함한다.
SSL/TLS
웹 브라우저, 이메일 client, 파일 전송프로그램 등의 애플리케이션들이 안전하게 연결되도록 한다.
Certificates
SSL/TLS 인증서는 client와 server간의 trust를 만든다.
서버의 식별자에 대한 정보를 포함하며 신뢰성 확인을 위해 신뢰할 수 있는 제3자, 인증기관의 확인을 받는다.
HandShake
SSL/TLS handshake 과정에서 client와 server가 안전한 연결을 위한 암호 알고리즘과 기타 parameters를 정하기 위한 정보 교환을 한다.
Encryption
연결이 되면 데이터는 합의된 알고리즘을 사용해 암호회되고, client와 server 간에 안전하게 전송이 될 수 있다.
정리
- 인터넷은 네트워크들의 네트워크이다.
- 인터넷은 프로토콜을 사용해 기기와 컴퓨터 시스템을 함께 연결해 작동한다.
- 프로토콜에는 IP, TCP, UDP 등 여러가지가 있다.
- 프로토콜은 원활하게 통신할 수 있도록 해주는 규칙들의 집합이라 생각하면 된다.
- 용어를 아는 게 핵심인 듯하다.
인터넷 작동은 프로토콜이 절반을 차지한다. 라고 보면 될 것 같다.
전공 수업을 들을 때 수도 없이 들었던 용어들이지만 외우기에 급급했던지라,
프로토콜이 어떤 것인지 말로만 알고 있었지 자세히 무슨 역할을 어떻게 하는지는 전혀 몰랐다. 😅
아마 과거로 돌아가면 채찍질 할 듯..
마무리 어떻게하지
끝.
'TIL' 카테고리의 다른 글
[TIL] 비트 연산자 (&, |, ^, ~, <<, >>) (0) | 2024.06.02 |
---|---|
[TIL] HTTP란 무엇일까? (0) | 2023.04.18 |