wanna be dev 🧑‍💻

Cool 하고 Sick한 개발자가 되고 싶은 uzun입니다

A.K.A. Kick-snare, hyjhyj0901, h_uz99 solvedac-logo

전체 글 163

[BOJ][Gold IV] 뱀 - 3190번 (C++)

[Gold IV] 뱀 - 3190 문제 링크 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net 분류 자료 구조(data_structures), 덱(deque), 구현(implementation), 큐(queue), 시뮬레이션(simulation) 문제 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임은 NxN 정사각 보드위에서 진행되고, 몇몇 칸에는 사과가 놓여져 있다. 보드..

Problem Solving/BOJ 2022.10.25

📡 [Network] 전송층의 프로토콜 TCP 자세하게 알아보기 (세그먼트 헤더 구조, 순서 번호 Seq와 확인 응답 ACK, Retransmisson, Flow control, 3-way handshake 등)

본 포스팅은 을 참고하여 작성되었습니다. 5. Connection-oriented transport: TCP 이제까지 신뢰적인 데이터의 전송 원칙을 다루었다면 TCP에 대해 알아본다. TCP에서 신뢰적인 데이터의 전송을 위해 오류 검출, 재전송, 확인응답, 타이머, 순서 번호와 확인응답 번호를 위한 헤더필드 등등을 살펴보도록 하자. TCP 둘러보기 : 개요 TCP의 여러 특징을 간략하게 정리해보자. TCP는… 1. point-to-point 점대점 프로토콜이다. 하나의 전송자와 하나의 수신자 소켓 대 소켓의 통신 멀티 캐스팅을 지원하지 않는다 2. 순서를 보장하는 byte str..

📡 [Network] 전송층의 신뢰성있는 데이터의 전송 : 파이프라이닝 (GBN Go-back-N, SR Selective Repeat)

본 포스팅은 을 참고하여 작성되었습니다. 신뢰성있는 데이터의 전송 : 파이프라이닝 파이프라이닝 : GBN (Go-Back-N) 방법 송신자의 경우 초록 : 보내고 응답받음 노랑 : 보내고 응답받지못함 파랑 : 보낼 수 있지만 보내지 않음 하양 : 아직 위에서 데이터를 받아오지 못함 전송자는 window 라는 개념을 이용하여 N개 까지 패킷을 보낸다. (노랑 + 파랑) window 란 ACK를 받지 않았더라도 보낼 수 있는 최대 패킷 수이다. 앞 쪽 패킷이 ACK를 받으면 슬라이딩 된다. 이 window와 그 동작은 2개의 상태로 관리 할 수 있다. send_base : ACK 되..

📡 [Network] 전송층에서 신뢰성있는 데이터의 전송 (가상의 프로토콜 구축해보기)

본 포스팅은 을 참고하여 작성되었습니다. Ch03 Transport Layer 4. Principles of reliable data transfer : 신뢰성있는 데이터 전송 신뢰성 있는 데이터의 전송을 구현하는 문제는 전송층 뿐만 아니라 링크 계층에서도 발생할 수 있는 문제이다. 이는 네트워킹에서 매우 중요하다. 상위 계층 객체에게 데이터에게 제공되는 서비스의 추상화는 데이터가 전송될 수 있는 신뢰적인 채널의 서비스 추상화이다. 신뢰적인 채널에서는 데이터가 손상되거나 손실되지 않는다. 신뢰적인 데이터 전송 프로토콜은 이러한 서비스 추상화를 구현해야한다. 신뢰성 있는 데이터의 ..

📡 [Network] 전송층에서의 UDP 통신 (Connectionless transport)

본 포스팅은 을 참고하여 작성되었습니다. Ch03 Transport Layer 3. 연결없는 전송 UDP : Connectionless transport: UDP UDP : User Datagram Protocol UDP는 군더더기 없고 기본 핵심만 있는 프로토콜이다. 최선을 다하지만 데이터의 손상, 손실의 가능성 존재를 보장하지 않는다 비연결성 (connectionless) UDP 전송자, 수신자 끼리 핸드셰이킹이 없음 각 UDP 세그먼트는 각각 독립적으로 다뤄진다 왜 UDP인가? 연결을 맺지않음으로 RTT 지연이 존재하지 않는다 (빠르다) 전송자, 수신자 간의 연결 상태가 없..

