본문 바로가기

TCP IP 파이썬 활용10

원시 소켓 방식에 따른 헤더의 생성 이번 시간에는 원시 소켓 방식에 따른 헤더의 생성에 대하여 배워보겠다. 지난 시간에는 socket 모듈을 이용해 소켓 객체를 생성해 보고 서버/클라이언트 모델을 간단하게 구현하였다. 그런데 이러한 소켓 활용은 모두 표준 소켓 방식에 기반한 작업이다. 표준 소켓 방식은 운영체제에서 TCP/IP 계층별 데이터 전송 단위와 헤더 구조 등을 자동으로 처리하기 때문에 사용자는 이러한 일련의 과정을 고려할 필요가 없다. 그러나 표준 소켓 방식은 이미 정해진 방식에 따라 소켓을 생성하기 때문에 소켓 활용에 대한 유연성은 없다. 다시 말해, 새로운 프로토콜을 개발하거나 패킷 스니퍼 등과 같은 정교한 응용 도구를 구현하는 경우에는 표준 소켓 방식이 아닌 원시 소켓 방식에 기반해야 한다. 원시 소켓을 사용하기 위해서는 몇.. 2020. 7. 7.
원시 소켓 방식에 따른 헤더의 생성 이번 시간에는 원시 소켓 방식에 따른 헤더의 생성에 대하여 배워보겠다. 지난 시간에는 socket 모듈을 이용해 소켓 객체를 생성해 보고 서버/클라이언트 모델을 간단하게 구현하였다. 그런데 이러한 소켓 활용은 모두 표준 소켓 방식에 기반한 작업이다. 표준 소켓 방식은 운영체제에서 TCP/IP 계층별 데이터 전송 단위와 헤더 구조 등을 자동으로 처리하기 때문에 사용자는 이러한 일련의 과정을 고려할 필요가 없다. 그러나 표준 소켓 방식은 이미 정해진 방식에 따라 소켓을 생성하기 때문에 소켓 활용에 대한 유연성은 없다. 다시 말해, 새로운 프로토콜을 개발하거나 패킷 스니퍼 등과 같은 정교한 응용 도구를 구현하는 경우에는 표준 소켓 방식이 아닌 원시 소켓 방식에 기반해야 한다. 원시 소켓을 사용하기 위해서는 몇.. 2020. 7. 7.
파이썬으로 간단한 ftplib 활용하기 이번 시간에는 파이썬을 이용하여 간단하게 FTP 클라이언트를 구현해보자. 실습하기 앞서 먼저 FTP 서비스가 구동 중인 FTP 서버가 있어야한다. 일단 FTP 서버가 있다는 가정하에 진행하도록 하자. 만역 FTP 서비스가 설정되어 있지 않다면 설정을 한 후 실습을 하자. 먼저 위 사진과 같이 접속한다 이때 tmp 디렉토리에서 FTP 서버에 접속한다면 이 후 데이터를 다운로드할 경우 tmp 디렉토리에 저장된다. 이처럼 FTP 서버에 접속할 경우 데이터를 다운로드할 위치에서 시작하도록 한다. 사진과 같이 데비안 FTP 서버에 접속하면 vsFTPd 3.0.3과 같은 내용을 볼 수 있다.(FTP 소프트웨어 이름/버전 정보임) 그 다음 자신의 우분투 계정 ID와PW를 입력하여 접속하게 되면 230 Login su.. 2020. 6. 16.
TCP 소켓 서버/클라이언트 구현 - 기초 개념 다지기 지난 시간에는 파이썬을 이용하여 간단하게 UDP 소켓에 대해 공부하였다. 이번에는 TCP 소켓에 대해 알아보자. TCP 방식은 UDP 방식보다 상대적으로 비교할때 조금 복잡한 구조이다. 바로 3단계 연결 설정(3-way Handshaking)이 필요하기 때문이다. 이와 같이 TCP 방식으로 서버와 클라이언트를 구현하기 위해서는 무엇보다 3단계 연결 설정을 고려해야 한다. 서버 측에서는 listen() 함수와 accept() 함수를 통해 이러한 과정을 구현하고 클라이언트 측에는 connect() 함수를 통해 이러한 과정을 구현한다. 아울러 3단계 연결 이전과 이후를 구분해 3단계 이전에는 부모 프로세스가 일련의 과정을 처리하지만 3단계 연결 이후에는 자식 프로세스가 일련의 처리 과정을 처리한다는 점도 기억.. 2020. 6. 15.