Backend 88

서브넷

네트워크 책이나 인터넷에서 네트워크 관련 검색을 하다 보면,, 200.222.11.11/24 192.158.22.1/22 등등등 IP에 알수없는 / 숫자 같은게 나타나곤 한다. 물론 네트워크 책에 다 나와있긴 하지만 무슨 말인지 알아듣기 힘들어서 -_- 정리... 우선 서브넷에대한 정의.. 서브넷은 한정된 IP를 효과적으로 사용하기 위해, 그리고 한 기관에서 네트워크를 여러 개로 분리해서 사용하기 위해 만들어진 방법이다. 그리고 서브넷 마스크.. 어떠한 패킷이 유입되면, 그 패킷의 서브넷을 통해 다시 목적지로 라우팅된다. 이 때 서브넷 마스크가 사용되는데, 이 서브넷 마스크를 통해서 선택된 비트들만 확인하여 주소를 알 수 있게 된다. (물론 속도가 빨라진다..) C 클래스 서브넷을 사용하는 대역에서.....

Backend/Network 2012.04.12

TCP Handshake

전에 TLS 핸드셰이킹에 대해서 포스팅을 했었는데.. TLS가 기반을 두고있는 TCP에 대한 포스팅은 정작 하지 않았다는것을... 방금 깨달았다. 우선 TCP 개념부터 간단히 정리하자면, TCP, (Transmission Control Protocol) 전송 제어 프로토콜 인터넷에서 데이터를 보내기 위해서 IP와 함께 사용되는 프로토콜이다. TCP는 UDP와 같은 계층에 존재하며, UDP와 다른 것은 보다 정확한 데이터 송수신이 이루어 진다는 점이다. "신뢰성" 프로토콜 이라고 할 수 있다. 위키 백과 참조 > 바로가기 계층 구조도는 다음과 같다. Higher Level Telnet, FTP, HTTP, SIP ...... TCP TCP, UDP, ,,,,,, Internet Protocol IP & I..

Backend/Network 2012.04.12

FTP - 두 번째.

지난 포스팅에서 언급했던 FTP에 대해 더 자세히 포스팅하려고 한다. FTP도 Server-Client 모델이기 때문에 당연히 요청-응답 패킷이 존재한다. 그리고 이 FTP 는 TCP 패킷 위에 올라간다. 오늘 포스팅할 내용은, FTP요청/응답에 대한 것이다. FTP 요청/응답은 아주 심플하다. TCP 패킷 위에, 요청/응답 코드 및 메시지가 전부이다. 다음은 RFC문서를 참고하여 자주 사용하는 FTP 요청을 정리한 테이블이다. 열씨미 정리했으므로 이미지로 투척! ㅋㅋㅋ 보통 FTP 어플리케이션을 이용하거나, 커맨드를 사용하는데, 예를 들어 파일을 업로드하게 되면 커맨드로는 이렇게 사용하지만, 패킷 상으로는 STOR filename 형식이 된다. 요청이 있으면 이에 따르는 응답도 존재한다. 아래는 자주 ..

Backend/Network 2012.04.12

FTP

FTP (File Transfer Protocol) FTP 는 일반적으로 잘 알려진 파일 전송 프로토콜이다. 알 FTP, WINFTP 등 많은 툴들을 사용해 서버에 데이터를 올리고, 내릴 수 있는데, 오늘은 이 편한 프로토콜에 대해 알아보려고 한다. 일단 RFC959 에 기술된 기본 용어들 중 알아둬야 할 용어를 간단히 정리. PI : Protocol interpreter. Control 커넥션을 만들기 위해 커맨드 및 이에 대한 응답을 주고 받음. DTP : Data transfer process. 데이터 커넥션을 만들고 관리하는 것을 의미. Control connection : User PI와 Server PI 사이에서 주고받는 커맨드 및 응답. Telnet protocol과 동일. Data conn..

Backend/Network 2012.04.12

iptables-ssh 포트 설정하기!

요새 집에서 vmware를 설치해서 사용하고 있는데, ssh 접속이 되지 않아 고민하던중 방화벽 때문일지도 모른다는 생각이 들어 iptable 설정을 변경해 보았다. 결과는~매우 잘됨 ㅎㅎㅎ 명령어는 다음과 같다. >iptables -I INPUT -p tcp --dport 22 -J ACCEPT 물론 다른 포트들도 Open/close가 가능하다. 만약 접속 못하게 하고 싶으면 >iptables -I INPUT -p tcp --dport 22 -j DROP 이렇게 설정해 주면 됨!!

Backend/OS★ 2012.04.12

컴퓨터의 기본, Stack

흠.. 정말 기본적이지만 중요한 개념..스택에 대해서 정리를 해보았다. 스택은 데이터를 아래서부터 차곡차곡 쌓고, 꺼낼 떄는 위에서 부터 꺼내는 Last In First Out 형식의 데이터 구조이다. 자료를 넣는 것을 PUSH,꺼내는 것을 POP이라고 하며, PUSH 및 POP을 할때 마다 스택 포인터의 값이 변한다. #include #define MAX 100 int stack[MAX]; //스택 int stack_pointer = 0; //스텍 포인터 int push(int); int pop(int*); int main(void){ int c, n, num=0; while(num != 3){ printf("1.Input 2.Output 3.Exit : "); scanf("%d", &num); swi..

Backend/C 2012.04.12

몇 가지 간단한 math 함수 사용하기

1. abs 함수 원형 int abs(int num); 기능 : num 의 절대값을 구하여 리턴한다. 헤더 : math.h , stdlib.h 예) 1 : #include 2 : #include 3 : 4 : void main(){ 5 : int a, b; 6 : a = -4; 7 : b = -4; 8 : printf("a = %d, b = %d\n", a, b); 9 : 10 : printf("a = %d, b = %d\n", a, abs(b)); 11 : } 결과) 비슷한 기능을 가진 함수로는 fabs, labs 등이 있다. 2. ceil 함수 원형 double ceil(double num); 기능 : num의 소숫점 자리를 올림하여 리턴한다 헤더 : math.h 예) 1 : #include 2 : ..

Backend/C 2012.04.12

Dynamic Programming

* Matrix Chain Multiplication(행렬 체인 곱) -행렬 곱 문제를 해결하는 알고리즘 -괄호 묶는 방법의 수 세기 Step 1 : The Struct of an Optimal Parenthesization ( 최적 괄호 묶기의 구조) 최적 부분 구조를 찾은 뒤, 부분 문제에 대한 최적해를 그 문제에 대한 최적해를 구성하는 데 사용. -A[i]A[i+1]......A[j]의 곱 A[i...j] 를 계산할 경우,(A[i] 는 행렬), 이들의 괄호 묶는 방법의 결과는 어떤 정수 k(i

Backend/C 2012.04.12

최대 공약수 구하기

유클리드 호제법 1. 두 정수 m, n(m>n)이 있을 때, m과 n의 최대공약수는 m-n과 n의 최대공약수와 같다. ⓐm과 n이 틀리면 다음을 반복한다. ⓑm>n이면 m=m-n, 아니면 n=n-m이다. ⓒm또는 n이 구하고자 하는 최대공약수이다. #include int main(void) { int a, b, m, n; printf("Insert 2 numbers: "); scanf("%d %d" , &a, &b); m = a; n=b; while(m!=n){ if(m>n) m= m-n; else n=n-m; } printf("최대공약수 : %d\n", m); return 0; } 2. m과 n의 차이가 클 경우 뺄셈(m-n) 대신에 나머지(m%n)을 이용하는 방법 #include int main(vo..

Backend/C 2012.04.12
반응형