FTP란?

File Transfer Protocol 즉 파일을 옮기는 방법이다. 

 

접속 방법은 다음과 같다.

c:\ ftp 111.222.333.444

c:\ ftp www.daum.net

ftp>

 

파일전송 방법을 선택한다.

binaty - 메모리의 값을 전송하는 방식이다.

ascii - 문자 자체를 전송하는 방식이다.

 

기본 옵션들을 설정한다.

hash - 파일의 전송 진행 상태를 #을 이용하여 나타낸다.

prompt - 파일 전송시마다 확인 여부를 선택한다.

 

pwd - ftp 서버에서 현재 나의 위치를 알려준다.

Is - 현재 ftp서버의 파일 정보를 list up 한다.

 

cd directory - ftp 서버에서 다른 위치로 이동한다.

 

!를 사용하면 ftp접속 전의 시스템 명령 사용이 가능하다.

(# !dir - windows의 c:\위치에서 접속했다면 c:\의 파일 정보를 list up한다.) 

 

파일 다운받기

filename.txt 파일 한개를 다운로드하기

ftp> get filename.txt

확장자가 txt인 파일을 모두 다운로드하기

ftp> mget *.txt

현재 위치의 모든 파일을 다운로드하기

ftp> mget *.*

접속 당시 위치가 c:\이기 때문에 받은 파일도 c:\에 위치한다.

 

파일 업로드하기

c:\ 위치에 있는 filename.txt 파일 한개를 업로드하기

ftp> put filename.txt

 

c:\ 위치에서 확장자가 txt인 파일을 모두 업로드하기

ftp> mget *.txt

 

c:\ 위치에 있는 모든 파일을 업로드하기

ftp> mput*.*

 

접속을 종료할 때는 다음과 같은 명령어를 사용한다.

ftp> bye

ftp> quir

 

ftp는 명령어가 많지 않아서 약어를 사용해도 대부분 인식이 가능하다.

ex. bye =>by

ex. binary =>bi

ex. hash => ha

 

 

FTP서버란?

파일 전송 서비스이다.

 

choort :

ftp에 클라이언트가 접속했을때 /home/(user)로 보이는 것을 /로 보이게 한다.

NO 일때 chroot_list파일에 등록된 유저만 접속이 가능하다. YES 일때 파일에 등록된 유저는 deny.

 

기본설정 파일 /ect/vsftpd/vsftpd.conf

 

userlist :

유저 접속 권한을 설정한다. userlist_deny와 같이 쓴다. (defaul 값=no)

userlist_deny가 NO 일때 user_list 파일에 등록된 유저만 접속 가능하다. YES 일때 파일에 등록된 유저 deny.

 

유저 권한 설정 파일 /ect/vsftpd/ftpusers & /ect/vstfpd/user_list

 

tcp warppers :

접속 가능한 ip를 설정한다.

hosts.deny 파일에 등록된 ip는 deny.host.allow 파일에 등록된 ip는 모두 허용한다.

두 파일 중 allow가 더 우선된다.  vsftpd : all 입력시 모든 ip를 의미한다.

 

ip 권한 설정 파일 /ect/hosts.deny & /ect/hosts.allow

'프로그래밍 & IT' 카테고리의 다른 글

OSI 7 계층(Layer)이란?  (0) 2020.04.28
해밍 코드(Hamming Code)의 오류 검사  (0) 2020.04.27
해밍코드의 체크 비트 구하기  (0) 2020.04.26
해밍코드(Hamming Code)  (0) 2020.04.25
패리티 비트(Parity Bit)  (0) 2020.04.24

 

네트워크의 가장 중요하고 기초가 되는 것이 OSI 7계층이다.

 

OSI 7계층(Layer)이란?

-Open Systems Interconnection Reference Model의 약자이다.

-국제 표준화 기구(ISO)가 1984년에 개발한 모델이다. 

-컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 것이다.

-OSI 7계층 모형이라 부른다.

 

7계층 구성표

  계층 단위 OSI 계층 모형 TCP/IP Protocol
7계층 Data Application Layer (응용 계층)

Application:

telent, FTP, DHCP, TFTP, HTTP, SMTP, DNS, SNMP

6계층 Presentaton Layer (프레젠테이션 계층)
5계층 session Layer (세션 계층)
4계층 Segments Transport Layer (전송 계층)

Transport:

TCP, UDP

3계층 Packet/Datagram Network Layer (패킷 계층)

Internet:

IMCP, ARP, RARP, IP

2계층 Bit/Frame DataLink Layer (데이터링크 계층) Network Interface
1계층 Bit Physical Layer (물리 계층)

 

 

OSI 7계층의 구성

 

응용 계층 (Application)

-이용되는 어플리케이션 중에서 통신과 관련된 부분을 정해 놓고 있다.

-가장 최상위 층으로 사용자와 직접적으로 상호작용하는(User Interface) 모든 응용 프로그램들이 속한다. (Internet Explorer)

-사용자와 가장 가까운 프로토콜을 정의한다. (HTTP, FTP, Telent, SMTP, DNS, TFTP)

 

표현 계층 (Presentation Layer)

-전송하는 데이터의 Format(구성 방식)을 결정하는 계층이다.

-다양한 데이터 Format을 일관되게 상호 변환, 압축 및 암호화, 복호화 기능을 수행한다. (ASCII, EBCDIC, CIF, JPEG, AVI, MPEG)

 

세션 계층 (Session Layer)

-통신의 관리, 커넥션(데이터가 흐르는 논리적인 통신로)의 확립, 끊기 등 데이터 전송에 관련된 기능을 담당

-데이터 동기화와 네트워크 오류 이벤트 검사, 오류가 발생한 지점 이후의 데이터만 재전송을 보장한다.

 

위의 세개의 계층을 통해 데이터가 만들어진다.

 

트랜스포트 계층 (Transport Layer)

-정보를 분할하고 송신측에 도달하기 전에 다시 합치는 과정을 담당하는 계층이다.

-전송 방식을 결정한다.

-목적지 컴퓨터에서 발신지 컴퓨터 간의 통신에 있어 에러제어와 흐름제어를 담당한다.

-대표적으로 TCP와 UDP가 있다.

TCP는 데이터가 잘 전송되는지 확인하고 중간에 에러가 발생하는 경우 이를 찾아서 에러난 부분을 재전송한다. 

반면 UDP는 데이터를 전송하는 작업만 한다.

 

네트워크 계층 (Network Layer)

-경로선택, 라우팅, 논리적주소(IP)를 정의하는 계층이다.

-Routing Protocol을 이용하여 패킷을 목적지까지 가장 빠른 경로로 전송하는 역할이다. 여기서 이용되는 장비가 Router이다. 

 

데이터 링크 계층(DataLink Layer)

-물리적 계층을 통한 데이터 전송에 신뢰성을 제공한다.

-직접 연결되어 있지 않은 네트워크에 대해서는 상위 계층에서 오류 제어를 담당한다.

-직접 연결된 기기 간의 데이터 프레임의 식별 및 전송을 담당한다.

 

물리 계층 (Physical Layer)

-네트워크 통신을 위한 물리적인 표준을 정의하는 계층이다.

-데이터를 전기신호로 바꿔주는 역할을 한다.

-0과 1을 전압의 고저 또는 빛의 점멸로 변환하거나 반대의 역할을 담당한다.

 

 

해밍 코드(Hamming Code)

 

  • 해밍 코드(Hamming Code)란?

오류 검출과 정정을 할 수 있는 코드이다.

데이터 비트 외에 추가적인 많은 비트가 필요하므로 많은 양의 데이터 전송에 유리하다.

 

  • 추가되는 패리티 비트의 수

2^p >= d+p+1

(p: 패리티 비트의 수, d: 데이터 비트의 수)

 

사용가능한 데이터 비트 수

p=3 d=2~4

p=4 d=5~11

p=5 d=12~26

 

1비트 오류 검출 및 정정 기능하다.

2비트의 오류 검출은 가능하지만 정정은 불가능하다.

 

  • 패리티 비트의 위치

패리티 비트는 2^n (n=0,1,2...)의 위치에 배치한다.

데이터는 그 사이의 빈 자리에 배치한다.

 

  • 패리티 비트의 위치 예시

데이터 비트 수=8인 경우, 추가되는 패리티 비트의 수는?

2^p >= 8+p+1

위 식을 만족하는 p의 최소 값 (p=4)

 

해밍코드 전체 비트의 수는?

d+p (8+4=12)

 

패리티 비트와 데이터 비트의 위치는 다음과 같다.

 

  • 패리티 비트의 영역

P1의 영역 D3+D5+D7+D9+D11

P2의 영역 D3+D6+D7+D10+D11

P4의 영역 D5+D6+D7+D12

P8의 영역 D9+D10+D11+D12

 

8비트 데이터의 해밍 코드 생성 예제

패리티비트 구하기 (짝수=0, 홀수=1)

P1= D3+D5+D7+D9+D11= 0+1+1+1+1=0

P2= D3+D6+D7+D10+D11= 0+0+1+0+1=0

P4= D5+D6+D7+D12= 1+0+1+1=1

P8= D9+D10+D11+D12= 1+0+1+1=1

 

심드롬(C) 값 구하는 방법

패리티 비트를 포함하여 검사한다.

C1= P1+D3+D5+D7+D9+D11= 0+0+1+1+1+1=0

C2= P2+D3+D6+D7+D10+D11= 0+0+0+1+0+1=0

C4= P4+D5+D6+D7+D12= 1+1+0+1+1=0

C8= P8+D9+D10+D11+D12= 1+1+0+1+1=0

C8C4C2C1=0 이므로 신드롬의 값은 0이다.

 

  • 신드롬(Syndrome)

검사된 C8C4C2C1dml 2진 값 0~15 사이에서 만들어지는 오류의 값이다.

신드롬=0이면 오류가 없다.

만약 6이면, 6번째 비트인 D6에서 오류가 발생한 것이다.

 

오류가 있는 경우 예제

C1= 0+0+1+1+1+0=1

C2= 0+0+0+1+0+0=1

C4= 1+1+0+1+1=0

C8= 1+1+0+0+1=1

C8C4C2C1=1011

 

신드롬의 값인 2진수 1011을 10진수로 바꿔준다.

1101(2)→11(10)

11비트인 D11에 오류가 발생했다.

0을 반전하여 데이터를 정정해준다.

오류를 수정한 데이터는 000110111011이 된다.

 

 

 

정리

1.패리티 비트

  • 데이터 전송에서 발생하는 오류를 검출하기 위해 가장 간단하게 자주 사용하는 방식으로 패리티 비트라는 추가 비트를 사용한다.

  • 홀수 및 짝수의 두 가지 패리티 비트 생성 방식이 있다.

  • 패리티 비트 방식은 홀수 개의 오류가 발생하면 검출이 가능하다.

2.해밍코드

  • 오류 검출 및 정정을 할 수 있는 코드로 많은 양의 데이터 전송에도 사용할 수 있다.

  • 데이터의 비트 수에 따라 추가적인 패리티 비트의 수가 증가한다.

  • 신드롬 값으로부터 오류가 발생한 비트를 알 수 있고 이것을 반전하여 오류를 정정한다.

'프로그래밍 & IT' 카테고리의 다른 글

[리눅스] FTP 기본 사용방법  (0) 2020.04.29
OSI 7 계층(Layer)이란?  (0) 2020.04.28
해밍코드의 체크 비트 구하기  (0) 2020.04.26
해밍코드(Hamming Code)  (0) 2020.04.25
패리티 비트(Parity Bit)  (0) 2020.04.24

 

저번 포스팅에서 해밍코드를 통해 패리티 비트 수를 결정하고 패리티 비트를 배치하는 위치에 대해 알아보았다.

이번 포스팅에서는 각 패리티 비트의 체크 비트들을 구하고 오류가 발생한 비트를 찾아보자.

 

데이터 비트가 4비트라고 했을 때 p=3으로 3개의 패리티 비트가 필요하고 배치 위치는 2^n 자리에 들어가기 때문에 정리하면 아래 표와 같다.

비트 번호

7

6

5

4

3

2

1

해밍 코드

D7

D6

D5

P4

D3

P2

P1

 

 

각 패리티 비트의 체크 비트 영역을 구하는 방법은 다음과 같다.

먼저 자기 비트부터 시작해 2^n 만큼 읽는다. 그다음 2^n 만큼 넘어가기를 반복한다.

P1의 시작비트는 1이므로 1, 3, 5, 7,..이 되고 P2의 시작비트는 2이므로 2, 3, 5, 6,...이 된다. 나머지 비트들도 동일하게 적용한다. 

알기 쉽게 표로 정리하면 다음과 같다. 

 

1

2

3

4

5

6

7

8

9

P1(1비트)

확인

 

확인

 

확인

 

확인

 

확인

P2(2비트)

 

확인

확인

 

확인

확인

   

확인

P3(4비트)

     

확인

확인

확인

확인

확인

 

P4(8비트)

             

확인

확인

 

다음 포스팅에서는 오류가 발생한 비트 검출과 수정에 대해 알아보도록 하자.

 

 

'프로그래밍 & IT' 카테고리의 다른 글

OSI 7 계층(Layer)이란?  (0) 2020.04.28
해밍 코드(Hamming Code)의 오류 검사  (0) 2020.04.27
해밍코드(Hamming Code)  (0) 2020.04.25
패리티 비트(Parity Bit)  (0) 2020.04.24
스레드(Thread)  (0) 2020.04.08

 

해밍코드는 에러를 검출 및 교정한다.

데이터비트와 에러 검출과 수정을 위한 패리티비트로 구성되어 있다.

전송되는 데이터의 비트 수에 따라 패리티 비트의 수가 결정된다. 

 

패리티 비트의 수를 결정하는 공식은 다음과 같다.

2^p - 1 >= n + p (n은 데이터 비트의 수이고 p는 패리티 비트의 수이다.)

위의 식을 만족하는 p의 최소값이 패리티 비트의 수가 된다.

 

패리티 비트를 배치해 보자.

패리티 비트의 위치는 우측 비트부터 시작하여 2^n의 자리에 배치된다.(이때 n은 0부터 시작한다.) 

P8 D7 D6 D5 P4 D3 P2 P1 (D는 정보 비트를 나타내고 P는 패리티 비트를 나타낸다.)

 

예를 들어 p가 3이면 우측 비트부터 1번째, 2번째 그리고 4번째에 패리티 비트가 배치된다.

(2^0=1, 2^1=2, 2^2=4가 되기 때문이다.)

D7 D6 D5 P4 D3 P2 P1

 

p가 4면 1, 2, 4, 8번째에 패리티 비트가 배치된다.

(2^0=1, 2^1=2, 2^2=4, 2^3=8이 되기 때문이다.)

P8 D7 D6 D5 P4 D3 P2 P1

 

그렇다면 데이터비트가 4비트일 때 패리티 비트의 수와 배치 위치는?

데이터 비트가 4비트일 때 패리티 비트의 값은 3이 되고 배치위치는 2^n자리에 들어가기 때문에 1, 2, 4자리에 들어간다. (P1, P2, P4)

 

각 자리의 패리티 비트를 결정하기 위해서는 다음과 같은 규칙을 사용한다.

P1의 값 1, 3, 5, 7 비트를 검사 후 짝수 패리티가 되도록 한다.

P2의 값 2, 3, 6, 7 비트를 검사 후 짝수 패리티가 되도록 한다.

P4의 값 4, 5, 6, 7 비트를 검사 후 짝수 패리티가 되도록 한다.

 

오늘은 패리티 비트의 배치 방법에 대해서 알아보았다.

다음 포스팅에서 각 패리티 비트의 체크 비트들을 구해 보도록 하자.

 

+ Recent posts