네트워크 이론 기초

댓글 0
댓글을 작성하려면 로그인이 필요합니다.
아직 댓글이 없습니다. 첫 번째 댓글을 작성해보세요!

댓글을 작성하려면 로그인이 필요합니다.
아직 댓글이 없습니다. 첫 번째 댓글을 작성해보세요!
안녕하세요. 플밍 4기 입니다.
게임 개발을 배우기 전 네트워크 엔지니어 도메인에서 익히고 배웠던 네트워크 이론에 대한 기초 입니다.
학습에 도움이 되길 바라며 공유 드립니다. 😀
인터넷 환경에 접근 되지 않는 업무 PC 를 이용하여 업무를 할 일은 없을 것 입니다. 따라서 이 인터넷 환경이 말썽을 일으키는 경우가 태반입니다.인터넷의 시작이라 할 수 있는 TCP/IP 모델이 나온 것은 생각보다 오래되지 않았습니다.
미 국방부에서 초기 모델로 사용되다 1980년대 초, 인터넷 아키텍처 모델로써 처음 알려지게 되었습니다.
간혹, OSI 7 Layer 의 축소판으로 소개되어, TCP/IP모델이 더 늦게 출시 된 것으로 알고 있는 분들이 계시다만,
실제로는 OSI 7 Layer보다 더 먼저 나온 모델 입니다.

TCP/IP 모델은 간단히, 데이터 전송을 위한 계층과 데이터 처리를 위한 계층으로 나뉜다고 볼 수 있습니다.
디바이스(간단히 PC)간 통신의 전송에 대해서는 IP 가, 디바이스 내에서 어플리케이션까지의 데이터 전송은 TCP나 UDP가 담당합니다. 그 이후 어플리케이션에서는 데이터를 처리하게 되는 모델 입니다.
OSI 7 Layer 는 TCP/IP이후 정의 되었다고 전술 하였지만, 사실 별도로 정의하고 있던 아키텍쳐 모델 입니다. TCP/IP모델이 정의된 이후로 해당 모델을 같이 병합하여 현재 우리가 아는 OSI 7 Layer가 탄생하였습니다.
OSI 7 Layer는 TCP/IP모델에 비해 계층이 상세히 나뉘어져 있어 필요 당위성을 느끼기 어려울 수 있겠지만,
실제로 OSI 7 Layer 로 나뉜 계층을 토대로 개발 비용 산정이 되는 경우가 있습니다. 가령, Router라는 장비는 Layer 3 에 해당하는 프로토콜에 대해서만 제어하면 되기 때문에 다른 Layer에 대한 개발을 상세히 할 필요가 없어 그 개발 비용이 줄어듭니다. 또한, 교육 목적으로도 해당 모델은 유용합니다.

OSI 7 Layer 는 기본적으로 데이터가 Layer7 -> Layer1 으로 전달되며 관련 Header 가 붙는 캡슐화(Encapsulation) 가 일어나 전기 신호 혹은 광 신호를 통해 다른 디바이스에 전달됩니다. 전달 받은 데이터는 다시 어플리케이션에게 전달을 위해 **역캡슐화(Decapsulation)**가 일어납니다.
| Layer Number | 대표 Protocol | 대표 장비 |
|---|---|---|
| 1; Physical | 100Base-TX, 1000Base-TX, ... | UTP Cable, Fiber Cable, Fiber Transceiver, Hub |
| 2; Datalink | Ethernet, Frame Relay, ... | Switch |
| 3; Network | IP, ... | Router, IP 공유기(NAT) |
| 4; Transport | TCP, UDP, ... | Load-balancer |
| 5; Session | SSL, ... | - |
| 6; Presentation | ASCII, JPG, ... | - |
| 7; Application | HTTP, SMTP, ... | - |
프로토콜은 통신을 위한 약속 입니다. 사람 간 대화 시 한쪽은 영어로, 한쪽은 중국어로 이야기 하면 서로 대화가 되지 않을 것 입니다. 인터넷 통신도 마찬가지 입니다. 이를 위해 서로 간 약속을 위한 프로토콜을 정의하고 이 프로토콜을 지키며 통신합니다. 아래 실무에서 많이 접하는 프로토콜에 대해 간략히 소개 합니다.
Ethernet

