안녕하세요. 뉴비 ferozah 입니다.
저는 10여년 동안 IT기업에서 네트워크 및 웹 보안 엔지니어로 일하고.... 최근 퇴사했습니다;;
그동안 실무에서 쌓은 지식을 바탕으로 스티미언 여러분들에게 최대한 쉽게 제가 알고 있는 기술들에 대해 이야기 하려고 합니다^^
우선 계획은 1주일에 한 번으로 정했습니다. 제가 할 수 있는 한 제대로 된 글을 제공하자! 라는 저만의 스팀잇 프로젝트 입니다.
혹시 더 깊게 알고 싶으신 내용이 있으시면, 더욱 자세히 설명드리도록 하겠습니다^^
그럼 첫 번째 이야기를 시작 합니다!
사실 우리가 매일 사용하는 Ineternet 과 컴퓨터는 모두 TCP/IP 라는 프로토콜을 기반으로 통신을 합니다.
TCP/IP(Transmission Control Protocol/Internet Protocol)의 사전적 정의는 , 네트워크 통신을 위한 '표준' 프로토콜 입니다.
프로토콜은 쉽게 말하면, "네트워크 통신을 할 때 앞으로 이런이런 포맷을 사용해서 사용합시다" 라고 정해놓은 규칙 입니다.
요약하면, 이제 네트워크 통신을 할 때는 TCP/IP 라는 방식으로 데이터를 전달하기로 합시다 라고 , 대략 1970-80년대쯤에 미쿡 아저씨들이 정해놓았습니다.
TCP/IP의 역할을 극도로 요약하자면, 사용자의 웹 브라우저(IE, 파이어폭스 또는 크롬)가 저 멀리 있는 웹 서버와 통신을 하기 위해 , 예를 들면 "steemit.com으로 가려면 어디어디로 가야해" 라고 알려주는게 TCP/IP의 역할 입니다.(이 과정에서 DNS(도메인 네임 시스템)설명을 생략했습니다)
스팀, 스팀달러, 스팀파워의 관계도 헷갈려 죽겠는데, 뭔 갑자기 외계어같은 소리냐!!
라고 하실 수도 있겠지만, 그냥 컴퓨터 세상에 이런 놈도 있구나 라고 생각하시면 됩니다^^
TCP/IP 의 탄생
TCP/IP의 초초초뉴비시절
TCP/IP의 탄생을 이야기할 때 빠지지 않고 등장하는 곳이 있으니 , 그곳은 바로 미국 국방성!
그리고 그들이 디자인한 ARPAnet 이 현재 Internet의 전신입니다.
Defense Department’s Advanced Research Projects Agency(ARPA)
TCP/IP의 첫 출발은 미국 국방성(United States Department of Defense)의 주도로 시작 되었습니다.
미군 내에 여기저기 흩어져 있는 각각의 컴퓨터들을 한번 모아보자! 라는 프로젝트를 시작한 것이죠. 그리하여, 미국 내의 많은 똑똑한 컴퓨터 과학자들을 불러모았고, 그로인해 TCP/IP의 초기 모습이 갖추어집니다.
컴퓨터 과학자들은 기존의 브랜드별로 제각기 다른 방식으로 운영되던 프로그래밍 언어나 컴퓨터 아키텍처를 TCP/IP 모델로 통일 했습니다.
블록체인과 같은 원리로, TCP/IP도 decentralized system 을 지향 했습니다.
원래는 대학이나 군대 등 그들만의 리그에서 사용하려고 만든 것인데, 아이러니하게도, PC의 발전을 힙입어 전세계로 뻗어나가게 됩니다.
마지막으로 클라이언트(사용자)와 서버간의 네트워크 통신이 이루어지는 간단한 예시 입니다.
사용자가 인터넷을 통해 데이터를 보내거나 받으려 할 때, 예를 들면 웹 서버에 파일을 업로드 하는 것과 같이, 사용자의 PC(machine)에서 동작하는 TCP 프로토콜이 각 데이터를 packets(패킷) 이라는 단위로 쪼갠 후, 웹 서버로 전달 합니다.
쪼개진 패킷은 IP(Internet Protocol)의 안내(addressing and forwarding)을 받아 웹 서버에 도착 합니다.
사용자로부터 쪼개 진 packets(패킷)을 전달받은 서버는 모든 패킷을 순서대로 조립 합니다.(쪼개진 패킷에는 번호가 있습니다.이것은 Sequence Number 라고 합니다). 그 후에, 오는 동안 별 문제가 없었는지 에러 체크와 빠진 패킷은 없는지 확인하고 잘 받았다고 사용자에게 알려줍니다. 사용자의 웹 브라우저에는 정상적으로 웹 페이지가 표시 됩니다.(또는 정상적으로 파일이 업로드 됩니다)
요약
핵심은 이것 입니다.
TCP/IP 가 없으면, "현재 우리가 Internet으로 할 수 있는 모든 것들이 불가능 할 것 입니다"
"Everything you do via the Internet would be impossible without TCP/IP"