일단 하다보면 되겠지 ^v^ 자세히보기

Network

[Network] 인터넷 작동 방식 - TCP, IP, DNS

뉴욕치킨 2023. 5. 1. 16:21

TCP (Transmission Control Protocol)

인터넷 초기의 데이터 교환 방식에는 신뢰성이 없었다.

이때 컴퓨터 간의 신뢰할 수 있는 정보 교환을 보장하는 전송 제어 프로토콜 (TCP) 가 개발되었다.

 

컴퓨터가 TCP 로 다른 기계(컴퓨터) 에 메시지를 보낼때 메시지는 목적지 주소와 함께 작은 데이터 조각(블럭)으로 쪼개지게 된다.

이것을 데이터 패킷 packet 이라고 한다.

전체 메시지를 최종 목적지에 보내는 것이 아니라, 데이터를 패킷으로 나눈 뒤 순서 번호를 부여한 후 전송한다.

수신 시스템이 패킷을 받으면 프로토콜은 각 패킷의 순서 번호에 따라 순서대로 조립하게 된다.

수신자가 패킷을 받을 때마다 수신을 보낸다.

수신자가 패킷의 수신을 거부/승인하지 않은 경우 송신자는 다른 네트워크 경로를 통해 해당 패킷을 다시 전송하게 된다.

이런 방식을 통해 TCP 는 컴퓨터가 신뢰할 수 있는 네트워크로 데이터를 전송 할 수 있다.

 

현재는 이런 방식에서 많이 발전하여 데이터의 손상을 감지하고, 패킷을 재전송 여부를 결정하는 체크섬 checksum 과 함께 패킷이 전송된다. 송신자도 데이터 전송 속도를 소비 속도에 따라 우선적으로 조정하게 되었다.

 

TCP 는 여전히 가장 일반적인 프로토콜이지만, 요즘은 다른 프로토콜이 사용되고 있다.

UDP User Datagram Protocol데이터가 일정한 속도로 스트리밍 될 수 있도록 패킷을 의도적으로 삭제하는 새로운 프로토콜이다.

유저들은 feed 의 지연 보다 프레임이 떨어지는 것을 선호하는 편이다. 

예를 들어 유튜브를 보면서 영상이 끊기고, 지연되는것 보다 영상 화질이 떨어지는 것을 더 선호한다는 뜻!

그렇기 때문에 UDP 는 라이브 비디오 스트리밍에서 주로 사용된다.

 

 

IP  주소

인터넷 상에서 데이터 패킷은 IP 주소로 전송된다. 

🚨 IP 와 IP 주소는 다르다
IP 는 인터넷 통신 규약이고,
IP 주소는 네트워크에 연결된 컴퓨터에 할당된 번호이다. 즉, 내 컴퓨터의 주소!

 

국제도메인관리기구 ICANN (Internet Corporation for Assigned and Number) 는 지역 당국에 IP 주소 블럭을 할당한다.

➡️ 지역 당국은 인터넷 서비스 제공업체 ISP (Internet Service Provider) 와 해당 지역에 있는 호스팅 회사에 주소 블럭을 부여한다.

➡️ 브라우저를 인터넷에 연결하면 ISP 는 몇 달 동안 고정 상태를 유지하는 IP 주소를 컴퓨터에 할당한다.

&  인터넷에서 컨텐츠를 호스팅하는 회사들은 네트워크에 접속하는 각 서버의 IP 주소를 할당받는다.

 

IP 주소는 일반적으로 2^32 주소를 허용하는 버전인 IPv4 구문으로 작성된다.

-> 예시는 추가 예정

 

하지만 요즘은 컴퓨터 사용이 보편화 되고, 주소 할당의 속도가 빨라졌기 때문에 더이상 IPv4 를 사용할 수 없게 되었다(남는 주소가 거의 없어짐!). 그렇기 때문에 더 많은 장치를 허용하기 위해 새롭게 IPv6 주소로 이동하고 있다.

IPv6 는 콜론으로 구분된 4개의 16지수 숫자 8개의 그룹이다.

 

 

DNS (Domain Name System)

스마트폰부터 노트북까지 인터넷에 연결된 모든 컴퓨터는 숫자를 사용해 서로를 찾고, 연결한다.

하지만 인간의 경우 이러한 긴 숫자의 나열(IP 주소)은 기억되기 쉽지 않을 뿐더러 익숙하지도 않다.

웹 사이트 주소를 더욱 친근하게 만들기 위해 사람이 읽을 수 있는 도메인을 IP 주소로 변환할 수 있는 DNS 가 탄생했다.

ex) 네이버의 도메인은 naver.com 이지만 IP 주소는 223.130.195.200 이다.
223.130.195.200 을 주소창에 쳐서 이동하게 되면 naver.com 으로 이동하게 된다.

 

브라우저가 도메인 이름을 처음 접한 경우 로컬 도메인 네임 서버를 사용해 검색, 결과를 캐시한 후 다음 검색 때는 시간을 단축시킨다.

그런데 이때 DNS 캐싱은 DNS 캐시 포이즈닝이라는 유형의 공격을 가능하게 한다.

로컬 DNS 캐시를 의도적으로 손상시켜 공격자가 제어할수 있는 서버로 사용자의 데이터를 라우팅 하는 것

 

 

 

 

 

 

💡 해당 내용은 "웹 개발자를 위한 웹 보안" 책을 참고하여 제 식대로 정리하였습니다.