통신 프로토콜 또는 통신 규약은 컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고 받는 양식과 규칙의 체계이다. 즉 상호간에 미리 약속된 통신 규약 및 약속이다.

프로토콜은 데이터를 송수신하기 위한 규칙을 말한다.

손님이 주문을 받는 사람에게 대뜸 찾아가, 외계어로 주문을 할 수 없다.

주문을 하기 위해서는 꼭 지켜야 하는 약속이 몇가지 존재한다.

통신하기 위한 다양한 방법이 존재한다.

직원에게 주문, 앱에서 주문, 키오스크 주문을 할 수 있다.

이러한 방법 하나하나를 전부 프로토콜이라고 할 수 있다.프로토콜은 각각의 프로토콜마다 지켜야 하는 규약이 존재한다.

MDN에서의 “HTTP 메시지” 라는 항목을 잘 살펴보면, HTTP 만의 규칙이 있음을 발견할 수 있다.

송신자와 수신자 사이에 "데이터 구조는 이런식으로하고", "그건 이런 의미이고", "속도는 어느 정도로 보내고" 그런식으로 보내기로하자. 라고 약속을 한 것

프로토콜의 기본 요소

  • 구문(Syntax) : 전송하고자 하는 데이터의 형식(Format), 부호화(Coding), 신호 레벨(Signal Level) 등을 규정
  • 의미(Semantics) : 두 기기 간의 효율적이고 정확한 정보 전송을 위한 협조 사항과 오류 관리를 위한 제어 정보를 규정 (제어정보를 통해 에러처리)
  • 시간(Timing) : 두 기기 간의 통신 속도, 메시지의 순서 제어 등을 규정 (시스템간의 정보전송을 위한 속도와 시간순서 관리)

프로토콜 종류

프로토콜의 기능

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

(패킷 단위로 나눠진 데이터들을 규약에 따라 다시 재조합하거나 , 패킷단위로 나누는것)

**캡슐화(Encapsulation)**각 프로토콜에 적합한 데이터 블록을 만들려고 데이터에 정보를 추가하는 것플래그, 주소, 제어 정보, 오류 검출 부호 등을 부착하는 기능

(각각의 데이터블록의 내용들을 소형 상장에 담아 큰 상자에 넣어준 뒤 필요 데이터를 헤더에 담아서 보냄 )

**연결 제어(Connection Control)비연결 데이터 전송(데이터그램)과 연결 위주 데이터 전송(가상회선)을 위한 통신로를 개설·유지·종결하는 기능흐름 제어(Flow Control)데이터양이나 통신속도 등이 수신 측의 처리 능력을 초과하지 않도록 조정하는 기능오류 제어(Error Control)데이터 전송 중 발생할 수 있는 오류나 착오 등을 검출하고 정정하는 기능순서 결정(Sequencing)**연결 위주의 데이터를 전송할 때 송신 측이 보내는 데이터 단위 순서대로 수신 측에 전달하는 기능

(각 데이터의 전송 시간과 양을 조절한다)

동기화

**주소 설정(Addressing)발생지, 목적지 등의 주소를 명기하여 데이터를 정확하게 전달하는 기능동기화(Synchronization)두 통신 객체의 상태(시작, 종류, 검사 등)를 일치시키는 기능다중화(Multiplexing)하나의 통신로를 여러 개로 나누거나 회선 여러 개를 하나의 통신로로 변환시켜 다수의 가입자가 동시에 사할 수 있도록 하는 기능전송 서비스(Transmission Service)**통신 객체를 사용하기 쉽도록 별도로 추가 서비스(패리티 검사, 보안도, 서비스 등급, 우선순위 등)를 제공하는 기능

(어떤 통신을 통해서 데이터를 보내고 싶은지와 어디로 보낼지 위치표시)

 

 

OSI 7 Layer 테코톡- 영상

OSI 7 Layer별 주요 프로토콜 설명

  • OSI 7 계층을 보면 네트워크에 대한 개념을 알 수 있다.
  • 데이터 통신은 OSI 참조 모델에 의한 ‘단계와 순서’로 이해한다.
  • ISO 단체에서 네트워크 계층에 대한 표준을 만들었다.
  • OSI 참조 모델은 일곱개의 계층으로 나뉘어 있으며, 각각은 독립해 있다.
  • OSI 7 계층은 기종이 서로 다른 컴퓨터 간의 정보 교환을 위해 네트워크를 이루고 있는 구성 요소를 계층적으로 나누고 각 계층을 표준화 한 것이다.
  • 계층을 구분하는 이유는 모듈화를 함으로써 문제가 생겼을 때 해당 계층만 수정할 수 있기 때문이다.OSI는 상위 계층(7~4)과 하위 계층(1~3)이 있다.
  • 하위 계층은 상위 계층을 위해 일하고 상위 계층은 하위 계층에 대해 관여하지 않는다.

