총 삽질들 514

[Surro] :: Pointer - 1. pointer의 이해

메모리 주소 - 컴퓨터 내부에 데이터를 저장하는 공간을 나타내는 주소 > 메모리는 특정 위치를 찾아가기 위해 주소라는 것을 가지고 있다. 변수 선언 시 : 메모리의 특정위치에 기어공간에 할당됨. * 주소 연산자 '&' - 변수가 저장된 주소를 알려준다. 1. 포인터 변수 1.1 포인터 변수에 변수의 메모리 주소 저장하기 2. 포인터와 함수 - 함수의 주소 전달 방식이란 함수 호출 후에 실 매개변수의 값을 변경하기 위한 전달 방식. 2.1 값 전달 방식 (Call by Value) * 값 전달 방식으로 해결 되지 않는 문제 : 값 전달 방식의 경우 매개변수를 위해 새로운 메모리 공간을 할당하기 때문에 함수에서 매개변수를 변경해도 반영이 되지 않는다. 2.2 주소 전달 방식 (Call by Address) ..

[Surro] :: 6. 라우팅

1. 라우팅 - 서로 다른 네트워크 간의 통신에서 패킷은 어러 개의 라우터를 경유하여 수신처에 도달한다. 1. 수신처가 다른 네트워크일 때 일단 라우터 앞으로 패킷을 보낸다. 2. 회수한 패킷의 수신처를 보고 다음에 전송할 라우터를 결정한다. 3. 여러 개의 라우터를 거쳐서 패킷을 받는다. 1-1 라우팅 테이블 - 경로 제어표. - 회수한 패킷의 수신 IP 주소를 보고 라우팅 테이블을 참고로 다음에 어떤 라우터에게 전송할지를 결정. + 수신 네트워크 : 라우터가 파악하고 있는 네트워크의 네트워크 주소와 서브넷 마스크가 들어간다. + 다음 홉 주소 : 수신 네트워크에 전달하기 위한 다음 전송처가 되는 라우터의 IP 주소와 서브넷 마스크가 들어간다. + 메트릭(판단 기준) : 경로의 최적도를 나타내는 수치가..

[Surro] :: 5. 데이터링크 층과 물리 층

1. 데이터 링크 - 동일한 방법으로 연결된 한 덩어리의 기기. - 네트워크 층과 물리 층의 중개자. - 데이터 링크간의 차이를 흡수, 네트워크 층보다 위에 있는 층이 그 차이를 의식하지 않고 작동할 수 있도록 하는 것이 데이터 링크 층의 역할. 1-1 데이터 링크층의 프로토콜 - 데이터 링크 안에서 데이터를 어떻게 주고받을지를 결정하는 것. 1-2 데이터 링크 구성요소 - 노드 : 데이터 링크 상에 있는 기기.(컴퓨터, 라우터 등) - 통신 매체 : 노드 간을 연결하는 케이블 등. (금속선 케이블, 광섬유 케이블, 무선) - 노드와 통신 매체를 연결하는 기기 : 비트열과 신호를 변환하는 것(네트워크 인터페이스 카드 - NIC, 모뎀 등) + NIC : 컴퓨터에서 네트워크로 가는 통로. 1-3 MAC (..

[Surro] :: 4. 네트워크 층

1. 네트워크 층 - 수신인의 컴퓨터에 데이터를 전달하는 역할을 함. - 통신 상대를 지정한다. - 수신처까지의 적절한 루트를 찾아 가는 경로를 결정한다. 1-1 IP protocol - 네트워크 층의 중심이 되는 프로토콜. - 송신측에서는 트랜스포트 층으로 부터 데이터를 받아서 수신처에 특정 번호(IP 주소)등을 기록한 IP 헤터를 붙여서 데이터 링크측에 전달. - 비커넥션형 통신 수행. (받았는지 확인하지 않고 계속 보냄) 1-2 IP adress - 네트워크상의 기기를 구별하기 위한 번호(32 bit). ex) 192.168.11.3 > 네트워크 부 + 호스트 부 >> 네트워크 부와 호스트 부의 경계를 나타내기 위해 서브넷 마스크 값을 사용. ex) 255.255.0.0 +서브넷 마스크는 네트워크 ..

[Surro] :: 3. 트랜스포트 층

