본문 바로가기

프로그래밍/네트워크29

와이어샤크(Wireshark) 설치하기 와이어샤크(Wireshark)란? 네트워크상에서 주고받는 메시지 데이터 블록의 기본 단위를 패킷이라고 한다. 이메일을 보내거나, 파일을 다운로드 받거나, 유튜브 영상을 시청하는 등, 인터넷에 접속해서 우리가 행하는 모든 행위는 사실 패킷의 운송 과정을 통해 이루어진다. 사용자는 알지 못하지만 컴퓨터에서는 매초 많게는 수만 개의 패킷 데이터가 들어오고 빠져나가곤 합니다. 실시간 네트워크 분석을 위해 이 짧은 찰나에 발생하는 패킷 교환 과정을 포착하는 여러 가지 도구들이 제공되고 있으며, 그중 하나가 오늘 다루게 될 Wireshark이다. Wireshark는 가장 보편적인 무료 오픈소스 네트워크 패킷 분석 프로그램이다. 개별 패킷 내의 프로토콜 정보를 세부적으로 파악할 수 있으며 상당히 직관적인 GUI를 제.. 2023. 10. 4.
이더넷(Ethernet)이란 무엇인가? 이더넷(Ethernet)이란? 이더넷은 원칙적으로 하나의 인터넷 회선에 유/무선 통신장비 공유기, 허브 등을 통해 다수의 시스템이 랜선 및 통신포트에 연결되어 통신이 가능한 네트워크 구조를 말한다. 인터넷에 가입해서 설치 기사님이 방문해서 설치해준 모뎀에 랜선으로 공유기를 연결하는 보통의 가정집이 구성한 네트워크 구조가 이더넷(Ethernet)이다. Ethernet은 전 세계 학교, 가정, 사무실에서 가장 많이 활용되는 네트워크 규격이다. OSI 모델 7 계층 중 물리 계층(신호와 배선)과 데이터 링크 계층(MAC 패킷, 프로토콜 형식)에서 그 구성 형식이 정의된다. Internet은 여러 네트워크를 전세계적으로 연결한 컴퓨터 네트워크를 말한다. 네트워크는 우리 집에 있는 가정용 네트워크가 있고 학교용,.. 2023. 8. 23.
TCP 소켓의 입출력 버퍼 TCP 소켓 입출력 버퍼란? TCP 소켓의 데이터 송수신에는 경계가 없다. 예를 들어, 송신 측에서 write() 함수로 여러 데이터를 보내도 수신 측에서는 read() 함수 한 번으로 그 데이터를 수신할 수 있다. 또 송신 측에서 write() 함수로 용량이 큰 데이터를 보내도 수신 측에서 read() 함수로 그 데이터를 여러 번에 나눠서 수신할 수도 있다. (1대 1로 매핑되지 않는다.) 송신 측에서 100 bytes의 데이터를 보냈을 경우 수신자는 20 bytes씩 다섯 번에 나누어 수신할 수 있다는 뜻이다. 그런데 20bytes의 데이터를 수신하는 동안 나머지 80 bytes의 데이터는 어디에 있어야 할까? (네트워크 상에 떠있을 수는 없다.) 또한, 송신자가 100bytes의 데이터를 20 by.. 2023. 8. 23.
빅 엔디언(Big Endian) 리틀 엔디언(Little Endian)에 대해서 엔디언(Endian)이란? 엔디언(Endian)은 컴퓨터의 메모리와 같은 1차원의 공간에 여러 개의 연속된 대상을 배열하는 방법을 뜻하며, 바이트를 배열하는 방법을 특히 바이트 순서(byte order)라고 한다. 엔디언은 보통 큰 단위가 앞에 나오는 빅 엔디언(Big-endian)과 작은 단위가 앞에 나오는 리틀 엔디언(Little-endian)으로 나눌 수 있으면, 두 경우에 속하지 않거나 둘을 모두 지원하는 것을 미들 엔디언(Middle-endian)이라 부르기도 한다. 빅 엔디언과 리틀 엔디언 빅 엔디언(Big-endian) 큰 단위가 낮은 메모리 주소에 들어간다 리틀 엔디언(Little-endian) 큰 단위가 높은 메모리 주소에 들어간다. 어느 한쪽이 압도적으로 좋거나 나쁘지 않음 인텔 프로세.. 2023. 8. 14.
INADDR_ANY에 대해서 INADDR_ANY이란? INADDR_ANY는 자동으로 해당 컴퓨터에 존재하는 랜카드 중 사용가능한 랜카드의 IP주소를 사용하라는 의미이다. INADDR_ANY 사용 이유 예를 들어 2개의 랜카드가 설치되어 있는 컴퓨터에서 각각의 IP주소가 192.168.0.1, 192.168.0.2라고 가정할 때 외부에서 192.168.0.1로 데이터를 보내거나 192.168.0.2로 데이터를 보내거나 내 컴퓨터로 오는 건 동일하다. 하지만 프로그램의 IP주소를 192.168.0.1로 등록했다면 192.168.0.2로 들어오는 데이터는 수신하지 않는다. 즉, 같은 컴퓨터임에도 불구하고 등록한 IP주소가 다르면 데이터를 처리하지 않는다. INADDR_ANY를 사용하면 192.168.0.1로 오는 데이터, 192.168... 2023. 8. 14.
TCP 3-way Handshake & 4-way Handshake TCP 3-way Handshake란? TCP는 장치들 사이에 논리적인 접속을 성립(establish) 하기 위하여 3-way handshake를 사용한다. TCP 3-way handshake는 TCP/IP 프로토콜을 이용해서 통신하는 응용프로그램이 데이터를 전송하기 전에 먼저 정확한 전송을 보장하기 위해 상대방 컴퓨터와 사전에 세션을 수립하는 과정을 의미한다. Client > Server : TCP SYN Server > Client : TCP SYN ACK Client > Server : TCP ACK 여기서 SYN는 'synchronize sequence numbers', ACK는 'acknowledgement'의 약자이다. 이러한 절차는 TCP 접속을 성공적으로 성립하기 위하여 반드시 필요한 절차.. 2023. 8. 14.