💡프로토콜이란?
통신에서 프로토콜은 기기 간에 데이터가 전달되기 위해 정한 규칙과 약속을 말합니다.
프로토콜은 데이터의 전송 형식, 전송 순서, 오류 검출 방법 등을 정의합니다.
인터넷에서 가장 많이 사용되는 프로토콜은 TCP/IP(인터넷에서 데이터를 안정적으로 전송하기 위한 규칙)
HTTP(웹 브라우저와 웹 서버 간의 통신을 위한 규칙을 제공)
무작정 교환하는 것이 아닌, 서로 정한 약속을 지키면서 데이터가 전달됩니다.
프로토콜 stack은 5개의 layer로 이루어져 있습니다.
잘 알려진 OSI 5 계층이라고도 합니다.
📗OSI 5계층
📕Application Layer (응용 계층)
- 통신망으로 연결된 응용 프로세서들의 정보 교환이 이루어지는 곳
- 프로토콜을 정의하는 계층.
- 클라이언트의 메시지가 메일인지, 파일인지, 웹전송인지에 따라 프로토콜 설정
- ex ) : HTTP(웹 서비스), FTP(파일 전송) , SMTP(메일 전송), DNS (도메인 주소 -> IP 주소)
📕Transport Layer (전송 계층)
- 전송 간에 제어와 에러를 관리함.
- 패킷의 전송이 유효한지 확인하고, 전송에 실패된 패킷을 다시 보내는 것과 같은 신뢰성 있는 통신을 보장
- 패킷의 헤드에는 포트 번호가 포함되어 있음.
- 포트번호는 프로토콜을 가져갈 프로세스를 정해줌.
- 예를 들어 포트번호 80 이면 웹으로 감.
- 포트번호는 프로토콜을 가져갈 프로세스를 정해줌.
- 전송 방식을 설정함
- TCP (전송 제어 프로토콜)
- 신뢰적인 전송 보장(패킷 손실, 중복, 순서 바뀜 등이 없도록 보장) - ACK 사용
- IP가 처리할 수 있도록 데이터를 여러 개의 패킷으로 나누고, 도착지에서 완전한 데이터로 패킷을 재조립
- UDP (사용자 데이터그램 프로토콜)
- 비연결성, 비신뢰성 서비스
- TCP와 다르게 패킷을 나누고 재조립하는 과정 없이, 데이터를 보내기만 한다.(잘 수신했는지 여부 X)
- 에러와 그에 따른 재전송 같은 대체는 애플리케이션에서 처리함.
- 데이터를 보내기만 하면 간단한 작업이기에, 속도가 빠름.
- TCP (전송 제어 프로토콜)
📕Network Layer (네트워크 계층)
- 연결된 시스템의 데이터 전송과 교환 기능 담당
- 라우팅 알고리즘을 사용하여 최적의 경로를 선택하고 송신 측으로부터 수신 측으로 전송
- 전송되는 데이터는 패킷 단위로 분할하여 전송한 후 다시 합쳐진다.
- 각 패킷이 목적지까지 성공적이고 효과적으로 전달되도록 하는 것이 목표!
- 목적지(IP)를 정하고, 경로( Route)를 선택하고, 경로에 따라 패킷을 전달해 줌.
📕Data Link Layer (링크 계층)
- 물리 계층에서 사용되는 통신매체를 통해 데이터 블록의 전송 에러 검출, 에러 제어 관리 규정
- 물리적인 네트워크 사이에서 데이터 전송을 담당.
- 목표는 error 없이 상대방에게 전달해야 함(신뢰성 있는 전송).
- 데이터의 일치를 보장해 줌.
- ex) 스위치, 브리지
📕Physical Layer (물리 계층)
- 상위 계층(데이터 링크)에서 전송된 데이터를 물리적인 전송 매체를 통해 다른 시스템에
전기적 신호를 전송하는 역할 - 기계어(데이터) -> 전기적 신호
추가)
📗OSI 7 계층
기존 5 계층에서 persentation과 session 계층이 추가된 것을 알 수 있습니다.
📕Session Layer (세션 계층)
- 통신 세션을 구성하는 계층으로, 포트(Port) 번호를 기반으로 연결
- 통신 장치 간의 상호 작용을 설정하고 유지하며 동기화한다.
- 동시 송수신(Duplex), 반이중(Half-Duplex), 전이중(Full - Duplex) 방식의 통신과 함께
체크 포인팅과 종료, 다시 시작 과정 등을 수행한다. - 네트워크 상 양쪽 연결을 관리하고 연결을 지속시켜 주는 계층
- TCP/IP 세션을 만들고 없애는 역할
📕Presentation Layer (표현 계층)
- 송신 측과 수신 측 사이에서 데이터의 형식(png , jpg 등)을 정해준다.
- 받은 데이터를 코드 변환, 구문 검색, 인코딩 - 디코딩 및 암호화, 압축의 과정을 통해 올바른 표준 방식으로 변환.
- 코드 간의 번역을 담당하여 데이터의 형식상 차이를 다루는 부담을 Application Layer으로부터 덜어줌.
- 데이터 전송 표현을 통일시켜 줌.!
😀요약
- Physical Layer(물리 계층) : 데이터를 전기적인 신호로 변환해서 주고받는 기능만 수행!
- Data link Layer(데이터 링크 계층) : 네트워크 기기들 사이의 데이터 전송을 수행!
- 시스템 간 오류 없는 데이터 전송을 보장하기 위한 계층!
- Neywork Layer(네트워크 계층) : 기기에서 데이터그램이 가는 경로를 설정해 주는 역할을 수행!
- 라우팅 알고리즘을 사용해 최적의 경로를 선택하고, 수신 축으로 전송
패킷을 목적지까지 효과적으로 전달되도록 함.
- 라우팅 알고리즘을 사용해 최적의 경로를 선택하고, 수신 축으로 전송
- Transport Layer (전송 계층) : 발신지에서 목적지(end to end) 간 제어와 에러를 관리!
- 패킷의 전송이 유효한지 확인, 전송에 실패된 패킷을 다시 보냄.
- 신뢰성 있는 통신을 보장.
- Session Layer (세션 계층) : 통신 장치 간의 상호작용을 설정하고 유지하며 동기화.
- Presentation Layer (표현 계층) : 송신 측과 수신 측 사이에서 데이터의 형식을 정해주고, 통일시킴!
- Application Layer (응용 계층) : 사용자와 바로 연결된 계층이며, 응용 SW를 도와주는 계층
- 사용자로부터 정보를 입력받아 하위 계층으로 전달, 하위 계층에서 받은 데이터를 사용자에게 전달.
- 여러 가지 응용 서비스를 네트워크에 연결해 주는 역할!
'Computer Science > Network' 카테고리의 다른 글
[컴퓨터망] - Web and HTTP (0) | 2023.04.09 |
---|---|
[컴퓨터망] - Application Layer(네트워크 어플리케이션의 원칙) (0) | 2023.04.08 |
[컴퓨터망] - Circuit Switching vs Packet Switching (0) | 2023.04.07 |
[컴퓨터망]- 네트워크 구성(Network Edge/Core, Access net work) (0) | 2023.04.07 |
[컴퓨터망] - Internet & Protocol (0) | 2023.04.04 |