본문 바로가기

Web Development/CommonSense

[7장] 네트워크와 인터넷

☞ 본 포스팅은 공부 내용을 바탕으로 정리하는 것입니다. 주관적이며 정확하지 않은 내용이 포함 되어있을 수 있습니다.

☞본 포스팅은 한빛출판사의 '컴퓨터사이언스'책을 공부한 내용을 토대로 요약한 내용입니다.

 

이번시간에는 컴퓨터를 연결해주는 네트워크와 정보화사회를 만들어준 인터넷에 대해 살펴보겠습니다.

 

1. 네트워크 개요

네트워크(Network)란 무엇일까요? 연결? 통신?

네트워크는 아시다싶히,

컴퓨터끼리 정보를 교류할 수 있도록 연결해주는 통신망 입니다.

이러한 네트워크는 컴퓨터 이전에도 오랜 역사속에 늘 우리와 함께했는데요.

통신기술이 없던 머나먼 옛날 멀리 떨어져있는 사람에게 정보를 전달하기 위해 사용하던 '봉화대' 부터 시작해,

네트워크의 시초인 모스부호를 사용하는 '전신기술', 우리가 사용하는 '전화',

그리고 70년대 미국 국방성에서 개발한 '알파넷(ARPA Net)'이후로 급진적으로 발달해왔습니다.

 

2. 프로토콜

프로토콜은 통신하기위해 미리 약속해 놓은 규약입니다. 즉, 통신규약입니다.

 

간단히 예를 들어볼께요.

외국인 친구와 대화를 하려고합니다. 그러나 그는 외국어를 구사하죠. 그런데 한국어로 표현한다면?

그는 알아듣지 못할 것입니다.

너무 간단한 예시지만, 이해를 위해 .....ㅎ.ㅎ...

 

프로토콜은 데이터 송신 및 수신을 위해 3단계의 절차를 거치는데요.

 

1단계 : 연결 설정 단계

송신하는 자가 수신하는 자에게 데이터를 보내도 되는지 허락을 받는 단계입니다.

2단계 : 데이터 전송 단계

데이터를 보내고 잘 받았는지 확인하는 단계입니다.

3단계 : 연결 해제 단계

데이터를 모두 잘 전송 및 수신했는지 확인하고, 연결을 해제하는 단계입니다.

 

프로토콜 3단계 절차

 

다음은 프로토콜은 어떤 일을 수행하는지, 프로토콜의 기능에 대해 간략히 살펴보겠습니다.

 

① 주소지정 : 정확히 송신하기 위해서 주소를 지정하는 역할을 함. MAC주소, IP주소, 포트주소 등.

② 동기화(Synchronization) : 전송속도와 타이밍을 정확히 일치시키기 위한 작업을 함. (일치하지않으면 오류남)

③ 캡슐화(Encapsulation) : 데이터에 제어정보를 붙임.

④ 오류제어(Correction) : 잘못된 데이터를 받았을 경우 수신측에서 스스로 오류를 정정하거나, 재전송 요청을 함.

⑤ 흐름제어 : 효율적으로 전송하기위해 여러개 데이터를 받고 한번에 응답하는 방식 등의 흐름을 제어함.

⑥ 데이터 분할 및 조합 : 데이터를 조각내면 '세그먼트'라고하는데, 다시 재조립하면 '조합'이라부름.

(쪼개고, 뭉치고, 데이터가 큰 경우 혹은 여러 이유로 데이터를 조각내서 보내기 위해 활용함)

⑦연결제어 : 중요한 데이터에서만 수행. 오류없이 전송하기위해 연결설정, 데이터 전송, 연결해제단계를 수행함.

(잡 데이터는 위와같은 절차가 필요없는데 이를 '비연결형 프로토콜', 위와같은 것을 '연결형 프로토콜'이라 부름)

 

 

여기까지 프로토콜에 대해 살펴보았습니다.

다음에 나올 'OSI 참조모델' 이게 좀 중요하다고 하니 집중 ㄱㄱ!

 

3. OSI 참조모델

우선 OSI참조모델이 무엇인지 좀 살펴볼께요.

OSI 참조모델이란?(정의)

(Open Systems Interconnection Reference Model)의 약자로,

1978년 ITU(국제통신연합)에서 발표한 모델이고

송신과 수신 즉, 시스템간 통신을 위해 필요한 기능을 7계층으로 나누어 서비스와 프로토콜로 정의한 모델입니다.

 

그럼 이제 OSI 참조모델 7가지에 대해 살펴볼까요?

① 물리계층 : 시스템간의 기계&전기적 특성과 물리적 핀들의 배치나 전압 전선에 대한 것을 정의합니다. (허브 등..)

② 데이터링크 계층 : 오류를 감지하고 복구하는 '오류제어기능'과 '흐름제어'기능을 수행함.

③ 네트워크계층 : 네트워크중 최적의 경로를 탐색하고 배정하는 등 혼잡을 제어하는 기능을 수행함.

