[컴퓨터 네트워크] 1-1 Computer Networks and Internet

윤민우·2023년 3월 19일
0

컴퓨터 네트워크

목록 보기
1/12
post-thumbnail

인터넷의 구성

인터넷은 한마디로 설명한다면 다음과 같다.

인터넷은 수십 억개의 연결된 Computing Device다

  • Hosts
    End Systems(PC, Server, Laptop, SmartPhone, etc.)들이 Network Apps를 실행하게 된다.

  • Communication Links
    컴퓨터들끼리 인터넷으로 연결해주는 링크로 Fiber(광 케이블), Copper(구리선), Radio(무선), Satellite(위성)이 존재한다.
    Communication Links의 성능을 표시하는 방법은 transmission rate, 즉 해당 링크를 통해서 1초에 몇 bit를 보낼 수 있는지 Bandwidth를 사용하는 것이다.

  • Packet Switches
    End Systems들과 Communication Links 사이에서 Routers나 Switches라고 하는 네트워크 전용 장비들이 Packet을 forwarding(전달)시켜 주게 된다.


인터넷에 필요한 여러가지 표준들

Internet이라는 것은 "Nework of Networks"라고 보면 된다.

  • Protocols
    프로토콜을 통해서 메시지를 전송하고 수신하는 것을 제어하게 된다.

    • e.g. TCP(Transfer Control Protocol), IP(Internet Protocol), HTTP(HyperText Transfer Protocol), Skype(VoIP의 일종), 802.11(무선랜 표준)
  • Internet Standards

    • RFC : Request for comments
    • IETF : 국제 인터넷 표준화 기구(Internet Engineering Task Force)

RFCIETF에서 관리하는 기술 표준으로, 콘텐츠에 대해 특별한 제한은 없지만 주로 프로토콜(protocol) 및 파일 형식등이 주요 주제이며 승인된 문서는 유일한 일련 번호를 갖게 되며 "RFC-일련번호" 형식으로 불리웁니다.

인터넷을 보는 Service에 대한 관점

인터넷은 네트워크 어플리케이션(Web, VoIP, email, games, e-commerce(전자상거래), social nets...)에 서비스를 제공해주는 Infrastructure, 기반이라고 볼 수 있다.

이런 서비스들을 제공해주기 위해서는 API(Application Programming Interface) 를 제공해줘야 한다. 이런 API를 이용해서 인터넷에서 제공해주는 서비스들을 사용할 수 있다.

프로토콜이란 무엇인가

프로토콜은 간단히 말해서 규약이라고 할 수 있다.
Network의 프로토콜은 사람이 아닌 기계가 인식하고 처리해야 한다.

Network's Protocol은 보내고 받은 메시지의 Format하고 Order를 정의하고, 그리고 보내고 받았을 때 어떤 Action을 취해야하는지를 정의하는 것이다.

Network Structure

네트워크는 크게 3가지로 구성되어있다.

  1. Network Edge
  2. Access Network & Physical Media
  3. Network Core

Network Edge

네트워크의 가장 가장자리이다. 여기에는 수많은 end system들이 존재한다.

여기서 end system은 host라고 생각하면 되는데, host는 Client나 Server를 뜻한다. (앞으로 다룰 네트워킹의 case들은 주로 클라이언트를 일반 사용자들의 개인 PC로, 서버를 data center에 위치한 강력한 기능을 가진 컴퓨터로 간주한다.)

즉, end system은 사용자들이 사용하는 스마트폰이나 PC 혹은 회사의 서버라고 생각하면 된다. 이제는 IoT까지 end system에 포함되고 있다.

Network Edge란 네트워크의 말단에 존재하는 여러 구성 요소들로, End System에는 인터넷과 연결되는 다른 장치들(스마트폰, PC, IoT 등등)이 포함된다.

Access Network

wired, wireless communication links

  • residential access networks(주거 지역의 access network)
  • institutional access networks(학교나 회사 등의 기관의 access network)
  • mobile access networks(무선 access network)

