Linux

Linux

Keepalive

TCP keepalive tcp에서 수립된 세션은 원래 요청이 처리된 이후 일반적으로 끊기게되지만, server와 client 측 중 하나라도 keepalive를 사용하게 된다면 요청을 수행한 이후에도 세션을 종료하지 않고 소켓을 유지시킨다. 참고로 이러한 keepalive는 nginx, apache에서 적용하던 http keepalive와 linux kernel parameter 값으로 설정할 수 있는 TCP Parameter가 존재한다. TCP keepalive parameter TCP keepalive parameter에는 다음과 같이 총 3개가 존재한다. net.ipv4.tcp_keepalive_time net.ipv4.tcp_keepalive_intvl net.ipv4.tcp_keepalive_..

Linux

TIME_WAIT 소켓과 keepalive

TIME_WAIT 소켓 TIME_WAIT 상태의 소켓은 TCP 세션 통신 과정에서 연결을 종료할 때 발생한다. TCP에서 최초 통신 수립 시에 3-way-handshaking을 하게되는데, 이후 연결을 해제할 때에는 4-way-handshaking을 하게된다. 연결 해제 시에는 연결을 해제하는 쪽에서 먼저 FIN을 보내게되고, 수신자에서 ACK, FIN을 전송한 이후 송신자가 다시 ACK 전송 후 정상적으로 받게되면 연결 해제가 정상적으로 완료된다. 다만 위 과정에서 송신자는 수신자가 전송한 FIN 이후에 연결된 소켓을 TIME-WAIT 상태로 전환하고 설정된 시간 만큼 대기 후 사라진다. 필요성 TIME_WAIT 소켓은 TCP 연결이 종료된 이후에도 흔적을 남김으로써 이후에 발생할 수 있는 문제점을 방..

Linux

vm.zone_reclaim_mode

linux에서는 사용 용도에 따라 페이지 프레임들을 zone으로 관리하며 그 종류는 다음과 같다. ZONE_DMA ZONE_DMA32 ZONE_NORMAL ZONE_HIGHMEM ZONE_MOVABLE ZONE_DEVICE cat /proc/buddyinfo 조회 시 node 0(NUMA 아키텍처에서 표현하는 영역)에서 DMA, DMA32, Normal 영역들이 표시되었다. 각 영역들을 풀어 설명하게 되면 ZONE_DMA, ZONE_DMA32 DMA란 Direct Memory Access의 약자로써 주소를 지정할 수 있는 모든 메모리에 접근할 수 없는 주변 장치들에 접근하는 DMA에 적합한 메모리를 나타낸다. 수년이 지난 후 DMS 특정 요구사항을 가진 메모리를 가지는 더 좋고 강력한 인터페이스들이 만들..

Linux

SSH Multiplexing

SSH Multiplexing SSH protocol은 TCP를 기반으로 실행되기 때문에 SSH를 사용해 원격 시스템에 연결할 때마다 새로운 TCP 연결을 생성해야한다. SSH 연결 협상은 약간의 시간이 소요되는데, 이때 multiplexing을 활용하게 되면 여러 SSH 세션이 동일한 TCP 연결을 공유하여 TCP 연결 협상이 처음에만 발생하도록할 수 있다. multiplexing 과정 특정 host에 연결 시도 시 OpenSSH는 Master 연결을 시작 OpenSSH는 원격 호스트와 연결된 Unix Domain Socket을 생성 이후 host에 ssh 연결 시도 시 OpenSSH는 새로운 TCP Connection 생성이 아닌 생성되어있는 Unix Domain Socket을 사용해 host와 통신..

xlwdn98767
'Linux' 카테고리의 글 목록