[CS] 컴퓨터 네트워크 (컴퓨터 과학 수업 28/40)

Ham S. J·2022년 12월 5일
0

CS

목록 보기
23/25


컴퓨터 네트워크는 1950 - 1960년대에 등장하였으며
연구실, 회사 등 조직내에서 서로 더 용이하게 정보를 주고 받기 위해 사용되었다.

네트워크를 사용함으로써,

  • 물리적인 자료들을 사람들이 직접 옮기고 전달하는 과정보다
    더 빠르고 정확하게 데이터를 주고받을 수 있었으며
  • 물리적 자원을 공유할 수 있게 해주었다.
    ( 하나의 프린터를 여러 대의 컴퓨터가 네트워크를 통해 사용할 수 있는 등 )

비교적 근접한 컴퓨터 사이의 네트워크를 로컬 영역 네트워크( Local Area Network, LAN)라 하며,
개발된 것들 중 널리 사용되고 있는 것은 Xerox PARC에서 개발한 ETHERNET(이더넷) 이다.

이러한 네트워크는 여러 대의 컴퓨터가 하나의 공통 이더넷 케이블에 연결되고,
서로간의 주고 받는 데이터는 전기신호로 작성되어 케이블을 통해 송,수신 된다.

하나의 공통된 케이블로 연결되어 자료를 주고받다보니, 특정한 수신자가 파악되지 않는 한계가 있었고
이를 위해, 각 컴퓨터에 고유한 매체 접근 제어 주소를 부여하게 되는데 이것이 바로

MAC(Media Access Control) Address 이다.

고유한 주소는 네트워크을 통해 전송되는 데이터 헤더에 담기게 되며, 이를 통해 함께 전달된다.
오늘날에도 모든 컴퓨터에는 이더넷과 wifi를 위한 MAC Address가 부여되고 있으며, 이러한 접근법의 일반적 용어는 CSMA(Carrier Sense Multiple Access, 반송파 감지 다중 접속)이라 불린다.

  • Carrier : 데이터를 전송하는 공유 전송 매체를 의미한다.
    이더넷의 경우 구리선, wifi의 경우 전파를 운반하는 공기를 의미한다.
  • 많은 컴퓨터가 동시에 캐리어를 감지하고 다중 접속한다(Sense, Multiple Access)

캐리어가 데이터를 전송할 수 있는 속도는 대역폭(Bandwidth)이라고 한다.


하나의 선을 사용하기에, 동시에 여러 요청(전송)이 들어오면 데이터 송, 수신간의 충돌이 일어난다.
이더넷에 연결된 컴퓨터들은, 만약 전송이 실패하게 된다면 임의의 시간을 부여받고(각 자 다르게 부여받음) 그 시간동안은 요청을 전송하지않고 멈춘 상태였다가, 시간이 지난 후 다시 요청을 수행하게 된다.

각자 임의의 시간을 부여받기 때문에 충돌의 경우가 줄어들지만, 다시 실패할 경우 부여되는 시간은 점차
증가하며 새롭게 부여된다. 이렇게 대기시간이 증가하게 되는 것을 Expotential Backoff, 지수 백오프
하며 이더넷, 와이파이등 네트워크들이 선택하여 사용하고 있다.


하나의 선으로 많은 컴퓨터 네트워크를 구성하는 것은 한계가 있고, 이는 캐리어(전달하는 매체)에 연결된
요소들을 줄이는 것으로 개선할 수 있는데, 이를 충돌 도메인(Collision Domain)이라 한다.

위 이미지와 같이, Switch를 통해 제어하고 잇는 모습이다.
A -> C , E -> F와 같이 스위치를 기준으로 같은 선상에 있는 네트워크끼리 데이터를 주고 받을 땐
한정적으로 연결되어있지만, 동시에 두 자료 전송이 가능하다.

네트워크가 방대해질 수록 데이터가 이동해야 할 경로는 많아지고
이는 '라우팅' 이라는 개념과도 연결되는 이유가 된다.


방대한 네트워크에서, 꽤 먼 곳으로 데이터를 전송해야 한다면?
라우팅을 통해 데이터가 전송되는데, 이는 우편이 전송되는 매커니즘과 비슷하다.
(다음 강의에서 라우팅에 대해 더 다룰 것 같다.)

서울에서 다대포 해수욕장으로 우편을 보내기 위해서 다음과 같은 경로를 통해 우편이 이동할 것이다.
서울 - 대전 - 대구 - 부산 - 다대포 해수욕장 (임의의 경로이다.. 실제론 안이렇겠지욤..?)
이처럼 전달하는 방식을 메시지 전달 방식이라하는데, 다른 경로를 사용하여 통신할 수 있는 장점을 가진다.

경로를 거치는 횟수를 Hop count(홉 수)라고 하는데, 이는 경로상의 문제를 확인할 수 있어 유용하다.
효율적인 경로를 계산하기 위해 Hop limit 이라는 개념도 존재한다.

메시지 전달 방식에서 메시지가 큰 경우가 있을 수 있다.
메시지가 커서 해당 전송기반을 점유하면,
단 1KB의 데이터 전송도 커다란 데이터가 전송 완료될 때 까지 데이터를 주고 받을 수 없게 된다.
이러한 한계점을 개선하기 위해 '패킷'이라는 개념이 등장한다.

용량이 큰 전송을 패킷(Packets)이라 불리는 작은 조각들로 쪼개어 전송하게 되며
패킷은 네트워크 상에서 목적지 주소를 포함하고, 라우터는 이 주소 즉 전달할 위치를 알고있다.
이는 Internet Protocol이며 이는 우리에게 익숙한 IP이다.

네트워크에 연결된 모든 컴퓨터는 IP를 가지고 있다.

작은 패킷으로 데이터를 자르고 여유용량이 있는 유연한 경로를 따라 전달하는 것은 효율적이고 내결함성이 뛰어나다. 전체 인터넷이 이런 방식으로 작동하고 있으며, 이러한 라우팅 방식을 '패킷 스위칭' 이라고 한다.

라우팅에는 특수 프로토콜인 ICMP(Internet Control Message Protocol), BGP(Border Gateway Protocol)이 사용된다.

최초의 패킷 교환망이자 인터넷의 조상은 ARPA의 ARPANET이며, 이를 시작으로 컴퓨터 네트워크는 더욱 크게 발전하였으며 최근에는 PC외에도 스마트폰, wifi를 통해 연결된 사물인터넷 등 다양한 모습으로 빠르게 성장하고 있음을 알 수 있다.


초반에는 좀 이해가 갔는데 후반으로 갈 수록 생략된 부분들이 많은지
이해가 잘 안돼서 작성한 내용중에 틀린 정보도 많을 것 같다...... 하지만 총 3편으로 네트워크를 다룰 예정이라 강의를 더 보다보면 객관성이 채워지지 않을까 싶다!
(제가 개인적으로 공부하고 이해한 바를 쓰다보니 이상한 점이 있을 수도 .... 많을 수도요....)

profile
즐겁게 귀엽게 코딩합시다 !

0개의 댓글