반응형

네트워크 및 보안 56

3. 에코 클라이언트 만들기

3. 에코 클라이언트 만들기 앞에서 TCP 에코 서버를 구현했는데 이번에는 TCP 에코 클라이언트를 구현합시다. 2. 에코 서버 만들기 에코 클라이언트도 콘솔 응용프로그램 만들기로 할게요. 먼저 콘솔 응용프로그램(콘솔 앱)을 만드세요. 그리고 에코 클라이언트를 정의할 EchoClient 이름의 클래스를 추가하세요. 여기에서는 EchoClient를 별도의 라이브러리로 제작할 수 있게 클래스의 접근 수준을 public으로 지정할게요. namespace 에코_클라이언트 { public class EchoClient { } } EchoClient도 EchoServer처럼 클라이언트가 연결 시도할 때 필요한 서버의 IP 주소와 포트를 입력인자로 전달하여 개체를 생성합니다. 그리고 이는 비대칭 자동 속성으로 정의한..

2. 에코 서버 만들기

2. 에코 서버 만들기 여기에서는 에코 서버 프로그램을 콘솔 응용프로그램 만들기로 할게요. 먼저 콘솔 응용프로그램(콘솔 앱)을 만드세요. 그리고 에코 서버를 정의할 EchoServer 이름의 클래스를 추가하세요. 여기에서는 EchoServer를 별도의 라이브러리로 제작할 수 있게 클래스의 접근 수준을 public으로 지정할게요. namespace 에코_서버 { public class EchoServer { } } EchoServer 개체는 생성할 때 클라이언트가 연결 시도할 때 필요한 서버의 IP 주소와 포트를 입력인자로 전달합니다. 그리고 이는 비대칭 자동 속성으로 정의한 멤버에 설정하게 작성하세요. public string IPStr { get; private set; } public int Port..

1. TCP 통신 절차

1. TCP 통신 절차 네트워크 프로그래밍에 앞서 간단한 TCP 통신 절차를 소개하기로 할게요. [네트워크 및 보안/TCPIP 프로토콜] TCP 프로토콜을 이용한 통신은 서버와 클라이언트 사이에 연결을 형성한 후에 스트림 방식으로 패킷을 송수신합니다. 스트림 방식의 통신에서는 전송한 패킷의 순서대로 도착하며 패킷 전송 중에 전송이 실패하면 다시 전송하여 신뢰성을 보장하는 방식입니다. TCP 통신에서 서버는 대기 소켓을 생성하고 로컬 소켓 주소로 네트워크 인터페이스와 결합한 후에 백 로그 큐를 설정합니다. 이 상태에서 클라이언트 측의 연결 요청이 오면 이를 수락하여 송수신에 사용할 소켓을 만듭니다. 이 후 송수신 소켓으로 클라이언트와 패킷을 주고 받는 작업을 수행하며 더 이상 송수신할 패킷이 없으면 소켓을..

[TCP/IP 프로토콜 파헤치기] 4.1 IPv4 주소

4.1 IPv4 주소 IPv4의 주소는 32비트(4바이트)의 길이를 갖고 있습니다. 그리고 IPv4 주소를 표현할 때는 “123.45.67.89”처럼 1바이트씩 나누에 4개의 값을 점으로 구분하여 표시를 합니다. 따라서 4개의 각 부분은 0에서 255 사이의 값을 갖는 것입니다. 그리고 IPv4의 주소는 같은 네트워크에 있는 호스트들은 같은 값을 갖는 네트워크 주소와 호스트를 구분하기 위한 호스트 주소로 구분합니다. 그리고 네트워크의 크기에 따라 호스트의 개수를 다를 수 있게 CLASS A에서 CLASS E까지 정의하고 있습니다. 처음으로 0인 값이 나오는 비트의 자리가 맨 앞이면 A클래스 두번째이면 B클래스, 세번째이면 C클래스입니다. 따라서 A 클래스는 주소의 첫번째 값이 0~127이며 B클래스는 1..

[TCP/IP 프로토콜 파헤치기] 4. IPv4 프로토콜

4. IPv4 프로토콜 인터넷 프로토콜(IP)은 TCP/IP 통신에서 네트워크 계층을 담당하고 있습니다. 이는 TCP/IP 통신에서 네트워크 엔터티를 구분하는 주소를 결정하는 역할을 담당함을 의미합니다. IP 프로토콜에서는 패킷 교환 방식으로 목적지까지 패킷을 전달합니다. 이는 전송자와 수신자 사이에 연결을 유지하지 않는 상태에서 패킷 단위로 전송함을 의미합니다. 이로 인해 보낸 순서와 수신한 순서가 바뀔 수도 있고 제대로 전송하지 못하는 패킷이 존재할 수도 있습니다. 하지만 이로 인해 발생하는 문제를 해결하는 것은 IP 프로토콜에서 처리하는 않고 상위 계층인 전송 계층 프로토콜(TCP, UDP)에서 처리합니다. 또한 IP 패킷을 전송할 때 망에 따라 한 번에 전송할 수 있는 최대 패킷의 크기가 다른 특..

