❗️이 글은 '모두의 네트워크' 책을 읽고 난 후의 생각을 정리하는 글입니다.
📚 네트워크(network)
네트워크라는 단어는 꽤나 익숙한 단어이지만, 그 뜻을 제대로 이야기하기는 어려운 것 같다. 나는 이를 마치 그물망처럼(net) 서로 다른 점이 이어져 있는 형태로 이해하기로 했다.
📚 컴퓨터 네트워크란
컴퓨터 네트워크를 내가 이해한 네트워크의 관점으로 바라보니 컴퓨터(A)와 컴퓨터(B)가 서로 이어져 있는 것이라고 생각할 수 있었다. 다시 말해, 서로 다른 컴퓨터 간의 연결이 컴퓨터 네트워크인 것이다.
📚 컴퓨터 네트워크는 왜 필요한가?
결론부터 이야기하면 데이터를 서로 주고받기 위함이다. 예를 들어, 어느 섬 A로부터 다른 섬 B에게 물건을 보내기 위해서는 당연히 이 둘을 이어주는 통로 혹은 시스템이 필요할 것이다. 마찬가지로, 컴퓨터와 컴퓨터 사이에 데이터가 오고 가려면 이 둘을 이어주는 시스템이 필요한 것이다.
📚 컴퓨터 네트워크는 어디에 쓰이나?
위에서 말했듯이 일단 데이터를 주고받는 데에 쓰인다. 하지만, 이 밖에도 우리들이 사용하는 웹 브라우저의 많은 정보들과 메일을 송수신하는 데에도 컴퓨터 네트워크가 필요하다.
🧑💻
우리가 쓰는 인터넷도 네트워크의 종류이다!
📚 데이터는 어떻게 보내질까? <대역폭, 패킷>
이에 앞서, 대역폭에 대해 먼저 이야기를 해보겠다. 만약, 고속도로 위에서 같은 수의 차량들이 2차선 도로에 있을 때와 4차선 도로에 있을 때를 비교한다면, 당연하게도 4차선 도로가 교통 체증이 비교적 적을 것이다. 차량들이 지나다닐 수 있는 이 도로가 대역폭과도 같은 역할을 한다.
🧑💻
대역폭은 네트워크에서 이용 가능한 최대 전송 속도로 정보를 전송할 수 있는 단위 시간당 데이터의 전송량을 나타내는 것이다.
그럼 이제 네트워크를 통해 큰 데이터를 보낸다고 가정하겠다. 대역폭 위로 큰 데이터가 지나다니게 되면 다른 데이터들은 해당 데이터로 인해 원활하게 지나다니지 못하게 될 것이다. 다시 말해, 큰 데이터가 대역폭을 많이 차지하면서 네트워크가 혼잡해지고 데이터 송수신에 문제가 생기게 된다.
이를 해결하기 위해서 데이터를 주고받을 때 패킷을 사용한다. 패킷은 데이터의 작은 조각이다. 네트워크에서 데이터를 송수신할 때에는 어떠한 데이터이던 작게 나누어 패킷의 형태로 보내는 것을 규칙으로 정하였다고 한다.
🧑💻
하지만, 여기서 궁금해진다. 데이터를 패킷으로 쪼개어 보내는 이유는 특정 데이터가 대역폭을 많이 차지하는 것을 방지하고자 하는 것 같은데.. 만약 다른 데이터를 전송할 일이 없다면 하나의 큰 데이터는 그대로 보내도 문제가 없지 않을까? 책에 이러한 내용은 없었기에 직접 찾아보았다.
📚 다른 데이터가 전송되지 않는다는 전제 하에는 대역폭을 많이 차지해도 상관없지 않나? <데이터를 패킷으로 나누어 보내야 하는 이유>
데이터를 패킷의 형태로 보내는 규칙을 정한 이유는 단순히 큰 데이터가 대역폭을 많이 차지하는 것을 막기 위함이 아니라고 한다. 데이터를 패킷으로 나누어 보내는 이유는 신뢰성 있는 데이터 전송 때문이라고 한다.
데이터를 패킷으로 나누어 전송하면 각 패킷이 독립적으로 전송되고, 일부 패킷이 손실되거나 오류가 발생하더라도 해당 패킷만 재전송하기만 하면 된다. 이는 큰 데이터 덩어리에서 문제가 생겼을 때 전체를 다시 보내야 하는 상황에 비해 훨씬 효율적이라 한다.
📚 데이터를 패킷으로 나누어 보내는데, 잘게 조각난 데이터(패킷 모음)를 어떻게 퍼즐처럼 다시 맞추지?
실제로 우리가 퍼즐을 맞출 때 완성된 퍼즐의 모습이 없거나 조각이 하나라도 없다면 퍼즐을 완성할 수 없다. 데이터도 마찬가지이다. 패킷이 누락되었다거나 전송되지 않은 것이 있다면 데이터가 온전치 않을 것이다.
바로 위에서 일부 패킷이 손실(누락)되거나 오류가 발생해도 해당 패킷만 재전송할 수 있다고 했으니 이건 OK. 근데 완성된 모습이 있어야 패킷을 조합하여 원래의 데이터로 만들 수 있을 것이다. 이를 위해서 패킷에는 순서 정보를 포함하여 전송한다. 순서 정보가 포함되어 있기 때문에 패킷을 무작위로 받아도 본래의 데이터로 다시 재조립이 가능한 것이다.
🧑💻
약간 번외? 이기는 하지만 평소 스팀에서 이런저런 게임해 보는 것을 좋아하는데, 여러 게임을 동시에 설치가 안되었던 기억이 떠올랐다. 스팀 클라이언트에서 사용자의 PC로 게임을 다운로드하는 것도 네트워크를 통해 데이터를 전송받는 것이기 때문에, 패킷으로 데이터가 올 텐데 왜 여러 개를 다운로드하지 못하는 걸까?
📝
이것은 기술적인 제한 때문이 아니라, 주로 사용자 경험과 네트워크 효율성을 최적화하기 위한 Steam 플랫폼의 정책 때문이라 한다. 사용 가능한 네트워크 대역폭은 한정되어 있을 것이고, 여러 대용량의 게임을 동시에 다운로드하게 될 시에 각각의 다운로드 속도가 저하된다. 이는 곧 사용자 경험(UX)을 망치는 일이다.
🧑💻
학부생 때 네트워크 수업을 별생각 없이 들었던 기억이 난다. 이번 책을 읽고 생각하고 이해한 내용을 글로 풀어내보니 궁금한 점도 더 생기게 되었다. 내가 글쓰기 솜씨가 좋은지 나쁜지는 모르겠지만, 글 쓰는 것 자체는 재밌다. 공부한 내용을 내 방식대로 적는 것이 🍯
'네트워크' 카테고리의 다른 글
규칙이 없다면 어떻게 될까? - [네트워크의 규칙] (0) | 2023.11.17 |
---|---|
DMZ(DeMilitarized Zone) 네트워크 - [회사에서 하는 랜 구성] (0) | 2023.11.15 |
우리가 인터넷을 사용할 수 있는 이유 - [가정에서 하는 랜 구성] (0) | 2023.11.13 |
LAN과 WAN(네트워크의 범위) (0) | 2023.11.07 |
키보드에 있는 'A'키를 누른다면? (0) | 2023.10.31 |