전체 글 131

[NW] #11. TCP ( Transmission Control Protocol ) / IP ( Internet Protocol )

* TCP(Transmission Control Protocol) / IP(Internet Protocol) TCP/IP 위키 일전에 내부의 네트워크 통신 구조 단원에서 설명할 때 간단하게 언급했다. TCP/IP 는 한 마디로 규약 ( 규칙 ) 이라는 말인데 TCP ( Trasmission Control Protocol ) 는 앞서본 4 계층 ( transport ) 에서 쓰는 규약이다. IP ( Internet Protocol ) 는 3 계층 ( network ) 에서 쓰는 규약이다. 따라서, TCP/IP 는 3,4 계층에서 쓰는 규약을 통틀어 말하고 데이터를 보내는 쪽에서 해당 규약, 규칙들을 이용해 송신하고 받는 쪽에서도 TCP/IP 규약을 통해서 해당 데이터를 분해해서 읽는다. 굉장히 범용성이 높..

네트워크/개념 2022.11.03

[UE] #2. Network Role

언리얼의 멀티플레이 게임 환경에서, 생성된 Actor, Pawn 과 같은 Object 들은 어떻게 동작시켜야할까 ?? 앞전에 언리얼은 서버-클라이언트 모델을 기반으로 동작한다고 했다. 클라이언트는 서버에게 요청하고 서버는 해당 데이터들을 연결된 클라이언트에게로 전달해야한다. 이를 기반으로 우리는 Game Object 들을 원하는 동작을 하게끔 코드를 작성해야하는데 서버 위에 존재하는 Object 와 클라이언트에 존재하는 Object 는 다른 방식으로 동작할 것이다. 언리얼에서는 Actor 의 동기화 방식을 'Role' 이란 개념으로 구분지어놨다. 간단하게 말해서, 네트워크 동기화를 위해 해당 Actor 의 역할에 대해 정의한 Enum 항목이다. 이후에 언급되겠지만, Local ( 현재 프로세스 ) / R..

[UE] #1. Replication

* 언리얼의 동기화 개념 멀티 플레이 게임에서의 가장 핵심적인 작업 중의 하나라고 볼 수 있다. 만약, 내가 플레이어를 때렸을 때 상대편은 내가 때리는 모습, 상대방이 맞는 모습을 볼 수 있어야하고 나는 상대편이 맞는 모습과 내가 때리는 모습을 볼 수 있어야한다. 네트워크 통신으로 연결된 클라이언트들이 자신들의 화면을 어떻게 공유하고 자신에 화면에서만 볼 수 있는 데이터들은 어떻게 구별해서 구현하는지 정확하게 알 필요가 있다. 서버-클라이언트 모델을 기반으로 하는 언리얼에서 어떤 과정으로 서버에서 처리하고 연결된 클라이언트들에게 어떻게 동기화시키는지 알아보자. * Dedicated Server vs. Listen Server 언리얼에서 사용하는 서버-클라이언트 모델이다. * Dedicated Server..

[OS] #13. RPCs ( Remote Procedure Calls )

이전 프로세스간의 통신 부분 ( 링크 ) 에서 직렬화와 마샬링을 살펴봤고 마샬링을 사용해서 해당 프로세스에서 네트워크 통신으로 원격으로 데이터를 상대방의 프로세스에게 정보를 보내 함수를 원격으로 실행하는 RPC 에 대해서 자세히 알아보려고 한다. * Function ( 함수 ) / Procedure ( 과정 ) RPC 를 살펴보기 전에 Function 과 Procedure 의 개념을 살펴보자. Function : 어떤 매개변수를 통해 어떤 결과 값을 반환하는 기능. Procedure : 어떤 작업이 동작되는 과정. 두 개념의 근본적인 차이는 '결과 값' 이다. 함수의 경우, 우리가 일반적으로 사용하는 프로세스에서 사용하는 함수인 반면 Procedure 의 경우, 어떤 일련의 과정이란 의미인데 RPC 는 ..

[NW] #10. UDP ( User Datagram Protocol )

* UDP ( User Datagram Protocol ) UDP 링크 ( 위키 ) UDP 링크 ( Wiki ) TCP/IP 를 알아보기 앞서 UDP 를 먼저 살펴보겠다. 트랜스포트 계층에서 쓰이는 대표적인 프로토콜 중 하나이다. 흔히들 '비연결형' , '비신뢰성' 이란 말들을 많이 사용하는데 일방적으로 데이터를 보내는 방식이 주이기 때문에 TCP 반대의 개념으로 비교된다. 즉, 수신 측이 어떤 상황이던 상관없이 일단 보낸다는 의미 이다. 그로 인해, TCP 가 포함하고 있는 수신자가 받을 준비가 되었는지 ( 3-handway-shake ), 네트워크는 혼잡하지 않는지 ( 혼잡 제어 ), 수신자가 데이터를 읽는 속도보다 데이터를 보내는 속도가 더 빠르진 않은지 ( 흐름 제어 ) 등의 추가적인 기능들을 사..

