전공과목 정리/IT개론

[IT개론🗃️] 네트워크와 인터넷

최연재 2022. 6. 24. 03:31

출처 : 소프트웨어 세상을 여는 컴퓨터 과학, 정보응용원리와 함꼐하는 컴퓨터 개론

1. 네트워크와 인터넷의 개요

1) 네트워크의 개념

(1) 네트워크

- 전송 매체로 연결된 장치들의 모임

- 장치는 일반 컴퓨터, 프린터나 스캐너 같은 주변 장치, 서버 같은 대형 컴퓨터를 포함하여 데이터를 주고 받을 수 있는 모든 장치를 지칭

 

2) 네트워크의 분류

(1) LAN(Local Area Network)

- 비교적 가까운 거리에 위치한 소수의 장치를 연갈한 네트워크

- 일반적으로 하나의 사무실, 하나 혹은 몇 개의 인접한 건물을 연결

- 연결하는 형식, 즉 토폴로지(topology)에 따라 링형, 버스형, 스타형 등으로 분류됨

- 링형

  • 장치들을 원형으로 연결
  • 데이터 전송을 위해 토큰(token)을 사용한다.

- 버스형

  • 하나의 통신 회선에 장치를 연결
  • 데이터를 목적지 주소와 함께 버스에 실어 보냄
  • 연결된 모든 장치에 전송
  • 각 장치는 목적지 주소를 확인하여 자신이면 수신

- 스타형 

  • 중앙에 위치한 한 장치에 모든 장치를 연결
  • 항상 중앙 장치를 통해 데이터 전송이 이루어짐
  • 가장 많이 사용되는 방식

(2) WAN(Wide Area Network)

- 둘 이상의 LAN이 넓은 지역에 걸쳐 연결되어 있는 네트워크

- 지역과 지역, 국가와 국가를 연결

 

3) 인터넷의 등장

(1) 인터넷

- 전 세계의 수많은 컴퓨터를 연결한 네트워크 집합체 (네트워크의 네트워크)

- 1969년 미국 국방부의 ARPAnet(advanced research projects agency network)에서 시작

; 국방부와 계약을 체결한 몇몇 대학, 업체를 연결

 

(2) 인터넷의 확산

- 80년대 초부터 민간용으로 사용하기 시작

- 90년대 초 월드 와이드 웹과 브라우저의 개발로 사용자 수가 급격히 증가

 

(3) 인터넷 서비스의 종류

- 월드 와이드 웹 (WWW, World Wide Web)

  • 1989년 유럽입자물리연구소에서 팀 버너스 리(Tim Berners Lee)가 고안
  • 인터넷에서 정보를 쉽게 찾을 수 있도록 제공하는 서비스
  • 하이퍼텍스트(텍스트 정보 연결), 하이퍼미디어(멀티미디어 정보 연결) 방식 이용
  • HTML(hyper text markup language) 문서로 작성

- 전자우편(e-mail) (SMTP ; simple mail transfer protocol) : 인터넷을 통해 편지를 교환

- FTP(File Transfer Protocol)

  • 인터넷을 통해 컴퓨터 간에 파일을 송수신하는 서비스
  • FTP 서버에게 파일을 업로드하거나 반대로 다운로드할 수 있음.

- 텔넷(telnet) : 원격지의 컴퓨터를 인터넷을 통해 접속하여 자신의 컴퓨터처럼 사용할 수 있는 원격 접속 서비스

 


2. 인터넷 주소

1) IP 주소

(1) IP 주소

- 인터넷에 연결된 여러 장치를 식별하는 번호

- 네 개의 10진수로 구성 (각 10진수는 여덟 자리 2진수를 의미한다)

 

(2) IP 주소의 구분

- 네트워크 주소 : 해당 장치가 속해 있는 네트워크를 식별

- 호스트 주소 : 해당 네트워크 내에서 해당 장치를 식별

 

