Hi yoahn 개발블로그

컴퓨터 네트워크 및 실습 - 네트워크 본문

sswu/컴퓨터네트워크

컴퓨터 네트워크 및 실습 - 네트워크

hi._.0seon 2020. 6. 3. 21:23
반응형

1. 컴퓨터 네트워크

- 정보와 자원 공유를 위해 링크로 연결된 노드(컴퓨터)들의 집합

- 노드: 호스트, 라우터 (데이터를 중계하거나 처리하는 네트워크 종단장치)

- 호스트: 컴퓨터, 네트워크 사용자: 컴퓨터에서 실행되는 프로그램

- 라우터: 하나의 통신 채널에서 다른 통신 채널로 데이터를 전달하는 통신 기기

 

 

 

 

 

- 컴퓨터 네트워크 구성요소

1) 송신자

2) 수신자

3) 전송매체

4) 프로토콜

5) 메시지

 

- 송신자: 데이터를 전송하는 호스트

- 수신자: 송신자로부터 데이터를 받아 처리하는 호스트

- 전송 매체: 데이터를 전달하는 물리적인 통로

- 프로토콜: 데이터를 정확하게 교환하기 위해 사용하는 규칙

                메시지를 주고 받는 양식과 규칙의 체계

        ( 송/수신자의 프로토콜이 같아야 보낸 의미를 이해할 수 있다. )

   - 구성요소

     : 구문: 무엇을 전송할 것인가

       의미: 어떻게 동작할 것인가

       타이밍: 언제 전송할 것인가

 

- 메시지: 전송 매체를 통해 전달되는 정보이며 패킷으로 구성됨.

             (패킷으로 전송되는 정보)

패킷: 헤더와 페이로드로 구성

헤더페이로드

 - 헤더: 정보를 전송하기 위해서 필요한 제어 정보

 - 페이로드: 실제 전송할 데이터를 저장하고 있는 부분

 

2. 프로토콜의 구조

- 기능에 따라 계층구조를 가진다

( 계층구조 -> 유지보수, 수정 용이 )

- 프로토콜의 계층구조

 

 

 

* 네트워크 모델

- 네트워크가 어떤 계층들로 구성되고 각 계층의 역할, 각 계층 사이의 교류는 어떻게 이루어지는지 설명

- 프로토콜로 정의됨

1) OSI 7계층 참조 모델

2) TCP/IP 프로토콜

 

 

3. OSI 7계층 참조모델

OSI 7계층 참조모델

- 개방형 모델

계층기능
응용계층WWW, FTP, Telnet 과 같은 응용 프로그램
표현계층데이터의 압축과 암호화 기능 수행
세션계층
(연결에 대한 전반적인 부분을 담당)
전송계층종단간 데이터 전송
네트워크계층
(전송을 위해 필요한 계층)
데이터링크계층데이터 오류 검출 및 흐름 제어
물리계층데이터를 전기적 신호로 변환해서 보냄

1) 물리 계층               -- 비트스트림

- 물리적 매체를 통한 비트스트림 전송에 요구되는 기능을 담당

( 기계적, 전기적, 전송매체 )

- 물리적인 장치와 인터페이스가 전송을 위해 필요한 기능과 처리 절차 규정

- 데이터링크 계층으로부터 한 단위의 데이터를 받아 통신 링크를 따라 전송될 수 있는 전기적인 신호로 변환하는 역할

 

# 물리 계층의 주요 기능

- 인터페이스와 매체의 물리적인 특성 : 장치와 전송매체 간의 인터페이스 특성을 규정 (원하는 정보가 흘러가기 위함)

- 비트의 표현: 비트를 전송하기 위해 전기적 또는 광학적인 신호로 부호화

- 데이터 속도: 신호가 유지되는 비트의 주기를 규정

- 비트의 동기화: 송신자와 수신자는 같은 클럭을 사용

 (신호의 시작과 끝, 신호 값을 읽고 데이터에 대한 정보를 얻음)

 

2) 데이터링크 계층         -- 프레임

- 노드와 노드 사이의 데이터 전달을 책임진다

# 데이터링크 계층의 주요 기능

- 프레임 구성 -> 물리 주소 지정

  상위계층 (네트워크 계층)으로부터 받은 데이터를 프레임 단위로 나누고, 송신자/수신자의 물리 주소를 헤더에 추가한다.

- 흐름 제어

  수신자의 데이터 처리율을 고려하여 데이터를 전송하도록 제어

- 오류 제어

  전송 도중 오류(손상, 손실된 프레임을 발견/재전송)

-> 오류 & 흐름 제어를 통해 상위계층에게 신뢰성 있는 데이터 전송 서비스를 제공

- 접근 제어

  주어진 어느 한 순간에 하나의 장치만 동작하도록 제어

 

3) 네트워크 계층       -- 패킷

- 패킷을 발신지에서 목적지까지 잘 갈 수 있도록 데이터 전송을 담당

# 네트워크 계층의 주요 기능

1) 논리 주소 지정

- 상위 계층(전송계층)에서 받은 패킷에 발신지와 목적지의 논리 주소를 헤더에 추가한다.

  (패킷이 논리 주소를 가지고 있어야 각각에 대한 주소를 알 수 있다)

