TIL

TIL (2023.09.18) - 통신규약

pitang 2023. 9. 18. 17:32
반응형

 

안녕하세요. pitang입니다.

 

20일 만에 돌아왔네요...

입사 3개월만에 정규직이 되었답디다!

회사에 첫 입사할때부터 형식적인 수습기간일 뿐 정규직이다라고 말씀해 주셨지만

받는 돈(연봉의 90프로만 받음ㅠ)도 그렇고 마음가짐도 그렇고 싱숭생숭하더라고요

수습이 끝난 후에는 뚝딱뚝딱은 아니지만 뚝...딱...뚝...딱... 해내는 회사원이 되어있겠지 생각했습니다.

큰 오산이었어요 뚝...... 만 할 수 있는 3개월 차가 되었습니다!

 

저는 ! 

프런트엔드 개발자가 되고 싶었지만 엔지니어가 되었고 지금은 프로젝트 PMO 역할을 수행하고 있습니다..

총괄 PM님과 PL님 옆에서 많이 배워 나중에는 경험이 많은 개발자가 될 수 있겠죠?

 

넋두리가 굉장히 길었네요 TIL 정리 시작해볼게욥

(아니 OSI 7계층, 프로토콜 정처기하면서 백날해도 대체  바로 생각이 안 나는지 정말 마지막 정리다..)

 

통신규약 (communication protocol, 프로토콜)

컴퓨터 상호 간에 접속되어 오류를 최소화함으로써 정보를 원활하게 교환할 수 있게 하기 위해 필요한 규칙의 집합.

쉽게 말해, 컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고받는 양식과 규칙의 체계.

 

- 프로토콜의 요소

 ■ 구문(Syntax) : 데이터의 형식이나 신호로, 부호화 방법 등을 정의.

 ■ 의미(Semantics) : 오류 제어, 동기 제어, 흐름 제어 같은 각종 제어 절차에 관한 제어 정보를 정의.

 ■ 순서(Timing) : 송/수신자 간 혹은 양단(End to End)의 통신 시스템과 망 사이의 통신 속도나 순서등을 정의.

 

- 프로토콜의 기능

■ 세분화(or 단편화 (Fragmentation))와 재합성(Assembly)

 단편화 : 송신 측에서는 긴 데이터 블록을 손쉽게 전송할 수 있도록 크기가 똑같은 작은 블록으로 나누어 전송.

 재합성 : 수신 측에서 쪼개진 작은 데이터 블록을 재합성하여 원래의 메시지로 복원하는 기능

■ 캡슐화 (Encapsulation)

 : 각 프로토콜에 적합한 데이터 블록을 만들려고 데이터에 정보를 추가하는 것

   플래그, 주소, 제어 정보, 오류 검출 부호 등을 부착하는 기능

■ 연결 제어 (Connection Control)

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

■ 흐름 제어 (Flow Control)

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

■ 오류 제어 (Error Control)

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

■ 순서 결정 (Sequencing)

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

■ 주소 설정 (Addressing)

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

■ 동기화 (Synchronization)

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

■ 다중화 (Multiplexing)

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

■ 전송 서비스 (Transmission Service)

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

 

 

- 프로토콜 종류 (=OSI 7 계층)

계층 프로토콜
응용(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) 없음

 

아래의 내용을 위해 조금 더 자세히 알아보자면?

 Transport Layer (4 Layer)

송신자와 수신자의 논리적 연결을 담당하는 부분, 신뢰성 있는 연결을 유지할 수 있도록 도와준다.

 

 Netword Layer (3 Layer)

IP가 활용되는 부분으로, 한 Endpoint가 다른 Endpoint로 가고자 할 경우, 경로와 목적지를 찾아줍니다.

이를 Routing이라고 하며 대역이 다른 IP들이 목적지를 향해 제대로 찾아갈 수 있도록 돕는 역할을 합니다.

 

TCP/IP

일단 이것은 하나의 프로토콜이 아닌 TCP와 IP를 합쳐서 부르는 말이다.

패킷 통신 방식의 인터넷 프로토콜인 IP와 전송 조절 프로토콜인 TCP로 이루어져 있다.

 

● TCP/IP를 사용하겠다는 것은?

=> IP 주소 체계를 따르고 IP Routing을 이용해 목적지에 도달하며 TCP의 특성을 활용해 송신자와 수신자의 논리적 연결을 생성하고 신뢰성을 유지할 수 있도록 하겠다는 것을 의미한다. 

 

TCP/IP를 사용하는 Browser와 Server의 통

 

● 차이점은?

TCP IP
IP 위에서 동작하는 프로토콜 패킷 전달 여부를 보증하지 않고,
데이터의 전달을 보증하고 보낸 순서대로 받게 해준다. 패킷을 보낸 순서와 받는 순서가 다를 수 있다.

 

(이 통신규약과 TCP/IP까지 알아보게 된 이유는 바로 다음 FTP 때문이다...!)

FTP (File Transfer Protocol, 파일 전송 프로토콜) 

TCP/IP 네트워크 상에서 컴퓨터들이 파일을 교환하기 위해 1971년에 최초로 공개된 통신 규약이다.

 

FTP는 인터넷을 통한 파일 송수신 만을 위해 고안된 서비스이기에 동작 방식이 대단히 단순하고 직관적이다.

단순? => 암호화되지 않은 프로토콜이다. 하지만 간단하고 사용하기 쉽기 때문에 여전히 널리 사용된다.

 

FTPS는 전송 중인 데이터를 보호하기 위해 SSL/TLS 암호화를 사용하는 FTP의 보안 버전이다.

데이터를 전송하기 전에 암호화를 하며 기존 FTP보다 안전하다.

 

이름이 비슷한 SFTP(SSH 파일 전송 프로토콜)는 SSH(Secure Shell)를 사용하여 전송 중인 데이터를 암호화하는 보안 파일 전송 프로토콜이다. 전송 중인 데이터를 암호화하고 SSH를 사용하기에 위 두 개(FTP, FTPS) 보다 더 안전하다. 

위 두 개와 다른 점은 단일 채널을 사용하여 데이터를 전송하므로 더 간단하고 효율적이다.

단일채널? => 데이터 및 제어 트래픽 모두에 단일 포트를 사용하기에 방화벽 친화적이다.

 

일반적으로~

FTP와 FTPS는 보통 제어용으로 21번 포트 및 데이터 전송용으로 20번 포트를,

패시브 모드의 경우 50000번대 이상의 포트를 추가적으로 많이 사용하며

FTPS의 경우 990 포트를 사용하는 경우도 있다.

SFTP는 보통 22번 포트를 사용한다.

 

 

감사합니다.

728x90
반응형