본문 바로가기

Coding Note

[Network] 네트워크란?

1주차 수업인데..  
수업 개요 잠깐 설명하시고 네트워크에 대한 전반적인 내용만 강의하셨다.

한번 살펴보자.
◎ internet 이란 무엇인가?
-1학년때 배운 내용이지만, 다시한번 짚고넘어가주셨다.
 정보화 시대에 살고있는 우리들에겐 인터넷은 너무나 친숙한 용어이다. 우선 인터넷이란 internetwork 를 줄여말한것이라고 볼 수 있다. inter- 라고 하면 보통 ~사이의 관계를 의미한다. 마찬가지로 internetwork는 네트워크 간의 관계 (또는 연결)라고 설명할 수 있다.
 그렇다면 network란 무엇이란 말인가? 단어에서 유추할 수 있듯이 작업이 네트(그물)처럼 연결되있는 상태를 말한다. 특히 컴퓨터들 간의 연결에 많이 쓰는데, 이를 가능하게 해준것이 케이블이 되겠다.
 즉 internet이란 컴퓨터들 간에 작업이 연결되어있는 그물망들이 연결되어있는 상황이라 정리할 수 있다. 거미줄(web)처럼 말이다. 그런데 지금까지 Internet이라 쓰지않고 internet(i가 lower case)이라고 썼다. 쉬프트 누르기가 귀찮아서가 아니라 이 둘은 엄연히 다른 용어이기때문이다. 소문자 i를 쓰는 인터넷은 앞서 말한 바 네트워크간의 연결이라고 했다. 하지만 대문자 I를 사용하는 Internet은 internet의 종류 중 하나로 '아르파넷(ARPANET)에서 시작된 세계최대의 통신망'(지식백과中) 을 뜻하는 고유명사이다. 그렇다면 우리가 흔히 말하는 인터넷은???   대부분 INTERNET을 말하는것이 되겠다. ㅎ

 으흥,, internet과 그 중 하나인 INTERNET에 대해 대략적인 설명은 마쳤다. (물론 교수님께선 더 장황하게 설명하셨지만..)
조금 더 추가로 설명하신게 프로토콜(protocol)이다. 프로토콜은 
"컴퓨터간 데이터 통신방법에 대한 규약"
이라고 간단하게 정의된다. 여기선 프로토콜을 설명하려는게 아니고.. 아까봤던 INTERNET에서의 프로토콜들이 뭐가있는지 잠깐 보자.
                 -  FTP(File Transfer Protocol) : 글자 그대로 파일전송을 위한 규약
INTERNET  -  HTTP(HyperText Transfer Protocol) : 웹서버와 클라이언트 간 문서전송을 위한 규약
                 -  TCP(Transmission Control Protocol) : 네트워크의 정보전달을 제어하기 위한 규약
                 -  IP(Internet Protocol) : 위에것들 중 가장 많이 접해봤을 것이다. 인터넷상에서 하나의 컴퓨터에서 다른 컴퓨터로                                                       데이터를 보내는데 사용되는 프로토콜이다.

이것들 많고도 더 있지만..(SMTP같은것들..) 설명해야할건 대충 다 나왔다.
그런데 TCP와 IP는 묶어서 TCP/IP 라고 들 부른다. 이는 두 프로토콜이 상당히 밀접한 관계가 있기 때문이고 이번 한학기 동안 배울 내용이 이것들에 관한 내용이기 때문이다.
(정말로 자세하게 강의한다면 밑도끝도없다고 하셨다 ㄷㄷ..)

그러니 TCP와 IP에 관한 내용은 다음시간이 오길 기다리고, TCP/IP 통신 중 가장 자주접하는 패킷(packet)이란 놈을 살펴보자.