2) 라우팅

- 패킷이 최종 목적지에 전달될 수 있도록 경로를 지정하거나 교환 가능

 

4) 전송 계층         -- 세그먼트

- 전체 메시지의 프로세스프로세스 전달에 대한 책임을 가짐

- 전체 메시지가 완전하게 바른 순서로 도착하는 것을 보장

** 네트워크 층 -> 컴퓨터 간의 데이터 전송, 개별적인 패킷의 종단 대 종단 전송을 담당 (컴퓨터 - 컴퓨터)

*** 전송 계층 -> 하나의 호스트에 여러개의 프로세스가 동시에 수행될 수 있으므로 포트 주소로 구분하여 프로세스에서 목적지 프로세스로 전달

 

# 전송 계층의 주요 기능

- 포트 주소 지정: 포트 주소를 포함

  ( 네트워크 계층 : 각 패킷을 정확한 컴퓨터에 전달,

    전송 계층 : 해당 컴퓨터의 정확한 프로세스에게 전달 port 번호로 구분 )

- 분할과 재조립

  - 전달 가능한 세그먼트 단위로 나눔

  - 각 세그먼트는 순서번호를 이용하여 재조립 또는 패킷의 손실여부 판단

- 연결 방식 결정

  - 비연결 / 연결 지향

     ( 비연결 전송: 흐름/오류 제어 X, 데이터의 신뢰성 보장 X

        연결 전송: 데이터의 전송 순서가 유지됨, 흐름 제어와 오류 제어 -> 신뢰성있는 데이터 전송 )

- 흐름, 오류 제어

 

(비연결 전송: 연결 과정이 없으므로 간단한 데이터 전송에 유리)

 

5) 세션 계층       -- 메세지

- 네트워크 상에서의 대화 관리

- 세션 계층의 주요 기능( 세션 관리, 동기화, 대화 제어)

 

6) 표현 계층

- 통신 장치 간의 상호 운용성을 보장하는 계층     & 프로토콜

- 시스템 간에 주고받는 정보의 구문과 의미를 다룬다.

- 데이터의 암호화와 복호화

- 데이터의 압축 및 확장

 

7) 응용 계층

- 사용자에게 네트워크 접근성 제공

- 사용자 인터페이스 제공 : 가장 상위 계층

- 응용 계층 주요 서비스

  : 원격 로그인 (Telnet), FTP, E-mail, WWW

 

4. TCP / IP 프로토콜 

- 인터넷에서 사용하는 프로토콜

   ( 인터넷에 있는 데이터를 네트워크를 통해서 받아옴 )

- OS에 기본 내장

- 서브 네트워크를 연결하기 위한 프로토콜 (인터네트워킹: 네트워크를 서로 연결하는 작업)

  -> 서로 다른 서브 네트워크를 하나로 연결하여 서브네트워크에 연결된 사용자들이 자원을 공유하는 것이다.

 

OSI 7계층TCP/IP 계층
응용계층응용 계층
표현계층
세션계층
전송계층전송 계층
네트워크계층네트워크 계층
데이터링크계층네트워크 인터페이스 계층
물리계층


1) 네트워크 인터페이스 계층

- 네트워크 계층의 IP 데이터그램을 서브 네트워크가 이해할 수 있는 패킷으로 변환한다.

- 모든 네트워크 어댑터에 대해 일관된 인터페이스를 제공하기 위해 필요한 네트워크 관련 장치 드라이버 및 네트워크 관련 SW

- 접속 계층이라고도 한다.

 

2) 네트워크 계층

- 전송 데이터를 데이터그램으로 구성하여 전송

- 경로 배정 기능 : IP 헤더 추가

-> 전송계층에서 받은 패킷에 IP헤더를 추가하여 네트워크 인터페이스 계층으로 전송

 

[데이터그램]

<추가>IP 페이로드
IP 헤더TCP/UDP 헤더TCP/UDP 페이로드트레일러

- 전송 패킷의 목적지 주소를 기반으로 네트워크 인터페이스 선택

- 프로토콜: IP

 

3) 전송 계층    -- 패킷 단위

- 프로세스 사이의 전송을 책임진다 (오류제어와 흐름제어)

- 프로토콜: TCP, UDP가 있음

 

[ TCP 헤더 구조 ]

 

-> 안정적으로 전송하는 헤더 구조  흐름&오류 제어

패킷 순서번호: 메시지가 패킷으로 분할되어 있으므로 순서를 보고 재조립

패킷 확인 응답번호: 패킷을 받았다는 응답

체크섬 : 오류 확인

 

 

[ UDP 헤더 구조 ]

 

-> 비신뢰성 전송 서비스 제공

- TCP에 비해서 헤더 구조가 간단하다.

- UDP 체크섬 : UDP 헤더에 대한 오류 검사를 위해 사용

 

4) 응용 계층

- 최종 사용자 서비스를 제공

- 프로토콜: WWW, e-mail, FTP, Telnet

 

5. TCP/IP 데이터 송수신 과정

