[컴퓨터 네트워크] 1. Computer Networks and Internet(2)

김민석·2021년 4월 11일
1

컴퓨터 네트워크

목록 보기
2/12
post-custom-banner

1.3 Network core

인터넷의 end system 들을 연결하는 패킷 스위치들과 링크들의 연결망
-> end system 들을 연결 시켜주는 중간역할을 하는 부분
-> 망 사업자들이 깔아 놓은 router 들의 집합.
-> 가입자 망 끼리 연결시켜 주는 router 들의 집합.
-> 많은 양의 데이터를 빠른 속도로, 원하는 목적지로 잘 배달해 주는 것이 목적.
-> packet switching 을 통해 전송

packet switching
패킷이 어디로 보내질 지 결정하는 것이다.
보내야 할 메세지를 패킷이라는 단위로 나누고 라우터들을 거쳐서 패킷을 전송한다.
한 라우터로 부터 다음 라우터까지 연결된 회선이 속도가 있어서 속도에 따라 패킷을 전달하게 된다.
-> 각각의 패킷은 최대 link capacity로 전송된다.

1.3.1 Packet switching : store-and-forward

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

  • R bps의 전송 속도를 가진 회선을 통해 L bit의 패킷을 전송하는 데 걸리는 시간 : L/R 초
  • 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 없이 한번에 갈 수 있다.
  • 라우터가 패킷을 받아서 처리해야 할 문제(경로 어디로 갈지 등)가 있기 때문에 sotre and forward 방식을 사용한다.

예시
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 만에 다감.

1.3.2 Packet switching : queueing delay, loss

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

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


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

1.3.3 Two key network-core functions

네트워크 코어의 주요 function 두개

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

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


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

1.3.4 Alternative core : circuit switching

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

-> 그림에서 만약 라우터들 사이의 전송속도가 1Mbps라면 회선이 4개 이므로 각 연결당 250Kbps의 전송속도를 갖는다.

특징
1. 경로를 미리 정한다.
2. 자원을 공유 안한다.(독립적)
3. delay와 loss가 완화된다.(자기만의 경로가 정해져 있기 때문에)

Circuit switching : FDM and TDM

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

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

1.3.5 Packet switching vs Circuit switching

패킷 스위칭이 공유하기 때문에 많은 사용자가 네트워크를 사용 가능하다.

예시

-> 데이터를 전송할 트래픽이 있을 때 active라 하는데, active 시간이 전체 시간의 10%이다
-> 전체 시간 중 10%는 보낼 데이터가 있고, 나머지 90%는 보낼 데이터가 없음.

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

packet switching
-> 여러 사용자가 동시에 사용하게 되면 큐잉 딜레이 때문에 늦게 도달할 수 있다.
-> 하지만 사용자가 35명이라 해도 11명 이상의 인원이 동시에 active할 확률은 0.0004(0.04%)보다 작다.
-> 많은 사용자가 사용이 가능해져서 효율성이 높아진다.

packet switching vs circuit switching
무조건 패킷이 좋은가?

패킷의 장점

  • 트래픽이 균형 잡힌게 아닐 때 자원 공유하면 유리함
    -> 내가 사용 안할 때 다른애가 사용이 가능하니까
  • 서킷은 자원 예약 과정(call setup)이 필요 하지만 패킷은 이런 과정이 필요 없고 단순하다.

패킷의 단점

  • 밀리는 문제(큐잉 딜레이, 손실)
    -> reliable한 데이터 전송과 congestion control을 위한 프로토콜이 필요하다.
  • 오디오, 비디오와 같이 bandwidth의 보장이 필요한 경우 패킷은 보장이 안된다.

1.3.6 Internet structure : network of networks

인터넷 구조 : 네트워크의 네트워크
end system 들은 access ISP(Internet Service Provider, 가입자망)를 통해 인터넷과 연결되어 있다.
Access ISP 끼리 서로 연결 되어있어야 한다.
-> 연결 되어 있어야 임의의 두 호스트가 서로 패킷을 보낼 수 있다.
네트워크의 네트워크는 매우 복잡하다
-> 경제적, 국가적 정책에 따라 연결 되었다.

네트워크 구성 방법
수백만개의 access ISP 들이 존재한다. 어떻게 연결할 까?

  1. 모든 access ISP 들을 서로 연결해 준다. -> 연결이 너무 많아져서 불가능하다.

  2. 중간에 하나의 global ISP가 존재한다. -> 모든 망들이 global ISP를 통해 다른 망으로 가도록 한다(돈을 내고 사용) -> 전세계를 하나의 global ISP로 관리하는것은 힘들다

  3. 여러 ISP들이 존재한다. -> 어느 하나에 몰리면 그 ISP가 힘들다.

  4. IXP(ISP 끼리 연결시켜 주는 라우터)를 통해 ISP 끼리 서로 연결해 주자(peering)(자기들 끼리는 무료)

  5. access net을 ISP와 연결해 주는 regional net을 만드는 경우도 있다.
    -> 특정 지역에서 여러 가입자 망들한테 자기네 망을 이용하여 ISP를 지원해 주는거 -> 가입자가 regional net한테 돈 내고, regional net이 ISP로 돈 내는거(망 사용료)

  6. Content provider network -> 자체적으로 유뷰트 같은 서비스 제공해 주는 네트워크

  • 구글은 전 세계에 데이터 센터들이 있고, 이 데이터 센터들을 연결하기 위해 ISP를 사용하지 않고 자기들이 직접 연결함(public 망이 아님(private한 망), 구글 데이터만 이동하게 되어 있음) -> 구글이 사용자에게 서비스 제공할 때는 ISP와 협약 맺음

현재 인터넷 구조(계층적 구조 - 완전한 계층은 아님, 제공자 소비자 구조)

출처 및 참고
https://wonder-j.tistory.com/34?category=819863
https://inyongs.tistory.com/48?category=761968
https://wogh8732.tistory.com/14
Computer Networking A Top-Down Approach 7-th Edition / Kurose, Ross / Pearson
서강대학교 기초컴퓨터네트워크 강의자료

profile
김민석의 학습 정리 블로그
post-custom-banner

0개의 댓글