이 글은 "쉽게 배우는 데이터 통신과 컴퓨터 네트워크 (박기현 지음)"을 읽고 주관적으로 요약한 글입니다.
1. 네트워크 관련 기초 용어
1) 네트워크 기초 용어
- 시스템 (System)
- 내부 규칙에 따라 능동적으로 동작하는 대상
- 물리적인 대상뿐 아니라, 프로세스 같은 논리적 대상도 포함
- 인터페이스 (Interface)
- 시스템과 시스템을 연결하기 위한 표준화된 접근 방식
- 물리적 규격 / 논리적 규격
- 인터페이스로 연결된 시스템은 능력과 권한이 같을 수도, 서로 서비스를 주고 받는 상하 관계일 수도 있음
- 전송 매체 (Transmission Media)
- 시스템끼리 정해진 인터페이스를 연동해 데이터를 전달하는 물리적 전송 수단
- 동축 케이블, 공기, 무선 신호 등
- 프로토콜 (Protocol)
- 상호 연동되는 시스템이 전송 매체를 통해 데이터를 교환할 때 따르는 표준화된 규칙
- 동등한 위치의 시스템 사이 규칙
- 인터페이스는 연동을 위한 접촉 지접(Access Point)를 의미
- 프로토콜은 주고받는 정보의 형식과 절차적 순서를 의미
- 네트워크 (Network)
- 통신용 매체를 공유하는 여러 시스템이 프로토콜로 데이터를 주고받는 환경의 통칭
- 라우터
- 소규모 네트워크가 모여 더 큰 네트워크를 구성하기 위해 사용하는 중계 장비
- 인터넷 (Internet)
- 전 세계 모든 네트워크가 유기적으로 연결되어 동작하는 통합 네트워크
- IP(Internet Protocol)에서 유리된 이름
- 표준화 (Standardization)
- 서로 다른 시스템의 상호 연동이 가능하도록 형식을 통일하는 것
2) 시스템 기초 용어
- 노드 (Node)
- 인터넷에 연결된 시스템
- 데이터를 주고받는 모든 시스템의 통칭
- 호스트 (Host)
- 컴퓨팅 기능이 있는 시스템
- 사용자가 네트워크에 접속하는 창구 역할
- 호스트 사이에 제공되는 서비스를 기준으로 클라이언트 / 서버로 나뉨
- 클라이언트 (Client)
- 서비스를 이용하는 시스템
- 호스트는 다양한 서비스를 주고받으므로, 클라이언트 / 서버 역할이 고정되지 않음 (상대적인 관점)
- 서버 (Server)
- 서비스를 제공하는 시스템
- 계속 대기하다가 클라이언트의 요청이 들어올 때마다 서비스 제공
2. 네트워크의 기능
1) 계층 모델
- OSI(Open System Interconnection) 7계층
- 여러 호스트가 서로 통신하기 위해 표준화한 방식
- 데이터 송신 요청이 아래 계층으로 순차 전달, 데이터 수신은 반대로
- 1. 물리 계층 (Physical Layer)
- 호스트를 전송 매체와 연결하기 위한 인터페이스
- 2. 데이터 링크 계층 (Data Link Layer)
- Noise와 같은 물리적 전송 오류를 감지하는 기능 제공
- 물리적 오류로 데이터 분실 / 깨진 데이터는 재전송하는 방식으로 처리
- 3. 네트워크 계층 (Network Layer)
- 데이터는 여러 개의 중개 시스템(라우터)을 거쳐야함
- 데이터가 올바른 경로를 선택할 수 있도록 지원
- 네트워크 부하에 따른 혼잡 제어(Congestion Control) 담당
- 4. 전송 계층 (Transport Layer)
- 데이터를 교환하는 주체는 호스트 내부의 네트워크 프로세스
- 송신 프로세스와 수신 프로세스간의 연결 기능 / 안전한 데이터 전송 제공
- 운영체제의 시스템 콜 형태로 제공되며, 위 계층은 사용자 프로그램으로 작성
- 5. 세션 계층 (Session Layer)
- 전송 계층의 연결과 유사한 상위 논리적 연결인 세션 연결 지원
- 사용자 간의 대화(Dialog) 개념의 연결로 사용
- 6. 표현 계층 (Presentaiotn Layer)
- 전송되는 데이터의 의미(Semantic)를 잃지 않도록 올바르게 표현하는 방법(Syntax)을 다룸
- 본래 기능에 더해, 다음 2가지 중요한 기능
- 압축 : 멀티미디어와 같은 전송 데이터의 양을 줄임
- 암호화 : 데이터를 안전하게 보호하는 기능
- 7. 응용 계층 (Application Layer)
- 사용자를 위한 다양한 네트워크 응용 환경 지원
- 프로토콜 / 인터페이스 / 서비스
- 프로토콜
- 각 계층에 상응하는 방식과 절차에 따라 상대 계층과 통신하는 과정에서 필요한 규칙 - 인터페이스
- 계층과 계층 사이의 규칙 - 서비스
- 하위 계층에서 상위 계층에 제공하는 인터페이스
- 프로토콜
2) 인터네트워킹
- 네트워크와 네트워크의 연결
- 두 네트워크가 연동되여 정보를 교환하려면, 데이터를 중개할 인터네트워킹 시스템이 필요함
- 인터네트워킹 시스템은 연결하는 네트워크들에 대해 물리적 / 논리적 인터페이스를 모두 지원해야함
- 게이트웨이 (Gateway)
- 인터네트워킹 기능을 수행하는 시스템
- 기능에 따른 종류
- 리피터 (Repeater)
- 전송 거리가 멀어 신호가 감쇄되는 것을 보완하는 물리 계층 기능 지원
- 물리 계층 - 브리지
- 리피터에 데이터 링크 계층 기능이 추가되어 물리 계층 오류 해결 기능까지 지원
- 물리 계층 + 데이터 링크 계층 - 라우터
- 브리지에서 네트워크 계층 기능까지 추가되어 네트워크간 중개 및 빠른 데이터 전송 경로 판단 지원
- 물리 계층 + 데이터 링크 계층 + 네트워크 계층
- 리피터 (Repeater)
3) 프로토콜
- 데이터를 교환하기 위해 사용하는 통신 규칙
- OSI 7계층 모델은 각 계층에서 수행하는 프로토콜이 독립적이라 간주
- 데이터 단위
- 네트워크 프로토콜을 이용해 데이터를 교환하기 위해서는 먼저 데이터 형태를 규격화해야함
- PDU (Protocol Data Unit)
- 계층에 상관없이 사용할 때 통칭
APDU Application PDU |
응용 계층에서 사용 |
PPDU Presentation PDU |
표현 계층에서 사용 |
SPDU Session PDU |
세션 계층에서 사용 |
TPDU Transport PDU |
TCP는 세그먼트(Segment) / UDP는 데이터그램(Datagram) 전송 계층 자체 PDU를 일반적으로 데이터그램이라고도 함 |
NPDU Network PDU |
패킷(Packet) |
DPDU Data Link PDU |
프레임(Frame) |
3. 네트워크 주소의 표현
- 대상을 유일하게 구별하는 구분자(Identifier)의 특징
- 유일성
- 같은 구분자를 갖지 않는 유일성 보장 - 확장성
- 이용자의 증가로 최대 수용 규모를 예측하여 표현할 수 있는 범위를 고려 - 편리성
- 사용자가 이해하기 쉬운 기호로 된 이름과 숫자로된 주소의 매핑(Mapping) 기능 - 정보의 함축
- 구분자에 응용 환경에서 필요한 다양한 정보를 포함
- 유일성
1) 주소와 이름
- 시스템을 지칭하는 구분자
- 주소 (Address)
- 숫자 기반 - 이름 (Name)
- 편리성을 도모하는 기호 - 사용자는 내부 주소를 몰라도 이름만으로 시스템에 접근
- 주소 (Address)
- 여러 네트워크 주소가 존재
- IP 프로토콜
- 호스트 구분
- IP 주소 - 데이터 링크 계층
- LAN 카드 구분
- MAC 주소 - TCP 계층
- 네트워크 프로세스 구분
- Port 주소
- IP 프로토콜
- IP 주소
- 네트워크 계층의 IP 프로토콜에서 호스트 구분을 구분하기 위해 사용하는 주소
- 32bit로 8bit씩 네부분을 나눔
- 국제 표준화 기구(ISO)에서 전체 주소를 관리 / 할당하여 중복 주소 사용 차단
- 특정 규칙에 따라 인접한 숫자가 그룹으로 묶이며, 이는 패킷의 경로를 결정하는 데에 역할을 함
- 호스트 이름
- IP 주소는 기억하기 힘들어 문자로 된 주소 사용
- 사용자가 문자로 된 호스트 이름을 사용하면 IP 주소로 변환이 필요
- 일반 사용자 (호스트 이름을 사용) -> 상위 계층 (DNS로 부터 호스트 이름을 IP주소로 변경) -> 네트워크 계층 (IP 주소 사용) - DNS (Domain Name System)
- 네 계층 구조 : <호스트>.<단체 이름>.<단체 종류>.<국가 도메인>
- zebra.korea.co.kr : 대한민국(kr)의 회사(co)중 korea라는 이름에 소속된 zebra 호스트
2) 주소 정보의 관리
- 호스트 파일
- 호스트 이름과 IP 주소 변환을 위해, 호스트 이름과 IP 주소의 조합을 기록/관리하는 특정 파일
- 그러나 네트워크 관리자가 관리 대상의 호스트 정보를 주기적으로 갱신해야함
- DNS
- 주소와 이름 정보를 자동으로 유지하고 관리하는 분산 데이터베이스 시스템
- 네임 서버(Name Server) : 호스트 주소와 이름 정보를 유지/관리하는 특정 호스트
- 주소 변환 작업이 필요한 클라이언트가 네임 서버에 요청해 IP 주소를 획득
- 네트워크 집중화를 피하기 위해 여러 네임 서버에 분산하여 관리
- 기타 주소
- MAC 주소
- LAN카드에 내장된 주소
- 물리 계층이 데이터 전송시 호스트 구분에 사용
- 네트워크 계층에서 데이터 링크 계층으로 데이터를 전송할 때는 IP 주소를 MAC 주소로 변환해야함 - IP 주소
- IP 패킷이 지나가는 경로의 라우팅 기준 - 포트 주소
- 전송 계층에서 호스트 프로세스 구분에 사용 - 메일 주소
- 응용 계층의 메일 시스템에서 사용자 구분에 사용
- MAC 주소
'책읽기' 카테고리의 다른 글
[파이썬 알고리즘 인터뷰][트리] 이진 트리의 직경 (0) | 2021.08.03 |
---|---|
[파이썬 알고리즘 인터뷰][트리] 이진 트리의 최대 깊이 (0) | 2021.08.03 |
[쉽게 배우는 운영체제](요약)[Part-4][Ch-12] 네트워크와 분산 시스템 (0) | 2021.08.02 |
[쉽게 배우는 운영체제](요약)[Part-4][Ch-11] 파일 시스템 (0) | 2021.08.02 |
[쉽게 배우는 운영체제](요약)[Part-4][Ch-10] 입출력 시스템과 저장장치 (0) | 2021.08.02 |