edge - core - edge의 구성을 하는 네트워크에서, access network는 edge router 들을 core 쪽으로 어떻게 연결하는냐를 다룬다.

다시 말해, end system들이 인터넷을 사용할 수 있도록 길을 열어주는 network이다.

우리가 스마트폰으로 와이파이에 접속하거나 PC에 랜선을 꼽는 것 모두 엑세스 네트워크에 접속하는 것이라고 할 수 있다. 대부분 KT나 SKT 같은 ISP(Internet Service Provider)가 엑세스 네트워크를 제공해준다.

Access Network는 Host로부터 첫번째 Router까지의 구간을 의미한다.

Access Network: DSL(Digital Subscriber Line)

전화선을 이용해 인터넷 접속 서비스를 받는다.
-> DSLAM을 이용해 voice(전화)는 전화망으로, data는 인터넷 쪽으로 보낸다.
-> upstream(집->서버)의 전송률 < 3.5-16Mbps (typically < 1Mbps)
-> downstream(서버->집)의 전송률 < 24-52Mbps (typically < 10Mbps)
-> 요즘은 잘 사용하지 않는다.

  • 기존에 이미 존재하는 전화선을 사용한다는 장점이 있다.
  • Splitter라는 것을 사용하여 전화선이 전화기에도 들어가고 모뎀으로도 들어가게끔 만들 수 있었다.
  • upstream은 downstream에 비해서 매우 느리다.
    우리나라에선 ADSL(Asymmetric DSL)이라는 이름으로 판매디었다.

Access Network: Cable Network

케이블을 활용해 인터넷에 접속한다.
-> HFC(Hybrid Fiber Coax) : 구리와 광을 이용한 케이블로 downstream의 전송률은 < 40Mbps-1.2Gbps, upstream의 전송률은 < 30-100Mbps로 up/down stream의 전송속도가 다르기 때문에 접속이 비대칭(asymmetric) 이라 한다.

케이블을 통해 가정을 ISP 라우터에 연결한다.
-> 각 집들은 cable headend로 가는 access network를 공유한다.
-> DSL(dedicated access)과 달리 shared access로 여러 집에서 공유된다.(여러 가구가 동시에 다운하면 나눠서 하기 때문에 시간이 느려진다.)

  • 기존에 있는 케이블 네트워크를 사용한다는 장점이 있다.
  • 여기 또한 Splitter를 통해서 여러 개로 나누어 사용했다.

Bandwidth가 높은데, Shared가 되면 내가 이용할 수 있는 Bandwidth의 양이 작아진다.

Bandwidth & Shared VS Dedicated

  • DSL과 같은 경우에는 Bandwidth(24-52Mbps & 3.5-16Mbps)가 짧지만, Dedicated이다.
  • Cable Network와 같은 경우에는 Bandwidth(40Mbps-1.2Gbps & 30-100Mbps)가 비교적 크지만, shared기 때문에 해당 속도가 나오지 않을 가능성이 있다.

Frequency Division Multiplexing(FDM, 주파수 분할 다중화): 신호의 주파수에 따라 보내는 내용(데이터, 비디오 등) 구분이 가능하다.

  • 전체의 큰 대역폭을 주파수별로 나눠서 여러 개의 정보를 동시에 보내는 방법이다.

Access Network: home network

DSL이나 Cable Modem이 한 개의 End System과 연결이 된다면 상관이 없겠지만, 한 집에는 휴대폰, 노트북, IoT 제품들 등 수많은 End System이 있기 때문에 집에도 네트워크 환경을 구성해야 된다.

이렇게 집에서 홈에 있는 노드들끼리 연결해주는 것을 home network라고 한다.

  • cable or DSL Modem
    • Router or Switch(요즘은 보통 wireless access points들과 합쳐서 나온다.)
      • end system
      • wireless access points
        - end system

Enterprise access networks(Ethernet)

주로 유선을 사용한다.(과거에는)

주로 회사, 대학 등에서 사용한다.
-> 스위치를 통해 부서, 학과 별로 인터넷이 연결되도록 한다.
-> 전송률이 10Mbps ~ 10Gbps 까지 나온다.
-> 상호 연결된 스위치들이 더 큰 인터넷으로 연결된다.

