728x90
반응형
728x90
반응형
지난 번에는 TCP의 Echo server와 Echo client를 만들었었다. 이번에는 UDP 프로토콜로 동작하는 에코 서버와 클라이언트를 학습한다. UDP 프로토콜의 경우 연결 과정 없이 소켓이 생성되면 바로 데이터 송수신을 진행한다(No handshaking). SOCK_DGRAM으로 UDP 소켓을 생성하고 호스트 주소와 포트를 bind 한다.recvfrom() 메서드를 호출할 때 반환되는 수신 메시지와 클라이언트의 주소를 data, addr 변수에 저장하고, 수신 메시지와 수신 주소를 출력한다.그리고 수신 메시지를 다시 전송한다. UDP 소켓을 생성하고 sendto() 메서드로 서버에게 메시지를 전송한다. 그리고 서버가 보낸 메시지와 주소를 data, addr 변수에 저장하고 해당 메시지를..
출처 : 사물인터넷을 위한 파이썬 네트워크 프로그래밍 파이썬 네트워크 기본 모듈 이번 시간에는 IP 주소를 파이썬 프로그램으로 처리하는 방법을 알아본다.인터넷에서는 호스트를 식별하기 위해 IP 주소를 사용하기 때문에 네트워크로 데이터를 전송할 때 호스트에서 실행되는 프로그램은 IP 주소를 처리할 수 있어야 한다. 파이썬의 표준 라이브러리에는 네트워크 서비스를 생성하거나 기존 서비스에 원격으로 접속할 수 있는 다음과 같은 기본 모듈이 포함되어 있다. ipaddress : IPv4, IPv6 주소와 네트워크를 만들고 처리하는 모듈IP 주소와 관련된 다양한 작업을 간단하게 처리하게 해주는 모듈이다. 두 호스트가 같은 서브넷에 있는지 확인특정 서브넷의 모든 호스트를 대상으로 처리를 반복문자열이 유효한 IP 주소..
출처 : https://www.youtube.com/watch?v=GScMb0YDr70&list=PLw-ln7ZaFg2FXc10cyVhAcn2W1foBzwN5&index=3 개요 이번에는 파이썬을 통해 socket과 echo client, echo server를 구현하여 네트워크 통신의 기본적인 원리를 이해해보도록 한다. 소켓(Socket) : 컴퓨터 간의 데이터 전송을 위한 인터페이스 에코 서버(Echo Server) : 클라이언트가 전송하는 데이터를 그대로 되돌려 전송해 주는 기능의 서버. 즉, 클라이언트가 보낸 데이터를 수신해서 동일한 데이터를 다시 클라이언트에게 송신한다. 에코 클라이언트(Echo Client) : 에코 서버에 접속하여 데이터를 전송하고, 서버로부터 전송 받은 데이터를 출력한다. ..
6.4 LANs IP address는 network layer의 주소이다. 그래서 네트워크 계층에서 포워딩할 때 사용했었다. link layer 에서는 IP 주소가 아닌 MAC(Media Access Control) address를 사용한다. MAC 주소는 우리가 지역적으로(locally) 움직일 때, 즉 한 홉에서 한 홉으로 패킷을 넘겨줄 때 사용한다. 즉, LAN에서 목적지와 통신하기 위한 실질적인 주소이다. MAC 주소는 48 bit로 구성이 된다. 그래서 보통 12개의 hexa 코드로 구성이 된다. hexadecimal(16진수니까 하나당 24=4비트) 코드니까 4*12 = 48 bit MAC 주소는 네트워크 카드(랜카드)의 ROM에 고유한 MAC 주소가 유니크하게 부여가 된다. 그래서..
6.3 Multiple Access Protocol 링크는 2가지 타입이 있다. · 특정 링크를 독점적으로 사용하는 PPP(Point to Point) · Ethernet이나 802.11 무선 랜 처럼 공유해서 사용하는 Broardcast 가 있다. 여러 사람이 링크를 공유할 때의 문제점은 동시에 링크를 사용할 때 충돌(Collision)이 발생한다는 점이다. 이 충돌을 피하기 위해서 등장한 것이 바로 multiple access protocol이다. 분산 알고리즘을 사용해서 어떻게 노드들이 채널을 공유할지를 결정한다. 그리고 컨트롤을 위해 추가 채널을 쓰는 것이 아닌 주어진 채널 만으로 multiple access를 하는 것이다. R bps를 가지고 있는 링크가 있다고 해보자. 우리의..
본 장에서 가장 중요한 점은 MAC address와 multiple access 부분이다. 6.1 Introduction, Services Link layer의 가장 큰 특징은 모든 노드들(host와 라우터)에 다 구현이 되어있다는 점이다. 코어 파트의 디바이스들은 엣지 파트와 다르게 자신에게 필요한 부분까지만 구현이 된다(ex. 라우터는 network layer까지, 스위치는 data link layer까지). 그러나 이 모든 디바이스들이 모두 링크 레이어는 구현이 되어있다. 노드들끼리 연결되어있는 통신 채널을 링크라고 하는데 이 링크에는 종류가 있다. · 유선 링크(wired link) · 무선 링크(wireless link) · LAN(Local Area Network, LAN도 유선과 ..