TCP IP 파이썬 활용10 socket 모듈을 이용해 UDP 서버/클라이언트 구현 socket 모듈을 이용해 UDP 방식에 기반한 간단한 서버와 클라이언트를 구현해 보겠다. 채팅 프로그램 뭐 그런거 아니다. 오해 없길 일단 UDP 방식에는 3-way Handshaking이 없다. 때문에 송신할 데이터가 발생하면 즉시 전송한다. TCP 방식 처럼 3-way Handshaking과 같은 일련의 상호 제어 과정이 없기 때문에 시간에 민감한 DNS 서비스, DHCP 서비스 등에 사용된다. 먼저 UDP 소켓 서버는 아래와 같은 순서에 따라 구현된다. 1. socket() 함수를 이용해 소켓 객체 생성 2. IP 주소 설정 3. 포트 번호 설정 4. bind() 함수를 이용해 IP 주소와 포트 번호의 연동 5. 소켓 서버의 동작 과정 구현 위 순서와 같이 UDP 소켓 서버의 구현은 socket(.. 2020. 6. 10. socket 모듈을 이용해 소켓의 개념과 객체 생성 방법 소켓(Socket)이란 서로 떨어진 두 대의 컴퓨터 사이에서 TCP/IP 네트워크를 통해 상호 통신이 가능하도록 운영체제에서 해당 자원을 할당하고 처리해 주는 방식을 의미한다. 다시 말해 컴퓨터 상호간에 데이터를 주고받기 위한 프로세스 처리 방식을 소켓이라고 한다. 소켓은 두 대의 컴퓨터, 즉 서버와 클라이언트를 전제로 설정한다. 서버와 클라이언트는 서비스를 기준으로 구분한다. 서버란 서비스를 제공하는 컴퓨터를 의미라고, 클라이언트란 서비스를 요청하는 컴퓨터를 의미한다. socket 모듈을 기반해 소켓 객체를 생성해보자. socket 모듈을 이용해 소켓 객체를 생성하는 방식은 아래와 같다. 예제)) socket_c=socket.socket(Socket Family, Socket Type, Socket P.. 2020. 6. 9. ICMP 헤더의 구조와 항목 전송 단위가 패킷인 ICMP 헤더의 길이는 8바이트(64BIT)이다. UDP 헤더와 마찬가지로 ICMP 헤더도 고정적이다. 타입(Type) 항목과 코드(Code) 항목은 각각 8비트이고 오류 검사 항목은 16비트이다. 그리고 기타 항목은 32비트이다.(모든 항목이 8비트 배수 단위임) 이에 ICMP 헤더의 길이는 총 64비트다. 그림 1-1은 TCP/IP 응용 계층에서부터 시작하는 전송 단위를 보여준다. 이때 UDP 페이로드는 응용 계층에서 생성됐고, 실제 사용자의 정보를 담고있다. 반면 그림 1-2는 TCP/IP 네트워크 계층에서부터 시작하는 전송 단위를 보여준다. 이때 ICMP 페이로드는 네트워크 계층에서 생성됐고 TCP/UDP 페이로드와 달리 무의미한 문자열 정보를 담고 있다. 또한 라우팅을 위해 .. 2020. 6. 9. IP 헤더의 구조와 항목 전송 단위가 패킷인 IP 헤더의 길이는 20바이트(160BIT)이다. TCP 헤더와 마찬가지로 IP 헤더 역시도 IP 부가 항목에 따라 21바이트 이상의 길이가 가능하다. 버전(Version) 항목과 헤더(Header) 길이 항목은 4비트다. 서비스 타입(Type of Service) 항목은 8비트다. 전체 길이(Total Length) 항목은 16비트다. ID(Identification)항목은 16비트다. IP Flags는 3비트이고 플래그먼트 오프셋(Fragment Offset) 항목은 13비트이다. 생존시간(TTL)과 프로토콜 ID는 각각 8비트이다. 헤더 오류 검사(Header Checksum)은 16비트이다. 출발지 IP주소 목적지 IP주소는 각각 32비트이다. 따라서 IP 헤더의 길이가 총 1.. 2020. 6. 8. 이전 1 2 3 다음