본문 바로가기

컴퓨터과학14

'게임 서버 프로그래밍 교과서' 시작 해당 시리즈에서는 책 '게임 서버 프로그래밍 교과서'를 공부하고 얻은 지식들을 정리하려 합니다. 오류가 있다면 덧글로 남겨주신다면 감사하겠습니다. 게임 서버 프로그래밍 교과서 - YES24 게임 서버 프로그래밍 교과서 - YES24 네트워크 기초부터 고성능 서버 제작 기술까지 프라우드넷 개발자의 경험을 고스란히 담았다[세븐나이츠], [마블 퓨처 파이트], [마비노기 영웅전], [스트라이트 파이터5] 등 전세계 13개국, 190개 www.yes24.com 동기 요즘 시대의 게임에서 온라인이란 없어도 되지만 가능하면 꼭 넣어야 하는 요소라 생각한다. 일단 게임을 다운로드할 때에도 꼭 필요하기도 하고... 그냥 순수한 싱글 게임을 플레이하는 것보다는 친구와 함께, 또는 모르는 사람이더라도 함께 즐기면 더 즐겁.. 2022. 2. 10.
3-6. 전송(Transport) 계층: TCP 혼잡 제어(Congestion control) 해당 글은 한양대학교 이석복 교수님의 과목 "컴퓨터 네트워크"를 공부하고 작성한 글입니다. 틀린 내용이 있으면 덧글로 지적해주시면 감사하겠습니다. 컴퓨터 네트워크 - 한양대학교 | KOCW 공개 강의 컴퓨터네트워크 인터넷을 동작시키는 컴퓨터네트워크 프로토폴을 학습한다. www.kocw.net 혼잡 제어(Congestion control) 혼잡 제어(Congestion control)는 TCP의 주요 특징 중 하나이다. 그 개념이 왜 필요한지, 어떤 개념인지 알아보자. 1. 개념 만약 A에서 B로 데이터를 전송하면, 데이터는 바로 상대에게 날아가는 것이 아니라 네트워크를 거치게 된다. 라우터마다 수용할 수 있는 Queue의 길이가 정해져 있기 때문에, 데이터를 보낼 때는 상대의 버퍼 상태뿐만 아니라 네트워.. 2021. 10. 29.
3-5. 전송(Transport) 계층: TCP 2 해당 글은 한양대학교 이석복 교수님의 과목 "컴퓨터 네트워크"를 공부하고 작성한 글입니다. 틀린 내용이 있으면 덧글로 지적해주시면 감사하겠습니다. 컴퓨터 네트워크 - 한양대학교 | KOCW 공개 강의 컴퓨터네트워크 인터넷을 동작시키는 컴퓨터네트워크 프로토폴을 학습한다. www.kocw.net 이전 글(3-4. 전송(Transport) 계층: TCP (tistory.com))에 이어 이번에는 TCP의 중요한 기능인 Flow control, Congestion control을 배워보자. 1. 흐름 제어(Flow control) 데이터의 전송 속도는 어느 정도가 적절할까? 당연히 데이터는 빨리 보내면 보낼수록 좋을 것 같지만, 실상은 그렇지 않다. 아무리 빨리 보내도 수신자가 처리할 수 없을 정도로 빠르게 전.. 2021. 10. 28.
3-4. 전송(Transport) 계층: TCP 해당 글은 한양대학교 이석복 교수님의 과목 "컴퓨터 네트워크"를 공부하고 작성한 글입니다. 틀린 내용이 있으면 덧글로 지적해주시면 감사하겠습니다. 컴퓨터 네트워크 - 한양대학교 | KOCW 공개 강의 컴퓨터네트워크 인터넷을 동작시키는 컴퓨터네트워크 프로토폴을 학습한다. www.kocw.net TCP 0. Overview TCP의 특징을 요약하면 다음과 같다. point-to-point sender 하나에 receiver 하나가 연결된다. TCP는 소켓 한 쌍의 통신을 책임진다. reliable, in-order byte 신뢰성이 보장되므로 데이터가 유실되거나 데이터에 에러가 발생하지 않는다. 전송하면 데이터가 순서대로 전송된다. pipelined 파이프라인 방법을 사용하여, 한 번에 데이터를 쏟아붓는다... 2021. 10. 17.
3-3. 전송(Transport) 계층: 파이프라인 프로토콜 해당 글은 한양대학교 이석복 교수님의 과목 "컴퓨터 네트워크"를 공부하고 작성한 글입니다. 해당 강의를 직접 수강하시려면 다음 링크를 참고해주세요. 컴퓨터 네트워크 - 한양대학교 | KOCW 공개 강의 컴퓨터네트워크 인터넷을 동작시키는 컴퓨터네트워크 프로토폴을 학습한다. www.kocw.net 파이프라인 프로토콜(Pipelined protocol) (1) 필요한 이유 기존의 RDT 3.0은 메시지를 하나의 링크를 따라 보낸다. 이 경우 하나의 패킷이 도착하고 ACK가 돌아올 때까지, 해당 소켓은 아무런 메시지를 보낼 수가 없다. 여기서 하나의 패킷이 전송되고 ACK가 돌아올 때까지의 시간을 RTT(Round Trip Time, 왕복시간)라 한다. RTT(Round Trip Time, 왕복 시간): 패킷망.. 2021. 10. 14.
3-2. 전송(Transport) 계층: 신뢰성 있는 데이터 전송(RDT) 해당 글은 한양대학교 이석복 교수님의 과목 "컴퓨터 네트워크"를 공부하고 작성한 글입니다. 해당 강의를 직접 수강하시려면 다음 링크를 참고해주세요. 컴퓨터 네트워크 - 한양대학교 | KOCW 공개 강의 컴퓨터네트워크 인터넷을 동작시키는 컴퓨터네트워크 프로토폴을 학습한다. www.kocw.net 1. TCP에서의 신뢰성 전송 계층에서 사용되는 대표적인 프로토콜 중 하나인 TCP는 신뢰성이 높다. 여기서 신뢰성이 높다는 것은 애플리케이션(Application) 프로세스 사이에 전달되는 데이터가 "하나도 유실되지 않고" 전달되도록 하는 것을 말한다. 역으로 말하면 TCP가 위치한 전송(Transport) 계층의 하위 레벨에서는 신뢰성이 보장되지 않는 환경(Unreliable channel)이라는 말이기도 하다.. 2021. 10. 10.
3-1. 전송(Transport) 계층: 다중화(Multiplexing)/역다중화(Demultiplexing) 해당 글은 한양대학교 이석복 교수님의 과목 "컴퓨터 네트워크"를 공부하고 작성한 글입니다. 해당 강의를 직접 수강하시려면 다음 링크를 참고해주세요. 컴퓨터 네트워크 - 한양대학교 | KOCW 공개 강의 컴퓨터네트워크 인터넷을 동작시키는 컴퓨터네트워크 프로토폴을 학습한다. www.kocw.net 1. 다중화(Multiplexing)와 역다중화(Demultiplexing) (1) 다중화 다중화(Multiplexing)와 역다중화(Demultiplexing)이라는 단어가 있다. 전송(Transport) 계층에서 다중화(Multiplexing)란 애플리케이션(Application) 계층의 여러 개의 소켓에서 전송되는 데이터를 모아 하나로 모으는 것이다. 이렇게 모아진 메시지 데이터를 세그먼트(Segment)라 .. 2021. 10. 10.
2. 소켓 프로그래밍 해당 글은 한양대학교 이석복 교수님의 과목 "컴퓨터 네트워크"를 공부하고 작성한 글입니다. 해당 강의를 직접 수강하시려면 다음 링크를 참고해주세요.컴퓨터 네트워크 - 한양대학교 | KOCW 공개 강의 컴퓨터네트워크 인터넷을 동작시키는 컴퓨터네트워크 프로토폴을 학습한다. www.kocw.net 소켓 프로그래밍 소켓은 컴퓨터 네트워크를 경유하는 프로세스 간 통신의 종착점이다. 개발자는 운영체제에 이미 구현된 소켓을 통해 애플리케이션 프로세스 간 통신을 할 수 있으므로, 소켓은 통신 API로도 볼 수 있다. 소켓은 하위 레벨인 Transport 계층에 의존한다. 소켓을 사용할 때, TCP 방식을 이용하려면 TCP를 위한 소켓, UDP 방식을 이용하려면 UDP를 위한 소켓을 생성해야 한다. 어떤 프로토콜을 사용.. 2021. 10. 6.
1-2. 컴퓨터 네트워크 기본 2 해당 글은 한양대학교 이석복 교수님의 과목 "컴퓨터 네트워크"를 공부하고 작성한 글입니다. 해당 강의를 직접 수강하시려면 다음 링크를 참고해주세요. 컴퓨터 네트워크 - 한양대학교 | KOCW 공개 강의 컴퓨터네트워크 인터넷을 동작시키는 컴퓨터네트워크 프로토폴을 학습한다. www.kocw.net 1. 네트워크 계층 네트워크 계층은 5개로 구분되어 있다. 네트워크 계층별로 갖는 대표적인 프로토콜을 정리해보면 다음과 같다. Application 계층 대표 프로토콜: HTTP Transport 계층 대표 프로토콜: TCP/UDP (TCP가 가장 대표적이다) Network 계층 대표 프로토콜: IP Data link 계층 대표 프로토콜: WIFI, LTE/3G, Ethernet Physical 계층 1) 애플리케.. 2021. 10. 3.