일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- n과 m
- 4948
- 그리디 알고리즘
- streamlit
- 밑바닥부터 시작하는 딥러닝
- 가상환경
- 백트래킹
- 신경망 학습
- 재귀
- 파이썬
- Mac
- 손실함수
- 15649
- N-Queen
- 1002
- 파이싼
- 실버
- pyenv
- 설정
- 개발환경
- 9020
- Python
- 경사하강법
- 기계학습
- 백준
- BOJ
- 1101
- end to end
- Today
- Total
목록대학수업 (41)
파이톨치
Computer Network 기초 기본 배경 컴퓨터 네트워크는 호스트, 라우터, 통신 채널로 구성되어 있습니다. 호스트는 응용프로그램을 실행하는 장치이고, 라우터는 네트워크 전체에 걸쳐 정보를 전달하는 역할을 합니다. 네트워크에서 정보는 패킷이라는 바이트 시퀀스 형태로 전송됩니다. 패킷에는 목적지 호스트 주소와 같은 제어 정보가 포함되어 있습니다. 프로토콜은 패킷의 의미, 구조, 크기 등을 정의하는 규약입니다. host A에서 host B로의 패킷 전달 전송할 데이터를 패킷들로 나누어 전송한다. 패킷은 헤더와 데이터로 구성된다. 패킷 헤더에는 네트워크에서 사용하는 주소 정보가 들어간다. 네트워크에서 사용하는 주소에는 IP 주소, port 주소, MAC 주소가 있음. IP 주소 – 인터넷 상에서 uniq..
개요 사물인터넷(IoT)과 유비쿼터스 컴퓨팅의 등장으로 무선센서네트워크(WSN)를 인터넷에 연결할 수 있는 프로토콜을 설계할 필요가 대두되었습니다. 현재 WSN을 IP 네트워크에 연결하기 위해 프록시 기반 방식과 센서 스택 기반 방식 두 가지 주요 접근법이 사용되고 있습니다. 프록시 기반 접근법에서는 싱크 노드가 센서 노드와 인터넷 간의 게이트웨이 역할을 합니다. 스택 기반 접근법에서는 IP 프로토콜이 각 노드에 구현되어 센서 네트워크 내에서 데이터 교환을 가능케 하며, 다른 IP 기반 네트워크와의 연결성도 제공합니다. Network layer protocols 6LoWPAN 6LoWPAN은 표준 IEEE 802.15.4를 통해 IPv6를 사용할 수 있게 하는 데 중요한 역할을 합니다. 6LoWPAN은 ..
Datalink layer protocol 개요 위 그림을 참조하면 데이터 링크 계층의 프로토콜로는 Bluetooth Smart, IEEE 802.15.4, ZigBee등이 있다. Datalink issue는 에너지 효율성, 작은 메시지, 제한된 컴퓨팅이 있다. 초기에 wearable 장치에 초점을 맞추어 WPAN 발전 -> bluetooth, zigbee (2계층) 이후에 IoT에 적합한 IP 기반 WPAN 프로토콜이 제안 -> 6LoWPAN (3계층) Networking issue는 큰 숫자 (32, 48비트 주소 불충분), 16비트 지역 주소, 64비트 광역 주소 등이 있다. 이 때문에 6LoWPAN 제안되었다. 6LoWPAN은 IPv6와 802.15.4가 바로 연동하는데 문제가 있어 중간자 역할 ..
쓰레드의 이론적 이해 쓰레드의 등장 배경 프로세스는 부담스럽다. 프로세스의 생성에는 많은 리소스가 소모된다. 일단 프로세스가 생성되면, 프로세스 간의 컨텍스트 스위칭으로 인해서 성능이 저하된다. 컨텍스트 스위칭은 프로세스의 정보를 하드디스크에 저장 및 복원하는 일이다. 데이터의 교환이 어렵다 프로세스간 메모리가 독립적으로 운영되기 때문에 프로세스간 데이터 공유 불가능! 따라서 운영체제가 별도로 제공하는 메모리 공간을 대상으로 별도의 IPC 기법 적용. 쓰레드 프로세스보다 가벼운, 경량화된 프로세스이다. 때문에 컨텍스트 스위칭이 빠르다. 쓰레드 별로 메모리공유가 가능하기 때문에 별도의 IPC 기법 불필요. 프로세스 내에서의 프로그램의 흐름을 추가한다. 쓰레드와 프로세스의 차이점 프로세스는 서로 완전히 독립..
멀티프로세스 서버의 단점과 대안 멀티프로세스 서버의 단점 프로세스의 빈번한 생성은 성능의 저하로 이어진다. 멀티 프로세스의 흐름을 고려해서 구현해야 하기 때문에 구현이 쉽지 않다. 프로세스간 통신이 필요한 상황에서는 서버의 구현이 더 복잡해진다. 멀티프로세스 서버의 대안 하나의 프로세스가 다수의 클라이언트에게 서비스를 할 수 있도 록한다. 이를 위해서는 하나의 프로세스가 여러 개의 소켓을 핸들링 할 수 있는 방법이 존재해야 한다. 바로 이것이 IO 멀티플렉싱(multiplexing)이다. 멀티쓰레드/멀티프로세스 vs 입출력다중화 입출력 다중화 방식에서는 하나의 프로세스 안에서 여러 개의 소켓 IO를처리 소켓 입출력 모델 소켓모드 블로킹 소켓과 넌블로킹 소켓으로구분 블로킹 소켓 소켓 함수 호출시 조건이 만..
멀티 프로세스 다중 접속 서버 둘 이상의 클라이언트에게 동시에 접속을 허용하여, 동시에 둘 이상의 클라이언트에게 서비스를 제공하는 서버를 의미한다. 프로세스 실행 중인 프로그램에 관련된 메모리, 리소스 등을 총칭하는 의미, 멀티프로세스 운영체제는 둘 이상의 프로세스를 동시에 생성가능. 운영제제는 생성되는 모든 프로세스에 ID를할당(PID). fork 함수 fork 함수가 호출되면, 호출한 프로세스가 복사되어 fork 함수호출 이후를 각각의 프로세스가 독립적으로 실행 fork 함수 호출 이후의 반환 값의 차를 통해서 부모프로세스와 자식프로세스의 프로그램 흐름을 구분하게 된다, fork 함수를 호출한 프로세스는 부모 프로세스이고 반환값은 자식의 PID이며, fork 함수의 호출을 통해서 생성된 프로세스는 자..
Socket Options 소켓 옵션을 통해 소켓 함수의 동작을 세밀하게 조정할 수 있다. 소켓 코드와 프로토콜 구현 코드(TCP, UDP, IP)를 세부적으로 제어한다. int setsockopt(int sock, int level, int optname, const void *optval, socklen_t optlen); int getsockopt(int sock, int level, int optname, void *optval, socklen_t *optlen); level = SOL_SOCKET, IPPROTO_IP, IPPROTO_IPV6, IPPROTO_TCP가 있다. SOL_SOCKET 레벨 옵션 # SO_BROADCAST int b = 1; setsockopt(sock, SOL_SOCK..
UDP TCP와의 비교 UDP는 3-way 통신을 하는 TCP와 다르게, SEQ, ACK 와 같은 메시지 전달을 하지 않는다. 즉, flow contorl이 없다. 때문에 연결의 설정과 해제의 과정도 존재하지 않아서, listen, accept 함수가 필요하지 않는다. 데이터의 전송이 빠르지만, 데이터의 분실 및 손실의 위험이 존재한다. 또한, 1대1 통신이 아니기 때문에, 하나의 UDP 소켓만 존재하고, 연결 개념이 없어서 하나의 소켓으로 둘 이상의 소켓과 데이터 송수신이 가능하다. UDP 기반의 데이터 입출력 함수 UDP 소켓은 데이터를 전송할 때마다 목적지에 대한 정보를 넣어주어야 한다. 아래 코드에서 전송지가 둘 이상일 수도 있다. 추가로, sendto 함수 호출 시 클라이언트의 IP와 PORT ..