| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 31 |
- rte_eth_dev
- Pubsub
- DPDK Architecture
- Mempool
- Kernel Bypass
- hiredis
- redisReply
- redis
- lcore
- DPDK EAL
- Descriptor Ring
- redisGetReply
- Publish
- polling
- Subscribe
- DPDK 초기화
- dpdk
- pmd
- HugePage
- SR-IOV
- kni
- nic
- mbuf
- Today
- Total
목록전체 글 (100)
우당탕탕 개발일지
tcpdump는 NIC를 통해 송수신되는 패킷을 캡쳐하고 분석하는 도구이다. 주로 네트워크 장애 분석, ARP 동작 확인, TCP/UDP 통신 확인, SIP/RTP 패킷 분석 등에 사용한다. tcpdump 사용법 1. tcpdump 설치 및 확인sudo apt update # Ubuntu 설치sudo apt install -y tcpdumptcpdump --version # tcpdump 버전 확인tcpdump를 사용하기 전에 먼저 설치가 되어있는지 확인한다.2. 네트워크 인터페이스 확인ip addr # 네트워크 인터페이스 설정 및 상태 확인tcpdump -Dtcpdump로 어떤 인터페이스에서 패킷을 캡처할지 결정해야 한다.ip addr 명령어로는 다음 정보를 확인할 수 있다.인터페이스: eth0..
와이어샤크 (Wireshark) 서버와 서버 간 통신에서는 네트워크 인터페이스를 통해 수많은 데이터가 송수신한다. 와이어샤크(Wireshark)는 네트워크 인터페이스를 오가는 패킷을 수집하고, 패킷 내부의 프로토콜 구조를 계층별로 해석해서 보여주는 네트워크 패킷 분석 도구이다. 와이어샤크은 네트워크를 통해 전송하는 패킷을 캡쳐할 수 있다. 이게 왜 중요하냐면, 프로그램에서 네트워크 오류가 발생했을 때 에러 메시지만으로는 어디서 문제가 발생했는지 파악하기가 어렵기 때문이다. 예를 들어, 다음과 같은 오류가 발생했다고 하자.Server Connection Fail 이 메시지를 통해 알 수 있는 것은 서버 연결에 실패했다는 사실뿐이다. 무엇이 원인인지는 알 수 없다.서버의 IP 주소를 잘못 입력했다.서버 프..
앞서 구성했던 채팅 프로그램에서 채팅을 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 처리 코어송신 및 후처리 코어이처럼 역할을 분리하면, 한 코어에서 처리한 데이터를 다른 코어로 전달해야 하므로 코어 간 ..