응용 계층 (Application)

사용자가 OSI 환경에 접근할 수 있도록 서비스를 제공프로토콜을 이용해서 서비스를 사용하는 것을 의미한다.

표현 계층 (Presentation)

알아 볼 수있게 표현해주는 계층응용 계층에서 받은 데이터를 세션 계층에 맞게 변환하거나, 세션 계층에서 받은 데이터를 응용 계층에 맞게 변환한다.코드 변화, 데이터 암호화, 데이터 압축, 구문 검색, 정보 형식 변환

세션 계층 (Session)

송수신측 간의 관련성을 유지시킨다.송수신측 간의 대화 제어를 담당한다.동기 제어, 데이터 교환 관리

전송 계층 (Transport)

전송 할 수 있게 연결을 설정 및 해제데이터가 실제 전송되는 구간관련 장비 : 게이트웨어(출입문)

네트워크 계층 (=망계층) (Network)

네트워크 연결을 관리한다. (경로 설정, 연결, 해제, 패킷 전송)데이터 교환의 중계한다.관련 장비 : 라우터(네비게이션, 최적의 경로 찾아준다.)

데이터 링크 계층 (Data Link)

두 개의 인접한 개방 시스템들 끼리 신뢰성있고 효율적인 정보 전송 가능하게 한다.흐름 제어, 프레임 동기화, 오류 제어, 순서 제어 기능링크(찾아가는 길) 확립, 유지, 단절을 제공한다.관련 장비 : 랜카드, 브리지, 스위치

물리 계층 (Physical)

전송에 필요한 두 장치간 실제 접속과 절단 등 기계적, 전기적, 기능적, 절차적 특성을 정의한다.전기 신호를 전송한다. (만든다.)제어 신호를 전송한다.클럭 신호를 전송한다.관련 장비 : 리피터(증폭기), 허브

'CS > 네트워크' 카테고리의 다른 글

인증과 인가 ( 쿠키/세션/토큰/JWT)  (0) 2023.01.06
IPv4와 IPv6  (0) 2023.01.05
도메인과 DNS  (0) 2023.01.05
동기와 비동기  (0) 2023.01.03
OSI 7계층과 TCP/IP 4계층  (0) 2023.01.03

동기와 비동기

동기 (Synchronous : 동시에 일어나는)

  • 동시에 일어난다는 뜻이다. 요청과 그 결과가 동시에 일어난다는 약속이다.
  • 바로 요청을 하면 시간이 얼마가 걸리던지 요청한 자리에서 결과가 주어져야 한다.
  • 요청과 결과가 한 자리에서 동시에 일어난다.
  • 요청이 들어온 순서대로 순차적으로 처리된다.

ex ) 카페에서 줄을 서서 커피를 주문했을 때 맨 앞 사람이 주문한 커피를 받을 때까지 다음 주문을 받지 않음

장점 : 설계가 매우 간단하고 직관적

단점 : 결과가 주어질 때까지 아무것도 못하고 대기해야 한다, 웹에서 응답을 받을 때까지 요청이 처리되지 않아서 실시간으로 처리하기가 어렵다.

비동기 (Asynchronous: 동시에 일어나지 않는)

  • 동시에 일어나지 않는다를 의미한다. 요청과 결과가 동시에 일어나지 않을 것이라는 약속이다.
  • 요청한 그 자리에서 결과가 주어지지 않는다.
  • 노드 사이의 작업 처리 단위를 동시에 맞추지 않아도 된다.
  • 대기 시간동안 다른 작업을 수행 할 수 있다.

ex ) 카페에서 줄을 서서 커피를 주문했을 때 점원 한명이 커피 주문을 받고 다른 점원이 커피를 건네주는 것이 비동기 방식의 예시다.

( 커피가 앞의 사람의 커피보다 더 빨리 만들어져서 먼저 받을 수 있다)

장점 :

1.결과가 주어지는데 시간이 걸리더라도 그 시간 동안에 다른 작업을 할 수 있으므로 자원들을 효율적으로 사용 할 수 있다.

  1. 응답이 끝나지 않더라도 다른 작업을 할 수 있기 때문에 화면이 하얗게(요청을 다시 보내서 다시받는 작업을 안해도 된다) 안된다.

단점 : 동기보다 복잡한 설계 , 리소스를 많이 먹음

 

 

 

 

 

 

 

자바스크립트의 콜백

이벤트 루프를 알아두자.이벤트 루프 덕분에 비동기 작업을 수행할 수 있다.