◎ 패킷이란 무엇인가?
- 무엇이든지 용어의 어원을 살펴보면 그 의미와 전반적인 내용을 파악하기 쉬워지는 법이다. 패킷(packet)이란, 소포를 뜻하는 패키지(package)와 덩어리라는 버킷(bucket)의 합성어이다. 즉 네트워크에서 전송되는 데이터(소포)를 잘게 자른 한 덩어리를 말한다.
 잘게잘랐는데 덩어리라니 조금 이상하긴 하지만, 데이터의 크기가 크다고 생각하면 어느정도 타당해진다. 커다란 화물을 작은 덩어리로 나누어서 보내는 것 처럼 네트워크 상에서 데이터도 작은 덩어리로 나누어서 전송되게 되니 말이다.
 그런데 패킷은 데이터를 잘게 잘랐다는 사실 말고 중요한 요소를 포함하는데, 소포에서 출발지와 목적지 등 인포가 있듯 패킷에도 행선지와 데이터에 관한 작은 정보들이 헤더라고 하는 공간에 들어간 후 함께 묶여서 포장되어진다.(헤더에 관한 내용은 OSI 7 Layer에 대해 자세히 살펴본 후 설명하고싶다.) 이런 일련의 과정을 마친 후 !!  TCP규약에 맞게(TCP/IP 통신에서 말이다.) 전송이 이루어지는 것이다. 후아하 결국 브라우저를 이용해 이 글을 읽고있는 여러분은(.. 물론 얼마나 읽을지는 회의적이지만) 여러 통신규약과 패킷이라는 아름다운 아이를 통해 이 글을 읽고있는 것이다.

아? 그런데 문득 네트워크에서 패킷(또는 그냥 편의상 데이터)이 어떻게 움직이는거지?
라는 생각을 하기도 전에 교수님께선 '데이터를 전달하는 방식에 의한 분류'에 대해 설명해 주셨다.
 두 가지의 분류에 대해 설명해 주셨는데, 가장 큰 차이점은 직접적인 연결인가 간접적인 인결인가 에 대한것이다.

○ Packet switching network :: connectionless
               - 패킷과 라우팅을 통한 데이터 전송 (일반적인 전송방식. 안전성이 높음)
○ Circuit swiching network :: connection oriented
               - 목적지까지 전용선을 구축한 후 그 길위에 데이터를 올려놓는식 (처음에 경로를 탐색하고 관리해주는 과정이 필요)

간단하게 설명만 해서 잘 구별이 안갈듯하다.
 우선 첫번째 전달방식을 보자.(라우터가 무엇인지는 설명하지 않겠다.) 일반적인 인터넷 망의 경우 이 방식으로 패킷이 움직인다. 패킷은 출발지와 목적지의 주소만을 가지고 네트워크로 뛰어들며, 네트워크간 연결에 도움을 주는 라우터를 통해 적절한 경로로 이동하고 이동하며 목적지에 다다르는 방식이다. 
 두번째 전달방식은 경부고속도로처럼 목적지까지 한차선을 추가한 후 데이터를 그 차선위에 올려놓기만 하면 바로 전달되는 방식이다.
 두 전송방식을 간단히 비교해 보면, 두번째 방식이 더 빠르고 안전해보인다. 물론 평화로운 세상이라면 그렇겠지만 의도치 않은 일이 일어나 회선(circuit)이 끊어진다면 데이터 전송에 심각한 타격을 받는다. 그에반해 첫번째 전송방식은 매 전송마다 적절한경로를 탐색해주니 어느 한 곳이 폭파당해도 다른 경로를 찾아주어 목적지에 당도할 수 있다.

 이 두가지 방식은(특히 첫번째) 군사목적에 의해 개발되었는데, 서로간 정보전달에 있어서 하나의 사령부(시스템)가 모든 정보전달을 관리한다면 최고의 선택을 통해 정보전달이 가능하지만, 사령부가 마비되면(폭파당하면) 그 군사망(네트워크)은 서로서로 멀쩡한데도 정보전달이 불가능한 상황에 빠지는 것이다. 이런일을 막기위해서 첫번째의 데이터 전송 방식이 개발된 것이다.


이렇게 한학기 내용에 대한 간략한 설명을 마치고 오늘 수업은 마무리를 지었다.
(아, OSI 7 layer에 대한 설명도 하셨지만 예전에 포스팅한 글이 있으니 생략하겠다.)