Wireless access network

무선랜으로 Wi-Fi 등을 의미한다.

무선을 사용해서 공유기와 end system들과 연결하게 되는데 중요한 것은 Shared Wireless network라는 것이다. 하나의 공유기에 여러 개의 end systems들이 전파를 주고 받게 되면, 다른 하나는 못받기 때문에 여러 개의 end systems들이 연결되어 있으면 속도 차이가 발생하게 됩니다.

wireless LANs

  • 20~30m 사이에 있는 장비들을 연결할 때 사용하며 WiFi를 예시로 들 수 있습니다.
  • 802.11b/g/n(Wifi) - 11Mbps/54Mbps/450Mbps transmission rate

wide-ares wireless access
통신사들이 운영하는 기지국을 통해 서비스 하는 네트워크이다.

  • 10km까지 전송이 가능
  • 1~10Mbps
  • 3G, 4G:LTE

Host: sends packets of data

host들은 데이터들을 보내거나 받게 되는데, 보내는 경우를 볼 것이다.
host들은 message를 받으면 한꺼번에 보내지 못한다. 파일이 크면, 한거번에 보내지 못하기 때문에 해당 application message를 잘라내어 더 작은 chunk로 만들어서 L bits길이의 packet으로 만들게 된다.
그렇게 나눠진 packet들은 access network를 통해서 network core로 보내게 된다. 이때, access network가 제공해주는 링크의 전송 속도, transmission rate가 R이라고 하자.

  • 여기서 transmission rate는 link capacity나 link bandwidth라고도 한다.

한 패킷을 다 전송하는데 얼마의 시간이 걸릴 것이냐!
packet transmission delay = L(bits)/R(bits/sec)
전송 시간 = (패킷당)비트수/전송률 = L/R

(전송률 = link transmission = link capacity = link bandwidth, 초당 보낼 수 있는 비트수로 단위를 중요시 할 것!)

예) 1000비트 짜리 패킷, link 전송률 1Mbps
-> 전송시간 = 1000/10^6 = 1ms

비트 체계
1bit = 1 bit
1Kb = 10^3 bit
1Mb = 10^6 bit
1Gb = 10^9 bit
1Tb = 10^12 bit
1Pb = 10^15 bit
1Eb = 10^18 bit
1Zb = 10^21 bit
1Yb = 10^24 bit
참고로 Mb는 Mega bit, MB는 Mega byte입니다 ^^

Physical media

데이터 통신에서 정보를 저장하거나 전송하는 데 사용되는 물리적 물질(구리 또는 유리)

  • bit : 송신기(transmitter)와 수신기(receiver) 사이에서 전파되는 데이터

  • physical link : 송신기와 수신기 사이에 존재하는 회선

  • guide media : 견고한 매체를 따라 신호가 전파됨 - 구리, 섬유, coax 등
    -> 유선이기 때문에 속도가 느려지면 안테나를 더 설치하면 된다.

  • unguided media : 무선으로 신호가 자유롭게 전파됨 - 라디오 등
    -> 무선이기 때문에 신호 감쇄가 심하고 속도와 안테나의 개수와 상관 없다.(오히려 간섭이 일어남)

  • twisted pair(TP, 꼬임쌍선) : 2개의 절연 구리선.

    • 대표적으로 많이 사용하는 선이다
    • category5 : 100Mbps & 1Gbps Ethernet
    • category6 : 10Gbps
    • 전지가 이동하면 자기장이 발생한다. 그래서 선을 꼬아서 사용함으로 해당 부분을 해소한다.
  • coaxial cable(동축 케이블)

    • 축이 같은 케이블이다.

    • 양방향이면서 broadband이다.

    • Hybrid Fiber Coaxial (광동축혼합망, HFC) - bandwidth가 넓어서 여러 개의 채널을 집어 넣을 수있다.

  • fiber optic cable(광케이블)

    • 유리 섬유가 전송한다. 빛으로 비트를 표현한다.
    • high-speed operation : 10~100Gbps까지 전송속도가 나온다.
    • 에러가 비교적으로 적고, 전기장이나 자기장에 의한 노이즈가 발생하지 않는다.
    • 속도가 빠름. 전자파의 영향이 적고 굉장히 멀리 이동 가능(신호 감쇠가 적음).
  • radio(전파)

    • 물리적인 선이 없다.
    • 신호가 전자기 스펙트럼을 통한 신호 전달된다.
    • 환경의 영향을 많이 받음. 간섭이 존재함(반사, 물체의 영향, 간섭 등).
    • 양방향 통신이다.
    • 종류 : terrestrial microwave(지상파), LAN(e.g., WiFi), wide-area(e.g., Cellular), satellite(위성, 빠르지만 end-end 딜레이가 길다.)

