Protocol

WangyuKim·2021년 8월 31일
0

Network

목록 보기
4/7
  • 프로토콜의 세가지 요소
    1. 구문(Syntax): 데이터의 형식이나 신호로, 부호화 방법 등을 정의

    1. 의미(Semantics): 오류제어, 동기제어, 흐름제어 와 같은 각종 제어 절차에 관한 제어 정보 정의
    2. 순서(Timing): 송/수진자 간 혹은 양단(end to end)의 통신 시스템과 망 사이의 통신 속도나 순서 등을 정의
  • 프로토콜의 기능
    1. 주소설정(Addressing): 각 전송 계층에 맞는 송/수신자의 주소 지정

    1. 순서제어(Sequence Control): 데이터 단위가 전송될 때 보내지는 순서 명시
    2. 데이터 대열의 단편화 및 재조합(Fragmentation & Reassembly): 전송 효율이 높은, 작은 단위로 단편화 및 응용프로그램에서 사용하기 위한 재조합
    3. 캡슐화(Encapsulation): 데이터에 제어 정보를 덧붙임
    4. 연결제어(Connection Control): 연결설정, 데이터전송, 연결해제에 대한 통제 수행
    5. 흐름제어(Flow Control): 송신측 개체로부터 오는 데이터의 양이나 속도 조절
    6. 오류제어(Error Control): 데이터를 교환할 때 SDU(Service Data Unit)나 PCI(Protocol Control Information)에 대한 오류검사
    7. 동기화(Synchronization): 두 개체 간에 데이터가 전송될 때 각 개체는 특정 타이머 값이나 윈도우 크기 등을 서로의 상태를 일치시킴
    8. 다중화(Multiplexing): 여러 시스템이 동시에 통신할 수 있는 기법
    9. 전송 서비스: 우선순위 결정, 서비스 등급과 보안 요구 등을 제어
  • HTTP
    - HYPERTEXT TRANSFER PROTOCOL

    • 웹 상에서 클라이언트와 서버가 서로 정보를 주고받을 수 있도록 하는 규약
    • 클라이언트는 서버에 데이터 전송을 요청(Request)할 수 있는 클라이언트 소프트웨어(크롬 등)가 설티된 컴퓨터를 의미한다.
    • 클라이언트는 URL(Uniform Resource Locator)로 된 HTTP를 통해 서버에게 정보 송신을 요청한다.
      URL의 예: http://velog.io/network-protocol
      1. http: 자원에 접근하기 위한 http 프로토콜
      2. velog.io: 서버의 위치
      3. network-protocol: 서버에서 컴퓨터가 요청한 자원의 위치
    • 서버는 응답하는(Response)소프트웨어(아파치, nginx, IIS 등)가 설치된 컴퓨터를 의미한다.
    • 서버는 클라이언트의 요청을 해석하고, 클라이언트의 요청 및 서버관리자가 설정한 알고리즘에 준하는 정보를 클라이언트에게 송신한다.
    • 암호화되지 않아 도난이나 변조, 도청이 가능하다.
    • HTTP송수신 에러
      • 403: 서버가 요청을 거부 / 사용자가 권한을 가지고 있지 않을때 발생
      • 404: Not Found / URL로 서버 접속은 했지만, 그 이후의 요청 정보(자원)를 서버가 가지고 있지 않을 때 발생
      • 500: 서버에 무언가 오류가 있을 때 발생
  • HTTPS
    - HyperText Transfer Protocol over Secure Socket

    • HTTP의 일반텍스트에 SSL이나 TLS프로토콜을 씌워 데이터를 암호화하는 기법이다.
      <TLS는 SSL의 최신 버전이며, 현재는 SSL이 IEFE에 의해 사용 중지되었다.>
    • 로그인이나 결제화면에 주로 쓰인다.
    • 암호화: 어떤 정보를 암호화된 정보로 바꾸는 것
    • 복호화: 암호화된 정보를 다시 원래 정보로 바꾸는 것
    • 키: 암호화, 복호화할 때 쓰는 비밀번호
    • HTTPS는 공통키 방식과 비대칭키 방식을 같이 사용한다.

    & 공통키 방식: 암호화할 때와 복호화할 때 같은 키를 사용하는 방식
    1. 장점: 단순한 구조로 CPU를 적게 쓰고 빠르다.

    1. 단점: 공통키를 빼앗기면 복호화를 할 수 있으므로, 보안에 취약하다는 단점이 있다.

    & 비대칭키 방식: 암호화할 때와 복호화할 때 다른 키를 사용하는 비대칭 방식
    서버 -- 인증서, 공개키 --> 클라이언트
    클라이언트 -- 공통키 + 공개키, 인증서 --> 서버
    서버 -- 인증서, 공개키 일치 확인 후 공통키 복호하여 요청에 대응

    1. 장점: 키 전송 과정중 해킹 당해도 해커가 공개키 해독을 할 수 없으니 공통키 방식보다 안전하다.
    2. 단점: 공통키 방식보다 느리고 리소스 소비가 크다.
      	"HTTPS가 공통키, 비대칭키 방식을 같이 사용한다."
      => 비대칭키 방식이 가진 이점은 이어가되, 전송 소요시간 및 리소스 부담은 줄이는 방식
      => 서버가 되받은 공개키+공통키를 복호화하는 과정을 핸드쉐이크 라고 함
      => 암호화(클라이언트), 복호화(서버) 때 공개키가 동일하게 사용된다.
  • SSH
    - 터미널 내에서, 서버의 IP주소를 이용하여 PC->서버로 원격접속 가능하게 해주는 네트워크 접속 프로토콜
    - 네트워크 상에서 패킷(데이터)를 전송할 때 암호화 통신을 지원하는 프로토콜 (Telnet과의 차이)
    - sh 또는 bash 라는 셸 명령어 체계를 사용(Telnet과 동일)
    - 카페24, 가비아 등의 호스팅서비스나 AWS, 구글클라우드와 같은 클라우드서비스는 SSH 서비스를 기본 설치된 상태로 제공한다.
    그 외의 경우 SSH서버를 직접 설치해야 한다.

    • 22번 tcp포트가 방화벽에서 열려있어야 한다.
    • SSH서버 프로그램이 설치 및 구동되고 있어야 한다.
    • SSH프로토콜로 접속할 수 있는 SSH클라이언트(Putty 등)가 필요하다.
      => putty프로그램과 puttygen 유틸을 다운받아, puttygen으로 SSH키를 생성하고, 리눅스 서버에 SSH키 등록, putty 프로그램으로 리눅스 서버 SSH접속

