Finn의 개발블로그
1. 접속의 의미 socket을 호출하여 소켓을 만드는 동작만으로 프로토콜 스택에는 아무 것도 전달되지 않습니다. 클라이언트에서 서버측으로 자기의 IP주소와 포트번호를 전달합니다. 접속 동작의 첫 번째 동작은 통신 상대와의 사이에 제어 정보를 주고받아 소켓에 필요한 정보를 기록하고 데이터 송 수신이 가능한 상태로 만드는 것 입니다. 접속 동작에서 주고받는 제어 정보는 통신의 규칙이 정해져 이씅므로 규칙에 따라 접속 동작을 실행하면 필요한 정보가 전달되고 데이터를 송 수신할 수 있는 상태가 됩니다. 데이터 송 수신 동작을 실행할 때는 송 수신 하는 데이터를 일시적으로 저장하는 메모리 영역을 버퍼 메모리 라고 합니다. 버퍼 메모리의 확보도 접속 동작을 할 떄 실행됩니다. 2. 맨 앞부분에 제어 정보를 기록한..
1. 프로토콜 스택의 내부 구성 네트워크 애플리케이션 브라우저, 메일러(메일을 읽고 쓰는 소프트웨어), 웹 서버, 메일 서버 등의 프로그램이 여기에 해당합니다. 애플리케이션의 아랫부분에서는 Socket 라이브러리가 있으며, 그 안에는 리졸버(DNS 서버에 조회하는 동작을 실행)가 내장되어 있습니다. 프로토콜 스택 프로토콜 스택의 윗부분에는 TCP라는 프로토콜을 사용하여 데이터 송 수신을 담당하는 부분과 UDP라는 프로콜을 사용하여 데이터 송 수신을 당담하는 부분이 있습니다. TCP 또는 UDP는 애플리케이션에서 보낸 의뢰를 받아 송 수신 동작을 실행합니다. TCP는 브라우저나 메일 등의 일반적인 애플리케이션이 데이터를 송 수시할 경우에 사용합니다. UDP는 DNS 서버에 대한 조회 등에서 짧은 제어용 데..
1. 데이터 송 수신 동작의 개요 IP 주소를 조사했으면 IP 주소의 상대, 여기에서는 액세스 대상 웹 서버에 메시지를 송신하도록 OS의 내부에 있는 프로토콜 스택에 의뢰합니다. 데이터를 송수신하는 컴퓨터 사이에 데이터의 통로 같은 것이 있고, 이것을 통해 데이터가 흐르면서 상대측에 도착합니다 데이터는 어느 쪽에서 쏟아부어도 상관없고 양방향으로 데이터를 흘릴 수 있습니다. 송수신 동작을 하기 전에 송수신하는 양자 사이를 파이프로 연결하는 동작이 필요합니다. 실제로 서버 측에서 소켓을 만들고 클라이언트측에도 소켓을 만들고, 소켓에서 파이프를 늘려 서버측의 소켓에 연결하는 것입니다. 데이터를 전부 보내고나면 연결했던 파이프가 분리됩니다. 송 수신 동작 단계 소켓 생성 서버측의 소켓에 파이프 연결 데이터 송수..
1. DNS 서버의 기본 동작 조회 메시지에는 다음의 세 가지 정보가 포함되어 있습니다. 이름 : 서버나 메일 배송 목적지(메일 주소에서 @ 뒷부분의 이름) 같은 이릅입니다 클래스 : 인터넷을 나타내는 'IN' 이라는 값 타입 : 이름에 어떤 타입(종류)의 정보가 지원되는지 나타냅니다. A 타입은 IP, MX이면 이름에 메일 배송 목적지가 지원됩니다. 이름 = www.lab.cyber.co.kr, 클래스 = IN, 타입 = A DNS 서버는 세 가지 항목이 일치하면 여기에 등록되어 있는 ip 주소를 회답합니다 이름 = cyber.co.kr, 클래스 = IN, 타입 = MX DNS 서버는 10과 mail.cyber.co.kr이라는 두 개의 항목에 회답합니다. MX의 경우에는 mail.cyber.co.kr ..
1. IP 주소의 기본 브라우저는 메시지를 네트워크에 송출하는 기능은 없으므로 OS에 의뢰하여 송신합니다. URL 안에 쓰여있는 서버의 도메인명에서 IP주소를 조사해야 합니다. 그 이유는 OS에 송싱을 의뢰 할때는 도메인명이 아니라 IP주소로 메시지를 받을 상대를 지정해야 하기 떄문입니다 HTTP 메시지를 만드는 동작의 다음은 도메인명에서 IP 주소를 조사 해야 합니다. TCP/IP는 서브넷이라는 작은 네트워크를 라우터로 접속하여 전체 네트워크가 만들어진다고 생각할 수 있습니다. 서브넷은 허브에 몇 대의 PC가 접속된 것이라고 생각하면 됩니다. 서브넷을 라우터에 연결하면 네트워크 전체가 완성됩니다 여기 'oo동oo번지' 라는 형태로 네트워크의 주소를 할당합니다. 동은 서브넷에 할당하고 네트워크 번호라고 ..
1.탐험 여행은 URL 입력부터 시작한다 url은 http:// 로 시작하는것 뿐만 아니라 ftp:, file: 등 여러가지가 존재합니다 브라우저는 웹 서버에 액세스하는 클라이언트로 사용하는 경우가 많지만 브라우저의 기능은 다양합니다 파일을 다운로드/업로드, 메일, 기능들도 가집니다, 몇 가지 기능 중의 어느 것을 사용하여 데이터에 액세스 하면 좋을 것인지를 판단해야 합니다 URL은 공통점은 맨 앞에 있는 문자열, 즉 http, ftp, file, 라는 부분에서 액세스하는 방법을 나타냄, 이것들을 프로토콜이라고 하고 프로토콜은 통신 동작의 규칙을 정한 것 입니다 2. 브라우저는 먼저 URL을 해독한다 http://www.lab.cyber.co.kr/dir/ http: URL의 맨 앞에는 데이터 출처에 액..
1. 삽입 정렬 이란 - 데이터의 삽입을 통해 정렬하는 알고리즘 2. 삽입 정렬의 개념 - 손안의 카드를 정렬하는 방법과 유사- 새로운 카드를 기존의 정렬된 카드 사이의 올바른 자리에 찾아 삽입- 새로 삽입될 카드의 수만큼 반복하게 되면 전체 카드 정렬 - 두 번째 값부터 시작하여 그 앞의 자료들과 비교하여 삽입할 위치를 지정한 후 값을 삽입하여 정렬 3. 삽입 정렬e = [6, 7, 2, 3, 6, 9, 1, 12, 45, 52] def insertion_sort(d_list): for i in range(1, len(d_list)): value = d_list[i] while i > 0 and d_list[i - 1] > value: d_list[i] = d_list[i - 1] i -= 1 d_li..
1. 선택 정렬 이란 - 가장 작은 수를 선택하여 순서대로 배치하는 정렬 2. 선택 정렬의 개념- 첫 번째 값을 두 번째 값부터 마지막 값까지 차례대로 비교하여 가장 작은 값의 인덱스를 저장하고 가장 작은 인덱스의 값을 첫 번째 인덱스의 값과 교환한다, 두 번째 값을 세 번째 값부터 마지막 값까지 차례대로 비교하여 가장 작은 값의 인덱스를 저장하고 가장 작은 인덱스의 값을 두 번째 인덱스의 값과 교환한다. 이 과정을 반복한다- 1회전을 수행하고 나면 가장 작은 값은 첫 번째 인덱스에 오게 되므로 이후 에는 2회전은 두 번째 인덱스 부터 3회전은 세 번째 인덱스 부터 시작한다. 3. 선택 정렬def selection_sort(d_list): for i in range(len(d_list)): min_ind..