프롤로그패킷...데이터 덩어리..와이어샤크.. 패킷패킷이란 네트워크에서 데이터를 전송할 때 사용하는 작은 데이터 단위이다. 그러니까 데이터를 보낼 때 해당 데이터를 패킷이라는 단위로 잘개 쪼개서 전송한다는 건데, 데이터를 조각으로 잘개 쪼개고, 그것을 상대한테 보낸다음에, 받은 데이터 조각들을 다시 재조립해서 원래 데이터로 만드는 것이다. 그 데이터 조각 하나하나를 패킷이다. 그럼 왜 패킷으로 나눠서 보낼까?보통 아스키 코드가 1바이트(8비트)를 사용한다. 근데 Hello만 보내도 40비트(5바이트)를 사용하는건데, 한글문서에 자조서 한 칸 쓰는 것만해도 5000자 넘게 드는데 데이터 크기가 매우매우 크다. 원본 그대로 전송이 되어야하는데, 이거 한 번 큰 파일을 보냈다가, 중간에 잘못보내져서 깨지..
전체 글
성밍쟁 공붕방프롤로그저번 HTTP/HTTPS 에서 HTTP 의 특징을 기억해보면1. 비연결형(Connectionless)클라이언트와 서버 간에 요청과 응답이 한 번 이루어 지면 연결이 끊어지고, 요청마다 새로 연결을 생성하기에 연결이 유지되지 않는다.2. 무상태(Stateless)서버는 클라이언트의 상태를 기억하지 않는다. 각각의 요청은 독립적으로 이루어지기에 이전 요청과는 관계가 없다.3. 텍스트 기반 프로토콜 요청과 응답 메시지는 사람이 읽을 수 있는 텍스트 형식으로 전송된다이렇게 있었다. 한 번 요청이 이루어지면 연결이 끊어지고 요청간에 상태를 기억하지 못하기에 이를 보완하기 위해서 추가적인 상태 유지 메커니즘이 필요하다라고 언급했었다.2024.12.04 - [KnockOn] - [1주차 TIL] KnockOn..
프롤로그P가 붙은 것은 Protocol의 약자로 오늘 공부할 HTTP도 맨 뒤에 P가 붙었으므로 프로토콜이다. HTTPHTTP(Hypertext Transfer Protocol) : 인터넷에서 웹 클라이언트와 웹 서버 간에 데이터를 주고 받기 위한 통신 프로토콜이다. 텍스트, 이미지, 동영상 같은 다양한 리소스를 웹 브라우저에 전송하여 사용자에게 표시할 수 있도록 한다.이 프로토콜은 웹 클라이언트가 서버에게 요청(Request)하면, 서버가 응답(Response)을 해준다. 웹 서버는 HTTP 서버를 HTTP 서비스 포트인 80번에다가 대기 시킨다. (TCP/80, TCP/8080)텍스트 기반으로 설계되어 이해하기 쉽고 구현이 간단하다. 확장성이 높고, 다양한 애플리케이션에서 사용이 가능하다. 다만 보..
프롤로그P가 들어가있다? 이건 Protocol을 의심해봐라. 프로토콜통신에서 송신자가 수신자에게 전송메체를 통해서 메시지를 프로토콜(규칙)을 통해서 전달한다. 라고 배웠었다. 여기서 프로토콜(규칙)이라고 적혀있다.프로토콜이란 컴퓨터 간 통신을 위해 정해진 규칙과 표준의 집합이다. 규칙이라고 되어있는데, 데이터의 전송 형식, 순서, 오류 처리 방법등이 정의가 되어있고, 통신을 하기 위해서 저 규칙을 따라야 한다. 프로토콜을 왜 지켜야 하느냐?나는 데이터를 1, 2, 3, 얍! 이렇게 해서 3뒤에있는게 데이터야! 라고 보냈는데, 상대방은 3, 2, 1, 얍! 이렇게 받아들이고, 1뒤에있는 것을 데이터 취급한다고 했으면... 음음...중구난방이다. 그래서 미리 중요한 규칙같은 거 , 데이터 전송규칙들은 다..
프롤로그knockon 선별과정이 끝나고 합격했다.지금까지 블로그적은 것처럼 이번에도 적는다.이전에 웹개발 많이 해봤어서 개념적으로는 어려울 건 없겠지만, 그래도 다시 공부한다는 마음가짐으로 몰랐던 거 알아가면서 공부해보려고 한다. 정보데이터라는 것이 있다. 데이터는 0과 1로 되어있는 RAW한 것이다.여기서 정보란, 이 데이터들 중에서 의미가 부여된 데이터를 가공한 것을 말한다. 통신통신이란 정보를 전달하고 이를 이해하고 교환하는 행위를 말한다. 조선시대를 생각해보자. 정보를 전달하기 위해서 말을 타고 직접 가서 전달을 하거나, 아니면 봉화를 피워서 위급한 상황인지 아닌지 등을 하기도 그랬다. 조금 현실적인 곳으로 오면, 당장 내 옆자리 사람들과 얘기, 소통하는 것도 통신이라고 볼 수 있다.현대 기술..
어느덧 마지막 글이다.좀 그냥 자연스럽게 글 하나 써보고 싶었다. 10월에 번아웃이 왔던 것 같다. 번아웃인지도 모르겠는데, 뭔가 오긴했다.아무것도 하기 싫었다. 근데 학회 논문 투고 및 한국통신학회 학술대회 논문집, 산학협력프로젝트, 서버링 프로젝트, 코드링 프로젝트, cyber war 유니티 프로젝트, 솔로오징어게임 with 코스페이스 프로젝트, 오픈소스 SW 경진대회 2개, 점프업을 3개월동안 진행했고 지금도 진행하고 있다. 여기에 현재 학생회 차기 학생회...그리고 아마 더 있을 지도 모른다.근데 문제는 초과학점 22학점에다가 알고리즘 조교 , 소봉단, 함께가요(고등학생 멘토링)까지 하다보니까 월화수목금 전부 수업을 듣고, 주말에 겨우 시간이 나서 프로젝트를 하고 그런식이었다. 야간에는 저런 프..
프롤로그bandit문제풀이저번 비밀번호는 FO5dwFsc0cbaIiH0h8J2eUks2vdTDwAn 이다. 문제다음 단계로 가는 비밀번호는 /etc/bandit_pass/band14안에 있고, bandit14 user만 읽을 수 있습니다. 이번 레벨에서는 직접 비밀번호를 제공받지 않으며, 대신 bandit14 사용자의 SSH 접속에 사용할 수 있는 프라이빗 SSH 키가 주어집니다. (참고: localhost는 현재 작업 중인 머신을 나타내는 호스트 이름입니다.) 풀이과정일단 접속부터 한다.ssh bandit13@bandit.labs.overthewire.org -p 2220FO5dwFsc0cbaIiH0h8J2eUks2vdTDwAnls접속을 했을 때에는 sshkey.private로 PEM RSA ..
프롤로그ELITE HACKER Bootcamp 3rd 4주차 수업 공부 내용aws 우분투 서버 하나 파서 연습구조체, 선언, 포인터, 배열, 함수, 중첩, 메모리구조, 패딩 구조체일종의 클래스와 비슷한 개념이라고 보면된다. 클래스... 하나의 객체를 만들어놓는 것이다. 다만 클래스랑 조금 다른 것이 있다면, 메서드(행동)이 없다는 것. 그러니까 이제 구조체 정의 자체가 구조체는 서로 관련된 여러 데이터를 하나의 단위로 묶기 위해 사용되는 사용자 정의 데이터 타입인거고, 클래스는 여기에 행위까지 같이 넣어두었으나, C언어에서는 행위까지는 존재하지않는다. 라고 알면 될 것 같다.조금 예시를 들자면, 시험점수를 입력하려고 한다고 치자. 한 사람마다 국어, 수학, 영어 점수가 있을 것이고, 그 사람의 전체 등급..
프롤로그ELITE HACKER Bootcamp 3rd 4주차 수업 공부 내용aws 우분투 서버 하나 파서 연습string.h 헤더 string.h 헤더C언어에서 문자열을 다루는 몇몇 함수들은 이미 string.h 헤더 안에 저장되어 있다. 이 함수들을 사용하면 문자열 관련하여 어제 작성했던 코드들 매우 쉽게...원하는 대로 사용할 수 있다.2024.11.23 - [KnockOn] - [KnockOn] Linux/Ubuntu C언어 문자열 [KnockOn] Linux/Ubuntu C언어 문자열프롤로그ELITE HACKER Bootcamp 3rd 4주차 수업 공부 내용aws 우분투 서버 하나 파서 연습문자열의 개념, 용도, 선언과 초기화, 배열, 포인터 문자열2024.11.14 - [KnockOn] -..
프롤로그ELITE HACKER Bootcamp 3rd 4주차 수업 공부 내용aws 우분투 서버 하나 파서 연습문자열의 개념, 용도, 선언과 초기화, 배열, 포인터 문자열2024.11.14 - [KnockOn] - [KnockOn] Linux/Ubuntu C언어 입출력함수 [KnockOn] Linux/Ubuntu C언어 입출력함수프롤로그ELITE HACKER Bootcamp 3rd 2주차 수업 공부 내용aws 우분투 서버 하나 파서 연습출력함수, 포멧 스트링, 이스케이프시퀀스, C언어의 입력함수, 문자열 출력 함수이전 글들을 슥 돌아보면, 결taesan-smj.tistory.com여기서 한 번 언급을 했었는데, 왜 입출력함수에 언급을 했었는지 모르겠네 ㅋㅋ아무튼 다시 작성해보자면생각을 해보자. 기존에 ..
프롤로그bandit 문제풀이mktemp, hex dump, 저번 비밀번호는 7x16WNeHIi5YkIhWsfFIqoognUTyj9Q4 이다. 문제다음단계로 가는 비밀번호는 data.txt 파일안에 들어가있다. 근데 그 파일은 여러번 압축된 파일의 16진수 덤프이다. /tmp 작업용폴더를 만들어라. 디렉터리 이름은 추측하기 어려워야하기에 mktemp -d를 이용해라. 거기다가 파일 복사한 다음에 작업해라. mv를 이용해라 와.. 문제부터 어렵냐? mktemp임시 파일이나 디렉터리를 만드는 명령어이다.mktemp #임시 파일 생성mktemp -d #임시 디렉터리 생성-d를 붙이면 임시 폴더가 생성된다.해당 주소로 이동하게 되면방금 생성된 파일들 또는 디렉터리들이 있다.이 명령어를 실행하면 /tmp/ 아..
프롤로그ELITE HACKER Bootcamp 3rd 3주차 수업 공부 내용aws 우분투 서버 하나 파서 연습포인터, 사용이유, 장점, 사용 방법, 포인터와 배열, call by value, call by reference, 함수 포인터, 이중포인터 포인터메모리 주소를 저장하는 변수이다. 흔히들 int형, char등을 선언하게 되면 해당 값을 저장하게 되는데, 포인터의 경우 해당 값이 저장되어있는 메모리 주소 값을 저장한다.이를 통해서 다른 변수 또는 함수를 가리킬 수 있으며, 포인터를 통해 변수를 읽거나 쓸 수 있다. 왜 굳이 포인터를 사용하냐...라는 질문이 있을 수도 있는데... 이게 확실하진 않고 뇌피셜이긴 하다.컴퓨터 구조에 opcode라는 것이 있다. mode | opcode | opera..