728x90

네트워크 11

세션 끊김 문제

세션 끊김 문제게임에서 세션이 일시적으로 끊기는 경우는 여러 가지 원인에 의해 발생할 수 있다. 이러한 원인들은 네트워크 상태, 서버 문제, 클라이언트 문제 등 다양한 요인에 의해 발생할 수 있다.네트워크 관련 문제네트워크 연결 불안정Wi-Fi 신호가 약하거나 간헐적으로 끊기는 경우.모바일 데이터 사용 시 신호가 약한 지역을 지나는 경우네트워크 혼잡으로 인해 일시적인 패킷 손실이 발생하는 경우방화벽 및 라우터 설정방화벽 설정이 세션 유지에 필요한 포트를 차단하는 경우NAT(Network Address Translation) 문제로 인해 세션이 끊기는 경우인터넷 서비스 제공업체(ISP) 문제ISP의 일시적인 서비스 중단 또는 지연ISP가 특정 트래픽을 제한하는 경우서버 관련 문제서버 과부하동시에 접속하는 ..

게임 서버 프로그래밍 교과서 5장. 게임 네트워킹

5장. 게임 네트워킹 5.1 UML 프로그램 구조 명세를 표현하는 대표적 수단이다. UML 시퀀스 다이어그램 UML 시퀀스 다이어그램에서는 객체와 메시지를 사용한다. 객체는 상호 작용의 주체(예 : 클라이언트, 서버)에 해당한다. 메시지는 상호작용의 내용(예 : 메시지 전달, 함수 실행, 이벤트 수신)으로 화살표이다. 화살표 방향을 보고 보내는 쪽과 받는 쪽을 구분할 수 있다. 시퀀스도의 주요용도는 객체 간 메시징 흐름을 일목요연하게 표현하는 것이다. 시퀀스도는 객체 사이에 메시지를 주고 받는 것을 한눈에 알아보기 쉽게 표현할 수 있다. 시퀀스도는 주고 받는 메시지를 어떻게 처리하는지 자세하게 표현하는 데는 한계가 있는데, 플로 차트를 함께 사용하면, 보다 자세하게 프로그램의 실행방식을 그림으로 묘사할 ..

게임 서버 프로그래밍 2장. 컴퓨터 네트워크

2장. 컴퓨터 네트워크 2.1 OSI 모델 계층 1 : 물리 계층 계층 2 : 데이터 링크 계층 계층 3 : 네트워크 계층 계층 4 : 전송 계층 계층 5 : 세션 계층, 6 : 표현 계층, 7 : 응용 계층 데이터 링크 계층 각 단말기는 고유한 주소를 갖는다. 단말기는 데이터를 프레임이라는 단위로 주고 받는다. 네트워크 계층 라우터는 서로 다른 LAN 사이에 컴퓨터 통신을 할 수 있게 하는 장비이다. 3계층에서 흔히 접하는 것은인터넷 프로토콜(Internet Protocol)혹은 IP라고 하는 것이다. 인터넷 프로토콜에서는 주소 형식 8비트 숫자 4개로 구성되어 있다. 우리가 흔히 IP 주소라고 칭하는 것이 이것이다. 데이터는 IP에 의해 IP 패킷 형태로 포장된다. 2.2 인터넷 서로 다른 종류의 많..

HTTP(Hyper Text Transfer Protocol)

HTTP(Hyper Text Transfer Protocol) 정의 웹 컨텐츠(HTML, 문서, 이미지, 파일 등)를 교환하기 위한 프로토콜 어떤 방식으로 데이터를 교환할 지 정해놓은 표준 규칙 연결 방식(HTTP 버전별 상이) 데이터 전송 방식(Method) 데이터 형식(Content - Type) 기능 다양한 클라이언트 - 웹서버 통신의 효율과 호환성을 높인다. 클라이언트 - 서버 간 데이터 통신은 다양한 방식으로 이뤄질 수 있다. 모든 클라이언트와 서버가 각각의 방식으로 데이터를 교환한다면 매번 방식이 달라서 번거롭고 복잡하다. HTTP는 통신 과정에서 모든 클라이언트와 웹서버가 표준적으로 사용할 규칙이다. Hyper Text로 분류되는 데이터를 교환하는 데 최적화 되어 있다. HTML 문서 CSS..

웹 서버