SSH는 서버에서 명령을 안전하게 실행하기위한 것입니다.
SSL은 개인 정보를 안전하게 통신하는 데 사용됩니다.

  • FTP
    • 파일전송 프로토콜
    • 인터넷을 통해 한 컴퓨터에서 다른 컴퓨터로 파일을 전송할 수 있도록 하는 방법과, 그런 프로그램을 모두 일컫는 말
    • 원격 host로 파일을 송수신하는 protocol
    • Client-Server 모델
    • 로그인 및 파일 전송 명령 등은 21번 tcp포트를 사용한, 제어용 연결에서 진행
    • 실제 파일 송수신 작업(업로드, 다운로드)은 20번 tcp포트를 사용한, 데이터 전송 연결에서 진행
    • 21번 포트는 서버-클라이언트 접속이 끊길 때까지 유지되지만 20번 포트는 파일을 주고 받을때만 연결한다.
    • 방화벽으로 인한 문제를 해결하기 위해 Passive모드 사용
    • Passive모드는 20번 포트 대신 1024번 이후의 임의의 포트를 이용함
    • Passive모드로 동작하기 위해서는 FTP서버와 클라이언트 양쪽에서 Passive모드를 지원해야 한다.
    • 공개형 FTP서버의 경우 하나의 공용계정을 통해 모든 사용자가 간편하게 접속할 수 있도록 한다 == 익명(Anonymous)계정
    • 통상적으로'Anonymous'라는 계정에 자신의 이메일 주소를 암호로 입력하면 공개형 FTP서버에 접속 가능하다.
    • 장점: 동작방식, 사용방식이 단순하다.
      : www방식보다 파일을 빠른 속도로 한꺼번에 주고받을 수 있다.
    • 단점: 사진, 음악, 동영상 등의 멀티미디어 컨텐츠는 내려받기가 완료된 다음에 확인이 가능하다(www환경에서는 내려 받으며 재생가능)
      : 명령어 기반의 통신서비스라서 별도의 FTP클라이언트(파일질라 등) 프로그램을 사용하지 않으면 사용이 복잡하고 어려울 수 있다.
    • 내 PC를 FTP 서버로 활용
      - 윈도우 서버 운영체제 / 리눅스 / FTP 서버프로그램 등을 통해 자신의 PC를 FTP 서버로 사용할 수 있다.
      • FTP클라이언트 프로그램 중 간단한 설정으로 내PC를 FTP서버로 작동할 수 있도록 하는 제품이 있다.
      • PC가 항상 켜져 있어야 한다.
      • 해당 서버 프로그램도 항상 동작중이어야 한다.
      • 외부에서 접근할 수 있는 공인 IP주소가 해당 PC에 설정되어 있어야 한다.
  • SMTP (Simple Mail Transfer Protocol)
    • outGoing mailServer
    • 윈도우 메일 프로그램으로 메일을 작성해서 보내면, 그 메일은 SMTP서버로 일단 전송되고, 이 SMTP서버에서 sendMAil프로그램을 구동하여 해당 메일 주소로 메일을 보내게 된다.
  • POP3 (Post Office Protocol)
    • inComing mailServer
    • 자신에게 온 메일은 POP3서버에 저장되며, 이것을 메일 프로그램(아웃룩 등)을 통해서 자신의 컴퓨터로 받아와 볼 수 있다.
  • IMAP
    • 서버에서 이메일을(다운받지 않고,) 읽는 프로토콜
    • 어느 디바이스에서 접속하던 서버의 변경사항을 동기화 함
  • DNS
    • Domain Name System == 인터넷 전화번호부
    • 도메인 이름을 IP주소로 변환
    • www.example.com <-> 192.168.1.0
    • 분산형 데이터베이스 시스템

0개의 댓글