본문 바로가기

CS

TIL no.59 - 01 컴퓨터 네트워크와 인터넷

비전공자로서 컴퓨터 공학에 대한 기초적인 지식 없이 코딩을 배우게 되었고 프론트엔드 개발자로서 취업을 했지만, 기본기가 탄탄한, 잘 아는 개발자가 되기 위해서는 컴퓨터에 대한 이해가 꼭 필요할 것 같았습니다.
컴퓨터로 인터넷과 연결된 사물들로 소통을 연결하는 일을 하면서 컴퓨터 네트워크에 대한 이해와 인터넷의 원리에 대해 이해가 꼭 필요하다고 생각하여 공부를 시작하게 되었습니다.

이 책을 배우는 최종 목표는 컴퓨터 네트워크에 대해서 '어떻게, 무엇을, 왜' 를 깊이 이해하는 것입니다.
정리하는 내용들은 강의와 전공 서적을 공부한 내용을 바탕으로 작성했습니다. 참고 자료는 아래에 적어두었습니다.

 

 

라우터 : 메시지를 전달받아서 목적지로 전달해주는 아이

무선 링크 : lte, wifi ... 

 

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

컴퓨터 네트워크 즉, 종단 시스템은 통신 링크와 패킷 스위치의 네트워크로 연결된다.

 

패킷(packet) : 한 종단 시스템이 다른 종단 시스템으로 보낼 데이터를 가지고 있을 때 송신 종단 시스템은 그 데이터를 세그먼트로 나누고 각 세그먼트에 헤더를 붙인다. 이렇게 만들어진 정보 패키지이다.

 

패킷 스위치는 입력 통신 링크의 하나로 도착하는 패킷을 받아서 출력 통신 링크의 하나로 그 패킷을 전달한다.

패킷 스위치는 많은 형태와 특징이 있는데 오늘날의 인터넷에서 가장 많이 사용되는 두가지 종류로는 라우터, 링크 계층 스위치 가 있다.

 

network edge 

- client / server model

client : 자기가 원할 때 서버로부터 자기가 원하는 정보를 가져온다.

server : 항시 24시간 연결되어 있어 클라이언트의 요청을 기다린다.

 

- 2가지 데이터 통신 서비스 방법

connection-oriented service 

 : TCP ( 대처에 능하고 많은 것에 컨트롤이 가능, 신뢰성 있는 프로토콜 )

Transmission Control Protocol 전송 제어 프로토콜

서버와 클라이언트 간의 데이터를 신뢰성 있게 전달하기 위해 사용하는 프로토콜 입니다.

flow control : 보내는 자는 받는 자에 알맞는 속도로 보내준다.

congestion control 

제공해주는 것이 많지만 비용이 든다. ( 컴퓨터 리소스, 네트워크 리소스 )

 

connectionless service 

 : UDP ( 컨트롤을 안해주고 대처를 하지 않음, 신뢰성 없는 프로토콜 )

unreliable data transfer

no flow control

connectionless

no congestion control

 

P : 프로토콜 

사람 간의 대화, 통신을 위해서도 서로 이해할 수 있는 언어, 공용된 언어를 사용해 전세계 모든 사람과 대화를 할 수 있다고 하면 컴퓨터 간에서도 서로 이해할 수 있는 언어, 공용된 언어를 사용해야 하는데 이것이 바로 프로토콜이다. 서로 통신 가능한 통신 규약.

프로토콜은 둘 이상의 통신 개체 간에 교환되는 메시지 포맷과 순서뿐 아니라, 메시지의 송수신과 다른 이벤트에 따른 행동들을 정의한다.

 

종단 시스템, 패킷 스위치, 인터넷의 다른 구성요소는 인터넷에서 정보 송수신을 제어하는 여러 프로토콜을 수행한다. 특히 TCP 와 IP 는 인터넷에서 가장 중요한 프로토콜이다. 

 

Router ( 라우터 )

라우터는 접속된 통신 링크 중 하나로 도착하는 패킷을 받아서 접속된 통신 링크 중 다른 링크로 그 패킷을 전달한다.

인터넷에서 모든 종단 시스템(컴퓨터 네트워크) 는 IP 주소라고 하는 주소를 갖는다. 소스 종단 시스템이 패킷을 목적지 종단 시스템으로 보내고자 할 때, 소스는 패킷의 헤더에 목적지의 IP 주소를 포함한다. 

 