(3) 네트워크 주소와 호스트 주소

- 한 네트워크에 포함된 모든 장치들은 같은 네트워크 주소를 갖지만, 한 네트워크 내의 호스트 주소는 모두 다름

 

(4) 한 네트워크

- 라우터와 같이 네트워크와 네트위크를 연결하는 기기 없이 장치들 사이에서 통신이 이루어지는 행위

 

2) 클래스

(1) 클래스

- 32비트 IP 주소 체계는 A,B,C,D,E 다섯 가지 클래스로 구분

- 클래스 D와 E는 특수한 목적으로 사용한다. 

 

클래스 주소 범위
클래스 A 0.0.0.0 ~ 127.255.255.255
클래스 B 128.0.0.0 ~ 191.255.255.255
클래스 C 192.0.0.0 ~ 223.255.255.255

 

3) 도메인 이름

(1) 도메인 이름

- 숫자 형태의 IP 주소를 기억하기 쉽게 하기 위해 부여한 이름

- 웹 브라우저의 주소표시줄에 IP 주소 대신 도메인 이름을 입력하여 접속

 

(2) DNS (Domain Name System)

- 도메인 이름에 대한 IP주소를 등록하고 있으면서 도메인 이름에 대한 IP 주소를 알려주거나 IP 주소에 대한 도메인 이름을 알려주는 시스템

 

(3) DNS의 역할

 

(4) 도메인 이름의 계층 구조

- 마침표로 구분하여 계층화

- 오른쪽에 있는 이름이 상위 계층

 

(5) DNS 서버의 계층 구조

- 하위 계층의 도메인 이름에 대한 정보를 바로 위의상위 계층의 DNS 서버에서 등록해 관리

 

 


3. 인터넷 통신 과정

1) 인터넷 통신 과정

(1) 데이터 전송 과정

① 데이터 전송 시작

② TCP(UDP) 헤더 추가

③ IP 헤더 추가

④ 데이터를 보낼 다음 노드의 IP 주소를 결정

⑤ MAC 헤더 추가

⑥ 라우터를 경유해 수신 LAN 라우터로 전송

⑦ 수신 LAN 라우터에서 목적지로 전송

⑧ 최종 목적지 도착

 

2) 데이터 전송 시작

(1) 송신지에서 데이터 전송 시작

- PC 1의 애플리케이션에서 전송할 데이터, 데이터를 받을 장치의 IP 주소와  포트번호를 운영체제 내의 TCP/IP 소프트웨어에 전달

 

(2) IP 주소와 포트 번호의 역할

- IP 주소 : 인터넷에 연결된 기기를 식별하는 번호

- 포트번호 : 수신측에서 동작하는 여러 애플리케이션 중 데이터를 수신할 애플리케이션을 식별하는 번호

 

(3) TCP/IP 소프트웨어의 구성

- TCP 계층과 IP 계층으로 구성

- 데이터는 TCP 계층을 거쳐 IP 계층으로 전달됨.  

 

3) TCP(UDP) 헤더 추가

(1) TCP(Transmission Control Protocol)

- 송신측과 수신측의 연결이 이루어진 것을 확인한 다음에 데이터를 전송하는 프로토콜

- 신뢰성이 요구되는 데이터 전송 시 이용

 

(2) 전송 데이터가 TCP를 경유할 경우

- 데이터 앞에 TCP 헤더를 추가한 후 IP로 보냄

; TCP는 데이터 앞에 제어 정보, 포트 번호 등을 포함한 TCP 헤더를 추가한다. 

 

(3) TCP 헤더

- 헤더의 크기 : 20바이트

- 헤더의 필드 구성

