기타
tcpdump와 wireshark를 이용한 패킷 분석하기
오늘은 간단하게 tcpdump와 wireshark를 이용해서 내 패킷이 loss가 되고 있는건지 확인해보려고 한다.그러기 위해선 acl을 수정하면서 가동할 서버가 필요하고 이를 위해 AWS EC2를 활용해서 진행해보려고 한다.먼저 들어가기 앞서 tcpdump와 wireshark에 대해 알아보자.TCPdump란?tcpdump란 unix 계열 운영체제에서 제공해주는 커맨드로 네트워크 인터페이스를 통과하는 패킷의 내용을 캡처하고 분석할 수 있게 해주는 도구이다. 그러면 tcpdump는 어떻게 사용하는 걸까? 리눅스에서 사용하는 커맨드는 주로 man이라는 명령어를 이용해서 해당 커맨드에 대한 옵션 정보나 디테일 한 정보를 볼 수 있다. 커맨드 창으로 보기 좀 불편한 경우엔 해당 링크를 통해 tcpdump에 자세..
리눅스에서 ln과 ln -s의 차이
오늘은 리눅스 파일 시스템에서 하드링크를 만드는 방법인 ln과 소프트 링크(심볼릭 링크)를 만드는 ln -s 옵션에 대해 알아보고자 한다.목차inode 소개리눅스에서 링크란?하드링크 소개소프트링크 소개마무리 1. inode 소개먼저 들어가기 앞서 inode에 대해 사전 지식이 필요하다. inode는 유닉스 파일 시스템에서 사용하는 자료구조로 파일, 디렉토리 등 파일 시스템에 관한 정보를 가지고 있다. 즉, 파일의 메타데이터라고 생각하면 되며 inode의 구조는 아래처럼 되어있다.그림과 같이 inode는 파일의 권한 정보, 소유자 정보, 크기, 생성 및 수정 시간, 블록크기 등을 가지고 있다. 이때는 direct blocks은 파일의 데이터 블록을 직접 가리키는 주소가 저장되어 있으면 direct bloc..
CI / CD 에 대해서..
오늘은 CI / CD가 무엇을 의미하고 tool은 어떤 것들이 있는지 알아보고자 한다!! 일단 CI / CD란 일련의 소스 코드 빌드부터 배포까지의 자동화 과정을 통틀어서 말한다. CI(Continuos Integration)은 지속적 통합을 의미하며 build의 자동화, 유닛 및 통합 테스트의 과정을 말하고 CD(Continuos Delivery)는 지속적 배포를 의미하며 build된 코드를 release하고 production으로 deploy하는 과정을 말한다. 현재 CNCF에 등록된 CI/CD를 위한 tool들이 jenkins, github actions, argoCD등 여러 종류의 도구들이 존재한다. 그 중에서 오늘은 github action이랑 aws의 code series에 대해 알아보고자 한..
QUIC HTTP/3 내용 정리
QUIC 새로운 transport layer udp위에 동작하지만 tcp에 상응하는 transport layer 운영체제 밖에서 동작 현대 통신 프로토콜 패러다임 리눅스 커널 바깥으로 유연하게 프로그래밍할 수 있게 PowerShift from Standard to Opensource Out of TCP QUIC은 TCP를 대체하는 범용 목적의 전송 계층 통신 프로토콜로서 당초 처음에 이름을 낼때 Quick UDP Internet Connections로 제안 → IETF에서 QUIC으로 지정. QUIC 은 UDP 베이스로 tls로 반드시 보안을 제공하도록 했고 에러 검출 및 복구, 흐름 제어에 대한 내용이 들어감. 하지만 기존 tcp와 관련해서만 기술이 발전 하다보니 tls와 친화력이 없어서 성능적으로 문..
WebRTC 내용 정리
기존의 p2p방식은 Dirty P2P -> 너무 무거움 클라이언트들이 서버 없이, 클라이언트들끼리 연결되어 통신 -> 다른 클라이언트에 대한 정보 다 가지고 있어야 한다. Client-Server : 중앙집중화된 역할 하는 서버 존재. 내가 채팅 친 것을 다른 애들한테 전달하는 걸 서버에 위임 p2p의 다른 형태를 가져가서 만든 것이 블록체인 p2p방식을 기반으로 생성된 체인 형태의 연결고리 기반 분산 데이터 저장 환경에 저장하여 누구라도 임의로 수정할 수 없고 누구나 변경의 결과를 열람할 수 있는 분산 컴퓨팅 기술 기반의 원장 관리 기술임 지속적으로 변경되는 데이터를 모든 참여 노드에 기록한 변경 리스트. 분산 노드의 운영자에 의한 임의 조작이 불가능하도록 고안됨 누군가가 결제를 만들고 블록체인은 이 ..
HTTP2 정리 내용
HTTP1.1 의 문제점Http는 처음에 text, html만 실어나를 것 생각하고 만들어졌다. 하지만 방향 바뀌면서 오리지널 설계가 담지 못하는 부분 생겼다.3.5세대 이동통신과 스마트폰이 전세계 인터넷의 폭발적 성장을 이끌었다.HoL(Head of Line)줄의 머리가 통과하지 못하면 뒤에서도 통과하지 못한다. 첫번째에 대한 응답 만들지 못하면 뒤의 응답들이 다 만들어져도 못나가고 기다리고 있어야 한다.Fat Message Headerhttp 1.1은 사람이 읽을 수 있게 되어있어서 헤더에 많은 메타 정보를 저장햇는데 앞에 있는 정보와 뒤에 있는 정보가 독립적이라 앞에 많은 것 보냈으면 뒤에도 많은 것 보내야 한다. ⇒ 중복된 Header 값 전송 (domain sharding이란 여러 개의 서브도메..
gRPC 공부 내용 정리
들어가기 앞서 gRPC를 spring boot를 이용해서 4가지 방식에 대한 실습 git repo https://github.com/Eeap/Springboot-with-gRPC gRPC 기존 함수 호출 방법 종류 정적 링킹 - 실행 파일 생성시 필요한 라이브러리를 포함하여 생성하는 링킹 방식 동적 링킹 실행 파일 안에 라이브러리 코드 X, 하나의 메모리 공간에 매핑 후 여러 프로그램에서 공유하여 사용 필요한 함수 호출하면 필요한 모듈을 메모리 상으로 불러와서 실행 원격 함수 호출(RPC) 함수 호출했을 때 호출된 함수의 실행이 통신을 타고 원격지에 있는 컴퓨터에서 실행(분산 네트워크 환경) 컴퓨터를 연결하는 RPC 프로토콜이 필요 필요한것 - IDL : 원격지와의 연결 지원. 서로 다른 컴퓨터의 정보를..
HTTP2 특징 정리 및 springboot로 테스트하기
HTTP 1.1 의 전형적인 문제들RTT 시간 증가 → http1.1의 하나의 커넥션당 하나의 요청을 처리하므로 tcp 3-way handshaking이 매번 커넥션 요청을 할때마다 일어남 이건 불필요한 RTT 시간을 증가시킴(syn를 보내고 syn ack를 받는 왕복 시간)Client-driven transmission → 클라이언트가 요청하지 않으면 서버는 클라이언트로 쪽으로 정보를 전달하지 못함Fat message headers → 헤더에는 수많은 메타 정보가 들어감. 매 요청 시마다 엄청난 양의 헤더를 전송해야하며 중복된 정보가 전송될 수도 있음Head of line blocking → 하나의 커넥션당 하나의 요청을 극복하기 위해 pipelining 기법을 도입해서 순차적으로 여러 개의 요청을 보..