리눅스에서 tcptraceroute를 이용해서 TCP 연결 경로를 추적할 수 있습니다. 포트 연결 상태를 확인할 때 traceroute를 사용기도 하지만, traceroute는 ICMP 패킷을 사용하기 때문에 포트 LISTENING 상태와 상관없이 네트워크 수준에서 막힐 수가 있습니다. 반면 tcptraceroute는 TCP 패킷을 이용하기 때문에 정확히 확인이 가능합니다. tcptraceroute 구문 tcptraceroute [대상 호스트] [포트 번호] 예시) TCP 연결 성공 (포트 오픈) [root@localhost ~]# tcptraceroute naver.com 443 traceroute to naver.com (223.130.195.95), 30 hops max, 60 byte packet..
서버와 통신 상태를 확인할 때 CMD를 통해 ping이나 tracert 명령을 자주 사용하곤 합니다. 윈도우 PC에 기본으로 내장된 프로그램이기 때문에 사용하기가 용이하기 때문에 편리합니다. 그러나 ping이나 tracert를 막아놓는 서버도 존재합니다. tcping이라는 툴을 쓰면 직관적이고 빠르게 포트의 LISTENING 상태를 확인할 수 있습니다. tcping.exe tcping.exe는 ping과 거의 비슷하게 쓸 수 있지만 TCP 포트까지 확인할 수 있습니다. ping과 달리 서버의 특정 포트가 열려있는지도 알 수 있습니다. 툴은 아래의 링크에서 무료로 다운받을 수 있습니다. https://elifulkerson.com/projects/tcping.php tcping.exe - ping over..
서버 이중화 환경을 이해하기 위해서는 L4 스위치 개념을 알아야 합니다. L4 스위치로 이중화 환경을 구성하는 건 직관적으로 이해가 가능하기 때문에 어렵진 않습니다. L4 스위치 L4 스위치는 주로 OSI 모델의 4 계층인 전송(transport) 계층에서 동작하는 장치입니다. L4 스위치의 주요 목적은 네트워크 트래픽을 여러 서버 사이에서 효과적으로 분산시키는 것입니다. 이를 로드 밸런싱이라고 합니다. L4 스위치 및 서버 이중화와 관련해서는 가상 서버(Virtual Server), VIP(Virtual IP), 실제 서버(Real Server), 실제 IP(Real IP) 등의 개념이 있습니다. 가상 서버는 사용자가 서비스를 요청하는 가상의 인터페이스입니다. 가상 서버가 실제 서버의 앞단에서 사용자의..
일반적으로 컴퓨터가 주고받는 무언가를 데이터라고 통칭합니다. 그런데 엄밀히 말하면 네트워크 통신의 과정마다 전달되는 데이터를 표현하는 명칭이 조금 다릅니다. PDU란? PDU (Protocol Data Unit)는 OSI (Open Systems Interconnection) 모델의 각 계층에서 데이터를 어떻게 패키징 할 것인지를 설명하는 용어입니다. OSI 모델의 계층마다 다른 이름으로 데이터 단위를 부릅니다. OSI 7계층 데이터 단위 각 계층에서 데이터는 다르게 패키징 되고 다른 PDU로 불립니다. 계층 데이터 단위 물리 계층 (Physical Layer) 비트 (Bits) 데이터 링크 계층 (Data Link Layer) 프레임 (Frames) 네트워크 계층 (Network Layer) 패킷 (P..
스위치와 허브 모두 기기 간 통신을 할 수 있게 연결해 주는 네트워크 장비입니다. 비슷하면서도 매우 다른 장비이기 때문에 항상 둘은 비교되어 소개되곤 합니다. 실제로 허브가 무엇인지 이해하고 그다음에 스위치에 대해 알아보는 게 좀 더 와닿기 때문에 허브, 스위치 순으로 알아보겠습니다. 허브란? 허브(Hub)는 물리 계층에서 작동하는 네트워크 장비입니다. 컴퓨터와 컴퓨터를 허브라는 장비에 선을 연결해서 이어주는 그림을 생각하시면 됩니다. 허브를 통해 특정 컴퓨터가 다른 컴퓨터로 데이터를 보낼 수 있습니다. 허브는 연결된 모든 장치에 데이터를 브로드캐스트 합니다. 즉, 모든 장치에 데이터를 보냅니다. 이게 가장 중요한 특징입니다. 예를 들어, A, B, C 컴퓨터가 허브에 연결되어 있다면 A가 B에게 데이터..
네트워크에서 컴퓨터가 다른 컴퓨터로 데이터를 보내기 위해서는 목적지 컴퓨터를 식별해야 합니다. 이때 사용되는 게 IP 주소와 MAC 주소입니다. IP 주소를 통해 MAC 주소를 알아야 하는데, 사실 두 주소는 아무런 관계가 없기 때문에 원래 IP 주소로 MAC 주소를 알 수는 없습니다. 이때 MAC 주소를 활용하면 확인이 가능해집니다. ARP란? ARP(Address Resolution Protocol)는 IP 주소를 통해 해당 장치의 MAC 주소를 찾아내는 프로토콜입니다. 컴퓨터가 네트워크상에서 다른 장치와 통신할 때 대상 장치의 IP 주소는 알지만 그 MAC 주소는 모릅니다. 이때 ARP를 사용하여 MAC 주소를 알아낼 수 있습니다. 예를 들어, 컴퓨터 A가 컴퓨터 B와 통신하려 할 때 A는 B의 I..
UDP와 TCP는 트랜스포트 계층에서 동작하는 대표적인 프로토콜로 상반되는 특징을 가지고 있습니다. 대부분의 웹 통신은 TCP를 기반으로 합니다. 때문에 상대적으로 UDP를 쓸 일이 별로 없는데요. UDP를 중심으로 두 프로토콜의 차이를 알아보겠습니다. UDP란? UDP(User Datagram Protocol)는 데이터를 메시지 단위로 분할하여 네트워크를 통해 전송하는 프로토콜입니다. 인터넷 프로토콜 스택의 전송 계층에 위치합니다. UDP는 연결이 없고 신뢰성이 없는 통신 방식을 제공합니다. 데이터가 정확하게 도착했는지 확인하거나, 순서대로 도착했는지 보장하지 않습니다. 스트리밍이나 VoIP처럼 실시간으로 데이터를 빠르게 전송하면서 데이터의 일부가 손실되는 걸 감수할 수 있는 경우 사용됩니다. UDP와..
서버-클라이언트 구조에서 통신이 이루어질 때 데이터를 전달하는 포트 번호 개념이 조금 다릅니다. 서버는 고정된 포트에서 서비스가 대기하고 있고 클라이언트는 요청할 때 가변적으로 임시 포트를 할당합니다. Port란? 네트워크에서 포트(Port)는 특정 IP 주소 내에서 특정 프로세스를 구분하기 위한 번호입니다. 네트워크에서 데이터가 송수신될 때, IP 주소는 목적지 컴퓨터를 알려주고 포트 번호는 그 컴퓨터 내의 특정 서비스나 프로세스를 알려줍니다. 이때 데이터를 보내는 클라이언트의 포트 번호를 출발지 포트 (Source Port), 데이터를 받는 서버의 포트 번호를 목적지 포트 (Destination Port)라고 부릅니다. 일반적으로 저희가 신경 쓰는 포트 번호는 서버의 포트입니다. 사용자 PC에서의 포..
간혹 컴퓨터에 프록시(Proxy)가 잡혀 있을 때 서버와의 통신이 안 되는 경우가 발견되곤 합니다. 신기한 건 통신 분석을 위해 피들러를 켜면, 피들러가 잡은 프록시를 통해서는 정상적으로 통신이 되기도 합니다. 이런 경우 프록시 관련 문제가 맞다는 의미로 해석할 수 있습니다. 문제의 원인을 일반화 할 수는 없지만 가능성이 있는 시나리오를 정리해보겠습니다. 프록시 서버 통신 문제 1. 프록시 설정 문제 사용자 실수 또는 자동 구성 스크립트의 오류로 인해 프록시 설정이 잘못될 수 있습니다. 잘못된 프록시 서버 주소나 포트 정보가 입력되거나, 프록시 설정이 필요하지 않은 네트워크 환경에서도 프록시가 적용되도록 설정된 경우에는 연결 문제가 발생할 수 있습니다. 2.목적지 서버의 차단 일부 웹사이트나 서비스는 알..
꼭 네트워크 부문의 일을 하는 게 아니어도 컴퓨터에서 IPv4 주소 체계에 대한 이해는 필요합니다. IP를 이용해서 컴퓨터가 장치를 식별하고 통신할 수 있기 때문입니다. IPv4 주소 체계의 유한성 때문에 IPv6 주소 체계가 나온 지도 꽤 되었지만 여전히 사설망을 쓰는 기업에선 IPv4 주소 체계를 기준으로 운영됩니다. IPv4 주소의 네트워크 부문과 호스트 부문을 구분할 수 있으면 기본적인 수준의 이해가 가능해집니다. IPv4 IPv4 주소는 4개의 8비트(바이트) 섹션으로 구성되며, 각 섹션은 0부터 255 사이의 값으로 표현됩니다. 각 섹션은 점(.)으로 구분됩니다. 예를 들면 192.168.1.1과 같은 형식으로 표현됩니다. 192.168.1.1 이라는 IP 주소를 8비트 단위로 분리하면 아래와..