본문 바로가기

네트워크

(6)
Reliable 와 TCP 프로토콜의 차이점 Reliable 와 TCP 둘 다 신뢰성을 보장하지만 실제 동작하는 계층과 방식에 확연한 차이가 있다. 먼저 Reliable 과 RPC 같은 경우 애플리케이션 계층에서 동작한다. 이러한 Reliable 은 RPC의 호출에 대한 신뢰성을 보장한다. 즉, 패킷의 손실을 잠지 및 재전송 시도를 하는 TCP와 비슷한 역할을 수행한다. 다만, Reliable 은 게임 로직 수준에서의 함수 등의 호출 성공 여부를 보장하는 것까지가 역할이다. 다시 말하면 Reliable 의 신뢰성 보장은 프로세스 내에서 그 중에서도 객체나 함수 호출에 대한 신뢰성 보장이다. TCP는 전송 계층에서 사용되는 프로토콜로 전송 여부를 3핸드세이킹 방식으로 연결 확인 후 통신하도록 만든다.이때, 패킷 손실, 순서가 바뀌는 문제도 자동으로 ..
TCP/UDP 프로토콜 TCP (Transmission Control Protocol)TCP 는 네트워크 통신에서 연결 지향적이면서 신뢰성을 보장하는 프로토콜이다. OSI 7계층 기준으로 전송 계층에서 사용하는 프로토콜이다.  3-way handshake 방식을 이용한 연결 성립 방식 3-way handshake3-way handshake 는 TCP 의 연결 과정에서 사용하는 절차이다. 송신자와 수신자가 데이터 전송을 시작 전에 서로가 연결되어 있는지 확인하는 과정이다. TCP의 연결 지향적 프로토콜의 신뢰성을 보장한다.1.  SYN 클라 -> 서버로 연결 요청클라가 서버에 TCP 연결을 요청하는 패킷을 보내는 것.SYN 플래그가 있어 연결 요청임을 알 수 있다. 플래그에는 시퀀스 번호를 포함한다.2. SYN-ACK서버 -> ..
네트워크 ( OSI 7 계층, TCP/IP 4 계층 프로토콜 ) 네트워크 란?컴퓨터 혹은 기타 기기들이 리소스를 공유하거나 데이터를 주고 받기 위해 유선 혹은 무선으로 연결된 통신 체계 네트워크의 대표적인 기능들애플리케이션 목적에 맞는 통신 방법 제공신뢰할 수 있는 데이터 전송 방법 제공네트워크 간의 최적의 통신 경로 결정목적지로 데이터 전송노드 사이의 데이터 전송 네트워크 프로토콜통신 기능이 제대로 동작하기 위해 통신 참여자들 사이에 약속된 통신 규약위의 네트워크 기능과 역할이 많아 하나의 프로토콜로 정의하기 어렵다.**모듈화** 를 통해 기능 별로 분리해서 관리한다. OSI model( 7 layers )네트워크가 수행하는 역할(기능) 별로 계층적 구조를 가지게 만들어 범용적인 네트워크 구조를 만드는 것.*TCP/IP* 스택 ( 4 layer )은 인터넷에 특화된..
3장 버클리 소켓 정리 버클리 소켓은 인터넷으로 데이터를 주고받는데 가장 널리 쓰이는 라이브러리이다. 플랫폼맏 라이브러리의 인터페이스가 조금씩 다르긴 하지만 핵심 요소는 같다. 라이브러리의 핵심 자료형은 sockaddr 로, 여러 네트워크 계층 프로토콜의 주소를 나타낼 수 있다. 발신자나 수신자의 주소를 지정할 필요가 있을 때 이것을 사용하면 된다. UDP 소켓은 연결이 유지되지 않고 내부 상태도 없다. SOCK_DGRAM으로 UDP 소켓을 만들수 있다. UDP 패킷을 받으려면 운영체제가 포트를 하나 바인드 해주어야한다. TCP 소켓은 내부 상태가 있고 데이터 전송 전 연결을 먼저 한다.  소켓은 동작 중 호출 스레드를 블로킹하게 된다. 이것은 실시간 프로그램에서는 문제다,따라서, 멀티 스레딩, 논블로킹I/O, select()..
2장 인터넷 - 정리 패킷 스위칭서킷 스위칭을 대체할 신기술로 나온 스위칭 기법이다.서킷 스위칭은 정보 송수신 간에 회로 연결을 통해 연결을 유지하였다. 이는, 회선을 한 번에 하나의 통신 전용으로 사용해야 했기 때문에 가용성이 좋지 못했다. 패킷 스위치은 회선은 공유하되, 송수신 내용을 패킷이라는 단위로 나누어 저장 후 전달 절차를 사용해 보내는 기법이다.각각의 데이터들이 패킷으로 묶여있기 때문에 여러명이 동시에 데이터를 수신할 수 있다. 이러한 패킷 스위칭을 구체화한 프로토콜이 점점 거대화되며 오늘날 인터네의 일부가 되었다.(1822 프로토콜)1822 프로토콜은 긴 세월 동안 계속 진화하여 여러 프로토콜의 형태를 띄게 된다. 그리고 이러한 많은 프로토콜들의 집합을 TCP/IP 스택으로 부르게 된다. TCP/IP 스택의 계..
멀티 플레이어 게임 프로그래밍 1장 요약 1.1 로컬 멀티플레이어 게임- 한 대의 컴퓨터에서 2명 이상의 플레이어가 즐기는 게임 1.2 초기 네트워크 멀티플레이어 게임- 직렬 포트로 컴퓨터를 서로 연결하여 플레이하는 방식- 물리적 연결이 필수적이다보니 로컬 네트워킹 형식을 채택하는 경우는 드물었다- 이후, LAN 과 관련한 개념이 나오며 로컬 네트워킹이 주목받게 되었다. 1.3 MUD ( Multi-User Dungeon) 게임- 텍스트 기반으로 여러 플레이어가 같은 가상 공간에 서로 동시에 접속하여 즐기는 형태의 멀티 플레이어 게임- 이후, MMO 로 발전된다. 1.4 LAN- 근거리 통신망, 가까운 지역 내에서 서로 연결된 컴퓨터의 네트워크를 의미한다.- 직렬 포트를 이용한 근거리 통신망- 이더넷을 이용한 근거리 통신망 레이턴시 : 네트워크..