④ 전송계층 : 오류제어, 흐름제어 기능을 수행. 데이터링크 계층과 같은 역할을 수행하지만, 범위가 다름.

데이터계층은 송신과 수신 컴퓨터 2대에 대해 관할하고 있지만, 전송계층은 최초송신자 ~ 최종수신자까지 전범위.

⑤ 세션계층 : 송수신시 통신방식을 결정하는 '네트워크대화제어기능'과 '오류제어'의 기능을 수행함.

⑥ 표현계층 : 데이터 부호화 방식을 통일시키는 '변환기능', '암호화', '압축' 등의 기능을 수행함.

⑦ 응용계층 : 사용자가 데이터를 처리할 수 있도록 도와주는 역할을 수행함. (워드, 엑셀, HTTP, FTP 등)

 

이렇게 총 7개의 역할 계층으로 구분했습니다.

이를 다시 2가지로 나눌 수 있는데요.

물리계층, 데이터링크계층, 네트워크 계층까지는 '하위계층'이라고 분류하고,

전송계층, 세션계층, 표현계층, 응용계층 까지는 '상위계층'으로 나누고 있습니다.

통상 하위계층에서는 시스템간 연결설정 및 데이터 전송을 담당합니다.

상위계층에서는 시스템에서 실행되는 프로그램간의 연결의 설정을 담당합니다.

 

데이터를 실제 전송할때, OSI 참조모델이 어떻게 적용되는지 동작구조에대해 살펴보겠습니다.

송신(보내는사람)은 상위계층 -> 하위계층의 방향으로 적용되며,

수신(받는사람)은 반대로 하위계층 -> 상위계층의 방향으로 적용됩니다.

 

OSI 참조모델

 

그림으로 보니 훨씬 이해하기 좋죠?

다음은 네트워크의 구조가 어떻게 구성되어있는지 한번 알아보겠습니다.

 

4. 네트워크구조

네트워크는 한번 그 구성을 끝내고나면 다시 변경하기가 상당히 어렵기에 구조(틀)을 잘잡고 가야합니다.

따라서 이번에는 네트워크의 구조들과 네트워크 규모에 따라 정해지는 통신망에 대해 알아보려고 합니다.

 

우리가 이용하는 통신망(인터넷)을 이용하기 위해서 컴퓨터는 허브 공유기 통신회선 등이 연결되어있는데요.

이런 구성형태를 구축하는 네트워크 구조를 '포톨로지(Potology)'라고 부릅니다.

포톨로지의 종류는 '메시형', '스타형', '트리형', '버스형', '링형', '하이브리드형' 등이있습니다.

 

① 메시형(Mesh Potology)

컴퓨터들이 점조직처럼 서로서로 모두가 너도나도 연결되어있는 것을 의미합니다.

통신회선이 고장나더라도 한명만 나가면 되는 등 오류를 최소화할 수 있으나, 구축비용이 높다는 점이 아쉽습니다.

 

② 스타형(Star Potology)

여러 컴퓨터가 한개의 허브에 연결되어있는 형태입니다. 따라서 통신을 위해서는 반드시 허브를 거쳐야만합니다.

설치나 유지보수가 편하다는 장점이 있으나, 허브의 의존도가 높습니다.

 

③ 트리형(Tree Potology)

스타형 포톨로지 + 스타형 포톨로지 여러개를 연결시킨 형태입니다.

많은 컴퓨터를 연결할 수 있는 장점이 있으나, 역시나 허브의 의존도가 높습니다.

 

④ 버스형(Bus Potology)

하나의 통신회선이 길게 있고 컴퓨터 여러대 연결되어 있는 형태로, '탭'이라는 것을 통해 통신회선과 연결합니다.

간단히 설치해 비용이 적게들지만, 하나의 통신회선위에 여러 컴퓨터가 연결되므로 통신성능저하 문제가 발생합니다.

 

⑤ 링형 (Ring Potology)

동그란 순환형 통신회선을 두고 그 위에 컴퓨터를 '리피터'를 통해 연결한 형태입니다.

통신회선에 컴퓨터를 추가/삭제하는 재구성이 용이하지만, 한부분이라도 고장나면 망합니다.

 

⑥ 하이브리드형 (Hybrid Potology)

두개이상의 포톨로지를 결합해 만드는 방식입니다.

 

 

위에서 네트워크 구조를 잘 정립했다면,

다음은 네트워크를 규모에 따라 어떤 통신망을 이용해야 할지 결정하는 단계입니다.

네트워크의 통신망에는 LAN(근거리통신망), MAN(도시통신망), WAN(광역통신망)이 있습니다.

 

① 근거리통신망(LAN, Local Area Network)

집, 학교, 군(싸지방)에서 주로 사용하는 형태로 1km~2km이내의

거리에있는 컴퓨터 및 통신기기를 통신회선으로 연결한 통신망입니다.

 

② 도시통신망(MAN, Metropolitan Area Network)

