본문 바로가기
컴퓨터네트워크개론

[컴퓨터네트워크] 1. Introduction

by 케찹이 2022. 1. 19.

현재 우리 인터넷의 크기는 원형의 매우 복잡한 연결선과 점들로 이루어져있다고 한다. 마치 우주를 생각하면 된다라 할까...

현재 인터넷 지도

 

기본적으로 네크워크 또는 인터넷이라고 하면 클라이언트와 서버라는 개념이 있어야 한다.

서버는 인터넷 서비스를 제공하는 컴퓨터이고 클라이언트는 인터넷을 사용하는 우리들의 컴퓨터이다.

 

그래서 위의 지도에서 대부분의 클라이언트와 서버는 지도의 가장자리에 위치해 있다. 이걸 영어로 network edge라고 한다. 반대로 network core에 있는 녀석들은 routers라고 불리는 녀석들이며 클라이언트와 서버 사이를 연결해주는 통로들이라고 생각하면 된다. 

 

network edge는 서버와 클라이언트를 연결하는데 연결하는 방식에는 두가지 방식이 있다. 첫번째 방식은 TCP이다.

TCP을 사용하는 이유는 다음 3가지가 있다.

1. Reliable, in-order byte stream data transfer, 신뢰성, 데이터들을 무조건 전송하게 한다는 의미이다. 서버에서 데이터를 보내거나 내가 서버에 데이터를 보낼때에 이 데이터가 전달된다는 보장을 한다.

2. flow control, 클라이언트 컴퓨터와 서버 컴퓨터의 각 사양은 서로 다를 수가 있다. 만약 서버 컴퓨터는 슈퍼 컴퓨터이고 클라이언트 컴퓨터는 90년대 컴퓨터인 상황에서 만약 서버에서 굉장히 빠른 속도로 클라이언트에게 데이터를 제공할시 문제가 발생할 수 있다. 그러므로 TCP가 이런 데이터 전송 속도를 컨트롤해준다.

3. congestion control, 클라이언트 컴퓨터와 서버 컴퓨터의 사양이 비슷할때 만약 둘의 데이터를 전송하는 통로가 굉장히 얇으면 원활히 데이터를 주고 받을 수 없게 된다. 그러한 속도를 제어하는 것이 congestion control이다. 

 

두번째 연결 방식이 UDP라고 한다. UDP의 특징이면 위 TCP의 장점이 없다라는 것이다. 속도 전달 제한 속도도 없고 데이터가 온전히 전달될지도 보장하지 않는다. UDP는 우리가 통화하는데 쓰인다고 한다. 

 

TCP 그리고 UDP 모두 protocol의 일종이며 protocol은 대화의 관습이라고 생각하면 좋다. 마치 우리가 서로 용건이 있어 전화를 하는 사람과 같이 처음 전화하자 마자 용건을 말하는 것이 아니고 인사말을 하고 용건을 얘기하는 것과 같이 중요한 이야기를 하기전 준비하는 것이 protocol이다.

 

TCP와 UDP에서 주고 받는 데이터를 우리는 package라고 한다. 

 

network core에는 수많은 router들이 데이터를 전송한다고 했다. 이 router들이 데이터를 전송하는 방식은 두가지가 있다. 

첫번째 방식은 circuit switching이다. 이 방식은 서버와 클라이언트간에 특별한 루트를 만들어 데이터를 제공한다. 그럼으로 각 사용자마다 다른 루트가 생성이 되면서 데이터를 제공하게 된다.

두번째 방식은 packet switching이다. 이 방식은 들어오는 데이터 순서대로 데이터를 전달하는 방식이다. 

packet switching

이 두가지 전달 방식의 서로 다른 점은 data, 즉 package가 최대로 동시에 보내졌을 때 나타난다. 

사용자의 package를 받아서 route는 pipe를 통해서 package를 전달할 때, 만약 pipe에 1Mb/s만큼 데이터를 전송할 수 있고 각 사용자는 매초 100kb/s를 전송할때 최대로 pipe를 통과할 수 있는 user는 10명이다(circuit switching을 사용할때). 그리고 packet switching을 사용할때도 최대 pipe를 통과할 수 있는 user는 10명이다. 

 

그러나 우리는 인터넷을 사용할 때 계속해서 package를 주고 받지 않는다. package를 주고 받는 상황은 웹페이지에 변화가 생겼을 때이다. 우리가 인터넷에서 기사를 볼때 기사를 클릭하고 몇초동안 기사를 보면 기사를 클릭할때만 package가 전송되고 기사를 보고있을 때는 package가 전송되지 않는다. 그렇기 때문에 packet switching을 사용할때는 10명 이상의 사용자가 같은 route들을 사용하게 된다. 

 

마지막으로 packet switching에서 delay가 나오는 상황들을 살펴본다.

delay가 나오는 이유는 총 4가지가 있다.

1. Nodal processing, 위 그림에서 볼 수 있듯이 nodal processing구간에서는 전달할 package가 잘못된 정보가 아닌지 확인을 하고 전달할 package의 목적지를 확인한다. 이때 delay가 발생한다.

2. Queueing, route에는 package가 잠시 저장될 수 있는 buffer또는 queue가 존재한다. 그 이유는 propagation이라고 쓰여져있는 link구간이 전달 속도를 맞추지 못하여서 잠시 package가 대기하기 위해서 있다. 이때 delay가 발생한다.

3. Transmission delay, package가 route를 빠져나와 link에 들어가는 시간을 이야기한다. packet의 길이가 L, link의 굵기가 R이라고 할때 package를 link에 보내는 속도는 L/R이다.

4. Propagation delay, package가 link를 통과해 route에 도착하는데 걸리는 시간이다. link에서 움직이는 속도는 전기가 흐르는 속도이기 때문에 link의 통로 크기가 넓으면 넓을 수록 전달 속도가 빨라진다.

 

여기서 route와 link를 더 좋은 것으로 바꾸어주면 1,3,4 delay가 더 많이 상쇄된다. 반대로 queueing delay는 어쩔 수 없는 구간이다. 

queueing구간의 queue또는 buffer는 그 크기가 제한적이기 때문에 만약에 사용자가 너무 많게 되면 package를 잃어버리는 상황이 나올 수가 있다. TCP는 package전송을 보장한다는 조건이 있기 때문에 이러한 상황이 발생하면 처음부터 다시 재전송을 시작한다. 

댓글