1. 트랜스포트 층 - 애플리케이션 층과 네트워크 층의 중개 역활 1-1 TCP - 일 대 일 통신. (커넥션형 통신) 1. 수신측이 데이터를 받을 수 있는 상태인지 확인후 통신 개시 > 통신연결 2. 데이터를 일정하게 분할, TCP 헤더를 붙여서 순서대로 송신 3. 다 보낸 후 통신 종료 1-2 TCP 헤더 + 컨트롤 플래그 : 상대에게 전하고 싶은 항목은 1로 만든다. - URG(Urgent) : 세그먼트가 긴급한 데이터를 갖고 있다 - PSH (PUSH) : 세그먼트를 바로 애플리케이션 층에 전달 - ACK (Acknowledgement) : 통신 확인에 대해 알았다고 응답 - RST (Reset) : 통신을 강제정으로 해제 - SYN (Synchronize) : 통신 개시 요청 - FIN (Fin..

[Surro] :: 2. 애플리케이션 층

1. 애플리케이션 층 - 컴퓨터끼리의 주고받기를 사용자가 이용할 수 있는 '통신 서비스'라는 형태로 만드는 층 > 통신 서비스를 실현하는 것 1-1. 애플리케이션 헤더 - 애플리케이션 층에서 추가되는 헤더 - 요청과 응답에 관한 정보가 들어있음 - 애플리케이션 헤더에 무엇을 어떻게 쓸지는 프로토콜에 따라 다름 (텍스트기반, 바이너리 기반) - 클라이언트가 서버에 서비스를 요청할 때 구체적인 데이터를 주고받지 않고 어떤 연락만 취할 때는 데이터 부분이 비어있는 상태로 보냄 2. HTTP protocol - 하나의 요청에 대해 하나의 응답을 반환하는 프로토콜. - 요청(request), 응답(response)라는 두 종류의 패킷을 사용하여 텍스트 형식으로 주고받기를 수행. - '요청된 데이터를 반환하는 것'..

[Surro] :: 1. Intro

1. 네트워크란? - network : 망상 조직, 망 > 정보나 노동력 등 어떤 자산을 서로 주고받을 수 있는 상태. >> 네트워크의 경우에서 컴퓨터끼리 데이터를 잘 주고받기 위해서는 특별한 규칙이 필요 : 프로토콜 +프로토콜 : 송신측과 수신측이 데이터를 주고 받기 위해 미리 정해 놓은 공통된 매뉴얼 1-1. 컴퓨터 네트워크란? - 컴퓨터끼리 케이블 (동측 케이블, 광섬유 케이블 ...)이나 적외선, 전파 등 어떤 수단을 사용하여 연결해 다양한 데이터를 주고받을 수 있는 상태. 1-2 컴퓨터 네트워크의 규모 - LAN < WAN < 인터넷 + LAN : 비교적 좁은 공간에 있는 기기끼리 연결한 네트워크 + WAN : 비교적 대규모의 네트워크 + 인터넷 : 여러 개의 LAN, WAN을 연결한 전 세계 ..

[Surro] :: 3. 리눅스 파일 시스템

1. 파일 - 정규 파일 (regular file) : 텍스트 파일, 바이너리 파일. - 디렉토리 (directory) : 일련의 디렉토리 항(entry)들을 가진 파일. > 각 항은 디렉토리에 있는 파일 이름과 inode 번호로 구성되어 있음. - 특수 파일 : 장치(device) 파일, 파이프 파일 등. > 장치 파일 : 주변장치(디스크, 프린터 등)를 파일 시스템 내의 파일 이름으로 접근함. * 블록 장치 : 블럭 형식으로 데이터를 옮기기 위한 장치, 하드디스크 CD-ROM 처럼 주소체계를 가지고 있어서 랜덤으로 접근할 수 있는 장치. * 블록 장치 파일 : 시스템과 장치 간의 데이터 이동이 블록 단위로 수행됨. 임의 접근 가능. * 문자 장치 : 한번에 하나의 문자를 전달하기 위한 장치, virt..

[Surro] :: 2. 리눅스 시스템 전체 부팅과정

1. 전원 스위치 ON - 시스템 전원 공급 - 메인 보드의 ROM-BIOS에 있는 BIOS 프로그램 자동 실행. +BIOS : 전원 공급 시 맨 처음 컴퓨터의 제어를 맡기는 프로그램. (하드웨어와 소프트웨어 사이의 연결과 번역 기능을 담당하는 인터페이스) 1-1 BIOS 프로그램들의 실행 내용 - 자체진단기능(POST) : CMOS검사, CPU, Memory, 그래픽 카드, 키보드, 마우스등 각종 장치들의 이상 유무를 검사하고 장치들(하드웨어)을 초기화 시킴. - POST과정이 완료될시 검색된 부팅(하드디스크, CD-ROM, 플로피디스크 등)에서 부트로더(GRUB, LILO 등)를 불러들임. ex) 하드디스크가 부팅 매체로 선택되었다면 하드디스크의 부팅 파티션에 있는 0번 섹터(MBR)에 있는 부트로더..

[Surro] :: 1. 리눅스 커널의 이해

* 커널이란? - 운영체제의 핵심 부분. : DRAM(동적 RAM)에 상주하여 시스템의 구동에 필요한 환경설정과 수행되는 프로그램을 스케줄링하는 소프트웨어. +스케줄링 : 컴퓨터 시스템을 구성하고 있는 주기억장치, 입출력장치, 처리시간등의 시스템 자원을 언제 배분할 것인가를 결정하는 프로그램 기능. - 시스템 자원 관리. - 모든 시스템이 원할하게 작동할 수 있도록 제어하는 소프트웨어. * 커널의 세부 기능 - Task 관리 (Task Management) : 물리적인 자원을 task라는 추상적인 자원으로써 제공해줌. > task의 생성, 실행, 스케줄링, 프로세스간 통신등의 서비스를 제공. + Task : 컴퓨터 상에서 하나의 작업. + Process : 컴퓨터 상에서 하나의 작업을 이루는 과정. + ..