컴퓨터 네트워크 - tcp/udp, packet/circuit switching

yeonjkim·2021년 7월 2일
0

컴퓨터 네트워크

목록 보기
1/2

컴퓨터 네트워크 - 기초 설명

이 게시물은 한양대 이석복 교수님의 컴퓨터 네트워크 강의를 정리한 글입니다. 오타/오개념은 댓글로 부탁드립니다!

1. 네트워크란?

네트워크 : 몇 개의 독립적인 장치가 적절한 영역내에서 적당히 빠른 속도의 물리적 통신 채널을 통하여 서로가 직접 통신할 수 있도록 지원해 주는 데이타 통신 체계

Net + Work 의 합성어로써 컴퓨터들이 통신 기술을 이용하여 그물망처럼 연결된 통신 이용 형태를 의미

2. 네트워크 구조

네트워크의 구조는 아래와 같이 3가지로 분류될 수 있다.

1. network edge : application과 host(client, server).
 ex) 데스크탑, web 서버 등이 위치. web등이 엣지에서 동작함.

2. access networks, physical media : link

3. network core : 라우터

3. 인터넷이란?

전 세계적으로 수십억 개의 컴퓨팅 장치를 연결하는 컴퓨터 네트워크이다.

  • 인터넷에서 제공하는 통신 서비스는 2가지가 존재한다.
  • connection에 따라, TCPUDP로 구분되어진다.

4. TCP (connection-oriented service)

TCP : connection - oriented service를 제공하는 통신기법.

TCP의 특징

1. reliable, in-order byte-stream data transfer

  • 말 그대로, 신뢰성있고 보낸 순서 그대로 전달된다.

2. flow control

  • sender가 reciever에게 data를 전송할 때, reciever가 받을 수 있는 속도에 맞춰 속도를 조절한다.

  • 즉, reciever가 받을 수 있는 능력에 따라 sender가 속도를 조절할 수 있기 때문에 flow control이 가능하다.

3. congestion control

  • 네트워크의 상황에 따라 네트워크가 받을 수 있는 능력치만큼 데이터를 전송한다.

TCP는 패킷이 전송되는 게 보장이 되어야 하므로, 웹 서버 등에서 이용된다.

5. UDP

UDP : connection-less service를 제공하는 통신기법

UDP의 특징

UDP는 TCP와는 다르게 connection이 보장되지 않는다. 따라서 신뢰도가 낮고, 흐름 제어나 혼잡 제어를 하지 않는다.

1. connectionless

2. unreliable data transfer

3. no flow control

4. no congestion control

UDP는 패킷이 전송되는 게 보장이 되지 않는다.

따라서 audio나 voice 등 조금의 패킷의 유실되어도 사용자에게 영향을 많이 끼치지 않는 상황에서 사용된다.

6. protocol이란?

Protocol : 둘 이상의 통신 개체 간에 교환되는 메세지 포맷과 순서 뿐 아니라, 메세지의 송수신과 다른 이벤트에 따른 행동들을 정의

  • 예를 들어, 위와 같이 두명의 사람이 대화를 하는데, 현재 시각이 몇시인지 알아내는 것이 목적이라고 하자.
    먼저 서로 인사를 하고, 몇시인지 묻는 질문을 상대에게 건네면 상대는 현재 시간을 나에게 말해줄 것이다.

  • 사람이 아닌 컴퓨터를 예시로 들어보자. 오른쪽과 같이 파일을 요청했다면, 먼저 TCP연결을 요구한다.
    TCP연결 뒤 파일이 저장된 공간을 보내주면, 나는 서버로부터 파일을 받을 수 있을 것이다.

  • 이처럼 둘 이상의 통신 매체 간의 관습이나 약속 등을 프로토콜이라고 정의할 수 있다.

7. 라우터

  • router는 메세지를 전달받아 목적지를 향해 data를 전달하는 단순한 일은 한다.

  • 라우터와 라우터끼리는 bandwidth높고, 전화선과 같은 link는 bandwidth낮다.

  • 라우터가 출발지에서 목적지까지 data를 전달하는 방식에는 2가지가 있는데, circuit switchingpacket switching이다.

8. Circuit Switching

Circuit Switching : 특정 사용자를 위해 출발지에서 목적지까지 가는 길을 예약하고 사용하라 하는 방식. ex) 유선전화

특정 사용자를 위해 경로를 예약하기 때문에 performance를 보장한다. 하지만 패킷 스위칭에 비해 적은 사용자가 이용할 수 있다.

9. Packet switching

Packet Switching : user가 보내는 메시지를 packet단위로 받아 전송하는 것. 들어온 순서대로 목적지로 보냄(queue) ex) 인터넷