웹 서버 웹 서버란 무엇인가? 웹 서버는 웹 사이트를 구성하는 핵심 요소중 하나이다. 웹사이트를 방문할 때 사용자의 웹 브라우저는 웹서버에 요청을 보내고, 웹서버는 웹 페이지를 포함한 다양한 콘텐츠를 응답으로 전송하낟. 다음과 같은 역할 수행 웹 페이지 제공 : HTML, CSS, Javascript등 웹페이지를 구성하는 파일들을 저장하고 사용자의 요청에 따라 전송한다. 정적 콘텐츠 제공 : 웹 페이지에 포함된 이미지, 동영상, 음악 등 정적 콘텐츠를 저장하고 전송한다. 동적 콘텐츠 처리 : 서버 측 스크립팅 언어(PHP, Python, Ruby등)를 사용하여 동적으로 생성된 웹페이지를 제공한다. 보안 및 권한 관리 : 사용자의 접근 권한을 관리하고 웹사이트의 보안을 유지한다. HTTP 지원 : 웹 서버..

파일 식별자File Descriptor(FD)

File Descriptor(FD) 정의 운영체제가 파일, 소켓, 파이프등의 입출력 리소스를 관리하기 위해 생성해내는 비음수의 값이다. 프로세스가 각 리소스에 접근하려고 할 때 리소스에 대한 인덱스로 사용된다. 덕분에 프로세스는 리소스의 실제 물리적 위치를 몰라도, 인덱스를 통해 접근이 가능하다. 프로세스의 FD 활용 리소스 열기 프로세스가 open, socket 등의 system call을 사용해 리소스를 열면 운영체제는 해당 리소스에 대한 핸들을 생성하고, 이를 가리키는 파일 디스크립터를 프로세스에 반환한다. 리소스 조작 프로세스가 read, write, send, recv 등의 system call로 리소스를 조작할 때, fd값을 인자로 운영체제에 제공해야 한다. 운영체제는 이 fd를 통해서 해당 ..

소켓/소켓 API

소켓/소켓 API 소켓 API 정의 System call API 중 하나이다. 운영체제가 응용프로그램에게 제공하는 통신용 인터페이스다. 역할 컴퓨터 하드웨어의 네트워크 통신장치를 응용프로그램이 간접적으로 이용할 수 있게 해준다. 소켓 정의 응용프로그램에 설치하는 데이터 송수신 출입구 사용하는 이유 응용프로그램은 응용프로그램의 일만 처리하도록 하기 위해서 사용한다. 응용프로그램이 데이터 송수신을 위한 각종의 일을 직접 수행할 필요가 없다. 통신의 업무는 운영체제의 네트워크 스택이 해준다. 네트워크 스택이 하는 일 데이터의 패킷화 주소 지정 라우팅 전송 오류 처리 컴퓨터가 데이터들을 송수신할 때, 꼬이지 않게 해준다. 컴퓨터 내에서 실행되는 다양한 프로세스가 엄청난 양의 데이터 송수신을 일으키는데, 운영체제..

OSI 7계층 & TCP/IP 4계층

OSI 7 계층 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 말한다. 계층을 나눈 이유 통신이 일어나는 과정을 단계별로 파악할 수 있기 때문이다. 흐름을 한눈에 알아보기 쉽고, 이해하기 쉽고, 7단계 중 특정한 곳에 이상이 생기면 다른 단계의 장비 및 소프트웨어를 건들이지 않고도 이상이 생긴 단계만 고칠 수 있다. 계층 단계 1계층 - 물리계층(Physical Layer) 주로 전기적, 기계적, 기능적인 특성을 이용해서 통신 케이블로 데이터를 전송하게 된다. 통신단위는 비트이며 이것은 1과 0으로 나타내어지는, 전기적으로 on,off상태를 의미한다. 단지 데이터를 전달만 할뿐 전송하려는(또는 받으려는)데이터가 무엇인지, 어떤 에러가 있는지 등에는 전혀 신경을 쓰지 않는다. 단지 데이터 전기적인..

Chapter 01. 네트워크 프로그래밍과 소켓의 이해

네트워크 프로그래밍과 소켓의 이해 01-1 네트워크 프로그래밍과 소켓의 이해 네트워크 프로그래밍 : 서로 다른 두 컴퓨터가 데이터를 주고 받을 수 있도록 하는 것. 소켓(Socket) : 물리적으로 연결된 네트워크 상에서 데이터 송수신에 사용할 수 있는 소프트웨어적인 장치. 프로그래밍에서의 ‘소켓’은 네트웨크 망의 연결에 사용되는 도구다. 연결이라는 의미가 담겨있어서 ‘소켓’이라는 표현을 사용한다. 그리고 그 의미를 조금 더 확장해서 소켓은 네트워크를 통한 두 컴퓨터에 연결을 의미하기도 한다. socket 함수를 통해 소켓생성 소켓생성 - socket 함수 호출 IP주소와 PORT번호 할당 - bind 함수호출 연결요청 가능상태로 변경 - listen 함수호출 연결요청 대한 수락 - accept 함수호출..

728x90