통신 (1)

서킷 스위칭과 패킷 스위칭
Nov 23, 2024
통신 (1)
 
통신은 선으로 전류를 흘려 정보를 전달하는 것이고,
그 전류가 끊기지 않고 지속적으로 흐르면 이를 Stream 이라 한다.
컴퓨터나 통신 시스템에서는 데이터를 0과 1로 표현하는 데, 전류의 흐름을 통해 이진수 값을 나타낸다.
전류가 흐르는 것을 1,
전류가 흐르지 않는 것을 0 이라 하여 데이터를 0과 1의 연속적인 신호로 표현해 전달한다.

서킷 스위칭(Circuit Switching)

 
서킷 스위칭(Circuit Switching) 은 통신 네트워크에서 두 지점 간에 전용 통신 회선을 설정해 데이터를 전송하는 방식이다.
notion image
장점 : 속도가 빠르다 (→ 선이 하나씩 있기 때문에 서로 서로의 딜레이가 없다.)
단점 : 비싸다 (→ 물리적인 선이 하나씩 있으니, 비용이 많이 들 수 밖에.)
ex. B↔C 를 연결해야 한다면, 두 지점 간의 선을 계속해서 연결해야 하니 이 방식을 쓰지 않는다.
(보안도 좋고, 빠르지만 돈이 많이 드니 큰 회사만 할 수 있겠군, 끄덕)
 
돈을 아끼려면?
 

패킷 스위칭(Packet Switching)

 
데이터를 작은 패킷으로 나누어 전송하는 방식으로, 송신자와 수신자 간에 고정된 경로를 설정하지 않고 데이터를 여러 경로를 통해 전송하는 특징이 있다.
 
임의의 컴퓨터 라우터(Router) 를 둔다. 선이 4개다.
패킷 스위칭 기반 통신에서는 라우터(Router) 를 통해서 패킷을 보낸다.
B 에서 A 로 보내고 싶어도 통하는 곳이 있고, A 도 라우터를 통해야 한다.
notion image
ex. B 가 A 에게는 1GB 를보내고, C 는 1B(Byte, 가장 작은 데이터 단위), D 는 1B 보내는 경우를 생각해보자.
이 때, 라우터가 미세하게 빠른 C 를 먼저 받고 있는 동안 wait 걸리면 너무 오래 걸리니까 우리는 라운드 로빈(Round Robin) 스케줄링을 쓸테다.
 
💡
라운드 로빈(Round Robin) 특징
  1. 공평성 : 모든 프로세스에 동일한 시간(Time Quantum) 을 할당하여 각 프로세스를 공평하게 처리
  1. 시분할 방식 : 각 프로세스는 지정된 시간 동안 실행되며, 시간이 끝나면 다음 프로세스로 넘어간다. 이후 다시 돌아와 할당된 시간을 차례로 받는다.
  1. 선점 스케줄링 : 할당된 시간이 끝나면 CPU 를 강제로 반환하고 다음 프로세스를 처리하므로 응답 시간이 예측 가능하다.
 
3개의 프로세스가 있다면, 첫 번째 프로세스가 실행된 후 두 번째, 세 번째 프로세스가 순서대로 실행되고 다시 첫 번째로 돌아온다.
라운드 로빈은 특히 멀티태스킹 환경에서 응답 속도를 빠르게 하고, 특정 프로세스가 독점하는 것을 방지하는데 유용하다는 특징이 있다.
 
wait 시간의 순서가 중요하다. (→ 1초씩 끊어 쓰는 것)
시간을 슬라이싱, 분할시켜서(시분할 방식)
라우터가 보내야 할 데이터를 얼만큼의 크기만큼 쪼갤 건지 정하고,
쪼갰을 때 나온 하나의 크기를 ‘패킷’ 이라 한다.
이것이 패킷스위칭.
HTTP 는 패킷 전달 통신이다.
 
그림을 다시 보자.
박스 안에 실제 Data가 있다. 패킷 안에 있는 데이터를 바디 데이터라 하고,
패킷 밖에 있는 박스에는 IP 주소가 붙은 스티커가 붙어있다.
notion image
패킷으로 쪼개진 데이터는 독립적으로 하나하나씩 이동하는데,
목적지에 ex. 1-2-3 이라는 전송된 순서로 들어오지 않는다면, 순서대로 재조립 과정을 거치게 된다.
또한 목적지에 데이터가 3번과 2번만 도착하면 다시 보내라는 재전송 요청을 할 수 있다.
 
라우터는 패킷을 스위칭(전환), 포워딩(전달)하는 역할을 한다.
라우터는 패킷의 목적지 IP 를 확인하고, 해당 목적지로 향하는 최적의 경로를 찾는다.
그렇기 때문에 데이터 박스에 IP 가 있어야 함, Data 가 Body, IP 는 Header. (헤더와 바디로 나뉘어짐)
notion image
 
우리는 패킷스위칭 방식 쓸거임.
Share article

eunmouse