[1] 컴퓨터네트워크 기본 개요

hyunsooo·2023년 6월 16일
0
post-thumbnail

이번 시간에는 컴퓨터 네트워크에 대한 기본적인 개요들에 대해서 알아보겠습니다.

1. 네트워크 구조

컴퓨터 네트워크의 구조는 크게 컴퓨터와 서버에 해당하는 네트워크 엣지와 데이터를 적절한 곳으로 보내주는 네트워크 코어, 이들을 연결하고 있는 링크(무/유선)으로 이루어져 있습니다.

패킷(Packet)
현재 인터넷은 패킷 기반의 전송 방식을 사용합니다. 사용자가 보내는 데이터를 패킷이라는 하나의 묶음 단위로 데이터 전송 단위 입니다. 여기서 패킷은 비트들의 집합으로 이루어져 있습니다.

1.1. 네트워크 엣지(edge)

end systems (hosts)

네트워킹을 할 수 있는 장치로 통신 링크(communication link)와 패킷 스위치(packet switch)의 네트워크로 연결되며 client와 server로 분류됩니다.

클라이언트는 자신이 원할때 링크에 연결을 하여 서버로 부터 원하는 정보를 가져오는 네트워크 엣지입니다.

서버는 클라이언트의 요청을 처리해줄 수 있는 엣지로, 언제 요청이 들어올지 모르기 때문에 24시간 가동이 되어야 합니다.

1.2. 통신 서비스

클라이언트와 서버가 소통을 하기 위해서는 인터넷을 이용한 통신 서비스를 이용해야 합니다. 통신 서비스는 크게 TCP(Transmission Control Protocol)UDP(User Datagram Protocol)로 나눌 수 있습니다.

connection-oriented service : TCP

TCP의 특징

  • reliable : 메세지가 손실되지 않기 때문에 신뢰성이 높다.

  • in-order : 메세지 순서가 지켜진다.

  • flow control : receiver가 처리할 수 있는 수준에 맞춰서 sender의 메세지 전달을 조절한다.

  • congestion control : 네트워크 상황에 맞춰 sender의 메세지를 조절한다.

예시 : 미국에 사는 친구에게 편지(패킷)을 등기로 보내는 경우

connectionless service : UDP

UDP의 특징

  • connectionless

  • unreliable data transfer

  • no flow control

  • no congestion control

  • 신뢰성이 필요 없는 경우에 많이 사용 (보이스 서비스같은 경우 몇 개의 패킷이 유실되도 큰 이상 없음)

  • 속도가 빠르다.

예시 : 미국에 사는 친구에게 편지(패킷)을 우체통에 넣는 경우

1.3. 프로토콜 (Protocol)

사람과 사람이 대화를 할 때도 원하는 질문을 하기 전에 반드시 서로가 이해할 수 있는 언어를 사용하고 있는지 확인합니다. 마찬가지로 컴퓨터도 서로가 이해할 수 있는 언어를 사용하는지 연결이 잘 되었는지 등 원활한 통신을 하기 위해 필요한 규약이 필요하고 이를 프로토콜이라고 합니다.

1.4. 네트워크 코어(core)

네트워크 코어는 네트워크 시스템의 중앙에 위치한 자원으로 데이터를 목적지까지 전달해주는 역할을 합니다. 네트워크 코어는 mesh of interconnected routers(수 많은 라우터들이 연결되어 있는) 구조로 이루어져 있습니다.

라우터가 데이터를 전달하는 방식은 크게 circuit switchingpacket-switching이 있습니다.

circuit switching

출발지에서부터 목적지까지 가는 길을 미리 예약을 하여 사용할 수 있도록 하는 방식입니다. 과거에 유선 전화망이 circuit switching 방식을 사용했습니다.

packet switching

현재 인터넷이 사용하고 있는 방식으로, 매순간 마다 적절한 곳으로 데이터를 전송하는 방식입니다.

인터넷에서 패킷 스위칭을 사용하는 이유

예를 들어, 초당 1 Mbps의 대역폭(bandwidth)을 가지고 있는 네트워크 시스템이 있습니다. 유저들은 100 kb/s 속도로 데이터를 전송하는 것으로 가정하여 두가지 스위칭 방식을 비교해보겠습니다.

  • circuit switching : 10명(100 kb/s * 10)의 유저까지 감당할 수 있음

packet switching을 알아보기 전에 우리가 인터넷을 사용하는 패턴을 분석해 볼 필요가 있습니다. 전화와 같은 통신은 연결되어 있는 동안 계속해서 말을 하지만 보통 인터넷은 하나의 데이터를 받고 일정 시간 사용하지 않는 패턴이 일반적입니다. 예를 들어, 우리가 네이버에 들어가 원하는 뉴스를 클릭할때 데이터 전송이 이루어지고 다른 기사를 클릭하기 전까지는 사용하지 않는 상태입니다. 따라서 circuit switching은 네트워크를 예약하는 방식이기 때문에 인터넷 환경에서는 적절하지 않고 packet switching과 같이 그때 마다 들어오는 순서대로 처리를 해주는게 훨씬 효율적입니다.

  • packet switching : 어떠한 제약 없이 들어오는 순서대로 처리해준다. circuit과 마찬가지로 10명 이상의 유저가 몰리게 되면 문제가 발생할 수 있지만 실제 인터넷 환경에서는 그런 상황이 발생할 확률이 희박하다.

패킷 스위칭의 delay

  1. nodal processing delay : 유저로 부터 들어온 패킷을 검사해야 함

  2. queueing delay : 순서를 기다리기 위한 딜레이. 라우터에는 나가는 속도보다 들어오는 속도가 더 빠른 경우 임시 저장(queue) 공간이 필요함.

  1. Transmission delay : queue에서 내 순서가 되면 데이터를 내보내는데 이 데이터 처음(첫 비트)부터 끝(끝 비트)까지 링크로 나가는데 걸리는 시간

  2. Propagation delay : 마지막 비트까지 링크에 올라온 순간 부터 다음 라우터까지 이동하는데 걸리는 시간.

delay를 줄이기 위한 방법

  1. 좋은 라우터를 사용하여 processing delay를 줄이기

  2. 링크의 대역폭을 넓혀 Transmission delay를 줄이기

  3. propagation delay는 빛의 속도로 링크 길이를 움직이는 것이라 조절하기 힘들다.

  4. queueing delay는 사용자들이 몰리는 시간에는 어쩔 수 없기 때문에 조절하기 힘들다. 만약 queue가 꽉찼는데도 불구하고 계속 사용자의 패킷이 들어온다면 패킷 loss가 일어나게 될 수 있다.

조금 더 알아보기

통신 서비스의 TCP는 신뢰성이 높은 통신이라고 했습니다. 만약 중간 라우터에 queue가 가득차서 패킷이 유실된다면 재전송을 실행하게 되는데 출발지부터 재전송하는 방식과 직전 라우터에서 재전송을 해주는 방식이 있습니다. 현재 네트워크의 디자인은 모든 정보들은 엣지들에 저장하고 중간에 라우터들은 단순 작업을 빨리 하게끔 특화되어 있기 때문에 dump core라고 부르기도 합니다. 따라서 TCP는 출발지(엣지)로부터 다시 재전송하는 방식을 채택합니다.

profile
CS | ML | DL

0개의 댓글