CS

[네트워크] 프로토콜 개념

김디니 2022. 12. 29. 11:28

프로토콜 Protocol

어떤 시스템이 다른 시스템과 통신을 원활하게 수용하도록 해주는 통신 규약, 약속이다. 

데이터의 교환 방식을 정의하는 규칙 체계를 정해놓는 것이다. 

 

 

프로토콜의 기본 요소

구문(Syntax)

  • 전송하고자 하는 데이터의 형식(Format), 부호화(Coding), 신호 레벨(Signal Level) 등을 규정

의미(Semantics)

  • 정확한 정보 전송을 위한 협조 사항과 오류 관리를 위한 제어 정보를 규정

시간(Timing)

  • 두 기기 간의 통신 속도, 메시지의 순서 제어 등을 규정

 

프로토콜 종류 / OSI 7계층

OSI 7계층이란, 통신 접속에서 완료까지의 과정을 7단계로 정의한 국제 통신 표준 규약

응용(Application)

  • 사용자가 네트워크에 접근할 수 있도록 서비스 제공
  • HTTP, SMTP, FTP, Telnet

표현(Presentation)

  • 세션 계층 간의 주고받는 인터페이스를 일관성있게 제공
  • ASCII, MPEG, JPEG, MIDI

션(Session)

  • 통신 시스템 사용자간의 연결을 유지 및 설정
  • NetBIOS, SAP, SDP, NWLink

전송(Transport)

  • 두 host 시스템으로부터 발생하는 데이터 흐름 제공
  • TCP, UDP, SPX

네트워크(Network)

  • 패킷을 네트워크 간의 IP를 통해 데이터 전달 (라우팅)
  • IP, IPX

데이터 링크(Data Link)

  • 송/수신 확인. MAC 주소를 가지고 통신 (브릿지, 스위치)
  • Ethernet, Token Ring, FDDI, Apple Talk

물리(Physical)

  • 전송하는데 필요한 기능을 제공 ( 통신 케이블, 허브 )
  • X

프로토콜의 기능

단편화(Fragmentation) & 재합성(Assembly)

  • 단편화 : 송신 측에서 긴 데이터 블록을 손쉽게 전송할 수 있도록 크기가 똑같은 작은 블록으로 나누어 전송
  • 재합성: 수신 측에서 쪼개진 작은 데이터 블록을 재합성하여 원래의 메시지로 복원하는 기능

캡슐화(Encapsulation)

  • 각 프로토콜에 적합한 데이터 블록을 만들기 위해 데이터에 정보를 추가하는 것
  • 플래그, 주소, 제어 정보, 오류 검출 부호 등을 부착하는 기능

연결 제어(Connection Control)

  • 비연결 데이터 전송(데이터그램)과 연결 위주 데이터 전송(가상회선)을 위한 통신로를 개설·유지·종결하는 기능

흐름 제어(Flow Control)

  • 데이터양이나 통신속도 등이 수신 측의 처리 능력을 초과하지 않도록 조정하는 기능

오류 제어(Error Control)

  • 데이터 전송 중 발생할 수 있는 오류나 착오 등을 검출하고 정정하는 기능

순서 결정(Sequencing)

  • 연결 위주의 데이터를 전송할 때 송신 측이 보내는 데이터 단위 순서대로 수신 측에 전달하는 기능

주소 설정(Addressing)

  • 발생지, 목적지 등의 주소를 명기하여 데이터를 정확하게 전달하는 기능

동기화(Synchronization)

  • 두 통신 객체의 상태(시작, 종류, 검사 등)를 일치시키는 기능

다중화(Multiplexing)

  • 하나의 통신로를 여러 개로 나누거나 회선 여러 개를 하나의 통신로로 변환시켜 다수의 가입자가 동시에 사용할 수 있도록 하는 기능

전송 서비스(Transmission Service)

  • 통신 객체를 사용하기 쉽도록 별도로 추가 서비스(패리티 검사, 보안도, 서비스 등급, 우선순위 등)를 제공하는 기능

 

TCP/IP 프로토콜 스택 4계층

LINK 계층

  • 물리적인 영역의 표준화에 대한 결과
  • 가장 기본이 되는 영역으로 LAN, WAN과 같은 네트워크 표준과 관련된 프로토콜을 정의하는 영역

IP 계층

  • 경로를 검색해주는 계층
  • IP 자체는 비연결지향적이며 신뢰할 수 없는 프로토콜
  • 데이터를 전송할 때마다 거쳐야할 경로를 선택해주지만, 경로가 일정하지 않음
  • 데이터 전송 중에 경로상 문제가 발생할 때 데이터가 손실되거나 오류가 발생할 수 있는 문제 발생 가능성이 있음
  • 따라서 IP계층은 오류 발생에 대한 대비가 되어있지 않은 프로토콜이다.

TCP/UDP (전송) 계층

  • 데이터의 실제 송수신을 담당
  • UDP는 TCP에 비해 상대적으로 간단하고, TCP는 신뢰성이 있는 데이터 전송을 담당
  • TCP는 데이터 전송 시 IP 프로토콜이 기반이다. 
    • IP의 문제 (오류발생 대비X)를 해결해 주는 것이 TCP이다. 
    • 데이터의 순서가 올바르게 전송되었는지 확인하며 대화를 주고받음
    • 이처럼 확인 절차를 거치며 신뢰성이 없는 IP에 신뢰성을 부여한 프로토콜이 TCP이다.

애플리케이션 계층

  • 서버와 클라이언트를 만드는 과정에서 프로그램 성격에 따라 데이터 송수신에 대한 약속들이 정해지는 것

 

GET과 POST의 차이는?

GET과 POST는 HTTP 프로토콜을 이용해 서버에 무언가 요청할 때 사용하는 방식이다.

 

GET 

  • URL을 통해 모든 파라미터를 전달하기 때문에 주소창에 전달 값이 노출됨.
  • URL 길이가 제한이 있기 때문에 전송 데이터 양이 한정되어 있고, 형식에 맞지 않으면 인코딩해서 전달해야 함
  • SELECT 성향이 있어서 서버에서 어떤 데이터를 가져와서 보여주는 용도로 활용
  • 보통 데이터를 가져올 때 많이 사용한다.

POST

  • HTTP BODY에 데이터를 포함해서 전달함.
  • 웹 브라우저 사용자의 눈에는 직접적으로 파라미터가 노출되지 않고 길이 제한도 없음.
  • 서버의 값이나 상태를 바꾸기 위해 활용
  • 보통 어떠한 일을 수행하는 역할로 사용한다.