📡 [Network] 전송층 - 다중화와 역다중화 (Multiplexing & Demultiplexing)

본 포스팅은 을 참고하여 작성되었습니다. Ch03 Transport Layer 2. 다중화와 역다중화 : Multiplexing & demultiplexing 서버가 클라이언트에 메세지를 보낼 때 transport, network 헤더를 추가하여 보낸다 그렇다면 여러 클라이언트가 서버에 데이터를 보내면 어떻게 구별할 수 있을까? ➡️ 전송층 헤더에 포함된 포트 번호로 구별! 다중화 & 역다중화 역다중화 (demultiplexing) 전송층 세그먼트의 데이터를 올바른 소켓으로 전달하는 작업 다중화 (multiplexing) 출발지 호스트에서 소켓으로부터 데이터를 모음 이에 대한 세..

📡 [Network] 전송층(Transport Layer)에 대해서 (개요)

본 포스팅은 을 참고하여 작성되었습니다. Ch03 Transport Layer 1. 전송층 서비스 : Transport-layer services 전송층 (transport layer)은 각기 다른 호스트에서 동작하는 어플리케이션 프로세스간의 논리적 통신을 제공한다. 논리적 통신은 어플리케이션의 관점에서 보면 프로세스들이 동작하는 호스트들이 직접 연결된 것처럼 보이게 된다. 실제로 호스트는 수많은 라우터와 링크를 통해 연결되어 지구상의 다른 지역에 있을 수 있다. 전송층 vs 네트워크층: 서비스와 프로토콜 네트워크층과 전송층을 비교해보자. 네트워크층 : 호스트 간의 논리적 소통 ..

간단한 클라이언트-서버 소켓 채팅 💬 프로그램 만들어보기 (with 파이썬🐍)

학교 과제로 간단한 소켓 통신 채팅 프로그램 만들기가 나왔는데 한김에 포스팅하도록 하겠다. 파이썬으로 초간단 소켓 채팅 프로그램 구현 1. 과제 목표 소켓을 사용하여 서버-클라이언트 간 채팅 프로그램 제작 파이썬을 이용하여 서버와 클라이언트를 구현 TCP로 통신하여 연결이 유지 되도록 함 2. 클라이언트 구현 코드 from socket import * print('--- Socket TCP communication client ---') serverName = '127.0.0.1' serverPort = int(input('enter the server port number : ')) clientSocket = socket(AF_INET, SOCK_STREAM) clientSocket.connect((s..

📡 [Network] 어플리케이션층 - Socket 소켓 프로그래밍 (UDP, TCP)

본 포스팅은 을 참고하여 작성되었습니다. Ch02 Application Layer 7. Socket Programming Socket 소켓 프로그래밍 목표 : 클라이언트의 소켓 프로그램을 만들어 볼 것임 Socket : UDP UDP 소켓 통신 클라이언트와 서버간의 연결(handshaking)이 존재하지 않는다 전송자는 IP주소, 포트 번호를 패킷에 붙여서 보낸다 송신자는 패킷에서 전송자의 IP주소와 포트번호를 추출한다. 서버와 클라이언트가 UDP 소켓 통신을 하는 예시 프로세스 (파이썬) UDP 클라이언트의 파이썬 코드 ‘hostname’ 의 12000 포트로 소켓 열기 mes..

📡 [Network] 어플리케이션층 - 비디오 스트리밍 (비디오 인코딩 CBR, VBR, DASH 프로토콜)

본 포스팅은 을 참고하여 작성되었습니다. Ch02 Application Layer 6. Video Streaming : 비디오 스트리밍과 콘텐츠 분배 네트워크 비디오 스트리밍 비디오 스트리밍은 인터넷 대역폭의 주요 소비자 youtube, netflix, amazon prime 등은 ISP 트래픽의 80% 차지 (2020) 1백만 유저? 이종성 (heterogeneity) ➡️ 분산, 어플리케이션 레벨의 인프라 VIDEO 비디오 비디오는 일련의 디지털 이미지들이 고정된 속도로 나열되는 것 디지털 이미지는? ➡️ 미세한 픽셀들의 배열 - 비트로 표현됨 이미지 인코딩 : 모든 색상 등..

728x90