필드 크기(비트) 설명
송신측 필드 번호 16 데이터를 보내는 애플리케이션의 포트 번호
수신측 필드 번호 16 데이터를 받을 애플리케이션의 포트 번호
순서 번호 32 송신하는 데이터의 일련 번호로 선두 위치를 나타냄
인정(ACK) 번호 32 수신된 데이터의 순서 번호에 수신된 데이터의 크기를 더한 값
데이터 오프셋 4 데이터가 시작되는위치
예약 필드 6 사용하지 않음
제어 비트 6 SYN, ACK, FIN 등의 제어 번호
윈도우 크기 16 수신측에서 수신할 수 있는 데이터의 크기
체크섬 16 데이터 오류 검사에 필요한 정보
긴급 위치 16 긴급하게 처리할 데이터의 위치
옵션 가변 길이 기타 정보를 위한 부분
(4) TCP 헤더의 제어 비트
- SYN 비트를 1로 하면 연결을 요청하는 것
- ACK 비트를 1로 하면 긍정의 응답을 하는 것
 
(5) TCP 헤더의 순서 번호와 인정 번호
- 송신측의 TCP에서 데이터의 일련 번호인 순서 번호를 TCP헤더에 포함시켜 데이터를 전송
- 수신측에서는 수신한 데이터의 순서 번호에 받은 데이터의 크기를 더한 값을 인정 번호로 하여 잘 받았다는 응답을 송신측에 전달
 
(6) TCP의 데이터 분할
- TCP는 전송할 데이터가 큰 경우 데이터를 적절한 크기로 분할하여 각각의 분할된 부분에 TCP 헤더를 추가한다. 
 
(7) UDP(User Datagram Protocol)
- 송신측과 수신측의 연결 과정을 거치지 않고 일방적으로 데이터를 보내고 수신측으로부터 응답도 따로 받지 않는 프로토콜
- 신뢰성이 요구되지 않고, 간단한 데이터를 빠른 속도로 전송할 때 사용
 
(8) 전송 데이터가 UDP를 경유할 경우 동작
- 데이터 앞에 UDP 헤더(포트 번호 등을 포함)를 추가한 후 IP로 보냄
 
(9) UDP 헤더
- 헤더의 크기 : 8QKDLXM
- 헤더의 필드 구성
필드 크기(비트) 설명
송신측 필드 번호 16 데이터를 보내는 애플리케이션의 포트 번호
수신측 필드 번호 16 데이터를 받을 애플리케이션의 포트 번호
데이터 길이 16 UDP 헤더와 데이터의 총 길이
체크섬 16 데이터 오류 검사에 필요한 정보

 

4) IP 헤더 추가

(1) IP 헤더 추가

- IP 계층에서 TCP(또는 UDP) 헤더가 추가된 데이터를 받으면 IP 헤더(IP 주소 등을 포함) 추가 

 

(2) IP 헤더

- 헤더의 크기 : 20비트

- 헤더의 필드 구성

필드 크기(비트) 설명
버전 4 IP 프로토콜의 버전
헤더 길이 4 IP 헤더의 길이
서비스 타입 8 우선순위
전체 길이 16 IP 헤더를 포함한 데이터 전체 길이
ID 16 IP 헤더를 포함한 데이터의 일련 번호
조각 상태 3 조각 여부
조각의 위치 13 데이터가 처음으로부터 떨어진 정도
TTL 8 생존 기간
프로토콜 8 프로토콜 종류(TCP:6, UDP:17, ICMP:1, IP:0)
체크섬 16 데이터 오류 검사에 필요한 정보(지금은 사용하지 않음)
송신측 IP 주소 32 데이터를 보내는 측의 IP 주소
수신측 IP 주소 32 데이터를 받는 측의 IP 주소
옵션 가변 길이 기타 정보를 위한 부분
 

 

5) 데이터를 보낼 다음 노드의 IP 주소를 결정

(1) 라우팅 테이블

- 데이터를 어디로 보낼지 나타낸 표

- 라우팅 테이블에서 적용되는 행이 없을 때는 최종적으로 첫 번째 행(기본 게이트웨이)을 적용 

 

6) MAC 헤더 추가