회선 교환 circuit switching 

: 출발지에서 목적지를 예약해놓고 특정 사용자가 사용가능하게 해놓은 것.

용량이 100이고 한명당 10일 경우, 딱 10명 수용가능.

패킷에서는 발생하는 지연이 발생하지 않기때문에 전화나 영상통화같은 실시간 통신에 적절하게 사용된다.

 

패킷 교환 packet switching 

: 때마다 요청에 의해 전송해준다.

일단 수용 용량에 제약이 없다. 동시에 사용하는 경우가 많지 않는 인터넷 패턴에 더 잘 맞음.
보다 많은 사용자에게 제공할 수 있다. but 수강신청처럼 동시 접속자가 많은 경우에 문제가 생길 수 있다.

 

회선 교환 대 패킷 교환

: 회선 교환과 패킷 교환의 특징을 미루어 보았을 때 패킷 교환이 회선 교환보다 전송 용량의 공유에서 더 효율적이다.

패킷 교환이 데이터 낭비 없이 더 효율적으로 사용되며 회선 교환의 소프트웨어 구조가 복잡하다는 것 또한 패킷 교환의 사용이 더 선호되는 이유이다. 회선 교환보다 구현 비용이 적다. 이러한 이유들로 최근 전화망 회선까지도 패킷 교환으로 사용하기도 한다.

 

라우터에서 생기는 delay 

packet 을 받으면 검사, outgoing edge 에 꽉차있으면 큐에서 차례대로 기다리게 된다.

검사하는데 걸리는 지연을 처리 지연, 큐에서 링크에 전송되기를 기다리는데 걸리는 지연을 큐잉 지연이라고 한다.

기다린 후 , 데이터가 나가게 될 때 걸리는 시간( Transmission delay )을 전송 지연이라고 한다.

전파 지연 ( Propagation delay ) 은 링크로 나가는 동안 걸리는 시간이다. ( 빛의 속도 : 어쩔 수 없다 )

 

- 이러한 delay 들을 줄이는 것이 우리가 해야 할 일.

라우터 성능을 개선하여 processing delay 개선, 케이블 공사로 회선 수를 늘리면 Transmission delay 개선, queueing delay 가 생기는 이유는 각 사용자에 따라서 유동적이다. 그래서 개선시키기 가장 골치 아픈 부분. 네트워크 상에서 생기는 delay 는 결국 queueing delay 에서 발생하는 것이다. 사용자가 몰리다 몰리다 que 에서 떨궈져 나가기 때문에 packet loss의 문제가 일어난다. 

 

패킷 손실 ( packet loss ) 을 해결하기 위해서는 재전송이 필요하다.

재전송에는 직전 라우터가 재전송하는 방법과 처음부터 다시 재전송하는 방법이 있는데 라우터는 하는 일이 많기 때문에 최대한 단순 작업으로 속도에 집중하기 위해 처음부터 다시 재전송을 거치는 방식으로 packet loss 를 해결한다.

 

 


 

 

다른 컴퓨터에 위치한 프로세스를 지칭하는 인덱스 = IP 주소, PORT

 

 

프로토콜의 계층 구조

< 5개 계층의 인터넷 프로토콜 스택 >

먼저 애플리케이션 계층을 다루고 아래로 내려가는 톱 - 다운 방식을 채택하고 있다.

-------------

애플리케이션   : HTTP, FTP

-------------

트랜스포트      : TCP / UDP , 클라이언트와 서버 간에 애플리케이션 계층 메시지를 전송하는 서비스를 제공한다.

-------------

네트워크         : IP , 한 호스트에서 다른 호스트로 데이터그램을 라우팅하는 책임을 진다.

-------------

링크

-------------

물리              : 프레임 내부의 각 비트를 한 노드에서 다음 노드로 이동한다.

-------------

 

 

 

 

 

 

 

📎Reference
참고 강의 : 한양대학교 이석복 교수 - 컴퓨터 네트워크
www.kocw.net/home/search/kemView.do?kemId=1169634

 

참고 서적 : 컴퓨터 네트워킹 : 하향식 접근 

'CS' 카테고리의 다른 글

TIL no.60 - 02 애플리케이션 계층  (0) 2021.03.28