2023. 3. 15. 20:07ㆍ부트캠프/DevOps (TIL)
Protocol(프로토콜)
프로토콜은 '약속', '규약', '협약' 등을 의미하는 단어로, 네트워크 분야 외에도 여러 분야에서 통용됩니다.
상호간 원활한 교류, 소통, 통신을 위해 서로 동일하게 어떠한 설정/규칙을 정한다는 뜻으로 컴퓨터 네트워크 환경 내 모든 기기가 서로 통신하며 데이터를 주고 받으려면, 각기기에 사전 협의된 통신 협약/규약이 필요합니다.
이 규약을 '네트워크 프로토콜'이라 하는데, 현존하는 네트워크 프로토콜은 수십 여종이 있습니다.
계층 | 프로토콜 |
응용(Application) | HTTP, SMTP, FTP, Telnet |
표현(Presentation) | ASCII, MPEG, JPEG, MIDI |
세션(Session) | NetBIOS, SAP, SDP, NWLink |
전송(Transport) | TCP, UDP, SPX |
네트워크(Network) | IP, IPX |
데이터 링크(Data Link) | Ethernet, Token Ring, FDDI, Apple Talk |
물리(Physical) | 없음 |
FTP : port(20, 21)
파일 전송 프로토콜(File Transfer Protocol)
컴퓨터 사이의 원활한 파일 전송을 위해 사용되는 프로토콜
port(20) : 데이터 전송용
port(21) : 제어용
보안성 문제로 TLS와 결합한 FTPS와 SSH와 결합한 SFTP가 있습니다.
TFTP : port(69)
파일 전송 프로토콜
FTP보다는 단순한 방식이어서 데이터 전송 과정에서 데이터가 손실될 수 있는 등 불안정합니다
FTP처럼 복잡한 프로토콜을 사용하지 않기에 구현이 간단합니다
임베디드 시스템에서 운영체제 업로드로 주로 사용됩니다.
Telnet : port(23)
원격 컴퓨터 시스템에 로그인 할 수 있도록 도와주는 프로토콜
HTTP : port(80)
하이퍼 텍스트 전송 프로토콜(Hyper Text Transfer Protocol)
인터넷에서 하이퍼 텍스트 문서를 교환하기 위해 사용되는 프로토콜
SNMP : port(161)
네트워크 관리 시스템 프로토콜(Simple Network Management Protocol)
네트워크 관련 자원들을 효율적으로 감시하고 제어하는 기능을 합니다.
SMTP : port(25)
전자 우편 전송 프로토콜(Simple Mail Transfer Protocol)
TCP/IP 호스트의 우편함에 아스키(ASCII)문자 메세지 전송
사용자의 컴퓨터에서 작성된 메일을 받아서 다른 사람의 계정이 있는 곳으로 전송해 주는 전자 우편 송신 프로토콜
POP3 : port(110)
전자 우편 전송 프로토콜(Post Office Protocol)
전송 받은 메일을 저장하고 있다가 사용자가 메일 서버에 접속하면 이를 보내주는 역할을 하는 전자 우편 수신 프로토콜
DHCP : Dynamic Host Configuration Protocol
클라이언트가 동적인 IP주소를 할당받아 인터넷을 사용 할 수 있게 해주는 프로토콜
고유한 IP주소를 가져야 다른 네트워크나 인터넷에 접속 할 수 있는데, DHCP는 고유한 IP주소 없이 접속 할 때 자동으로 새로운 IP주소를 할당해해줍니다.
port(67) : BOOTP 서버
port(68) : BOOTP 클라이언트
ICMP : port(1)
ICMP의 가장 큰 용도는 오류 보고입니다. 인터넷을 통해 두 개의 장치가 연결될 때마다 ICMP를 사용하여 일부 데이터가 예상대로 도착하지 않은 경우 수신 장치에서 전송 장치로 이동할 수 있는 오류를 생성할 수 있습니다
네트워크 성능을 평가하기 위한 진단 도구입니다. 트레이스 라우트와 핑 모두 ICMP를 사용합니다. 트레이스 라우트와 핑은 데이터가 정상적으로 전송되었는가에 대해 전송되는 메시지입니다.
NETBIOS : port(139)
컴퓨터 어플리케이션들이 근거리 통신망을 통해 통신 할 수 있게 합니다.
이처럼 프로토콜에는 수 많은 종류가 있고 각 프로토콜마다 사용하는 포트가 전부 다릅니다.
그럼 이제 클라이언트와 서버에 프로토콜을 넣어서 생각을 해봅시다
클라이언트(리소스 사용하는 앱)이 요청을 하면 서버(리소스을 보내주는 앱)가 응답을 해줍니다.
이때 요청하는 과정에서 필요한것이 바로 프로토콜입니다.
위에서도 말했듯이 프로토콜은 통신 규약, 즉 약속입니다. 손님이 주문을 받는 사람에게 대뜸 찾아가 외계어로 주문을 할 수 없듯, 주문을 하기 위해서는 꼭 지켜야 하는 약속이 몇 가지 존재합니다.
웹 애플리케이션 아키텍처에서는 클라이언트와 서버가 서로 HTTP라는 프로토콜을 이용해서 서로 대화를 나눕니다. HTTP를 이용해 주고받는 메시지는 "HTTP 메시지"라고 부릅니다. \
하지만 클라이언트가 요청을 하고 싶어도 코드을 짜는데 어려움을 느낍니다 이때 필요한것이 API입니다. 서버는 클라이언트에게 리소스를 잘 활용할 수 있도록 인터페이스(interface)를 제공해 줘야 합니다. 이것을 API라고 합니다.
API는 Application Programming Interface의 약자이며, Interface의 사전적 의미는 "의사소통이 가능"하도록 만들어진 "접점"을 의미합니다. 이 의미에 따르면, 메뉴판도 인터페이스라고 볼 수 있습니다.
이제 클라이언트는 짜여진 API을 보고 서버에서 당당히 요청을 보낼 수 있게 됩니다. 물론 적당한 지식은 필요하지만 말이죠.
출처
구글사전
07_Study(IP) (0) | 2023.03.15 |
---|---|
07_Study(URL과 URI) (0) | 2023.03.15 |
07_Study(클라이언트-서버 아키텍처) (0) | 2023.03.15 |
06_Study(시스템 모니터링(3)_lsof, netstat) (2) | 2023.03.14 |
06_Study(시스템 모니터링(2)_ifconfig) (0) | 2023.03.14 |