(1) MAC 헤더 추가

- 데이터를 보낼 상대의 IP 주소가 정해지면, 상대 네트워크 카드의 *MAC(media access control) 주소를 포함하고 있는 MAC 헤더를 추가

 

*MAC(media access control)

모든 네트워크 카드에 부여된 유일한 번호로 LAN 상에서의 실제 데이터 전송은 이 주소를 통해 이루어짐

 

(2) MAC 헤더

- 헤더의 크기 : 14비트

- 헤더의 필드 구성

필드 크기(비트) 설명
송신측 MAC 주소 48 데이터를 보내는 네트워크 카드의 MAC 주소
수신측 MAC 주소 48 라우팅 테이블에 의해 정해진 상대 네트워크 카드의 MAC 주소
이더넷 타입 16 프로토콜 종류(IP:0800, ARP:0806)

(3) ARP(Address Resolution Protocol)

- 수신측의 MAC 주소를 구할 때 사용하는 프로토콜

 

7) 라우터를 경유해 수신 LAN 라우터로 전송

(1) 최종 데이터를 라우터1로 전송

- 완성된 데이터(각종 헤더를 붙인 최종 전송 데이터)를 라우터 1의 e1 인터페이스로 전송

(네트워크 카드에서 데이터를 전기신호로 변환)

 

(2) 라우터1의 동작

- 메세지를 받은 라우터는 수신자 MAC 주소가 자신의 MAC 주소임을 확인 후 MAC 헤더를 제거한다. 

(MAC 주소는 같은 LAN 상에서의 통신에서만 필요하다. 현 단계의 전송은 WAN 상에서 이루어짐)

- 라우터1는 자신의 라우팅 테이블을 이용해 메세지가 다음에 가야할 곳을 정한다. 

 

 

8) 수신 LAN 라우터에서 목적지로 전송

(1) 라우터2에서 목적지로 전송

- 데이터를 받은 라우터2는 자신의 라우팅 데이블을 이용해 다음에 가야할 곳을 정한다. 

 

(2) 라우터2의 동작

- 라우터2는 데이터를 전송하기 전 MAC 헤더를 추가한다.

-완성된 데이터는 네트워크 카드를 통해 PC로 전송

 

9) 최종 목적지 도착

(1) PC에 메세지 도착

- MAC 주소 확인 후 MAC 헤더 제거

 

(2) PC의 동작

- IP 주소 확인 후 IP 헤더 제거

 

(3) PC의 동작

- 데이터를 받은 TCP는 잘 받았다는 ACK 신호를 데이터를 보낸 PC에 전송

- 데이터를 보낸 PC가 데이터를 분할해 전송했다면 데이터를 받은 PC의 TCP는 분할된 데이터를 병합한다. 

- 빠진 부분이 있으면 데이터를 보낸 PC에 재전송을 요구한다. 

- TCP 헤더 제거 후 TCP 헤더 정보 중 하나인 수신 측 포트번호에 해당하는 애플리케이션으로 데이터를 전송

 


4. 오류 검출

1) 데이터 중복 전송 : 송신측에서 수신측으로 각 데이터를 두 번씩 보내는 방법

 

2) 중복 정보 전송

- 전송할 데이터에 대한 중복 정보(예를 들어 패리티 비트)를 데이터와 함께 보내는 방법

(1) 수직 중복 검사 (VRC, Vertical Redundancy Check)

- 패리티 검사(parity check)라고도 하며, 데이터에 대한 패리티 비트라는 중복 정보를 구해 데이터와 함께 수신 측으로 전송

- 짝수 패리티 전송

  • 1이 짝수 개 있으면 패리티 비트를 0으로, 홀수 개 있으면 1로 패리티 비트를 정해 데이터와 함께 수신측에 전송
  • 수신 측에서는 수신한 정보(데이터+패리티 비트)에대한 패리티비트가 0이면 오류가 발생하지 않은 것으로, 1이면 오류가 발생한 것으로 판단