데이터를 패킷의 단위로 받고, 사용자가 보낸 각 패킷을 큐에 저장하고 라우터로 이동시키기 때문에 Circuit Switching에 비해 많은 사용자가 이용할 수 있다.

그러나 queue에 비해 많은 user가 몰릴 경우 packet loss가 일어날 수 있다.

10. Packet/Circuit switching이 수용할 수 있는 user수 구하기

가정 ) 라우터와 이어진 link의 bandwidth가 1Mbps이고, 각 user는 100kbps로 데이터를 보낼 때, Circuit SwitchingPacket Switching으로 수용할 수 있는 최대 user수를 구해보자.

1) Circuit Switching

  • link의 bandwidth가 1Mbps, 즉 1000kbps이고 각 user는 100kbps로 데이터를 보내므로 1000kbps/100kbps = 10.

  • 최대 10명이 Circuit Switching을 통해 라우터로 데이터를 보낼 수 있다.

2) Packet Switching

  • Packet Switching은 유저가 패킷으로 데이터를 보내니 최대라는 개념이 없다. 그러나 동시에 10명 이상의 유저가 사용 시 delayloss가 발생할 수 있다.

  • 하지만 동시에 많은 유저가 들어올 확률은 매우 낮다. 그렇기에 user가 몰리지 않는다면 Packet Switching을 이용하는 것이 좋다.

  • 현재 인터넷은 패킷 스위칭을 기반으로 한다.

11. packet switching delay

Packet Switching이 진행되는 과정은 4가지로 나뉜다.

  • 먼저 라우터에 도달한 패킷을 검사한다.
  • 만약 라우터 내부의 queue에 대기하고 있는 패킷이 있다면 그 패킷이 다른 라우터로 이동할 때까지 큐에서 대기한다.
  • 큐의 패킷이 비트 단위로 링크로 이동한다.
  • 링크로 모두 이동한 패킷이 다음 라우터로 이동된다.

Packet Switching 방법을 이용해 라우터로 데이터를 전달할 때 생기는 딜레이는 위 패킷 스위칭 진행 방식에 따라 4가지로 분류된다.

1. nodal processing delay

: 패킷 헤더를 조사하고 그 패킷을 어디로 보낼 지 결정하는 시간이다.

2. queueing delay

: 큐에서 링크로 전송되기를 기다릴 때까지의 delay이다. 특정 패킷의 큐잉 지연 길이는 큐에 저장되어 링크로 전송되기를 기다리는 앞서 도착한 패킷의 수에 따라 결정된다.

만약 큐가 비어있고, 다른 패킷이 전송 중인 상태가 아니라면 큐잉 지연은 0이다. 그러나 트래픽이 많고 많은 패킷이 큐에 쌓여 있다면 큐잉 지연은 매우 길어질 것이다.

또, 큐에 저장할 수 있는 패킷보다 많은 양의 패킷이 들어온다면 packet loss가 일어난다. 인터넷에서 일어나는 packet loss의 90%는 라우터의 큐가 가득 찼기 때문에 일어난다고 한다.

3. transmission delay

: 패킷이 FIFO방식(선입선출 방식)으로 전송된다면 패킷은 앞서 도착한 다른 모든 패킷들이 전송된 다음에 전송된다. 패킷의 길이L bit로, 다음 라우터까지의 link의 전송률R bps라면 transmission delay는 L/R이다.

transmission delay는 패킷의 길이와 전송률에 따라 결정된다.

4. propagation delay

: 링크에서 빠져나온 패킷이 다음 라우터까지 도달하는 데 걸리는 delay이다. 패킷의 bit는 링크의 전파속도로 전파되는데, 빛의 속도와 같거나 약간 작다.
이 속도를 s라 하고, 패킷의 길이를 d라 한다면 propagation delay는 d/s이다.

12. packet switching과 TCP

host A에서 host B까지 데이터를 보내는데, 중간에 거쳐야 할 라우터가 4개가 있다고 가정하자.

A부터 B까지 만약 라우터의 queue가 하나라도 차 있으면 packet loss가 일어난다.

그러나 TCP는 reliable하다고 했는데 만약 이 상황처럼 network 상황이 나빠 패킷 유실이 일어날 때는 어떻게 reliable을 보장하나?

=> 재전송한다.

재전송 방법으로는 2가지를 생각해 볼 수 있다.

1. A가 다시 재전송 <- 인터넷이 이를 채택

2. 유실이 일어나기 바로 직전 라우터가 재전송

TCP가 A와 B의 위치해 재전송을 담당한다.
network core, 즉 router는 intelligent하지 않게 데이터를 전달하는 역할만 한다.
network edge가 intelligence 담당.

라우터가 할 일이 늘어나면 인터넷이 너무 느려지기 때문에 라우터는 단순작업을 극대화했다.

0개의 댓글