About ' Internet '
오늘은 웹 개발에서 가장 기초적이고 필수적으로 알아야 하는 '인터넷' 에 대해 공부해보았다.
1학년 때 교양으로 들었던 '데이터통신과 네트워크' 과목을 기반으로 글을 작성했다. (거의 전공이었음 휴^^;)
인터넷 (Internet)이란 인터넷 프로토콜 (TCP/IP)을 기반으로 하여 전 세계적으로 연결된
컴퓨터 네트워크 통신망을 일컫는 말이다.
여기서 '프로토콜 (Protocol)'이란 데이터 통신을 제어하는 규칙의 집합 , 통신규약을 말한다.'TCP/IP' 는 컴퓨터간 통신을 위해 등장하였으며, LAN과 WAN에서 원활한 통신을 위해 사용된다.
개념 설명
1. LAN(Local Area Network) : 지역 네트워크 (근거리 통신망)
2. WAN(Wide Area Network) : 광역 네트워크 (광역 통신망)
3. TCP(Transmission Control Protocol) : 클라이언트와 서버간 데이터를 신속,정확하게 전달하는 프로토콜
4. IP(Internet Protocol address) : 네트워크상 컴퓨터의 주소, 4byte로 이루어짐
* 프로토콜(Protocol) 주요 요소
1. 구문 (syntax) : 데이터의 구조나 형식 정의
2. 의미 (semantics) : 전송 데이터 각 부분의 의미 정의
3. 타이밍 (timing) : 전송 시간 및 속도 정의
이제 인터넷의 주요 네트워크 모델에 대해 알아보겠다.
그 전에 프로토콜에는 '계층(layer)' 이라는 것이 있다. 마치 햄버거에도 층이 있듯이 햄버거 먹고싶다.
3층이라고 가정할 때 메일을 주고 받는 과정이다. 양뱡향 통신이며 1층부터 차례대로 보자.
Layer 1 : 메일을 송수신하는 층이다. 메일의 실제 내용이 담겨있다.
Layer 2 : 메일의 암호화,복호화이다. 날 것 그대로 보낼 수는 없지.
Layer 3 : 암호화된 메일을 복호화 하여 사용자가 읽는 과정이다.
이처럼 인터넷은 여러 계층으로 구성되어 서로 데이터를 주고받을 수 있다.
이제 가장 통상적으로 사용되는 TCP/IP 계층을 살펴보자.
TCP / IP
그림만 봐도 꽤나 복잡한 것을 알 수 있다. 각 계층별로 전송되는 데이터 타입도 달라진다.
여기서 또 한가지 주요 개념이 나온다. '라우터(Router)' 이다.
쉽게 말하자면 중간 매개체 역할을 하는 것이다.
모든 컴퓨터의 네트워크가 서로 연결된다면, 아마 억장이 무너지도록 복잡해질 것이다.
따라서 라우터를 통해 각각의 컴퓨터를 이어준다. 우리 몸의 심장처럼 말이다.
TCP / IP 에 대한 내용은 추후에 더 자세하게 다루도록 하겠다.
오늘은 동작 방식에 대한 내용만 담았다.
응용 계층 (Application Layer)
인터넷은 'Client - Server Model' 방식을 따라 서비스를 제공한다.
1. 클라이언트 (Client) 란 사용자에 의해 시작되며, 서버에게 서비스를 요청하는 로컬 시스템에서 동작하는 프로그램을 말한다. 서비스가 완료되면 종료한다.
2. 서버(Server) 란 클라이언트에게 서비스를 제공하는 원격 시스템에서 동작하는 프로그램이다.
클라이언트 - 서버 관계는 다대일 관계로 많은 유저가 동시에 이용할 수 있다.
이제 우리가 흔히 아는 'WWW (World Wide Web)' 에 대해 알아보자.
인터넷 창에서 특정 웹 사이트를 들어가려면 주소가 필요하다. 시작은 항상 www.뭐시기로 돼있다.
이는 인터넷에 연결된 컴퓨터를 통해 유저가 정보를 공유할 수 있는 전 세계적인 정보 공간을 말한다.
주로 HTTP 통신을 하며 Protocol :// Host : Port / Path 의 구조로 되어있다.
여기서 HTTP 란 'Hyper Text Transfer Protocol' 의 약자로, HTML과 같은 하이퍼미디어 문서를 전송하기 위한 애플리케이션 레이어 프로토콜을 말한다.
이것이 바로 우리가 HTML의 구조대로 웹 사이트를 볼 수 있는 이유이다. 정적 문서라고도 한다.
3. 브라우저 (Browser) 란 우리가 인터넷이라고 부르는 프로그램들이다.
대표적으로 익스플로러, 크롬, 사파리 등이 있으며, HTTP 사용자 에이전트 중 하나이다.
마치며
사실 더 담을 내용이 많긴 하지만 블로그에 편집해서 올리는거? 이거 쉽지않다.
이외에도 DNS, Domain, Hosting 등의 개념을 공부했지만 여기까지.
이론적인 부분이 많다보니 흥미가 막 생기진 않았지만 꼭 알아야 하는 내용이니까 휴^^
아무튼 기회가 되면 인터넷에 대해 더 자세히 다뤄보겠다.
공부하면 할수록 왜 이렇게 어려운지 모르겠다. 억장이 와르르 무너진다 화이팅!
사진 출처 : 데이터 통신과 네트워크 때 썼던 PDF파일인데 뭔지 모르겠음.