- 패리티 비트의 문제점 : 짝수 개의 비트에 오류가 발생하면 오류 검출이 불가능하다. 

 

(2) 세로 중복 검사 (LRC, Longitudinal Redundancy Check)

- 데이터를 행렬의 형태로 구성해 오류 검출

  • 데이터를 8비트로 구분해 3행 8열의 행렬로 변환한 다음, 같은 열에 대응되는 비트들에 대한 패리티 비트를 구한다. 
  • 중복 정보를 포함해 데이터를 전송한다. 
  • 수신 측에서 오류를 검사한다. 

 

(3) 순환 중복 검사(CRC, Cyclic Redundancy Check)

- 가장 널리 사용하는 오류 검출 방법

-  검사과정

  1. 첫 번째 비트가 1로 시작하는 n+1 비트의 제수를 결정
  2. 전송하고자 하는 데이터 끝에 n비트의 0을 추가
  3. 모듈로 나눗셈 결과 나머지를 구해 중복 정보로 만든다.
  4. 계산된 중복 정보를 데이터와 함께 전송한다.
  5. 수신 측에서 전송받은 정보를 동일한 n+1 비트 제수로 모듈로 나눗셈을 실시하여 나머지가 0이면 오류가 없는것으로 판단하고, 나머지가 0이 아니면 오류로 간주한다.

(4) 체크섬(Checksum)

- 송신측의 TCP(또는 UDP)에서 전송할 데이터에 대한 체크섬을 구해 TCP 헤더에 포함해서 전송

- 수신측의 TCP에서 TCP 헤더에 포함된 체크섬을 검사해 수신한 데이터에 오류가 있는지 확인한다.

 

5. OSI 7 계층

(1) OSI 7 계층 모델

- 1978년 국제통신 표준화 기구 ISO에서 만듦.

- 서로 다른 네트워크를 연결하여 원할한 통신을 할 수 있도록 통신이 수행되는 일련의 과정

 

(2) 응용 계층(application layer)

- 사용자와 응용 프로그램 사이에 데이터를 주고받을 수 있는 서비스 제공

- 전자우편(SMTP), 파일전송(FTP), 원격접속(telnet), 웹 서버 접속(HTTP), DNS 서비스

 

(3) 표현 계층(presentation layer)

- 송수신자 간의 데이터 표현 방식의 변환, 압축, 암호화 기능을 제어 

 

(4) 세션 계층(session layer)

- 응용 프로그램 간 통신 관리 및 동기화

- 전체 데이터 차원

- 접속 설정 및 유지, 종료

- 동기점(synchronization point)을 통한 오류 복구

 

(5) 전송 계층(transport layer)

- 데이터 링크 계층과 유사한 기능

- 세그먼트(segment) 단위의 종점 간 전송을 책임(Data link layer는 각 패킷의교환기 간 전송을 책임)

- 오류가 있는 경우 재전송 요구

 

(6) 네트워크 계층(network layer)

- 데이터를 패킷 단위로 분할하고,'경로'를 선택

- 패킷의 종점 간 전송 총괄

- 패킷 순서 제어 : 수신한 패킷을 순서에 맞게 재구성

- 라우팅(routing) : 트래픽을 고려한 최적의 경로 선택

 

(7) 데이터 링크 계층(data link layer)

- 각 패킷의 교환기 간 전송을 책임

- 패킷을 '프레임(frame)'으로 분할 (분할된 패킷+다음 교환기의 주소)

- 물리 계층에서의 오류를 검출

 

(8) 물리계층(physical layer)

- 전송 매체를 통해 bit 단위로 전송하는 역할

- 전송 장치들의 기계적, 전기적 특성을 정의

  • 기계적 특성 : 매체의 종류, 커넥터 모양, 판의 수
  • 전기적 특성 : 전압 레벨, 전압 변동