컴퓨터 공학/컴퓨터 네트워크 (18) 썸네일형 리스트형 [Python3/컴퓨터 네트워크] 소켓 프로그래밍 : html request를 보내는 클라이언트와 request 받은 파일을 찾아 웹 브라우저로 보여주는 서버 프로그램 성균관대학교 소프트웨어학과 추현승 교수님의 2021년도 1학기 네트워크 개론 수업 과제 입니다. 서버 프로그램의 스켈레톤 코드가 주어지고, 빈 코드를 채워 서버 프로그램을 완성하고 이 서버 프로그램에 요청을 보내는 클라이언트 프로그램을 파이썬으로 작성하는 것이 과제였습니다. 서버 프로그램은 TCP 프로토콜을 사용하며 클라이언트로부터 요청 받은 파일을 ./ 현 디렉토리에서 찾아 있다면 200 http status를 전송하고 해당 파일 코드를 클라이언트로 전송하고 없다면 404 status 메시지를 전송합니다. 클라이언트는 전달받은 메시지에서 상태가 200이라면 전송된 파일 코드를 다시 html 파일로 작성하여 웹 브라우저로 열어봅니다. 만약 400을 전달 받았다면 그냥 콘손에 상태 메시지만 띄우게 됩니다 .. [Python3/컴퓨터 네트워크] 소켓 프로그래밍 : 간단한 server-client 프로그램 만들기 만들려는 프로그램은 클라이언트가 입력한 lowercase 문장을 서버에서 uppercase로 바꿔 출력해주는 간단한 프로그램입니다. 성균관대학교 소프트웨어학과 추현승 교수님의 2021-1 네트워크 개론 수업 과제의 일부로 수행한 것입니다. 중복되는 코드 설명은 한번만 작성했습니다. TCP server.py # server.py from socket import * # import socket package serverPort = 12000 # set server port number as 12000 serverSocket = socket(AF_INET, SOCK_STREAM) # create server socket with socket() method in socket package # AF_INET .. [Python3/컴퓨터 네트워크] 소켓 프로그래밍 : 입력한 문자열 reverse 하는 클라이언트 서버 프로그램 소켓 프로그래밍 : 입력한 문자열 reverse 하는 클라이언트 서버 프로그램 만들려는 프로그램은 클라이언트가 입력한 문자열의 길이와 거꾸로 reverse된 문자열을 출력하는 클라이언트 서버 프로그램입니다. 코드에 대한 설명은 주석을 참고해주시길 바랍니다. 성균관대학교 소프트웨어학과 추현승 교수님의 2021-1 네트워크 개론 수업 과제의 일부로 수행한 것입니다. 중복되는 코드 설명은 한번만 작성했습니다. Server.py # import socket python module from socket import * # setting server port number as 12000 serverPort = 12000 # create server socket with AF_INET to use IPv4 and .. [컴퓨터 네트워크] Chapter3) Computer Network : Transport Layer Chapter3) Computer Network : Transport Layer complete. 1. Introduction 네트워크 - 전송 - 어플리케이션 서로 다른 호스트(시스템) 상의 프로세스 간 커뮤니케이션 제공 논리적 연결 사용 1.1 전송 계층이 제공하는 서비스 1.1.1 프로세스 간 커뮤니케이션 (Process to process communication) 프로세스 : 전송 계층 서비스를 사용하는 실행 중인 프로그램 (객체) 네트워크 계층 - 호스트가 목적지 컴퓨터로 메시지 전달만 가능 전송 계층 - 각 호스트 내부의 프로세스 간 메시지 주고 받기 즉, 네트워크 계층에서는 어떤 호스트로 메시지를 전달할지 결정하고, 전송 계층에서 해당 호스트 내부의 여러 프로세스 중 전달받을 프로세스를 결.. [컴퓨터 네트워크] Application Layer 패러다임 : Peer-to-Peer(P2P) 패러다임 Application Layer 패러다임 : Peer-to-Peer(P2P) 패러다임 항상 서버가 있는 상태가 아니어도 됨 임의의 양단간 시스템 간의 직접적인 소통 peer는 간헐적으로 연결되고 IP 주소를 바꿈 확장 가능성이 높음 분산성이 강함 관리가 어려움 개념 각 컴퓨터(peer)가 클라이언트 / 서버의 역할을 모두 가능 네트워크 상의 peer는 동일 네트워크 상의 다른 peer들에게 파일을 공유 가능 centralized, decentralized Centalized P2P Network directory 시스템을 기준으로 중앙집중화 - 연결된 peer 들의 총괄 관리자 개념의 서버 시스템 directory 시스템은 클라이언트 서버 패러다임 사용 클라이언트 서버 패러다임처럼 directory 시스.. [컴퓨터 네트워크] Kademlia DHT 카뎀리아 분산해시테이블 알아보기 Kademlia의 개념 분산 P2P(peer-to-peer) 컴퓨터 네트워크를 위한 분산해시테이블(Distributed Hash Table DHT) UDP를 사용해서 노드간 소통 ** UDP : User Datagram Protocol / 데이터를 데이터그램/독립적인 패킷 단위로 처리하는 프로토콜 (비연결형 서비스 제공, 정보 주고받을 때 별도의 신호 주고 받지 않음, 신뢰성이 낮으나 속도가 빠름) 참여 노드간 가상/오버레이 네트워크 형성 ** 오버레이 네트워크: 물리 네트워크 위에 성립되는 가상의 네트워크로 물리적 네트워크는 고려하지 않고 논리적 링크로 많은 노드들을 연결할 수 있음 노드 ID로 노드 식별 - 파일 해시에 대한 direct map, 카뎀리아 상에서의 위치 정보 저장 Kademllia 알.. [컴퓨터 네트워크/MacOS] Scapy 설치 및 사용하기 Scapy scapy는 패킷을 조작할 수 있는 프로그램을 제공하는 툴로 파이썬 모듈로 설치하여 사용할 수 있습니다. // 생략 가능 [pip3 install pip --upgrade] // 설치 pip3 install --pre scapy // 사용 scapy [컴퓨터 네트워크] Chapter3) Socket Programming 1. Socket - Interface programming socket 구조 family : PF_INET, IPv6, ... type : 4개 - TCP, UDP, SCTP, IP protocol: TCP/IP local socket address : 필드 길이, 패밀리 필드, 포트 넘버 필드, IP 주소 필드 remote socket address Socket used for UDP 각 클라이언트와 서버는 각각 하나의 소켓을 사용 서로 다른 클라이언트는 서로 다른 소켓을 사용 서버는 수동적 open / 항상 오픈된 상태를 유지하다가 연결 오면 받아줌 / run forever in loop 클라언트는 적극적 open / 직접 연결 시도 / open-close pair Socket used for TC.. 이전 1 2 3 다음