Network Core

Network core는 서로 연결되어 있는 여러 개의 router들의 집합이다.

  • packet-switching : 특히 인터넷에서는 packet-switching을 사용한다. host에서 어플리케이션이 주는 데이터를 쪼개서 packet으로 만들어 전송해주는 방법을 사용한다.
    • 라우터가 하는 일들이 패킷들을 라우터로 전달하고 전달하고 반복하여 source에서 destination까지 보내느 것이다.
    • 각각의 packet들은 링크의 full link bandwidth를 사용해서 보내게 된다.

Packet-switching: store-and-forward


패킷은 store-and-forward 방법을 통해 전달된다.
패킷을 보내면 일단 라우터에서 받고 어디로 보낼지 판단한 후 그쪽으로 패킷을 전달한다.
-> 저장 후 전달 방식.
-> 해당 패킷의 모든 데이터를 다 받아야 출력 링크를 통해 목적지로 패킷을 전송한다.
-> 출발지 부터 목적지 사이에 라우터가 존재하는데, 한 패킷을 라우터로 보낸 후 다 받은 다음 다시 전송한다.
-> 중간 라우터가 전체 패킷을 받아서(store) 처리 후 전송(forward)

하나의 패킷을 온전히 전부 받을 때까지 store하고 패킷이 다 전송되면 그때 그 패킷을 다음 노드로 보내는 방식

end to end delay : 2 x L/R (전송 딜레이 무시했을 때)
-> L/R 은 one-hop delay(한 구간 source에서 router 까지, 또는 router에서 router 까지, 또는 router에서 destination 까지 등)
-> hop의 수 x transmission delay = end to end delay가 된다.
-> 만약 store and forward 방식이 아니었다면 바로 보내기 때문에 transmission time 없이 한번에 갈 수 있다.

(예시)
L(패킷 비트수) = 7.5M, R(전송률) = 1.5Mbps -> L/R = 5
-> 총 패킷이 세개라 하면 1번이 라우터에 가는 시간 L/R
-> 2번이 라우터에 가는시간, 1번이 라우터에서 목적지로 가는 시간 L/R
-> 3번 올라오고 2번 가는 시간 L/R
-> 3번 목적지로 가는 시간 L/R
-> 총 4 x L/R 시간이 걸림
-> 만약 store and forward 아니었으면 L/R 만에 다감.

Packet Switching: queueing delay, loss

queueing delay
라우터가 처리를 해서 다음 라우터로 전달하는 속도 보다 들어오는 속도가 더 빠르면 넘치는 데이터들을 라우터의 버퍼에 쌓는다.
-> 데이터가 들어오는 속도보다 회선의 속도(나가는 속도)가 느리면 라우터의 메모리(큐)에 패킷이 쌓여서 딜레이가 발생한다.
-> 네트워크의 혼잡 정도에 따라 달라질 수 있다.!

loss
큐 역시 메모리이기 때문에 한계가 있다. 즉, 저장할 수 있는 패킷의 수가 정해져 있기 때문에 큐가 꽉 차면 패킷을 더이상 받지 않고 drop(loss)한다.
-> 데이터 처리가 느려지고 손실 발생이 가능하다.

