| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 |
- polling
- dpdk
- nic
- redis
- pmd
- redisReply
- Mempool
- SR-IOV
- rte_eth_dev
- redisGetReply
- Kernel Bypass
- Pubsub
- hiredis
- DPDK EAL
- HugePage
- mbuf
- DPDK 초기화
- Descriptor Ring
- DPDK Architecture
- Subscribe
- Publish
- lcore
- kni
- Today
- Total
목록전체 글 (98)
우당탕탕 개발일지
앞서 구성했던 채팅 프로그램에서 채팅을 Redis의 Pub/Sub 기능을 이용하여 주고받을 수 있도록 구성하였다. [K8S] C 기반 HTTP 통신 구현 및 Kubernetes 배포GitHub - TirTir/ZamTok: C#을 활용한 채팅 프로그램C#을 활용한 채팅 프로그램. Contribute to TirTir/ZamTok development by creating an account on GitHub.github.com C언어로 HTTP 통신을 이용해 클라이언트와 서버간 간단한uj0791.tistory.com Redis는 데이터를 Key-Value 형태로 메모리에 저장하고, 애플리케이션이 TCP 연결을 통해 명령을 보내는 서버이다.C 서버 │ │ TCP 연결: redis-service:63..
Claude CLI를 사용하기 위한 절차이며, 더 자세한 내용은 Claude Code의 Docs에서 확인 가능하다. https://code.claude.com/docs/ko/quickstart 빠른 시작 - Claude Code DocsClaude Code에 오신 것을 환영합니다!code.claude.com Claude CLI 설치 (macOS) macOS 기준 기본 쉘에서 다음 명령어를 실행하면 Claude CLI가 설치된다.curl -fsSL https://claude.ai/install.sh | bash 설치가 완료되면 클로드 공식 문서 상 claude 명령어를 실행하여 대화형 세션을 시작할 수 있다고 안내하고 있다.claude PATH를 적용한 후, claude 명령어를 통해 정상적으로 대화형 세..
GitHub - TirTir/ZamTok: C#을 활용한 채팅 프로그램C#을 활용한 채팅 프로그램. Contribute to TirTir/ZamTok development by creating an account on GitHub.github.com C언어로 HTTP 통신을 이용해 클라이언트와 서버간 간단한 통신을 구현했다. 중심적으로 봐야할 부분은 다음과 같다. 소켓 생성 먼저 클라이언트와 서버가 통신할 수 있도록 IPv4 기반의 TCP 소켓을 사용하였다.소켓에서 IPv4 주소를 표현할 때는 일반적으로 다음과 같은 struct sockaddr_in 구조체를 사용한다.struct sockaddr_in { sa_family_t sin_family; // AF_INET in_port_t ..
FTP (File Transfer Protocol) 란? 일반적으로 특정 서버에 접속해서 파일을 가져오거나, 반대로 내 로컬 장비의 파일을 서버로 전송할 때 FTP를 많이 사용한다. FTP란, 서버와 클라이언트 간 파일을 업로드하거나 다운로드할 때 사용하는 파일 전송 프로토콜이다. 예를 들어, 10.10.1.1 서버에서 10.10.3.101 서버에 접속하여 해당 서버 안에 있는 파일을 가져온다고 가정하면, 보통 다음과 같은 정보가 필요하다.접속 대상 서버 IP사용자 계정비밀번호접근 가능한 디렉토리 경로파일명ftp 10.10.3.101Name: userPassword: qwer 위 명령어를 입력하면 FTP 서버에 접속을 시도하며, 서버에서 사용자 인증을 요구하면 계정 정보를 입력한다.인증이 정상적으로 완..
[DPDK] DPDK 패킷 흐름[DPDK] DPDK 아키텍처[DPDK] NIC의 개념과 역할네트워크 환경에서 높은 처리 성능을 얻기 위해 DPDK와 같은 고성능 패킷 처리 기술이 사용된다. 이러한 기술을 이해하려면, 먼저 네트워크 패킷이 서버uj0791.tistory.com DPDK는 커널을 우회하여 NIC을 user space에서 직접 제어하며, 커널은 해당 NIC를 인식하지 못한다. 따라서 ip addr, ping, arp와 같은 커널 기반 네트워크 기능이나 ARP, ICMP와 같은 control plane 패킷 처리가 불가능해지는 문제가 발생한다. 이러한 한계를 보완하기 위해 KNI(Kernel Network Interface)가 사용된다. KNI는 DPDK 애플리케이션과 리눅스 커널 네트워크 스..
[DPDK] DPDK 아키텍처[DPDK] NIC의 개념과 역할네트워크 환경에서 높은 처리 성능을 얻기 위해 DPDK와 같은 고성능 패킷 처리 기술이 사용된다. 이러한 기술을 이해하려면, 먼저 네트워크 패킷이 서버 내부에서 어떤 구uj0791.tistory.com DPDK는 EAL이 지정한 lcore마다 워커 스레드를 생성하고, 일반적으로 1 코어 = 1 스레드 모델로 동작한다. 각 lcore는 무한 루프에서 패킷을 처리하며, 높은 성능을 위해 스레드 이동 없이 특정 CPU에 고정된다. 실제 애플리케이션에서는 다음과 같이 역할을 분리하는 경우가 많다.패킷 수신 전담 코어SIP / RTP 처리 코어송신 및 후처리 코어이처럼 역할을 분리하면, 한 코어에서 처리한 데이터를 다른 코어로 전달해야 하므로 코어 간 ..
[DPDK] DPDK EAL[DPDK] DPDK 아키텍처[DPDK] NIC의 개념과 역할네트워크 환경에서 높은 처리 성능을 얻기 위해 DPDK와 같은 고성능 패킷 처리 기술이 사용된다. 이러한 기술을 이해하려면, 먼저 네트워크 패킷이 서버uj0791.tistory.com 저번 글에서는 DPDK EAL이 무엇인지, 그리고 이러한 실행 환경이 왜 필요한지를 살펴보았다. 이번 글에서는 DPDK의 전체적인 초기화 과정에 대해 알아본다. EAL 옵션 EAL의 초기화는 main() 함수 시작 시 rte_eal_init()을 호출하면서 시작된다. 이때, 애플리케이션 실행에 필요한 다양한 옵션들이 함께 전달되며, 이를 통해 CPU, 메모리, 디바이스 등 DPDK의 실행 환경이 구성된다. 즉, EAL 옵션은 단순한 실..
[DPDK] DPDK 아키텍처[DPDK] NIC의 개념과 역할네트워크 환경에서 높은 처리 성능을 얻기 위해 DPDK와 같은 고성능 패킷 처리 기술이 사용된다. 이러한 기술을 이해하려면, 먼저 네트워크 패킷이 서버 내부에서 어떤 구uj0791.tistory.com 여기서부터는 개념이 조금 어려워지기 때문에 앞서 설명한 내용을 완전히 숙지하고 보는것을 추천한다. DPDK는 커널 네트워크 스택을 우회하여 사용자 공간(User Space)에서 NIC를 직접 제어하는 프레임워크이다.따라서 다음 네 가지 자원을 커널의 도움 없이 고성능으로 직접 다뤄야 한다.CPU메모리디바이스 (NIC)시간 기준 (Timer) 문제는 운영체제마다 하드웨어 접근 방식이 모두 다르다는 점이다.Linux / FreeBSD 등 OS별 차이..