network

    TCP 4-way-handshake

    ▪︎ TCP 통신 📌 TCP는 서버와 클라이언트 사이간을 종료하기 위해 4-way-handshake를 사용한다. TCP 4-way-handshake TCP/IP 프로토콜을 사용하여 통신을 하는 응용 프로그램이 상대방 컴퓨터와 세션을 종료하기 위해 수행되는 절차 Client는 Established 상태, Server도 Established 상태이다. Client가 Server에 연결 종료 요청을 하기 위해 FIN 플래그를 전송한다. Client는 Estabilished에서 FIN-WAIT 상태 변경한다. Server는 Client가 보낸 FIN 플래그를 받고 요청을 정상적으로 받았다는 ACK를 전송한다. Server는 Established에서 CLOSE_WAIT로 상태 변경한다. Server가 연결을 종료..

    TCP 3-way-handshake

    ▪︎ TCP 통신 📌 TCP는 서버와 클라이언트 사이 간에 동기화하기 위해 3-way-handshake를 사용한다. TCP 3-way-handshake TCP/IP 프로토콜을 사용하여 통신을 하는 응용프로그램이 데이터를 전송하기 전에 먼저 정확한 전송을 보장하기 위해 상대방 컴퓨터와 사전에 세션을 수립하는 과정 Client는 Closed 상태, Server는 Listen 상태이다. Client가 Server에 연결 요청을 하기 위해 SYN 데이터를 전송한다. Server는 Client가 보낸 SYN 데이터를 받고 Listen에서 SYN_RCV로 상태 변경한다. Server는 Client에 요청을 정상적으로 받았다는 ACK와 Client 포트를 열어달라는 SYN 데이터를 같이 전송한다. Client는 AC..

    네트워크 스위치

    ▪︎ 네트워크 스위치의 사전적 의미 ✔ 네트워크 스위치(Network Switch)는 처리 가능한 패킷의 숫자가 큰 것으로, 네트워크 단위들을 연결하는 통신 장비로서 소규모 통신을 위한 허브보다 전송 속도가 개선된 것이다. ✔ 간단하게 스위치라고 부르는 경우가 많으며, MAC 브리지, 스위칭 허브(switching hub), 포트 스위칭 허브(port switching hub)라고도 한다. 즉, 모든 스위치는 말 그대로 ‘Switching’ 패킷을 어느 쪽으로 보내야 하는 역활을 해야한다. 1️⃣ L2 스위치 L2(Layer 2) = Data Link Layer MAC 정보(MAC Table)을 보고 스위칭을 하는 것. 각 포트 별 bandwidth가 부여되고 L2는 디바이스의 Mac 주소를 알고있음 2..

    왜 Docker Driver + Minikube에선 안되는 게 많을까

    📍 Epilogue CSP의 K8s 서비스를 사용하기 전에 Minikube를 사용하여 프로젝트를 진행하였다. 노드에 올려놓은 파드에 대해서 여러 가지 타입으로 서비스를 배포하고자 하였다. 그런데 NodePort, LoadBalancer 타입은 Minikube에서 Docker Driver 특성상 완벽하게 동작하지 않는 것이었다. NodePort → Container IP로 접속 불가능 LoadBalancer → External IP 제공 불가능 MetalLB addon으로 External IP 제공 가능하지만 접속 불가능 minikube service 명령어로 tunneling을 이용해서 접속 가능 그래서 여기서 의문점 ❗️ Docker Driver의 특성이 뭐길래? 일단 소프트웨어 드라이버에 대하여 알아..

    K8S Service Network - 실습

    ▪ 실습 ClusterIP NodePort • ClusterIP 3pod.yaml (목적지 파드) apiVersion: v1 kind: Pod metadata: name: webpod1 labels: app: webpod spec: nodeName: w1-k8s containers: - name: container image: traefik/whoami terminationGracePeriodSeconds: 0 --- apiVersion: v1 kind: Pod metadata: name: webpod2 labels: app: webpod spec: nodeName: w2-k8s containers: - name: container image: traefik/whoami terminationGracePe..

    K8S Service Network

    ▪︎ Service(서비스)란? 파드 집합에서 실행중인 애플리케이션을 네트워크 서비스로 노출하는 추상화 방법 ▪ ServiceTypes(서비스 퍼블리싱) ClusterIP : 서비스를 클러스터-내부 IP에 노출시킨다. (ServiceTypes → default value) NodePort : 고정 포트(NodePort)로 각 노드의 IP에 서비스를 노출시킨다. LoadBalancer : 클라우드 공급자의 로드 밸런서를 사용하여 서비스를 외부에 노출시킨다. ExternalName : 해당 DNS Name에 대한 CNAME 레코드 반환 ▪ ClusterIP 클러스터 내부의 파드가 클러스터 내부의 다른 파드에 통신할 수 있는 서비스 제공 외부에서의 접근 불가능 모든 노드에 iptables rule 설정 파드에..