반응형
오늘은 파이썬 소켓프로그래밍을 이용해서 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통신을 해보도록 하겠습니다
'Security > Network' 카테고리의 다른 글
[NETWORK SECURITY]6.UDP header 분석 (0) | 2017.08.03 |
---|---|
[NETWORK SECURITY]5. TCP통신 (0) | 2017.08.02 |
[NETWORK SECURITY]4. UDP통신 2 (0) | 2017.07.29 |
[NETWORK SECURITY]2.CentOs6에 파이썬3 설치하기 (0) | 2017.07.29 |
[NETWORK SECURITY]1.Centos6 설치 (0) | 2017.07.23 |