[TCP/IP 프로토콜 파헤치기] 3.1 ARP 프로토콜 스택

3.1 ARP 프로토콜 스택 ARP 프로토콜은 다음과 같을 때 사용합니다.- 같은 망에 있는 호스트에 전달할 때 - 목적지 호스트 IP 주소를MAC으로 변환 요청 - 다른 망에 있는 호스트에 전달할 때 - 라우터의 IP 주소를 MAC으로 변환 요청 - 라우터에서 이웃 라우터 위치 파악할 때 - 이웃 라우터 IP 주소를MAC으로 변환 요청 - 라우터에서 목적지가 자신의 망의 호스트일 때 - 호스트 IP주소를 MAC으로 변환 요청 *만약 자신이 상대 장치의 MAC을 알고 있다면 위 요청은 진행하지 않습니다. [그림 1] ARP 프로토콜 스택 이더넷일 때 하드웨어 유형은 1입니다. 또한 IPv4의 프로토콜 유형은 6입니다. 이더넷의 물리 주소의 길이는 6이며 IPv4의 물리 주소의 길이는 4입니다. Opera..

[TCP/IP 프로토콜 파헤치기] 3. ARP 프로토콜

3. ARP 프로토콜 ARP (Address Resolution Protocol) 프로토콜은 IP 주소를 물리 주소(MAC Address)로 번역해 주는 프로토콜입니다. 결국 모든 패킷은 호스트와 라우터에 도달하기 위해서는 물리 계층을 통해 전달해야 합니다. 여기에서 물리 주소는 LAN 내에서 구분하기 위함이기 때문에 로컬 네트워크에서 유일함을 보장합니다. IP 주소를 물리 주소로 번역하는 방법에는 크게 정적 매핑과 동적 매핑이 있습니다. 정적 매핑 방법에서는 논리 주소(IP 주소)와 물리 주소를 매핑하는 테이블을 사용합니다. 하지만 물리 주소가 변동성이 있을 때 주기적으로 갱신해야 하는 오버헤드가 발생할 수 있습니다. 머신의 NIC을 바꾸면 새 물리 주소를 갖는 결과를 가져옵니다. 또한 부팅할 때마다 ..

[pcap 파일 분석기 만들기 wich C언어] 5. 패킷 분석기 예광탄 - ARP 프로토콜 스택 분석

5. 패킷 분석기 예광탄 - ARP 프로토콜 스택 분석 안녕하세요. 언제나 휴일, 언휴예요. 이전 게시글에서는 pcap 파일의 IPv4 프로토콜 스택 분석하는 부분을 추가했어요. 현재까지 PCAP 파일 포멧 분석 및 ethernet 프로토콜 스택과 IPv4 프로토콜 분석하였습니다.[pcap 파일 분석기 만들기 wich C언어] 1. pcap 파일 구조 분석[pcap 파일 분석기 만들기 wich C언어] 2. 패킷 분석기 예광탄 - 패킷 개수 및 바이트 수 출력[pcap 파일 분석기 만들기 wich C언어] 3. 패킷 분석기 예광탄 - ethernet 프로토콜 스택 분석[pcap 파일 분석기 만들기 wich C언어] 4. 패킷 분석기 예광탄 - IPv4 프로토콜 스택 분석 이번에는 ARP 프로토콜 스택 헤..

[pcap 파일 분석기 만들기 wich C언어] 4. 패킷 분석기 예광탄 - IPv4 프로토콜 스택 분석

4. 패킷 분석기 예광탄 - IPv4 프로토콜 스택 분석 안녕하세요. 언제나 휴일, 언휴예요. 지난 게시글에서는 pcap 포멧 파일을 로딩하여 ethernet 프로토콜 스택을 분석하는 예광탄을 만들어 보았어요.[pcap 파일 분석기 만들기 with C언어] 1. pcap 파일 구조 분석[pcap 파일 분석기 만들기 wich C언어] 2. 패킷 분석기 예광탄 - 패킷 개수 및 바이트 수 출력[pcap 파일 분석기 만들기 with C언어] . 패킷 분석기 예광탄 - ethernet 프로토콜 스택 분석 이번에는 IPv4 프로토콜 스택 분석하는 부분을 작성할 거예요. [네트워크 및 보안/TCPIP 프로토콜] - IPv4 빨간색으로 테두리 안에 있는 내용이 이번에 추가한 기능에 의해 출력하는 부분이예요. 현재 작..

반응형