쉽게 배우는 데이터 통신과 컴퓨터 네트워크를 정리한 내용입니다
1. 프로토콜의 이해
네트워크에 연결된 시스템이 통신하기위해 필요한 일련의 규칙이다
프로토콜은 다양한 외부요인의 영향을 받기 때문에 프로토콜의 설계는 모듈화를 통해 이루어진다 -> 시스템 복잡성 단순화
1) 프로토콜 설계 시 고려 사항
계층 구조의 통신 프로토콜을 설계할 때에는 고려할 요소가 많다.
- 주소 표현은 스마트폰 번호나 IP주소와 같이 호스트를 유일하게 구분하는 용도로 사용한다
- 오류 제어는 전송 과정에서 데이터 분실, 데이터 변형 등의 오류가 발생했을 때 데이터를 복구하는데 사용한다.
- 흐름 제어는 송신자가 데이터를 너무 빨리 보내어 수신자가 미처 처리하지 못하는 문제를 해결하기 위한 목적으로 사용한다.
- 데이터 전달 방식은 데이터를 보낼때 데이터 전송시 방법으로 정하는 것으로, 데이터 사이의 전송 우선순위를 설정하는데 사용된다( 종류 : 양쪽에서 동시에서 보낼지(전이중), 한 방향으로만 보낼지(단방향), 양쪽으로 보내되 특정시점에선 한 방향으로만 보낼지(반이중) )
2) 서비스 프리미티브
서비스 프리미티브란?
OSI 7 Layer 및 TCP/IP의 상위 계층과 하위 계층의 서비스 요구, 지시, 응답, 확인 통한 계층 간 통신 기능
프로토콜은 계층 구조로 이루어져 있고, 하위 계층이 상위 계층에 서비스를 제공하는 방식으로 동작한다.
계층 구조 프로토콜에서 하위 계층이 상위 게층에 제공하는 서비스의 종류는 연결형과 비연결이 있다
- 연결형 서비스 : 3단계의 절차가 있다
- 데이터 전달 경로를 설정하는 연결 설정 단계가 필요
- 연결 설정이 완료되면 데이터 전송이 가능
- 데이터 전송 완료후 전송 단계를 종료하려면 연결 해제 단계가 필요함
- 연결형 서비스에서 자주 사용하는 서비스 프리미티브의 종류
- CONNECT : 연결 설정
- DATA : 데이터 전송
- DISCONNECT : 연결 해제
- 비연결형 서비스
- 연결 설정 단계가 필요X -> 데이터가 있다면 독립적으로 목적지 호스트로 전송하면됨
- 독립 경로 선택 과정에 의해 진행되어 도착 순서가 보낸 순서와 다를 수도 있다
통신 프로코톨에서 프리미티브를 올바르게 수행하기 위해 4가지 기능을 포함하도록 설계해야한다.
Request | 클라이언트가 서버에 서비스를 요청함 |
Indication | 서버에 서비스 요청이 도착했음을 통지함 |
Response | 서버가 클라이언트에 서비스 응답을 회신함 |
Confirm | 클라이언트에 응답이 도착했음을 통지함 |
위의 이미지와 같이 request -> indication -> response -> confim 과정을 통해 하나의 서비스 프리미티브가 처리된다
2. OSI 7계층모델
전송 데이터는 송신 호스트의 응용 계층에서 시작해 하위 계층으로 전달되어, 최종적으로 물리 계층에서 수신 호스트에 전달된다
각 계층은 헤더와 데이터단위로 정의되며 헤더는 각 계층의 기능과 관련된 정보가 포함되어있다.
- 송신 호스트 : 데이터가 상위계층에서 하위계층으로 갈 수록 헤더 추가
- 수신 호스트 : 데이터가 하위계층에서 상위계층으로 갈 수록 헤더 제거
계층별 기능
전송 계층을 기준으로 하위에 있는 '물리 계층, 데이터 링크 계층, 네트워크 계층' 은 전송계층의 연결을 설정하고 지원하는 역할을한다.
상위에 있는 '세션 계층, 표현 계층, 응용 계층'은 전송계층의 연결을 어떻게 활용할지에 대해 다룬다
1. 물리 계층
- 전송 매체의 물리적 인터페이스에 관한 사항을 기술
- 물리 계층은 허브, 라우터, 네트워크 카드, 케이블 등 전송매체를 통해 비트를 전송한다.
2. 데이터 링크 계층
- 물리 계층을 통해 전송되는 데이터의 물리적 전송 오류를 해결한다.
- 상위의 네트워크 계층에 신뢰성있는 패킷 전송을 보장해준다.
- 전송되는 데이터를 프레임이라고 부름
3. 네트워크 계층
- 송신 호스트가 전송한 데이터가 어떤 경로를 통해 수신 호스트에 전달되는지 결정하는 라우팅 문제를 처리한다
- 전달 경로 선택은 미리 정해진 정적 방식과 네트워크 부하 상태에 따라 결정되는 동적 방식으로 구분함
- 경로 선택의 기준으로 호스트 주소가 필요하며 DNS로 전환되는 IP 주소가 경로선택의 중요 기준이 된다
- 전송되는 데이터를 패킷이라 부름
4. 전송 계층
- 송신 프로세스와 수신 프로세스를 직접 연결하는 단대단(end-to-end) 통신기능을 제공한다.
- 프로토콜과 관련된 계층으로 오류복구와 흐름제어 등을 담당, 두 시스템 간에 신뢰성 있는 데이터를 전송
- 또한 네트워크 계층에서 온 데이터를 세션 계층의 어느 애플리케이션에 보낼지 판단한다
5. 세션 계층
- 전송 계층과 거의 비슷하지만 좀더 상위적 연결개념인 세션 기능을 제공한다는 점이 다르다.
- 네트워크에 있는 시스템간에 지속적으로 통신하려고 세션유지 및 오류감지와 복구를 수행 동기화 역할
- 전승 계층으로 전송할 순서를 정하고 데이터를 점검 및 복구하는 동기위치를 제공
6. 표현 계층
- 데이터의 의미와 표현 방법을 처리하며 송신측과 수신측 사이의 표준화된 데이터 형식 규정한다
- 데이터압축 및 암호화 기능 또한 표현 계층에서 제공한다
7. 응용 계층
- 파일 전송, 데이터베이스, 원격접속, 이메일 전송 등 응용 서비스에 필요한 기능을 다룬다
- 사용자와 소통하는 구간, 직접 정보를 입력받아 하위 계층과 사용자 사이에 연결 전달하며 실제로 통신의 최종 목적에 해당하는 계층이다
3. 인터넷 모델
인터넷은 데이터의 중개 기능을 담당하는 네트워크 계층으로 IP프로토콜을 사용하는 네트워크이다.
호스트는 반드시 IP 프로토콜을 지원해야하며, 전송 계층은 TCP, UDP를 사용한다
1) 구현환경
위의 이미지와 같이 전송 계층까지의 기능을 운영체제 내부(시스템공간)에 구현한다.
TCP/IP의 하위 계층인 드라이버 루틴은 운영체제 영역에 속하며, TCP/IP는 이후에 나올 소켓 기능이 필요하며 사용자 공간에서 네트워크 응용 기능을 지원하는 프로그램을 작성해야 한다.
ex) 네트워크 프로세스 : 스마트폰에서 실행되는 네트워크 관련 앱
- 시스템 공간 : 물리 계층, 데이터 링크 계층, 네트워크 계층
- 사용자 공간 : 세션 계층, 표현 계층, 응용 계층
2) 프로토콜
인터넷에서 데이터 전송은 계층 4의 TCP,UDP 프로토콜, 계층 3의 IP프로토콜에 의해 이루어진다.
이 프로토콜들이 올바르게 동작하기위해 더 많은 제어용 프로토콜이 필요하다.
많은 종류의 프로토콜이 있지만 대표적으로 ARP/RARP, ICMP가 있다
- ARP(Address Resolution Protocol)/RARP : 네트워크 계층으로써 논리적 주소와 물리적 주소 사이의 변환을 담당하는 프로토콜. ARP는 수신호스트의 IP주소를 이용해 MAC주소를 구하는 프로토콜이고 RARP는 그 반대로는 MAC주소를 IP주소로 변환해주기 위해 사용되는 프로토콜이다
- ICMP : 사용자 데이터의 전송 과정에서 오류가 발생하면 오류 메세지가 생성되는데, 이 오류 메세지를 송신 호스트에 전송하는 기능을 담당한다
'CS > 네트워크' 카테고리의 다른 글
6. 네트워크 계층의 기능 & 라우팅 프로토콜 (0) | 2022.09.15 |
---|---|
5. 데이터 링크 계층 (0) | 2022.09.15 |
4. 데이터 전송 (0) | 2022.09.12 |
3. 네트워크 기술 (0) | 2022.09.12 |
1. 네트워크 기초 (0) | 2022.09.08 |