출처 : 소프트웨어 세상을 여는 컴퓨터 과학, 정보응용원리와 함꼐하는 컴퓨터 개론
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 | 긴급하게 처리할 데이터의 위치 |
옵션 | 가변 길이 | 기타 정보를 위한 부분 |
필드 | 크기(비트) | 설명 |
송신측 필드 번호 | 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로 시작하는 n+1 비트의 제수를 결정
- 전송하고자 하는 데이터 끝에 n비트의 0을 추가
- 모듈로 나눗셈 결과 나머지를 구해 중복 정보로 만든다.
- 계산된 중복 정보를 데이터와 함께 전송한다.
- 수신 측에서 전송받은 정보를 동일한 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 단위로 전송하는 역할
- 전송 장치들의 기계적, 전기적 특성을 정의
- 기계적 특성 : 매체의 종류, 커넥터 모양, 판의 수
- 전기적 특성 : 전압 레벨, 전압 변동
'전공과목 정리 > IT개론' 카테고리의 다른 글
[IT개론🗃️] 보안과 암호화 (0) | 2022.06.24 |
---|---|
[IT개론🗃️] 알고리즘 (2) | 2022.06.24 |
[IT개론🗃️] 데이터베이스 (0) | 2022.06.22 |
[IT개론🗃️] 자료구조 (2) | 2022.06.21 |
[IT개론🗃️] 프로그래밍 언어 (0) | 2022.06.21 |