- 상위 계층에서 하위 계층으로 전달되면서 각 계층별 헤더가 추가됨

 

 

하위 계층 -> 상위 계층 : 헤더 제거

상위 계층 -> 하위 계층 : 헤더 추가

 

* 인터넷 프로그램에서 사용자 프로그램의 위치

- 사용자 프로그램은 전송 계층의 서비스를 받아 동작

- 전송 계층까지는 OS 에 구현되어 있으므로 사용자가 프로그램할 필요 없음

- 전송 계층이 제공하는 서비스(함수)를 이용하여 사용자 프로그램이 동작

 

* 전송 종단점

- 실제 데이터 전송은 프로세스 <-> 프로세스 사이에서 이루어짐

- 컴퓨터 내부에서 동시에 실행되는 프로세스를 구분하기 위해 포트번호 사용

- 종단점: 네트워크에서 프로세스가 호스트에 연결되는 부분(프로세스의 위치를 정확히 나타내기 위해 사용)

       ( 종단점을 정확히 나타내기 위해서는 사용되는 프로토콜, 송신자 주소&포트번호, 수신자 주소&포트번호 가 필요)

 

TCP   -> 연속적인 데이터 전송

- 통신 채널에서 발생할 수 있는 패킷 손실 & 오류 문제를 처리할 수 있도록 설계됨

- 오류제어&흐름제어를 통해 신뢰성 있는 바이트 스트림 채널을 제공

- 연결지향 프로토콜, 데이터 전송 전 TCP연결이 확립되어야 함

UDP   -> 단편적인 데이터 전송

- 전송 전에 연결을 만들지도 않고 전송 중에 발생할 수 있는 오류&패킷 손실/중복 처리 안함

- UDP를 사용하는 응용 프로그램은 오류를 직접 처리해야 함

 

6. IP주소

- TCP/IP 프로토콜은 서브 네트워크를 연결하기 위해 제정됨

- 서브네트워크에서 호스트를 식별하기 위해 사용되는 물리 주소는 서브 네트워크마다 구성이 다를 수 있다.

- 인터넷 = 서브 네트워크를 연결하여 구성된 네트워크

어떤 서브 네트워크에서 사용된 물리 주소를 다른 서브네트워크에서는 모름 -> 인터넷에서는 별도의 글로벌 주소가 필요 ==> IP 주소 (인터넷에서 호스트를 구분하기 위해 사용되는 글로벌 주소)

 

IP주소 -> 서버 -> 호스트 -> 내용 긁어와서 뿌려줌

 

IP 주소의 구성

= 네트워크 주소 + 호스트 주소

 

- 네트워크 주소: 서브 네트워크를 식별하기 위해 사용

- 호스트 주소: 네트워크 내에서 호스트 식별을 위해서 사용, 동일한 네트워크 내에서 호스트 IP는 각자 달라야 한다.

 

- 서브넷 마스크: 호스트가 로컬 서브네트워크에 있는지, 원격 네트워크에 있는지 확인하기 위해 사용

   네트워크 주소를 나타내는 비트는 1, 호스트 주소 부분은 0으로 표시

 

* IP 주소 클래스

- 클래스 A: ip주소의 맨 앞이 항상 0인 것

0xxxxxxx.00000000.00000000.00000000

첫번째 옥테드의 범위 : 1 ~ 126

-> 네트워크 주소

나머지 옥테드는 호스트의 주소이다

 

- 클래스 B: ip주소의 맨 앞이 항상 10 인것

10xxxxxx.xxxxxxxx.00000000.00000000

첫번째 옥테드의 범위: 128 ~ 191

255.255.0.0

 

- 클래스 C: ip주소의 맨 앞이 항상 110인것

110xxxxx.xxxxxxxx.xxxxxxxx.00000000

첫번째 옥테드의 범위 : 192 ~ 223

255.255.255.0

 

* 서브넷 구성

- 클래스 A, B, C IP 주소를 사용하는 네트워크는 시스템 관리자에 의해 더 작은 단위(서브넷)으로 나누어질 수 있다.

- 인터넷의 논리적 주소 체계와 실제로 사용되는 실제 네트워크를 맞출 때 작업이 필요

- 해당 호스트가 서브네트워크에 없으면 거기서는 더이상 호스트를 찾지 않음

-> 서브네트워크를 작게 구성하면 효율적으로 사용 가능

 

- 클래스 C 주소에 254대의 컴퓨터를 연결 가능 -> 더 작은 서브네트워크로 나눠서 사용

사용자 지정 서브넷 마스크  =  255.255.255.11000000 (192)

- 클래스 C 주소를 4개의 서브넷으로 나눔

192.168.123.1-62 /  192.168.123.65-126  /  192.168.123.129-190  /  192.168.123.193-254

(마지막 옥텟 값이 0, 63, 64, 127, 128, 191, 192, 255 는 사용 불가 : 호스트 주소가 네트워크 주소부분과 겹치는 부분이 생기기 때문에)

 

 

- 인터넷에서 데이터 전송 방식: 서브 네트워크 -> 서브 네트워크 내에서 호스트로 전달되는 방식

 

 

 

 

 

 

 

 

 

반응형
Comments