도시규모의 컴퓨터 및 통신기기를 통신회선으로 연결한 통신망입니다.

 

③ 광역통신망(WAN, World Area Network)

국가 또는 대륙의 규모의 컴퓨터 및 통신기기를 연결한 통신망입니다.

공중통신업자가 제공하는 전용회선을 연결해서 주로 사용하며, 전세계 규모의 네트워크로 전세계가 연결됩니다.

 

 

5. 인터넷

인터넷(Inter-network)은 여러 네트워크를 '라우터(Router)'를 통해 연결한 것으로 정보를 주고 받을 수 있습니다.

인터넷은 1989년, 팀 버너스 리(Tim Berners Lee)가 정보를 공유하는 방법을 연구해 만든

WWW(WEB, World Wide Web)를 만들면서 알려지게 됩니다

Web은 HTML(Hyper Text Markup Language)라는 표준으로 작성하며,

이를 HTTP (Hyper Text Transfer Protocol)을 활용해 데이터를 송수신 할 수 있게됩니다.

이후 1993년 GUI방식의 웹 브라우저 "모자이크"가 출범하면서 이용자가 급증하게되고

이에 MS는 인터넷 익스플로어(IE), 넷스케이프는 네비게이터(Navigator)를 만들게 됩니다.

이로써 인터넷은 우리 생활속에 뿌리깊히 자리잡게됩니다.

 

인터넷은 표준 주소방식이있습니다. 이를 우리는 URL(Uniform Resource Locator)라고 부릅니다.

위에 주소창을 보면 흔히 이렇게 되어있죠.

예를들어 : http//www.tistory.com/?type=post&returnURL=%2Fmanage%2

이라고하면, HTTP는 프로토콜을 의미하며,

www.tistory.com 은 주소를

뒤에 있는 /?type=post&returnURL=%2Fmanage%2 파일경로와 저장형태를 의미합니다.

자세한것은, 아래 링크된 동영상에서 자세히 살펴볼 수 있습니다.

개론적인 지식만을 요구하시는 분은 여기서는 이정도로 넘어가고,

본격적으로 공부하시는 부분에서 더 자세히 살펴보시면 좋을것같습니다.

https://www.youtube.com/watch?v=Zhbvui_T9VY

 

 

 

어느날 생활코딩에서 HTML강의를 듣던 중,

이고잉선생님이 그러시더라구요. "HyperText Markup Language는 어쩌구저쩌구.." 하시는데

하이퍼 텍스트 ! 하이퍼 텍스트! 하이퍼 텍스트!

어찌나 멋지게 말씀하시던지..

머릿속에는 '하이퍼텍스트'밖에.....ㅠㅠ..

 

그래서 알아봤습니다.

 

Hypertext는 무엇일까요?

웹의 기본개념으로, 텍스트정보가 링크로 연결되어 있는 구조입니다.

예를들어서 위키백과에서 모르는 단어를 퍼렇게 밑줄쳐져있으면 그걸 눌르면 다른 링크와 연결되지않나요?

그런것이 하이퍼 텍스트라고 합니다.

그럼 다른형태의 정보는 어떻게되는 것일까요?

'HyperMedia'를 통해 텍스트 + 이미지 + 사운드 + 동영상 등의 데이터를 링크로 연결합니다.

 

마크업(Mark-up)은 무엇일까요?

마크업언어란, 태그로 둘러쌓인 언어로 HTML, XML등 문서의 골격에 해당하는 부분에 해당합니다.

예를들어,

뭐 <h1>나는 제목이오..</h1>

<p>나는 문단이오..<p>

이런것처럼 h1은 제목을 의미하는 설명(태그)가 추가된것이고,

p는 문단을 의미하는 설명(태그)가 추가된 것처럼..

혹은 우리가 책보는데 형광펜으로 노란색은 중요한거야 !하면서 치는 것처럼..

글자에 부가적인 설명을 추가하는 것이라고 보면 더 편할것 같습니다.

 

 

웹 클라이언트 서버구조에 대해서도 알고가시면 좋을 것 같은데요.

웹 클라이언트 서버구조는 '하이퍼미디어'형태로 정보를 전달하고 받는 것입니다.

클라이언트는 고객이구요. 서버는 주인입니다.

즉, 클라이언트는 요청하고 서버는 요청을 받아 처리합니다.

 

예를들어, 음식점에 갔습니다.

고객이 "짜장면!" 하면, (클라이언트, HTTP Request)

주인장은 "여깃다~"하고 짜장면을 주죠. (서버, HTTP Response)

 

 

 

 

 

- E N D-

 

 

 

 

 

'Web Development > CommonSense' 카테고리의 다른 글

[Network] IP & 공유기 (Router) & NAT  (0) 2020.07.25
[8장] 정보보안  (0) 2020.07.13
[6장] 데이터베이스  (0) 2020.07.11
[5장] 운영체제  (0) 2020.07.10
[4장] 프로그래밍 언어(개요/절차지향/객체지향)  (0) 2020.07.06