Post

Computer Networking: a Top Down Approach - (1)

Computer Networking: a Top Down Approach - (1)

Computer Network Introduction - (1)

  • Network Edge

    • 우리들이 위치하는 곳
  • Network Core

    • 라우터 : 데이터를 목적지까지 전달
  • Access Noetworks, Physical media

    • 구성요소들을 이어주는 링크들

Network Edge

  • end systems(hosts)

    • 컴퓨터, 노트북, 스마트 폰 등 사용자가 상호작용 하는 장치

Network Edge : 연결 지향형 서비스

  • 네트워크 엣지의 목적은 시스템 간 데이터를 주고 받는 것인데, 이 때 데이터를 순서대로, 전송을 보장하는 목적인 TCP를 사용한다.

TCP

  • 신뢰성 있게 내가 보낸 데이터를 순서대로, 전송을 보장한다.
  • 받는 컴퓨터 능력치에 맞춰 받을 수 있는 양만큼 데이터를 보낸다.
  • 네트워크 사정에 맞게 속도를 조절할 수 있다.

UDP

  • connectionless
  • unreliable data transfer
  • no flow control
  • no congestion control
  • 유실되든 상관없이 데이터 막 보낼거면 사용해도된다!

그럼 UDP 언제 사용?

음성 RTC 보이스톡 같은 것 (디스코드). 몇 패킷 없어져도 귀가 민감하지 않은 음역대면 괜찮다. TCP는 엄격하기 때문에 컴퓨터 리소싱 자원을 많이 소모하므로 이에 민감하지 않은 데이터라면 UDP로 막 보내도 될 때 사용한다.


Protocol

  • 약속(규약)이란 의미로 서로 통신할 때 지켜야 하는 규칙이다.

    Network Core

  • 라우터들이 데이터를 목적지까지 전달해줌.
  • 이렇게 얽히고 섥힌 라우터들의 집합

어떤 방법으로 데이터를 전송할까?

  • 서킷 스위칭 : 출발지부터 목적지까지 가는 길을 미리 예약을 해놓고 특정 사용자만을 위해 사용하도록 만들어놓는것.
  • 패킷 스위칭 : 데이터를 패킷 단위로 받아서 그때그때 올바른 방향으로 포워딩해준다. 인터넷에서 사용.

    Circuit Switching

  • 통신할 때 두 노드 사이에 물리적인 경로(회선)을 정해놓고 사용한다. ex) 전화
  • 장점 : 신뢰성, 전송 속도 보장
  • 단점 : 비효율성, 자원 낭비(데이터 전송 안해도 회선이 낭비됨)

Packet Switching

  • 데이터를 패킷 단위로 나누어 전송. 각 패킷마다 개별적인 최적 루트를 그때그때 찾아 전송한다. ex) 인터넷

Circuit Switching vs Packet Switching

  • 주요 포인트는 “점유” 유무다. 서킷 스위칭은 데이터 전송 전에 경로를 정하고 “점유”한다. 그리고 연결 끊기기 전까지 내가 “점유”한다. 만약 1Mbps를 한번에 보낼 수 있는 대역폭을 가진 회선이 있는데, 한 컴퓨터가 100kbs를 사용한다면 10명밖에 이용을 못하게된다.
  • 반대로 패킷 스위칭은 “점유”하지 않는다. 그리고 데이터를 뭉탱이로 보내는 게 아니라 패킷으로 “잘라서 각각” 보내기 때문이다.

Packet Delay

1. nodal processing

  • 라우터에서 패킷을 처음에 받으면 패킷 검사를 해야한다. 패킷을 검사하고 목적지가 어딘지 검사하는 delay

2. queueing

  • 라우터에 데이터가 들어오는 속도가 전송해서 빠져나가는 속도보다 커져서 들어오는 데이터가 많아지면 너무 데이터가 많기 때문에 줄을 서야된다. 라우터에서는 queue라는 저장공간에 줄을 세운다.
  • 대부분의 패킷 손실이 일어나는 곳
  • 한번에 나갈 수 있는 대역폭이 한정적이기 때문에, 라우터마다 대기 공간인 queue 혹은 buffer가 존재하는데, 이 대기시간의 delay
  • queue의 크기도 한정적이기 때문에, 꽉차면 그냥 패킷을 버린다.
    • TCP는 안전한 전송을 보장하는데 버리면 어떻게 해야할까?
    • 클라이언트 단인 Network Edge에서 데이터를 다시 전송해야한다.

3. Transmission delay

  • 패킷은 비트의 집합이므로 그 길이만큼 link로 뿜어져 나가야한다. 첫번째 bit가 나가는 순간부터 마지막 bit가 나가는 순간까지의 시간 delay
  • 패킷을 1비트로 나눠야 빛으로 쏠 수 있으므로 이 때문에 패킷 길이만큼 걸리는 전송 시간을 의미한다.
  • transmission delay = 패킷 길이 / 대역폭 -> 대역폭은 병렬처리하는 넓이라고 볼 수 있겠다.

4. Propagation delay

  • 물리적으로 다음 라우터까지 전달하기 위한 빛의 속도
  • link길이만큼을 빛의 속도로 이동해야하기 때문에 걸리는 시간 delay

어떻게 delay를 줄일 수 있을까?

Processiong Delay

  • 좋은 하드웨어 (좋은 라우터) : 라우터 성능을 개선하면 처리 성능이 개선된다.
  • ex) 톨게이트 요금소에서 사람이 돈 계산하던 것을 하이패스로 바꾸는 느낌

Queueing Delay

  • 전송하는 클라이언트가 기여하는 부분이므로 개선하기 어려운 부분. 사람들이 많이 사용할 때 줄을 많이 서기 때문.

Transmission Delay

  • 대역폭을 늘려 동시 처리 비트 개수가 늘어나면된다.
  • 하이패스로도 부톡해서 차선을 더 늘린 느낌.
This post is licensed under CC BY 4.0 by the author.