코드를 실행하면서 비동기 작업은, "실행해!"라는 명령을 담아 어딘가로 던져진다.

이 **"어딘가"**가 이벤트 루프이다. 이벤트 루프가 비동기 작업을 담당 및 처리한다.

덕분에 자바스크립트 엔진은

"무거운 작업"을 어딘가에 위임하고, "동기적으로" 바로 다음 코드를 실행할 수 있다.

그리고 언젠가 이벤트 루프에서 작업이 완료되면??

비동기 작업을 만들 때 콜백 함수를 함께 지정하는데, 콜백함수를 가지고 후속 작업을 진행한다.

 

 

 

'CS > 네트워크' 카테고리의 다른 글

인증과 인가 ( 쿠키/세션/토큰/JWT)  (0) 2023.01.06
IPv4와 IPv6  (0) 2023.01.05
도메인과 DNS  (0) 2023.01.05
프로토콜(protocol)이란?  (0) 2023.01.03
OSI 7계층과 TCP/IP 4계층  (0) 2023.01.03

OSI 7계층과 TCP/IP 4계층

 

1. OSI 7계층

  1. 물리계층 (Physical Layer)
    • 전기적, 기계적, 기능적인 특성을 이용하여 통신 케이블로 데이터를 전송한다.
    • 전선을 통해 전기신호를 아날로그 신호로 보내 0과 1로 나눠서 비트단위로 표시 한다.
    • 단지 데이터를 전달만 할 뿐 전송하려는, 또는 받으려는 데이터가 무엇인지는 전혀 신경쓰지 않는다.
    • 대표적인 장치로 통신 케이블, 리피터, 허브 등이 있다.
    • 물리적으로 연결된 두 대의 컴퓨터가 0과 1로 나열 주고 받을 수 있게 해준다.
    • 여러 컴퓨터와 연결시켜서 한가지 허브로 연결시켜서 여러대의 컴퓨터를 통신 시켜줄 수 있다. 이걸 인터넷이라고 함
    • 하드웨어적으로 구성되어 있음 . (통신 케이블)
    데이터를 주고받는데 010100101 그거를 주파수(헤르츠)보내려고하는데 이게 전선으로 보낼때 각 전선규격도 다르고 확인할 수 없기에 그냥 아날로그 형식 범위가 특정되지 않아서`~~
  2. 데이터 링크계층 (DataLink Layer)
    • 물리 계층을 통해 송수신되는 정보의 오류와 흐름을 관리하여 안전한 정보의 수행을 도와주는 역할을 한다.
    • 맥 주소(MAC Address)를 가지고 통신한다.
    • 전송되는 단위를 프레임(frame)이라고 하며, 대표적인 장비로는 브리지, 스위치 등이 있다.
    • 이더넷, 투 포인트 프로토콜(HDLC, ADCCP), 근거리 네트워크 프로토콜(LLC, ALOHA) 등이 있다.
    • 여러대의 컴퓨터가 데이터를 주고 받을 때 0과 1로 표시되어 있는 데이터를 구분시켜줌 시작:0000 , 데이터 0101 , 종료 1111 으로 표시하며 시그널을 구분해준다.
    • 주로 랜카드에 구현되어있다. (하드웨어)
  3. 네트워크 계층 (Network Layer)
    • 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능(라우팅)을 한다.
    • 경로를 선택하고 주소를 정하고 경로에 따라 패킷을 전달해주는 역할을 한다.
    • 대표적인 장비로 라우터, (라우팅 기능이 포함된)스위치가 있으며, IP 주소를 사용한다.
    • 데이터를 연결하는 다른 네트워크를 통해 전달함으로써 인터넷이 가능하게 만드는 계층이다.
    • 다른 컴퓨터로 으로 보내는 패킷단위의 데이터를 IP주소 구분하여 시켜서 전송함 보냄 (캡슐화 안에 IP주소, 0101로 이뤄 진 데이터)
    • 각 라우터를 통해 IP를 구분하여 배송을 보내줌
    • 운영체제의 커널에 소프트웨어적으로 구성되어있음
  4. 전송 계층 (Transport Layer)
    • 통신을 활성화하기 위한 계층이다. 보통 TCP 프로토콜을 사용하며, 포트를 열어서 응용 프로그램을 전송한다.
    • 양 끝단의 사용자들이 신뢰성 있는 데이터를 주고 받을 수 있게 해 주어, 상위 계층들이 데이터 전달의 유효성이나 효율성을 생각하지 않도록 한다.
    • 특정 연결의 유효성을 제어하고, 일부 프로토콜은 상태 개념이 있고 연결 기반이다. 전송 계층의 패킷들이 유효한지 확인하고 전송 실패한 패킷을 다시 전송함을 의미한다.
    • 받은 데이터를 어떤 프로세스로 보내는지 확인시켜준다 . 송신 컴퓨터가 받은 데이터를 어떤 프로세스에서 사용하는지 확인시켜준 후 데이터를 올바른 프로세스에 분배 (데이터 앞에 포트번호를 붙여줌, 네이버의 경우는 NAVER.COM:80 이라는 포트를 가지고있음 )
    • 운영체제의 커널에 소프트웨어적으로 구성되어있음
  5. 세션 계층 (Session Layer)
    • 데이터가 통신하기 위한 논리적인 연결을 한다.
    • 세션 설정, 유지, 종료, 전송 중단시 복구 등의 기능이 있다.
    • 양 끝단의 응용 프로세스가 통신을 관리하기 위한 방법을 제공한다.
    • TCP/IP 세션을 만들고 없애는 책임을 진다.
    • 세션의 토큰 관리 및 연결을 관리해준다.
  6. 표현 계층 (Presentation Layer)
    • 데이터 표현이 상이한 응용 프로세스의 독립성을 제공하고, 암호화한다.
    • 코드 간의 번역을 담당하여 사용자 시스템에서 데이터의 형식상 차이를 다루는 부담을 응용 계층으로 덜어준다.
    • 예를 들면, EBCDIC로 인코딩된 문서 파일을 ASCII로 인코딩된 파일로 바꿔주는 것
    • 해당 데이터가 텍스트인지, 그림인지, GIF인지, JPG인지의 구분 등의 역할을 한다.
    • 데이터를 인코딩해주는 계층 받은 데이터에 대한 통역기 역활을 한다.
  7. 응용 계층 (Application Layer)
    • 최종 목적지로서 HTTP, FTP, SMTP, Telnet 등과 같은 프로토콜이 있다.
    • 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행한다.
    • 네트워크 소프트웨어의 UI 부분, 사용자의 입출력 부분을 담당한다

2.TCP/IP

TCP/IP 소켓프로그래밍 -

Transport Layer 에서 제공하는 api를 활용해서 통신 가능한 프로그램을 만드는 것

  1. 네트워크 인터페이스 계층 (Network Interface, Network Access)
    • OSI 계층의 1,2 계층에 해당된다.
    • TCP/IP 패킷을 네트워크 매체로 전달하는 것과 네트워크 매체에서 TCP/IP 패킷을 받아들이는 과정을 담당한다.
    • 에러 검출 기능과 패킷의 프레임화 기능을 수행한다.
    • 네트워크 접근 방법, 프레임 포맷, 매체에 대해 독립적으로 동작하도록 설계되었다.
    • 흐름 제어(Flow Control)는 Header(MAC)에서, 에러 제어(Error Control)는 Tailer(CRC)에서 수행한다.
  2. 인터넷 계층 (Internet)
    • OSI 계층에서 3계층에 해당된다.
    • 어드레싱(addressing), 패키징(packaging), 라우팅(routing) 기능을 제공한다.
    • 논리적 주소인 IP를 이용한 노드간 전송과 라우팅 기능을 처리하게 된다.
    • 네트워크상 최종 목적지까지 정확하게 연결되도록 연결성을 제공한다.
    • 핵심 프로토콜은 IP, ARP, ICMP, IGMP 등이 있다.
  3. 전송 계층 (Transport)
    • OSI 계층에서 3,4 계층에 해당된다.
    • 자료의 송수신을 담당한다.
    • 어플리케이션 계층의 세션과 데이터그램 통신서비스를 제공한다.
    • TCP/UDP가 핵심 프로토콜이다. TCP/UDP에 대한 구분을 하고 데이터에 대한 제어 정보가 여기에 포함된다.
  4. 응용 프로그램 계층 (Application)
    • 다른 계층의 서비스에 접근할 수 있게 하는 어플리케이션을 제공한다.
    • 어플리케이션들이 데이터를 교환하기 위해 사용하는 프로토콜을 정의한다.
    • TCP/IP 네트워크를 사용하거나 관리하는 것을 도와주는 프로토콜이다.
    • 대표적인 프로토콜 - http로 인코딩 디코딩 가능
  1.  

'CS > 네트워크' 카테고리의 다른 글

인증과 인가 ( 쿠키/세션/토큰/JWT)  (0) 2023.01.06
IPv4와 IPv6  (0) 2023.01.05
도메인과 DNS  (0) 2023.01.05
프로토콜(protocol)이란?  (0) 2023.01.03
동기와 비동기  (0) 2023.01.03

+ Recent posts