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 캐시를 의도적으로 손상시켜 공격자가 제어할수 있는 서버로 사용자의 데이터를 라우팅 하는 것
💡 해당 내용은 "웹 개발자를 위한 웹 보안" 책을 참고하여 제 식대로 정리하였습니다.