네트워크/개념 2022.10.17

[NW] #9. VLAN ( Virtual Local Area Network )

* VLAN ( Virtual Local Area Network ) => 한마디로 정의하자면, 스위치의 구역을 나누는 개념이다. 즉, VLAN 을 지원하는 스위치는 하나의 물리적 근거리 네트워크 기반 구조 상에서 여러 개의 가상 근거리 네트워크를 정의할 수 있게 한다. ( virtual 이란 추상적인 뜻은 논리적, 소프트웨어적인 개념이다. ) VLAN 을 자세히 알아보기 전에 몇 가지 개념에 대해 살펴보자. * Collision Domain Collision 도메인 링크 'Domain' 이란 개념은 '영역' 이다. 즉, 해석하면 충돌 영역이라고 볼 수 있는데 네트워크 관점에서 봤을 때의 충돌 영역은 데이터 전송 간에 스위치간 혹은 라우터간 등의 연결에서 충돌이 발생하는 구역이다. 일전에 이러한 충돌들을 ..

네트워크/개념 2022.10.11

[NW] #8. Broadcast, Multicast, Unicast

네트워크 통신에 있어서, 해당 데이터를 몇 명에게 전달할 것인가는 중요한 사안이다. 왜냐하면 결국 효율 때문이다. 보통의 통신에서는 서로 일대일로 데이터를 주고 받겠다. 하지만 경우에 따라서, 해당 데이터를 연결된 곳 모두에게 전달해야할 상황도 생길 것이다. 이 때, 각각 수신자에게 일일이 목적지를 써가며 데이터를 N 번 보내느냐 동시에 1번 통보해서 보내느냐에 따라서 네트워크 트래픽이 달라진다. 또 해당 데이터를 선택된 몇몇에게만 전달해야할 상황도 존재하는데, 이 때는 어떤 방법이 효과적일까. 이러한 상황들에서 쓸 수 있는 방식들을 알아보자. * 유니캐스트 ( Unicast ) 유니캐스트 링크 ( 위키 ) => 출발지와 목적지가 분명한 경우를 유니캐스트 전송이라고 한다. 보통 각각 Ehternet He..

네트워크/개념 2022.10.06

[NW] #7. CSMA/CD, CSMA/CA

'Ethernet' 은 데이터 링크 계층의 대표적인 프로토콜이다. 유선 통신의 문제는 여러 사용자가 네트워크 통신을 할 때, 통신 신호가 겹쳐서 못 받거나 충돌되는 상황이 발생한다. 이러한 문제를 해결하기 위해, LAN 환경을 기반하는 Ethernet 에서 사용하는 대표적인 접속 방식 에 대해 알아보려고 한다. CSMA / CD ( 유선 )이 그것이다. 더 나아가서, LAN 환경과는 상반되는 무선랜 ( wireless LAN ) 환경에서의 대표적 접속 방식 CSMA / CA ( 무선 )에 대해서도 알아볼 것이다. 먼저 공통적인 기반을 가지고 있는 CSMA 를 알아보자. * CSMA ( Carrier Sense Multiple Access ) CSMA 링크 ( IT 위키 ) => 의미를 해석하면 '다중 접..

네트워크/개념 2022.09.30

[NW] #6. URL, DNS 동작 과정

* URL ( Uniform Resource Locator ) URL 링크 ( 위키 ) => 네트워크 상에서 자원이 어디에 위치하는지 알려주는 규약. => URL 은 웹 사이트 주소 뿐만 아니라 컴퓨터 네트워크 상의 자원을 모두 나타낼 수 있다. * DNS ( Domain Name System ) DNS 링크 ( 위키 ) => 해당 도메인 네임을 숫자로 이루어진 IP 주소로 변환해주는 역할. => 보통 인터넷 회사에서 DNS 서버를 가지고 있고 사용자가 도메인 이름으로 요청을 보내면 해당 서버에서 'DNS 테이블' 을 사용해 IP 주소로 변환해준다. * 루트 DNS * 도메인 체계 * Domain Name 과 URL 차이점 => Domain Name 은 위 그림에서 분홍색으로 표시된 영역이다. IP 주소..

네트워크/개념 2022.09.28