이 글은 이기적 정보처리기능사 실기 기본서를 기반으로 제작되었습니다.
소개
오늘은 정보처리기능사에 꽃이자, 프론트엔드 개발자라면 반드시 알아야 할 중요한 부분!
네트워크에 대해 배워보도록 합시다!
1. 네트워크 기초 활용
1. 네트워크 계층 구조
1) 네트워크
- 원하는 정보를 원하는 수신자 또는 기기에 정확하게 전송하기 위한 기반 인프라를 말한다.
- 네트워크를 사용하여 정보를 전달할 때 약속한 규칙에 따라야 하는데, 이를 프로토콜이라고 한다.
2) 거리에 따른 네트워크 분류
종류 | 거리 | 특징 |
---|
LAN | 근거리 | 한 건물 또는 작은 지역을 커버하는 네트워크 |
WAN | 광대역 | 국가, 대륙과 같이 광범위한 지역을 연결하는 네트워크 LAN에 비해 전송 거리가 넓고, 라우팅 알고리즘이 필요하다. 거리에 제약이 없으나, 다양한 경로를 지나 정보를 전달하므로 LAN보다 속도가 느림, 에러율도 높음. |
3) 패킷 교환 VS 회선 교환 ( 데이터 교환 방식 )
1) 회선 교환
- 물리적 전용선을 활용하여 데이터 전달 경로가 정해진 후, 동일 경로로만 전달된다.
- 데이터를 동시에 전솔할 수 있는 양을 의미하는 대역폭이 고정되어 있다.
- 안정적인 전송률을 확보할 수 있다.
2) 패킷 교환
- 패킷이라는 단위를 사용하여 데이터를 송신하고 수신한다.
- 현재 컴퓨터 네트워크에서 주로 사용하는 방식이다.
- 정보를 일정한 크기로 분할한 뒤 각각의 패킷에 송수신 주소 및 부가 정보를 입력한다.
2. OSI(Open System Interconnection) 7계층
- 국제 표준화 기구인 ISO에서 개발한 네트워크 계층 표현 모델이다.
- 각 계층은 서로 독립적으로 구성되고, 하위 계층의 기능을 이용하여 상위 계층에 기능을 제공한다.
- 1계층인 물리 계층부터 7계층인 애플리케이션 계층으로 정의되어 있다.
![](https://velog.velcdn.com/images/fulldev_hong/post/e95cdd47-cdda-457d-8fe8-081043e60fde/image.png)
(물데네전세표응으로 외워가면 좋다.)
3. 네트워크 주요 장비
1) 허브
- 여러 대의 컴퓨터를 연결하여 네트워크로 보내거나 하나의 네트워크로 수신된 정보를 여러 대의 컴퓨터로 송신하기 위한 장비이다.
- 쉽게 생각하자면, 맥북에서 많이 쓰이는 C타입 USB 허브 생각하면 된다.
- 수신한 프레임을 수신 포트를 제외한 모든 포트로 전송한다.
- 허브의 종류로는 대표적으로 더미 허브와 스위치 허브가 있다.
- 더미 허브
- 데이터를 단순히 연결한 성형 구조로 구성되어 있는 허브
- 스위치 허브
- 스위치 기능을 가진 허브
- 데이터의 유무 및 흐름을 제어하는 지능형 허브이다.
- 요즘 사용되는 대부분의 허브이다.
2) 리피터
- 감쇠된 전송 신호를 새롭게 재생하여 다시 전달하는 재생 중계 장치이다.
- 비슷한 장치로는, WI-FI 중계기 생각하면 된다.
- 허브 등으로 연결하여 통신할 경우, 감쇠된 디지털 신호를 증폭시켜 주는 역할을 한다.
- 신호가 약해지지 않고 컴퓨터로 수신되도록 한다.
3) 브리지, 스위치
- 브리지와 스위치는 두 시스템을 연결하는 네트워킹 장치이다.
- 두 개의 LAN을 연결하여 훨씬 더 큰 LAN을 만들어준다.
브리지 | 스위치 |
---|
소프트웨어 방식 | 하드웨어 방식 |
저속 | 고속 |
포트들이 동일한 속도로 전송 | 포트들마다 다른 속도로 전송 |
2~3개 포트 | 수백 개 이상 포트 |
목적지 주소를 기준으로 1:1 연결 | 목적지 주소 기준으로 1:N 연결 |
데이터를 전부 받은 후 처리하는 Store and Forwarding 방식만을 사용 | 목적지 수고만 활인 후 바로 전송하는 방식인 Cut Through와 브리지의 Store and Forwarding 방식의 장점을 결합한 Fragment Free방식을 같이 사용 |
4) 라우터
- 라우터는 네트워크 계층에서 서로 다른 구조의 망을 연결하는 연동 장치이다.
- PC 등의 로컬 호스트가 LAN에 접근할 수 있도록 하며, WAN 인터페이스를 사용하여 WAN에 접근하도록 한다.
- 라우팅 프로토콜은 경로를 설정하여 원하는 목적지까지 지정된 데이터가 안전하게 전달되도록 한다.
5) 게이트웨이
- 프로토콜을 서로 다른 통신망에 접속할 수 있게 해주거나 다른 종류의 네트워크 등을 상호 접속하여 정보를 주고받을 수 있는 장치이다.
6) NIC(Network Interface Card)
- 외부 네트워크와 접속하여 가장 빠른 속도로 데이터를 주고받을 수 있게 컴퓨터 내에 설치되는 장치이다.
2. 네트워크 프로토콜 파악
1. 네트워크 프로토콜
1) 네트워크 프로토콜의 개념
- 네트워크 프로토콜이란? 컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고받는 양식과 규칙의 체계이다.
- 통신 규약 또는 규칙에는 아래와 같은 방식이 있다.
- 전달 방식, 통신 방식, 자료의 형식, 오류 검증 방식, 코드 변환 규칙, 전송 속도 등
- 다른 기종 장비는 각기 다른 통신 규약을 사용하는데, 프로토콜을 사용하면 다른 기기 간 정보 전달을 표준화 할 수 있다.
프로토콜의 기본 요소는 구문(Syntax), 의미(Semantics), 시간(Timing) 이 3가지다.
1) 네트워크 프로토콜의 종류
- HTTP
- 웹상에서 데이터를 주고 받을 수 있는 프로토콜
- FTP
- 네트워크를 통해 컴퓨터들 간의 파일을 교환하기 위한 프로토콜
- Anonymous FTP는 익명성을 보장함.
- 대표적인 예로는 파일질라(FileZila)가 있음.
- Telnet
- 원격 통신에 이용되는 프로토콜의 하나
- 데이터의 전송 시에 암호화 작업이 존재하지 않아 보안성이 낮은 프로토콜
- 포트 번호 : 23
- SSH
- Telnet과 마찬가지로 원격 통신에 이용되는 프로토콜의 하나
- 데이터의 전송 시에 암호화 작업이 존재하여 보안성이 높은 프로토콜
- 포트 번호 : 22
- rlogin
- UNIX와 같은 시스템의 같은 네트워크 상에서 사용되는 원격 통신 프로토콜
- 포트 번호 : 513
- SOAP
- HTTP, HTTPS 등을 통해 XML 기반의 데이터를 컴퓨터 네트워크 상에서 교환하는 프로토콜
- TCP
- 데이터 전송 프로토콜이다.
- 데이터를 주고받는 과정에서 데이터를 검수하는 작업을 통해 서로 확인하는 과정을 거침.
- 정상적으로 데이터 누락 등을 확인할 수 있는 신뢰성 있는 프로토콜이다.
- UDP
- TCP와 마찬가지로 데이터 전송 프로토콜
- 데이터를 주고받는 과정에서 데이터를 검수하지 않는다.
- 신뢰성이 떨어지는 프로토콜이다.
- 확인하는 과정을 거치지 않기 때문에 TCP보다 데이터 전송이 빠르다.
- DHCP
- 각종 TCP/IP 프로토콜 및 IP 주소 등을 자동적으로 클라이언트가 제공 및 사용할 수 있도록 해주는 프로토콜( 유동 IP 설정 )
- ARP, RARP
- Address Resolution Protocol, Reverse ARP 의 약자이다.
- ARP는 IP를 MAC으로 변환해주고, RARP는 반대로 MAC을 IP로 변환해준다.
- IP는 논리적 주소를 의미하고, MAC은 물리적 주소를 의미한다.
- SMTP
- POP3
2) 네트워크 프로토콜의 특징
- 단편화
- 재조립
- 단편화 된 조각들을 원래 데이터로 복원하는 것
- 캡슐화
- 상위 계층의 데이터에 각종 정보를 추가하여 하위 계층으로 보내는 것
- 연결 제어
- 오류 제어
- 전송 중 잃어버리는 데이터나 오류가 발생한 데이터를 검증하는 것
- 동기화
- 다중화
- 하나의 통신 회선에 여러 기기뜰이 접속할 수 있는 것
- 주소 지정
- 송신과 수신지의 주소를 부여하여 정확한 데이터 전송을 보장하는 것
2) IP(Internet Protocol) 주소
- 전세계 컴퓨터에 부여되는 유일한 식별자다.
- IP는 각 나라의 공인 기관에서 할당하고 관리한다.
- 우리나라 같은 경우 한국인터넷진흥원(KR-NIC)에서 관리한다.
- IPv4는 인터넷 초기부터 현재까지 쓰고 있는 주소 체계이며 000.000.000.000과 같이 12자리로 표시한다.
- 약 43억개를 부여할 수 있으며, 최근에는 디바이스의 증가로 IPv4가 가진 주소의 양이 부족할 수 있어 IPv6를 공표하였다.
- 2018년부터 현재까지는 IPv4와 IPv6가 공존하면서 두 개의 주소 체계를 변환하여 사용하고 있다.
- 이를 담당하는 것을 NAT(Network Address Translator)이라고 한다.
- IPv6는 이전 버전에 비하여 효율적인 패킷을 처리하고 보안이 강화되었다는 특징이 있다.
1) IPv4 VS IPv6
구분 | IPv4 | IPv6 |
---|
주소 길이 | 32bit | 128bit |
표시 방법 | 8비트씩 4부분(10진수) 000.000.000.000 ex) 192.168.0.1 | 16비트씩 8부분(16진수) 0000:0000:0000:0000 ex)fe40:b76f:f14e:23af(실제로는 없는 주소입니다.) |
주소 개수 | 약 43억개 | 약 43⁴억개 |
주소 할당 | A,B,C 등 클래스 단위의 비순차적 할당 | 네트워크 규모 및 단말기 수에 따른 순차적 할당 |
품질 제어 | 지원 수단 없음 | 등급별, 서비스별로 패킷 구분 |
보안 기능 | IPsec 프로토콜 별도 설치 | 확장 기능에서 기본으로 제공 |
헤더 크기 | 가변 | 고정 |
pnp | 지원 수단 없음 | 지원 |
웹 캐스팅 | 곤란 | 용이 |
전송 방식 | 멀티캐스트, 브로트캐스트, 유니캐스트 | 멀티캐스트, 애니캐스트, 유니캐스트 |
2) 네트워크 클래스
- 네트워크 단말의 증가로 사용 가능한 IPv4의 주소가 부족해졌었다.
- 이에 사용 목적에 따라 IP 대역대를 나누어 각 규모에 따라 관리하기 쉽게 표현한 것이다.
클래스 | IP 주소의 첫 번쨰 옥탯 | 사용목적 | IP 주소 첫 번째 바이트 범위 |
---|
A | 0xxx xxxx | 대형 기관(대륙 간) | 0~127 |
B | 10xx xxxx | 중형 기관(국가 간) | 128~191 |
C | 110x xxxx | 소형 기관(기업 간) | 192~223 |
D | 1110 xxxx | 그룹 통신, 멀티캐스트용 | 224~239 |
E | 1111 xxxx | 연구, 실험용 | 240~254 |
2. TCP/IP 프로토콜
1) TCP/IP 프로토콜 개념
- TCP/IP란? TCP와 IP 프로토콜만을 지칭하는 것이 아니라, UDP, ICMP, ARP, RARP등 관련된 프로토콜을 통칭하는 프로토콜이다.
ICMP - Internet Control Message Protocol
- TCP와 UDP로 구분되는 프로토콜은 전송 계층에서 응용 계층과 인터넷 계층 사이의 통신을 담당한다.
![](https://velog.velcdn.com/images/fulldev_hong/post/726c2517-c89a-405b-835a-a387d627b1e4/image.png)
2) TCP와 UDP의 차이점
- TCP와 UDP의 가장 큰 차이점은 데이터 전송의 신뢰성에 있다.
- 위에서 말했듯이, TCP는 수신측의 수신 가능 상태, 수신 여부 등을 단계별로 체크해 가며 데이터를 전송한다.
- 하지만 UDP는 망으로 데이터를 송신할 뿐 확인 작업을 수행하지는 않는다.
![](https://velog.velcdn.com/images/fulldev_hong/post/79fa90e8-1b5e-4914-928e-53e9e770bc8f/image.png)
후방주의 버전
1) TCP(Transmission Control Protocol)
- CRC 체크와 재전송 기능을 통해 신뢰성 있는 전송을 확보한다.
- Flow Control 기능을 수행하여 단계별 데이터 전송 상황을 체크한다.
- 논리적인 1:1 가상 회선을 지원하여 해당 경로로만 데이터가 전달되도록 한다.
- 대표 서비스 : FTP,Telnet,HTTP,SMTP,POP,IMAP 등
2) UDP(User Datagram Protocol)
- 연결되어 있어도 데이터를 송신할 수 있다. 단, 수신측의 수신 여부는 확인하기 어렵다.
- Flow Control, Error Control을 하지 않아 신뢰성 있는 데이터 전송에는 부적합하다.
- 하나의 송신 정보를 다수의 인원이 수신해야 할 경우에 사용한다.
- 대표서비스 : SNFP, DNS, TFTP, NFS, NETBIOS, 인터넷 게임(롤 등)/방송(트위치 등)/증권 등
3. 네트워크 핵심 알고리즘
1. 패킷 스위칭(패킷 교환)
- 패킷 교환(Packet switching)이란?
- 컴퓨터 네트워크 통신 방식 중 하나
- 작은 블록의 패킷이 데이터를 전송한다.
- 데이터를 전송하는 동안만 네트워크 자원을 사용하도록 하는 방법을 의미한다.
- 현재 가장 많은 사람들이 사용하는 통신 방식이다.
- 정보 전달의 단위인 패킷은 여러 통신 지점(Node)을 연결하는 데이터 연결 상의 모든 노드들 사이에 개별적으로 경로가 제어된다.
- 이 방식은 통신 기간동안 독점적인 사용을 위해 두 통신 노드 사이를 연결하는 회선 교환 방식과는 달리 짤막한 데이터 트래픽에 적합하다.
1) X.25
- X.25란?
- 패킷이라고 불리는 데이터 블록을 사용하여 대용량의 데이터를 다수의 패킷으로 분리하여 송신하는 방식이다.
- 수신 측에서는 다수의 패킷을 결합하여 원래의 데이터로 복원한다.
- 전기 통신 국제기구인 ITU-T에서 관리, 감독하는 프로토콜이다.
- OSI 7계층의 레이어 중 1~3계층까지를 담당한다.
![](https://velog.velcdn.com/images/fulldev_hong/post/229eae99-b943-4556-9539-be29ab3e5852/image.png)
- X.25는 데이터 송수신의 신회성을 확보하기 위해 양자 간 통신 연결을 확립해 나가는 프로세스를 거친다.
- 초기에 에러 제어나 흐름 제어를 위한 복잡한 기능을 가지고 있어 자체로 성능상의 오버헤드가 발생되었기 때문에, 현재는 프레임 릴레이나, ISDN, ATM등 고속망으로 대체되었다.
2) 프레임 릴레이
- 프레임 릴레이는 ISDN을 사용하기 위한 프로토콜이다.
- 위에서 소개한 ITU-T에 의해 표준으로 작성되었고, 다음과 같은 특징이 있다.
- X.25가 고정된 대역폭을 갖는 반면, 프레임 릴레이는 사용자의 요청에 따라 유연한 대역폭을 할당한다.
- 망의 성능 향상을 위해 에러 제어 기능과 흐름 제어 기능을 단순화 시켰다.
- X.25가 OSI 7계층 중 1~3계층까지를 담당하는 반면, 프레임 릴레이는 1~2계층만을 담당한다.
- 전용 선을 사용하는 것보다 가격이 저렴하며, 기술적으로는 X.25에 비해 우위에 있다.
3) ATM(Asynchronous Transfer Mode)
은행 ATM 아니다.
- ATM은 비동기 전송 모드라고 하는 광대역 전송에 쓰이는 스위칭 기법이다
- 동기화를 맞추지 않아 보낼 데이터가 없는 사용자의 슬롯을 다른 사람이 사용할 수 있도록 했다.
- 네트워크 상의 효율성이 좋다.
- ATM망은 연결형 회선이기 때문에 하나의 패킷을 보내 연결을 설정하게 되고 이후 실데이터 전송이 이루어진다.
- ATM은 OSI 7계층과는 다른 고유한 참조 모델을 가지고 있다.
![](https://velog.velcdn.com/images/fulldev_hong/post/003cfe41-7d67-4d3e-ac35-fc75bf93db99/image.png)
- 물리(Physical layer) 계층
- ATM 계층
- 셀과 셀 전송을 담당한다.
- 셀의 레이아웃을 정의하고, 헤더 필드가 의마하는 것을 알려 준다.
- 가상 회선의 연결 및 해제, 혼잡 제어를 다룬다.
- AAL 계층
- ATM Adaptation Layer
- 패킷을 작은 조각인 셀로 전송한 후 다시 조립하여 원래의 데이터로 복원하는 역할을 한다.
2. 서킷 스위칭(회선 교환)
- 회선 교환(circuit switching)이란?
- 패킷 스위칭과는 달리 네트워크 리소스를 특정 사용층이 독점하도록 하는 것을 의미한다.
- 네트워크를 독점적으로 사용하기 때문에 전송이 보장(Guaranteed)된다는 특징이 있다.
- 서킷을 확보하기 위한 작업 -> 실데이터 전송 -> 서킷 종료 프로세스로 진행된다.
- 이러한 작업이 일어나는 동안 다른 기기들은 해당 경로를 사용할 수 없다.
3. 라우팅 알고리즘
- 데이터는 송신측으로부터 수신측까지 데이터를 전달하는 과정에서 다양한 물리 장치들을 거쳐 간다.
- 목적지까지의 최적 경로를 산출하기 위한 법칙이 라우팅 알고리즘이다.
1) 거리 벡터 알고리즘(Distance Vector Algorithm)
- 라우터와 라우터 간의 최단 경로 스패닝 트리를 찾고, 그 최적 경로를 이용할 수 없을 경우에 다른 경로를 찾는다.
- 각 라우터가 업데이트 될 때마다 전체 라우팅 테이블을 보내라고 요청한다.
- 단, 수신된 경로 비용 정보는 이웃 라우터에게만 보내진다.
- 다음에 소개할 링크 상태 라우팅 알고리즘보다 계산 면에서 단순하다.
2) 링크 상태 알고리즘(Link State Algorithm)
- 라우터와 라우터 간의 모든 경로를 파악한 뒤 대체 경로를 사전에 마련해 두는 방식이다.
- 링크 상태 알고리즘을 사용하면 네트워크를 일관성 있게 파악할 수 있다.
- 거리 벡터 알고리즘에 비해 계산이 더 복잡하고 트래픽을 광범위한 범위까지 전달해야 한다.
3) 라우팅 프로토콜의 종류
![](https://velog.velcdn.com/images/fulldev_hong/post/4a5ecbd1-8eb9-4f80-94c3-0aff372ce715/image.png)
마치며
네! 드디어 네트워크 챕터가 끝이 났네요..ㄷㄷ
네트워크 핵심 알고리즘같은 경우는 문제에 거의 출제되지 않기 때문에 가볍게 흩어 가시면 되겠습니다!
그 외의 모든 부분들은 전부 파악하셔야 합니다.
다음 시간엔 데이터베이스를 배워보도록 하죠!
그럼 다음 시간에 다시 뵙도록 하죠!
![](https://velog.velcdn.com/images/fulldev_hong/post/b0d0bbfb-4062-4185-b09e-0ba6c7620b9f/image.png)