본문 바로가기

23년 2학기 학교공부/컴퓨터네트워크

(40)
[CN] DevOps sudo apt-get install python-setuptools python-dev build-essential sudo apt install python3-pip // 파이선3 설치 pip install flask // 플라스크 설치 pip install flask_restful pm2 kill 더보기 참고 https://ozofweird.tistory.com/entry/GCP-%EC%9B%90%EB%8D%B0%EC%9D%B4-%EB%AC%B4%EC%A4%91%EB%8B%A8-%EB%B0%B0%ED%8F%AC-%ED%99%98%EA%B2%BD-Git-Webhook [GCP 원데이] 무중단 배포 환경 (Git, Webhook) 1. Git 1) Git 이란 ? 소프트웨어 개발 과정에서 중간 버전별 ..
[CN] 네트워크 계층 - control plane 2023학년도 2학기 충남대학교 이영석 교수님의 컴퓨터네트워크 수업 정리자료입니다. 📁 네트워크 계층 데이터 링크 계층에서는 같은 네트워크 상에 있는 컴퓨터끼리 데이터를 전송한다. 같은 네트워크 상의 컴퓨터는 길찾기 알고리즘 상에서는 '인접한 노드'이므로, 즉 인접한 노드 사이의 데이터를 전송할 수 있는 것이다. 인접하지 않은 노드인 '다른 네트워크 혹은 인터넷 상의 컴퓨터' 사이에서 데이터를 전송하는 기능은 네트워크 계층의 역할이다. 네트워크 계층은 송신 호스트에서 수신 호스트로 세그먼트를 전송하는 포워딩(Forwarding) 기능과, 송신 호스트로부터 수신 호스트까지의 노드 간의 길을 찾고 알려주는 라우팅(Routing) 기능을 수행한다. 1. forwarding - 라우터의 input 포트에서 ou..
[CN] 라우터 라우터는 길을 찾는 장치. 공유기라고 생각하면됨. 네트워크 카드가 여러개잇고, 그 사이에 전달. 공유기의 카드가 보통 4개가 있고. 무선도있음. 라우터가 노트북컴퓨터랑 똑같은 구조임. 네트워크 카드가 있고, cpu 메모리 등이 있음. high-speed switchin gfabric이 특별한 하드웨어로 버스같은 역할을 하는거임. 컴퓨터의 버스가 라우터 역할을 할 수도 잇음. 이미 스마트폰에서 라우터를 쓰고있음. 테더링. 5G, lte 인터페이스하고 와이파이 인터페이스 사이에 패킷을 전달하는 거임. 그 구조가 이럼. cpu가 ip 헤더를 읽어서 ip주소를 읽어서 전달. 프로세서가 하는 역할이 라우팅. 길찾기 기능임. 최단경로 알고리즘 다익스트라알고리즘이 여기 구현되어있음. 프로세서에. forwarding ..
[CN] RESTful API 📁 CRUD CRUD : 데이터(엔티티) 처리를 위한 기초 연산 - Create - Read - Update - Delete 📁 TCP 기반 PasteBin PasteBin Service란 간단한 텍스트, 코드 등을 게시하는 서비스이다. 서버는 SET과 GET 메시지를 처리한다. 클라이언트는 SET과 GET 메시지를 전송한다. 프로토콜은 [SET|GET] KEY [VALUE]과 같고, utf-8로 인코딩된다. - 'SET' KEY\r\nVALUE : KEY에 저장된 VALUE 저장 - 'GET' KEY : KEY에 저장된 VALUE 반환 (기본값 : "") PasteBin 서비스의 서버와 클라이언트를 직접 구현해보자. 🌱 PasteBin Client 코드 import socket FLAGS = _ = N..
[CN] 네트워크 계층 프로토콜 : IP 📁 네트워크 계층 네트워크 계층은 OSI 계층모델에서 3계층에 해당하고, 대표적인 프로토콜로 IP 프로토콜이 있다. 네트워크 계층에서는 IP 패킷을 송수신하고, IP 패킷을 전달하고, IP주소를 찾고 이에 대한 목적지까지 경로를 찾는 알고리즘과 자료구조를 찾는 일 등이 수행된다. 호스트, 라우터, 스위치 등등은 각각의 기능 차이를 반영하는 다른 계층들로 구성된다. 📁 IP 패킷 IP 패킷은 다음 절차에 따라 생성된다. 1. 웹 브라우저 클릭 2. 클릭에 대한 내용을 HTTP 메시지로 만들기 3. HTTP 메시지 TCP 세그먼트로 만들기 4. TCP 세그먼트를 IP 패킷으로 만들기 (encapsulation) 5. IP 패킷을 이더넷 프레임으로 만들기 6. 이더넷 프레임을 0,1 비트로 만들어서 보내기 7..
[CN] TCP 혼잡제어 2023학년도 2학기 충남대학교 이영석 교수님의 컴퓨터네트워크 수업 정리자료입니다. 📁 혼잡(Congestion) 네트워크에서 혼잡(Congetsion)이란, 네트워크상에 너무 많은 데이터가 있는 상태를 뜻한다. 혼잡한 상태의 증상은 다음과 같다. 1. 시간이 오래 걸린다. 2. 패킷이 중간에 이탈할 수 있다. 컴퓨터, 라우터, 공유기는 메모리가 있는데, 버퍼 큐에 패킷이 들어갔다 나옴. 들어오는게 나가는거보다 속도가 느리면 쌓일거니까 계속 쌓이다보면 overflow. 들어갈 큐가 없으면 그 데이터는 손실됨. 대부분 이런 경우가 패킷손실의 경우. checksum 경우는 엄청 희귀함. 단, 흐름제어와 혼잡제어는 다르다. 흐름 제어는 수신자에 대한 속도 제한. 순전히 수신자의 상태를 보고 판단함. 네트워크와..
[CN] Blocking, Non-blocking, 동기, 비동기 📁 Blocking vs. Non-blocking 1. Blocking : 프로세스가 시스템을 호출 하고나서 결과가 반환되기까지 다음 처리로 넘어가지 않음 2. Non-blocking : 시스템을 호출한 직후에 프로그램으로 제어가 다시 돌아와서 시스템 호출의 종료를 기다리지 않고 다음 처리로 넘어갈 수 있음 위 코드는 client에서 오류가 발생한다. 왜일까? 📁 동기 vs 비동기 1. 동기(synchronous) : 특정 작업이 끝나면 다음 작업을 처리하는 순차처리 방식 2. 비동기(asynchronous) : 여러 작업을 처리하도록 예약한 뒤 작업이 끝나면 결과를 받는 방식. Cpu 연산이 DB/API 연산보다 훨씬 빠르다 동시 프로그래밍 패러다임 • 전통적 방법 • 쓰레드를 여러 개 이용 • thr..
[CN] Socket Programming 📁 네트워크 프로그래밍 • IPC: inter-process communication • 클라이언트 서버 서비스를 위한 필수 프로그래밍 • Socket programming을 학습한다는 것은? • C/C++ 언어 • Socket 구조체, socket(), bind(), listen(), accept() 함수이용 • 소켓을 만들어서 클라이언트와 서버 통신 프로그래밍 • 윈도우, 리눅스, 유닉스 응용 SW 개발 • 운영체제 Network-layer 프로그래밍 • 서버 또는 통신 전용 프로그램: C/C++ • 응용(웹/앱/서버) 개발시 프레임워크 사용 • Java Spring, Netty • Python Django, FastAPI • JavaScript Nodejs, Express 📁 Socket Progr..