✍️ 웹이 동작하는 방식의 큰 흐름에 대해 알아보자.
📌 상세과정 참고
①② 사용자가 웹 브라우저를 통해 찾고 싶은 웹 페이지의 URL 주소를 입력함.
③ 사용자가 입력한 URL 주소 중에서 도메인 네임(domain name) 부분을 DNS 서버에서 검색함.
④ DNS 서버에서 해당 도메인 네임에 해당하는 IP 주소를 찾아 사용자가 입력한 URL 정보와 함께 전달함.
⑤⑥ 웹 페이지 URL 정보와 전달받은 IP 주소는 HTTP 프로토콜을 사용하여 HTTP 요청 메시지를 생성함.
이렇게 생성된 HTTP 요청 메시지는 TCP 프로토콜을 사용하여 인터넷을 거쳐 해당 IP 주소의 컴퓨터로 전송됨.
⑦ 이렇게 도착한 HTTP 요청 메시지는 HTTP 프로토콜을 사용하여 웹 페이지 URL 정보로 변환됨.
⑧ 웹 서버는 도착한 웹 페이지 URL 정보에 해당하는 데이터를 검색함.
⑨⑩ 검색된 웹 페이지 데이터는 또 다시 HTTP 프로토콜을 사용하여 HTTP 응답 메시지를 생성함.
이렇게 생성된 HTTP 응답 메시지는 TCP 프로토콜을 사용하여 인터넷을 거쳐 원래 컴퓨터로 전송됨.
⑪ 도착한 HTTP 응답 메시지는 HTTP 프로토콜을 사용하여 웹 페이지 데이터로 변환됨.
⑫ 변환된 웹 페이지 데이터는 웹 브라우저에 의해 출력되어 사용자가 볼 수 있게 됨.
📌 용어정리(1)
✍️ DNS
도메인 이름 시스템(DNS)은 사람이 읽을 수 있는 도메인 이름(예: www.naver.com)을 머신이 읽을 수 있는 IP 주소(예: 192.0.2.44)로 변환한다.
✍️ HTTP
HTTP는 클라이언트와 서버 사이에 이루어지는 요청/응답(request/response) 프로토콜이다. 예를 들면, 클라이언트인 웹 브라우저가 HTTP를 통하여 서버로부터 웹페이지(HTML)나 그림 정보를 요청하면, 서버는 이 요청에 응답하여 필요한 정보를 해당 사용자에게 전달하게 된다.
End Point 간 신뢰성 있는 데이터 전송을 담당하는 계층이다.
▼ 이와같은 문제의 결과 (데이터손실)
Hello Nice to meet you !!
Hell to you
✍️ 예시의 데이터 손실과같이 이 부분은 굉장히 중요한 문제이므로 사람들이 고민을 하게 되었고, 그래서 나온 개념이 TCP 이다.🤔
TCP(Transmission Control Protocol)
: 인터넷상에서 데이터를 메세지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜
TCP는 연결형 서비스로 신뢰성을 보장한다. 따라서 이메일이나 채팅 애플리케이션 등 신뢰성있는 전송이 중요할 때에 사용한다.
UDP(User Datagram Protocol)
: 데이터를 데이터그램 단위로 처리하는 프로토콜
UDP는 비연결형 서비스이므로 TCP보다 빠르고 네트워크 부하가 적지만 신뢰성은 낮다. 신뢰성보다는 연속성, 성능이 중요한 실시간 서비스 등에 사용한다.
데이터를 전송하는 데 사용되는 두 가지 프로토콜인 TCP와 UDP가 있다. TCP는 전송 제어 프로토콜을 나타내는데, 훨씬 더 많은 오류 검사 기능과 안정성을 허용하기 때문에 둘 중 더 일반적이다. UDP 또는 사용자 데이터그램 프로토콜은 광범위한 오류 검사가 부족하지만 결과적으로 TCP보다 훨씬 빠른 것으로 간주된다.
📌 용어 정리(2)
✍️ 포트
IP를 통해 원하는 데이터가 목적지(노트북,핸드폰 등)까지 왔다면, 그안에서 어떤 프로그램(어플리케이션)으로 가야할지 알려준다. 만약 인터넷창이 여러개일때 1번 인터넷창에서 검색한 내용이 2번 인터넷창에서 켜질수도 있기때문에 프로세스 구분을 위해서 꼭 필요한 것이 포트번호이다.
✍️ 패킷(Packet)
인터넷 내에서 데이터를 보내기 위한 경로배정(라우팅)을 효율적으로 하기 위해서 데이터를 여러 개의 조각들로 나누어 전송을 하는데 이때, 이 조각을 패킷이라고 한다.
✍️ 흐름제어(Flow Control), 혼잡제어(Congestion Control)
흐름제어: 데이터를 송신하는 곳과 수신하는 곳의 데이터 처리 속도를 조절하여 수신자의 버퍼 오버플로우를 방지한다. (송신하는 곳에서 감당이 안되게 데이터를 빠르게 많이 보내면 수신자에서 문제가 발생하기 때문)
혼잡제어: 네트워크 내의 패킷 수가 넘치게 증가하지 않도록 방지하는 것이다. 만약 정보의 소통량이 과다하면 패킷을 조금만 전송하여 혼잡 붕괴 현상이 일어나는 것을 막는다.
✍️ 데이터그램
독립적인 관계를 지니는 패킷
TCP와 UDP 각각의 특성을 파악하고 상황에 따른 적절한 프로토콜을 사용한다면 성능의 개선까지 이어질 수 있기 때문이다.😀
reference
TCP-웹의 동작 원리
TCP&UDP, Transport Layer
TCP&UDP