(예시)
A와 B가 100Mb/s의 속도로 패킷을 보내고 있고 라우터에서 나가는 링크의 속도가 1.5Mb/s 일 때 queueing delay가 발생하고, 전송이 느려지게 될 것이다.

Two key network-core functions

routing
source-destination까지 패킷이 따라야할 경로를 결정하는 기능
받은 패킷을 목적지 까지 빠르게 전달하기 위해 어디로 보낼지 판단하는 것이다.
-> 목적지에 따라 경로를 정함!

Forwarding
아웃풋 인터페이스가 여러 개 있는데 어디로 보낼지 결정하는 것이다.
-> 포워딩 테이블을 보고 결정함
-> 데이터의 Destination address(header value랑 관련)를 보고 어떤 아웃풋 인터페이스로 보낼지 정하는데, 이 때 포워딩 테이블을 보고 판단한다.
-> 이 테이블을 만들고 관리하는 방법이 라우팅 알고리즘(어떤 라우터 끼리 연결되어 있고, 어디로 보내는 것이 가장 합리적일 지 결정)

즉, 패킷의 헤더에 목적지의 주소가 있고, routing algorithm을 통해 forwarding table을 만든 후 라우터에 패킷이 오면 패킷의 목적지 주소와 table의 header value를 보고 output link를 결정하여 내보낸다.
-> 라우팅 : 경로 생성을 위해 라우터끼리 협력 / 포워딩 : 패킷이 왔을 때 실제 전달하는 기능

Alternative core: circuit switching

circuit switching
출발지와 목적지 사이의 경로가 정해지면 필요한 자원들(버퍼, 링크 전송률 등)이 예약된다.
-> 여러 circuit이 있을 때 라우터들 사이에 어떤 circuit을 사용할지 정하면 다른 애들은 이 circuit을 사용하지 못한다.
-> dedicated resource : no sharing -> 간섭이 없다. 보장되어 있다.
-> 회선에서 아무런 정보의 이동이 없더라도 공유가 안되기 때문에 idle 한 상태로 남아있게 된다.(예를 들어 전화 중 아무 이야기도 안할 때 데이터의 전송이 없지만 그 회선을 다른사람이 사용 못함(자원 낭비))
-> 주로 전화망에서 사용된다.

FDM(Frequency Division Multiplexing)

  • 회선에 신호가 전달이 될 때 주파수를 분리해 놔서 동시 전송 가능(섞이지 않게)
  • 미리 정한 주파수만을 사용한다.
  • 그림에서 유저가 5명이라면 한명은 못사용한다.

TDM(Time Division Multiplexing)

  • 모든 대역을 사용하지만 시간으로 나누는거
  • 마찬가지로 4명의 유저에게 다 할당했으므로 5명이면 한명은 사용 못한다.

Packet switching VS Circuit switching

packet switching이 더 많은 사용자가 네트워크를 사용할 수 있다.

circuit switching
1Mbps 의 link를 사람 당 100Kpbs를 사용하므로 총 10명이 사용할 수 있다.(1M / 1K = 10)

packet switching
여러 사용자가 동시에 사용하면 queueing delay가 발생해 늦게 도달할 수 있다.
많은 사용자가 사용이 가능하기 때문에 효율성이 높다.

  • 장점
    • 트래픽이 균형 잡힌게 아닐 때 자원 공유하면 유리하다.
    • circuit switching과 다르게 자원 예약 과정, call setup이 필요하지 않으며 단순하다.
  • 단점
    • queueing delay와 loss가 발생할 수 있다.
    • 따라서 해당 상황이 발생했을때를 대비한 reliable data transfer 프로토콜이나 혼잡을 제어할 수 있는 프로토콜이 필요하다.

단점을 해결할 수 있는 방법은 없다.

출처 및 참고
https://velog.io/@kms9887/%EC%BB%B4%ED%93%A8%ED%84%B0-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-1.-Computer-Networks-and-Internet2
Computer Networking A Top-Down Approach 7-th Edition / Kurose, Ross / Pearson

profile
개발, 피아노, 출사

0개의 댓글