반응형

오늘은 파이썬 소켓프로그래밍을 이용해서 UDP 통신을 해보도록 하겠습니다.


앞서서 OSI 7계층 개념을 살펴보도록하겠습니다


OSI 7 Layer( OSI 7계층 ) 


  - 네트워크를 7개의 계층으로 분류

  - 인터넷 != 웹


  - TCP/IP 프로토콜 (인터넷 5계층)


Layer 7: Application Layer(응용계층)

  - 웹, 온라인 게임, DHCP, DNS, ...


Layer 6: Presentation Layer

Layer 5: Session Layer


  - 추상적인 계층: 암호화, ..., SSL, ...


----------------  상위 3계층  ---------------


Layer 4: Transport Layer(전송계층) 

  - 통신하는 방법을 정의: TCP, UDP


Layer 3: Network Layer(네트워크 계층)

  - 경로를 선정

  - 서로 다른 네트워크간의 통신을 가능


Layer 2: Data-Link( 데이터 링크 계층 )

  - 라우팅이 필요하지 않은 구간에서의 통신

  - 신뢰도가 제일 높은구간


Layer 1: Physical Layer( 물리 계층 ) 

  - 물리적인 통신에 관한 정의


  - NIC(Network Interface Card)

  - 케이블, 무선(공기)


----------------  하위 4계층  -----------------



파이썬을 이용한 소켓 프로그래밍

-네트워크 프로그래밍

-입/출력

*입/출력의 종류

1.표준 입/출력: 0(stdin),1(stdout),2(stderr)

 -C :scanf ,gets, printf .....
 -JAVA :system.out.println,scanner....
 -python:input print

2.파일 입/출력

 -파일의 내용을 읽고, 파일에 내용을 쓰고 

 -파일 객체를 통해서 파일과통신
 -파일 객체의 타입에 따라서 통신 방법이 달라진다
ex) 읽기전용, 쓰기 전용, 읽고 /쓰기 ,추가

3.네트워크 입/출력
 
 - 네트워크를 통해 들어오는(NIC) 내용을 읽고
 - 네트워크 장치를 통해 내용을 내보내고

 -네트워크 장치를 통해서 입/출력(통신)을 하기 위해서는
  소켓이 필요하다.


socket(family=AF_INET, type=SOCK_STREAM, proto=0, fileno=None)
socket은 파일입출력의 open과 같은 개념이라고 봐도됩니다.


*소켓 생성
socket.socket(family,type)
family
 -AF_INET -->IPv4 통신할때 사용
 -AF_UNIX --> unix계열에서만 사용 가능한 소켓
 -AF_PACKET --> 로우(raw) 소켓
  -타입을 갖지 않는 소켓

type

 -socket.SOCK_STREAM: TCP통신  (layer 4)
 -socket.SOCK_DGRAM : UDP통신 (layer 4)
 -socket.SOCK_RAW :형태를 갖지않는다


UDP통신 가능한 소켓프로그래밍


sock =socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
#ipv4 UDP 통신 가능한 소켓 생

sock.sendto() 보내고
sock.recvfrom() 받기

다음시간에는 직접코드를 짜서 UDP통신을 해보도록 하겠습니다


  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기