itsmineve
close
프로필 사진

itsmineve

github: @pce0303

  • 분류 전체보기
    • 서버
      • 우분투
      • 리눅스
      • 어셈블리
    • 네트워크
      • 기초
      • 라우터
      • 스위치
      • 네트워크관리사
    • 개발
      • 프론트엔드
      • 백엔드
      • 데이터베이스
    • 보안
    • 독서
    • 기타
  • Insta
  • GitHub
  • Blog(old)
C언어로 Mini TCP Stack 구현하기 - (2) Raw Socket 으로 SYN Packet 전송

C언어로 Mini TCP Stack 구현하기 - (2) Raw Socket 으로 SYN Packet 전송

개요1편에서는 TCP Header를 정의하고 SYN Packet을 생성해 보았다.하지만 아직 실제 네트워크로 패킷을 전송하지는 않았다.이번에는 Raw Socket을 사용하여 OS의 TCP Stack을 우회하고, 직접 생성한 SYN Packet을 네트워크로 전송해보려고 한다. Raw Socket이란?일반적인 Socketsocket(AF_INET, SOCK_STREAM, 0);Application → OS TCP Stack → Network Raw Socketsocket(AF_INET, SOCK_RAW, IPPROTO_TCP);Application → Network(OS TCP Stack 우회) Raw Socket 생성src/socket.c#include #include #include #include #..

  • format_list_bulleted 서버/리눅스
  • · 2026. 2. 17.
C언어로 Mini TCP Stack 구현하기 - (1) TCP Header, SYN Packet 생성 및 출력

C언어로 Mini TCP Stack 구현하기 - (1) TCP Header, SYN Packet 생성 및 출력

목표운영체제가 제공하는 TCP 스택을 사용하지 않고, TCP 프로토콜을 직접 구현하여 3-Way Handshake를 수행하는 Mini TCP Stack을 구현하는 것이 목표이다.C언어도 조금 더 써볼 겸 작은 프로젝트를 하나 하고 싶어서 시작하게 되었다.TCP 프로토콜 구조TCP Header 구성Sequence Number 와 ACK의 역할네트워크 바이트 오더 (Endian)TCP Handshake 과정이정도를 이해해 보려고 한다. 공부한 지 2년 정도 돼서 까먹기도 했고 쉬운 거 하고 싶어서ㅎㅎ 환경Orbstack을 사용해서 Ubuntu Linux + C언어이다.mini-tcp/│├── include/│ └── tcp.h│├── src/│ ├── main.c│ ├── tcp.c│ └── ..

  • format_list_bulleted 서버/리눅스
  • · 2026. 2. 17.
방화벽 IDS, IPS

방화벽 IDS, IPS

방화벽 Firewall방화벽은 네트워크 접근 제어 장비이다.서로 다른 네트워크를 지나는 데이터를 허용 및 거부하거나 검열 또는 수정한다.사전에 정의된 정책 (rule) 에 따라 트래픽을 허용 (Allow) 하거나 차단 (Deny) 한다. 동작 방식출발지 IP / 목적지 IP포트 번호 (80, 443 ..)프로토콜 (TCP, UDP, ICMP ..)세션 상태이러한 기준을 바탕으로 판단한다.외부 -> 내부 22번 포트(SSH) 접근 차단외부 -> 내부 80, 443 포트만 허용 종류Packet Filtering : 단순 헤더 기반 필터링Stateful Firewall : 세션 상태 추적Application Firewall (L7) : HTTP, FTP 등 애플리케이션 분석NGFW : IDS/IPS, DPI ..

  • format_list_bulleted 보안
  • · 2026. 1. 21.
Linux deamon 리눅스 데몬

Linux deamon 리눅스 데몬

데몬이란터미널과 분리되어 백그라운드에서 항상 실행되는 서비스 프로세스를 말한다.예를 들어 sshd, nginx, mysqld, cron처럼.. 보통 이름 끝에 d가 붙는다.터미널을 종료해도 죽지 않고, 로그인 사용자와 무관하다. 데몬은 대부분 부모 프로세스를 갖지 않는다. 따라서 PPID가 1이다.데몬 생성 daemonization전통적fork() -> 부모 프로세스는 종료되고 자식만 남는다.setsid() 호출 -> 새로운 세션을 생성하고 터미널 컨트롤을 차단한다.한번 더 fork() -> 세션 리더 권한을 제거하고 터미널 재연결을 차단한다.standalone 방식 : 부팅 시부터 종료될 때까지 계속 실행된다. 웹서버, 디비, ssh처럼 빈번히 요청이 들어오고 속도가 중요할 때 사용한다. 프로세스가 항..

  • format_list_bulleted 서버/리눅스
  • · 2026. 1. 14.

어셈블리 기초, 스택 프레임

11월에 공부하고 메모장에 적어둔거 옮기기.. 까먹었을 때 보려고 간단하게 정리 레지스터범용 레지스터 (32bit)데이터 레지스터EAX : 누산기레지스터, 곱셈 나눗셈EBX : 베이스 레지스터, 메모리 주소 지정ECX : 계수기, 반복 명령EDX : 곱셈 나눗셈, 부호 확장 명령인덱스 레지스터ESI : 다량 메모리 옮기거나 비교할 때 소스 주소EDI : “ 목적지 주소포인터 레지스터ESP : 스택포인터, 스택 최종점EBP : 스택 함수 지역변수 주소세그먼트 레지스터 (16bit)ES : 보조, 두 곳 이상의 저장영역 가리킬 때 DS 와 사용CS : 코드 세그먼트, 프로그램 코드 시작 주소SS : 스택 세그먼트, 스택 시작 주소DS : 데이터 시작 주소FS, GS : 보조 세그먼트 레지스터상태 레지스터 (..

  • format_list_bulleted 서버/어셈블리
  • · 2026. 1. 13.
Linux 리눅스 프로세스

Linux 리눅스 프로세스

프로세스프로세스(process)란 운영체제로부터 CPU, 메모리, 파일 등의 자원을 할당받고, 메모리에 적재되어 실행 준비가 되었거나 실행 중인 프로그램이다. PCB (Process Control Block)은 하나의 프로세스가 시스템에 존재할 때 프로세스에 대한 모든 것(아래 나오는 구성요소들)을 표현하며, 메모리에 저장된다. 프로세스 확인 명령어 ps-e(-A) 모든 프로세스 출력-f 유닉스 스타일로 출력-a 세션 리더 제외하고 터미널에 종속되지 않은 모든 프로세스 출력-C [process] 입력한 프로세스만 출력-o [value] 출력 포맷 지정a 터미널과 연관된 프로세스 출력e 환경변수 정보 출력f 프로세스 간 상속관계를 트리형식응로 출력l 정보를 길게 출력u 소유자를 기준으로 출력x 터미널에 종..

  • format_list_bulleted 서버/리눅스
  • · 2026. 1. 13.
  • navigate_before
  • 1
  • 2
  • 3
  • 4
  • ···
  • 6
  • navigate_next
공지사항
전체 카테고리
  • 분류 전체보기
    • 서버
      • 우분투
      • 리눅스
      • 어셈블리
    • 네트워크
      • 기초
      • 라우터
      • 스위치
      • 네트워크관리사
    • 개발
      • 프론트엔드
      • 백엔드
      • 데이터베이스
    • 보안
    • 독서
    • 기타
인기 글
전체 방문자
오늘
어제
Copyright © kenkii 모든 권리 보유.
SKIN: Copyright © 쭈미로운 생활 All rights reserved. Designed by JJuum.
and Current skin "dev-roo" is modified by Jin.

티스토리툴바