현재 우리가 쓰는 인터넷을 포함한 대부분의 디지털 통신은 Ethernet 기반으로 통신합니다.
데이터의 단위를 Frame 이라고 합니다.
보통 MAC(Media Access Control**)**주소 라는 표현을 쓰는 출발지/목적지주소를 갖고 있습니다.
Ethernet 의 기본 동작은 동일 네트워크 상 모든 디바이스에게 뿌리는 것 입니다.
디바이스에서는 목적지 주소를 보고 자신이 받아야 하는 Frame인지를 판별합니다.
Ethernet 은 목적지 주소에 따라 조금 다른 동작을 합니다.
| 명칭 | MAC 주소 (목적지) | 동작 방식 |
|---|---|---|
| Unicast | Multicast 및 Broadcast 를 제외한 모든 주소 | 1:1 통신을 합니다. 단, 이는 Frame 을 인가하는 디바이스에서 목적 디바이스로 보내는 형태가 아니라, 목적지 주소가 해당 디바이스인 경우만 Frame 을 받아들이며, 나머지는 Frame 을 버립니다. |
| Broadcast | FF:FF:FF:FF:FF:FF | 1:ALL 통신을 합니다. 목적지 주소가 Broadcast 인 경우 같은 네트워크상 모든 디바이스는 이 Frame 을 받아들입니다. |
| Multicast | 01:XX:XX:XX:XX:XX | 1:N 통신을 합니다. 목적지는 "특정 그룹"이며, 해당 그룹에 속한 디바이스만이 Frame 을 받아 들입니다. |
ARP
Layer 2 와 Layer 3 의 사이를 이어주는 프로토콜입니다. 그렇기 때문에 Layer 2 에서 소개하는 곳도 있고 Layer 3 에서 소개하는 곳도 있습니다. 저는 해당 프로토콜이 동작하는 환경 기준으로 설명하기 때문에 Layer2 에서 설명합니다.IP만으로는 통신할 수 없습니다.Ethernet Frame 이 Broadcast로 전파가 가능한 영역입니다.IP 와 연결할 Ethernet 주소를 판별하기 위한 동작이 필요합니다. ARP 는 IP 를 이용하여 같은 네트워크 내 통신할 목적지 MAC주소 를 받아오는 역할을 하게 됩니다.
IP 는 우리가 흔히 아는 그 IP 주소 가 맞습니다. 192.168.0.1, 172.1.1.1, 20.193.113.211, ... 이런 포맷으로 보통 많이 사용하고 있습니다.
IP 주소는 아래와 같은 체계를 갖고 있습니다.
| 주소 범위 | 동작 | 설명 |
|---|---|---|
| - 192.0.0.0/8 - 172.0.0.0/8 - 10.0.0.0/8 | Unicast | 사설 IP 주소 대역.본 대역은 NAT 에서 주로 사용하며, 기본적으로 공인 IP 주소 대역에서 사설 IP 주소 대역으로의 통신은 불가 합니다. |
| 224.0.0.0 ~ 239.255.255.255 | Multicast | Multicast 를 위한 Group IP 주소 입니다. |
| 255.255.255.255 | All Hosts | 모든 Host 에 대한 주소 입니다. 잘 사용하지 않습니다. |
| 그 밖의 IP 대역 | Unicast | 공인 IP 대역 입니다. |
IP 는 출발지에서 목적지까지 변화하지 않습니다. 단, NAT 라는 장비가 통신 중간에 있다면 변경이 될 수 있습니다.
WAN side 와 LAN side 로 보통 구분됩니다.
WAN : 일반적으로 "공인 IP" 쪽으로 보시면 됩니다.LAN : 일반적으로 PC 와 연결되는 부분이라고 보시면 됩니다.Subnet Mask / Wild Mask / CIDR
10.0.0.1/24, 10.0.0.1 255.255.255.0 혹은 10.0.0.1 0.0.0.255 이런 방식으로 적힌 것을 보신 적이 있을 것 입니다. (없...을 수도 있겠네요 😅)Ethernet 에서도 언급한 Broadcast 전파 가능 영역 과 동일 합니다.AND 연산자를 통해 Network 주소와 Host주소로 나눌 수 있습니다. 이때 Network주소를 뽑는 Mask를 Subnet Mask, Host주소를 뽑는 Mask를 Wild Mask 라고 합니다.
Network 에 속하고 있습니다. 이 네트워크간의 연결이 어떻게 되어 있는지를 확인하고 공유하는 메커니즘이 여럿 있습니다.Network 데이터를 주고 받기 위한 Protocol 이 Routing Protocol 혹은 Route Protocol 이라 합니다.BGP, OSPF, IS-IS, RIP 등이 있습니다.Port 라는 개념이 있습니다. Port 는 어플리케이션이 네트워크와 연결된 인터페이스의 주소로 이해하시면 좋습니다.
신뢰성 보장하는 통신입니다. FTP를 이용한 파일 전송, SSH 나 Telnet 접속, Web Browser 사용 등에 많이 사용 됩니다.흐름 제어를 위한 Control Flag 가 있다는 것 입니다. 이를 이용해 세션을 맺고, 데이터를 보내거나 데이터를 요구하고 세션을 닫거나 합니다.느리다 라는 이야기를 간혹 합니다. 그 이유는 TCP 는 누락되거나 잘못된 데이터가 올 경우 다시 보내기(Retransmission) 때문입니다. 이것이 단순히 왜 느린가 싶겠습니다만, 네트워크 환경이 좋지 못 한 곳에서는 Packet Drop (혹은 Loss) 이라는 유실이 발생됩니다. 잦은 유실이 발생되면 Retransmission 이 잦게 발생되니 데이터 전송에 그만큼 시간이 걸리겠죠? 😀
신뢰성을 보장하지 않습니다. 즉, Packet Drop 이 발생되었을 경우, 유실된 Packet 을 다시 보내지 않습니다. 따라서 UDP 는 데이터를 보낸 후 완료까지가 TCP 보다는 빠릅니다.Data에 대한 보안을 담당합니다. 이를 위해 인증서를 서버에 갖고 있어야 하며, 클라이언트는 서버 측에 갖고 있는 인증서 및 알고리즘 등에 대한 정보를 받아 이를 통해 서로 간에 암호화된 데이터를 주고 받게 됩니다.http:// 혹은 https:// 로 시작하게 적는 경우가 많을 것 입니다. 네. 바로 이것들 입니다. (참고로, https 는 간단히, 통신에 SSL/TLS 를 이용한 암호화를 사용한다는 의미입니다 😀)문자열로 접근할 수가 없습니다. 위에 언급했던 Layer3 의 IP Address 를 이용해야 합니다.IP Address 를 알고 있어야 할 것입니다. 그렇다면 우리 머리가 아주 좋아야 할 것 입니다.문자로 된 주소를 IP Address 로 변환해 주는 서비스 입니다.
XR을 활용한 게임 개발 3기(유니티) 수강생입니다. 곧 수료 하지만 앞으로 이곳에 가끔 저의 개발 경험이 나 지식 기록할까 합니다. 더 나아가 이 사이트가 제 개인위키의 역할을 할 수 있으면 좋겠습니다. 한국 게임 시장을 흔들겠습니다

게임 광고 수익은 단순히 광고를 붙이는 것이 아니라, 여러 광고 네트워크를 경쟁시켜 가장 높은 수익을 만드는 구조입니다.

다이어그램을 그리는 데 있어서 가장 어려운 점은 무엇일까. 개인적으로는 "어느 정도까지 상세하게 그려야 하는가"라는 고민이 가장 크다. 너무 추상적으로 그리면 전달력이 떨어지고, 너무 상세하게 그리면 복잡해져서 오히려 이해하기 어려워진다. C4 Model은 이러한 고민을 해결하기 위해 만들어진 소프트웨어 아키텍처 다이어그램 방법론이다. 시스템을 4가지 레벨