본문 바로가기

전체 글140

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.
TCP 헤더의 구조와 항목 전송 단위가 세그먼트인 TCP 헤더의 길이는 그림 1-1와 같이 20바이트(160BIT)다. 이때 주의할 점은 UDP 헤더와 달리 TCP 헤더는 TCP 부가 항목에 따라 21바이트 이상의 길이가 가능하다. 다시 말해 UDP 헤더는 정적인 길이지만 TCP 헤더는 동적인 길이다. 아울러 TCP 헤더의 길이 20바이트는 가로 4바이트와 세로 5행을 곱한 결과라는 점도 숙지하길 바란다. UDP 헤더와 마찬가지로 TCP 헤더 역시 출발지/목적지 포트 번호 항목은 16비트 길이이고 일련번호(Sequence number) 항목, 확인 번호(Acknowledgment number)항목은 각각 32비트이다. 오프셋(offset)항목과 예약(reserved) 항목은 각각 4비트 TCP 플래그 항목은 8비트 윈도우 항목은 .. 2020. 6. 8.