본문 바로가기
Robot/로봇기업

[파이썬] DAY15 네트워크

by 9루트 2022. 2. 8.

네트워크

통신

쓰레드

순으로 공부하고자 한다.

 

1. 네트워크란?

여러 대 컴퓨터가 통신 회선으로 연결된 것

지역 네트워크: 학교 내부 네트워크

홈 네트워크 < 지역 네트워크 < 인터넷

 

2. 서버와 클라이언트

서버: 서비스 제공하는 프로그램

ex) 웹 서버

클라이언트: 서비스를 받는 프로그램

ex) 웹 브라우저

 

3. TCP(Transmission Control Protocol)와 IP(Internet Protocol)

프로토콜은 정해진 규칙을 의미한다.

TCP : 데이터 전송에 있어 정해진 규칙을 의미한다.

IP : TCP 안에 있는 주소

 

4. IP 주소와 포트

1) IP주소 : 네트워크상에서 컴퓨터를 식별하는 번호

IP주소를 확인하기 위해서는 명령 프롬프트(cmd)를 사용한다.

예를 들어 지구 전체를 인터넷이라고 하면

찾아가려는 건물 주소를 IP,

건물 안에 찾는 호수를 PORT(포트)라고 할 수 있다.

(특정 위치에 대한 IP는 공개하지 말아야겠다.)

XXX.XXX.XXX.XXX 형식이다. (XXX은 0-255 사이의 정수)

 

2) 포트: IP를 통해 접근한 컴퓨터 또는 시스템에서 내가 통신할 응용 프로그램을 식별한다.

1:1 관계(포트의 자원은 한정적이다)

연결할 대상에 대한 (가상의) 접근 출입구

3) 소켓

포트를 통해 해당 응용 프로그램을 찾았을 때만 소켓이 연결된다.

클래스 베이스로 만들어져있다.

클라이언트 소켓은 포트:소켓 = 1:多 형태가 가능하므로 한번에 다양한 종류의 데이터를 주고 받을 수 있다.

 

 

클라이언트가 요청을 하려면 서버가 활성화된 상태에서 요청이 가능하다.

즉 요청을 하려면 서버의 활성화가 가장 최우선이다.

서버가 활성화 되고 클라이언트 요청이 들어오면 서버의 소켓을 만들어 요청을 받는다.

 

TCP의 특징

안정적으로 통신되지만 연결지향적이므로 느리다.

안정적, 연결 지향적, 느리다.

연결 지향적 프로토콜은 시간이 소요된다. (연결지향적은 계속해서 연결해서 통신하고자하는 특성을 말한다.)

통신의 선로가 고정되어 있다.

데이터를 정확하고 안정적으로 전달

데이터가 순서대로 전달된다.

받는 존재를 확인하고 데이터를 전달한다.

대부분 TCP를 쓴다.

 

 

UDP(User Datagram Protocol)의 특징

비연결 지향적 통신이므로 속도가 빠르지만 통신 선로가 고정적이지 않아서 데이터 손실이 잘 발생한다.

불안정적, 비연결 지향적, 빠르다.

데이터가 순서대로 전달이 안될 수 있다.

데이터를 일방적으로 뿌린다.

 

 

 

 

TCP 통신 방법

1) 먼저 가능한 경로 중에 하나가 결정된다.

2) 데이터는 패킷으로 나누어지고

패킷에 주소를 붙이고 전송된다.

 

UDP 통신방법

1) 데이터를 패킷으로 나누어서 패킷에 주소를 붙이고 전송한다.

2) 패킷의 순서가 지켜지지 않으며 패킷이 분실될 수 있다.

 

* 데코레이터(@)

함수의 동작 전에 만들어서 함수의 내용에 서식이 붙인다.

대상 함수를 wrapping 하고 포장을 한다.

 

데코레이터 형식 코드

 

 


1. THREAD

 

 

1. 스레드

일을 하는 작업자 한 명

여러 명의 작업자 = 멀티스레드

 

 

 

싱글 코어 

멀티 코어

 

cpu 베이스gpu 베이스

스레드라는 걸로 쪼개서 작업들 분배한다.