본문 바로가기

CS ﹒ Algorithm/(new)Network

TCP/IP (1) 네트워크의 기초 개념

 

1. 회선 교환 방식과 패킷 교환 방식

 

1. 회선 교환 방식 (Circuit Switched Network)

데이터를 교환하기 전에 1:1 통로를 만들고 교환을 마칠 때까지 해당 전송로를 계속 유지하는 방식.

1960년대 ~ 1970년대에는 한 대의 고성능 서버 컴퓨터에서 시분할 시스템(Time sharing system) 방식으로 단말과 서버를 연결하여 네트워크를 이용했다.

안정적인 접속이 가능하다는 장점이 있으나 접속하는 동안 계속해서 해당 회선을 점유하기 때문에 자원 사용이 비효율적이다.

 

2. 패킷 교환 방식 (Packet Switched Network)

데이터를 Packet 단위로 나누어 네트워크로 전송하는 방식으로, 우체국에서 소포를 보내듯 송신 측에서 데이터에 헤더라는 정보를 붙여서 패킷 교환기로 구성된 패킷 교환 네트워크로 패킷을 전송한다.

헤더에는 수신 컴퓨터 정보, 전체 데이터 중 몇 번째에 해당하는 패킷인지에 대한 정보 등 다양한 정보를 포함하며 수신 컴퓨터 또한 헤더 정보를 해석하여 원 데이터로 복원한다.

패킷이 도중에 사라져도 사라진 패킷만 전송할 수 있고, 회선을 공유할 수 있으며, 패킷을 전송할 때만 회선을 사용한다는 장점이 있다.

1960년대 후반 미국 방위 고등 연구 계획국(DARPA)에서 만든 방식으로 현재까지 계속해서 사용되고 있다.

 

* Packet : 한국어로 소포라는 뜻.

 

 

 

 

 

2. 프로토콜 (Protocol)

: 네트워크 통신을 위한 기본적인 통신 규약으로, 우리가 일반적으로 가장 흔하게 볼 수 있는 것은 http가 있다.

 

 

 

1. 프로토콜에 결정되어 있는 것들

1-1. 물리적 사양

LAN 케이블 소재, 커넥터 형태, 핀 배열 등 물리적인 모든 정보가 기재되어 있다.

WIFI 환경일 경우 주파수 및 패킷을 전파로 변환하는 방식까지도 프로토콜에 모두 정의되어 있다.

NIC(Network Interface Card)는 프로토콜에 정의된 내용에 기반하여 전파 전송 매체에 패킷을 전달한다.

 

1-2. 송신 상대 특정

주소를 할당하여 송신 상대를 구별한다.

 

1-3. 패킷 전송

송신지, 수신지, 원래 데이터로 복원하기 위한 순번, 서버 정보 등이 패킷 헤더에 포함되어 있는데, 프로토콜에는 헤더의 어느 비트에 어떤 정보를 포함하고, 어떤 순서로 전환하는지에 대한 방법이 정의되어 있다.

 

1-4. 신뢰성 확립

에러를 알리거나 데이터를 재전송하는 구조를 제공한다.

네트워크 자원이 패킷으로 가득차서 Lock 현상이 일어나지 않도록 하기 위한 구조도 제공한다.

 

1-5. 보안 확보

중요한 정보를 안심하고 교환할 수 있도록 통신 상대를 인증하고 통신을 암호화하는 구조를 제공한다.

 

 

2. 프로토콜의 계층

프로토콜로 정의된 통신 기능은 계층구조로 되어있으며, 전송 시에는 상위에서 하위, 수신 시에는 하위에서 상위로 처리된다.

프로토콜의 계층 모델은 TCP/IP 참조 모델과 OSI 참조 모델로 나뉜다.

 

2-1. TCP/IP 참조 모델

위에서 언급했던 미국 방위 고등 연구 계획국(DARPA)가 개발한 계층 구조 모델이다.

 

(1) 애플리케이션 계층 Application Layer

HTTP, DNS, FTP ,SSL, TSL, QUIC, Syslog, SNMP, NTP가 이에 속한다.

사용자에게 애플리케이션을 제공하는 역할을 담당한다.

 

(2) 트랜스포트 계층 Transport Layer

TCP, UDP가 이에 속한다.

애플리케이션을 식별하며, 이를 바탕으로 통신을 제어하는 역할을 한다.

 

(3) 인터넷 계층 Network Layer

IP, ICMP가 이에 속한다.

수신지가 되는 컴퓨터까지의 통신 경로 확보를 담당한다.

 

(4) 링크 계층 Link Layer

IEEE 802.3, IEEE 802.11이 이에 속한다.

디지털 데이터를 물리 전송 매체(케이블,전파)로 보내는 변환 변조 역할 및 신뢰성 확보를 담당한다.

 

2-2. OSI 참조 모델

국제 표준화 기구(ISO)가 1984년 책정한 계층 구조 모델로써, 통신 기능이 너무 세세하게 분류되어 이 모델에 대응하는 프로토콜은 존재하지 않는다.

그러나 TCP/IP 모델이 명시하지 않는 기능을 다루고 있어 체계적인 논의 시 유효하며 L2, L3 등의 용어는 많이 사용된다.

 

(1) 애플리케이션 계층 Application Layer : 사용자에게 애플리케이션을 제공한다.

(2) 프레젠테이션 계층 Presentation Layer : 애플리케이션을 통신 가능한 방식으로 변환한다.

(3) 세션 계층 Session Layer : 애플리케이션 데이터 송신을 위한 세션을 관리한다.

(4) 트랜스포트 계층 Transport Layer : 애플리케이션을 식별하고 그에 따라 통신을 제어한다.

(5) 네트워크 계층 Network Layer : 다른 네트워크에 있는 단말과의 연결을 확보한다.

(6) 데이터링크 계층 Datalink Layer : 물리 계층의 신뢰성을 확보하고 같은 네트워크 단말과의 연결을 확보한다.

(7) 물리 계층 Physical Layer : 디지털 데이터를 전기 신호 혹은 광 신호, 전파로 변환해서 전송한다.

 

2-3. PDU

네트워크에서 데이터를 각 계층에서 처리할 수 있는 사이즈로 나눈 단위를 PDU(Protocol Data Unit)라고 부른다.

(1) 물리 계층 : 비트(Bit)

(2) 데이터링크 계층 : 프레임(Frame)

(3) 네트워크 계층 : 패킷(Packit)

(4) 트랜스포트 계층 : 세그먼트(Segment, TCP의 경우), 데이터그램(Datagram, UDP의 경우)

(5) 애플리케이션 계층 : 메세지(Message)

 

 

 

3. 프로토콜과 표준화 단체

 

3-1. IEEE (Institute of Electrical and Electronics Engineers, 전기 전자 기술 학회)

1980년 2월에 발족된 IEEE802에서 하드웨어(LAN, MAN)과 관련된 네트워크 기술의 표준화를 연구 및 논의한다.

 

 

3-2. IETF (Internet Enginerring Task Force)

인터넷 관련 기술 표준화를 추진하는 조직으로 HTTP, SLS/TLS 등 소프트웨어에 가까운 프로토콜 책정을 담당한다.

새로운 버전이 등장할 때마다 RFC(Request For Comments)라는 형태로 문서화되어 공개된다.

 

 

 

4. 계층의 동작 구조

 

4-1. 캡슐화/ 비캡슐

 

(1) 송신 시

: 애플리케이션 계층에서부터 순서대로 각 계층에서 페이로드에 헤더를 추가하여 PDU로 만들어 한 단계 아래 계층으로 전달한다.

(단, Link Layer에서는 페이로드에 Trailer도 붙인다.)

 

(2) 수신 시

송신과 반대로 물리 계층부터 PDU로부터 헤더를 제거하고 페이로드만을 상위 계층으로 전달한다.

 

4-2. 커넥션 타입/ 커넥션리스 타입

 

(1) 커넥션 타입

: 일반적으로 TCP를 의미한다. 데이터 송신 전 수신자와 질의를 함으로써 확실하게 정해진 순서를 따르므로 전송에 다소 시간이 소요되나 전송의 안정성을 보장받을 수 있다.

 

(2) 커넥션리스 타입

: 곧바로 데이터를 보내면서 커넥션을 확립한 뒤 마음대로 종료한다. 안정성은 보장받을 수 없으나 훨씬 빠르다.

 

4-3. 대표적인 프로토콜

위에서 언급한 프로토콜은 다양하나 실질적으로 사용되는 것은 많지 않다.

(1) 링크 계층 : IEEE802.3(유선), IEEE802.2(무선)

(2) 네트워크 계층 : IP

(3) 트랜스포트 계층 : UDP, TCP

(4) 애플리케이션 계층 : HTTP, QUIC, DNS, SSL/TSL

 

 

 

 

3. 네트워크의 구성 기기

: 각 기기는 하위 계층의 기본 프로토콜은 처리 가능하나, 상위 프로토콜은 처리할 수 없다.

 

애플리케이션 계층 : 부하 분산 장치(Road Balancer), WAF, 방화벽

트랜스포트 계층 : 방화벽

네트워크 계층 : 라우터, L3 스위치

데이터링크 계층 : 브리지, L2 스위치

물리 계층 : NIC, 리피터, 리피터 허브, 미디어 컨버터, 액세스 포인트

 

 

3-1. 물리 계층의 기기(Link Layer)

(1) NIC (Network Interfac Card)

PC, 서버 등의 기기를 네트워크에 연결하기 위한 하드웨어 장치.

기존에는 확장 슬롯에 연결하는 카드타입 제품이 많아서 카드라는 명칭으로 불렸으나 현재는 USB타입이나 온보드 타입 등 다양한 종류가 존재하나 모두 NIC로 부른다.

애플리케이션과 운영체제가 처리한 패킷을 NIC를 이용해 LAN 케이블 혹은 전파화(WIFI)하여 내보낸다.

 

(2) 리피터 (repeater)

파형을 증폭하여 정돈한 뒤 전송하는 역할로 패킷 도달 걸리를 늘리기 위해 사용한다.

최근에는 전송 거리가 긴 광신호를 전송하는 광섬유 케이블이 주로 사용됨에 따라 거의 볼 수 없다.

 

(3) 리피터 허브 (repeater hub)

전달 받은 패킷 비트의 복사본을 그대로 다른 포트에 전송하는 기기로 shared hub라고도 불리나 현재는 L2 스위치가 리피터 허브의 기능을 모두 대체하여 거의 볼 수 없다.

 

(4) 미디어 컨버터 (media converter)

전기 신호와 광 신호를 상호교환해주는 기기로, 광섬유 케이블로 연결할 수 없는 상황인 경우 LAN 케이블의 전기 신호를 광케이브르이 광신호로 변환해준다.

 

(5) 액세스 포인트 (access point)

패킷을 전파로 변조/복호화하는 기기로 대표적으로 볼 수 있는 것은 가정용 와이파이 라우터이다.

 

 

3-2. 데이터 링크 계층의 기기(Link Layer)

: 물리 계층의 신뢰성 확보 및 같은 네트워크에 있는 단말과 연결하는 역할을 담당한다.

프레임 헤더의 MAC Address의 정보에 기반해 프레임을 전송한다.

 

(1) 브리지

포트와 포트 사이의 다리 역할로, 단말에서 받아들인 어드레스를 MAC 주소 테이블로 관리하고 전송한다.

그러나 최근에는 L2 스위치에서 해당 역할을 모두 대신하고 있다.

 

(2) L2 스위치

많은 포트를 가진 브리지로써 기본 역할은 브리지와 비슷하다.

단말에서 받아들인 프레임의 MAC 주소를 테이블로 관리하고 전송하며 이를 L2 Switching이라고 부른다.

현재에는 거의 대부분의 유선 단말이 L2 스위치를 통해 네트워크에 연결되어 있으며, 쉽게 볼 수 있는 예는 가정용 모뎀이다.

 

 

3-3. 네트워크 계층에서 동작하는 기기

: 네트워크와 네트워크(소규모)를 연결하는 계층.

IP 패킷 헤더에 포함된 IP 주소의 정보에 기반하여 패킷을 전송한다.

 

(1) 라우터 (router)

단말로부터 받아들인 ip 패킷의 ip 주소를 보고, 자신이 속한 네트워크를 넘은 범위에 있는 단말로 전달한다.

라우터는 IP 패킷을 패키지 릴레이(라우팅)하여 목적지로 보내며, 대표적으로 가정용 공유기를 볼 수 있다.

라우팅 테이블이라는 테이블에 기반하여 패킷 전송할 대상지를 관리하며, 이외에도 NAT, IPsec VPN, PPPoE 등 네트워크 게층에 관련된 다양한 기능을 제공한다.

 

* 라우팅 프로토콜 : 라우터끼리 정보를 교환하여 라우팅 테이블을 동적으로 생성한다.

* PPPoE(Point to Point Protocol Over Ethernet) : 거점간 1:1로 연결하는 PPP를 이더넷에서 캡슐화하는 프로토콜.

* IPsec VPN : 거점간(Network to Network) 혹은 원격 액세스(Network to host) 의 방식으로 사설망을 연결하는 것.

* DHCP : 단말의 IP 주소를 동적으로 설정하기 위한 프로토콜.

 

(2) L3 스위치

MAC 주소 테이블과 라우팅 테이블을 조합한 정보를 FFHA(Field Programmable Gate Array)나 ASIC(Application Specific Integerated Circuit) 등의 패킷 전송 처리 전용 하드웨어에 기록하고, 해당 정보를 기반으로 스위칭/라우팅한다.

상대적으로 고속 전송 처리가 가능하나 다양한 기능을 제공하지 않는다.

 

 

3-4. 트랜스포트 계층에서 동작하는 기기

: 애플리케이션을 식별하고 요건에 맞게 통신을 제어한다.

세그먼트(TCP) 혹은 데이터그램(UDP)의 헤더를 포함한 포트 번호에 기반하여 패킷을 전송한다.

ex) HTTP 80, HTTPS 443

 

(1) 방화벽

단말 사이에서 교환되는 패킷의 IP 주소나 포트 번호를 기준으로 통신을 허가하거나 차단하는 역할을 수행한다. (stateful inspection)

 

 

3-5. 애플리케이션 계층에서 동작하는 기기

(1) 차세대 방화벽(Next-generation firewall)

stateful inspection과 함께 VPN, IDS(Inthrusion Prevention System, 침입 차단 시스템) 등 다양한 보안 기능을 넣은 통합화.

다양한 정보를 애플리케이션 레벨에서 해석하여 기존 방화벽보다 높은 차원의 보안과 운영성을 제공한다.

 

(2) WAF (Web Application Firewall, 웹 방화벽)

클라이언트와 서버 사이 교환되는 정보를 애플리케이션 레벨에서 검사하고 차단한다. (XSS, SQL Injection 등)

 

(3) 부하분산장치(Load balancer, L7 Switch)

서버 한 대로 받을 수 있는 트래픽은 제한이 있기 때문에 부하 분산 방식을 이용해 여러 서버에게 처리를 나눔으로 처리 가능한 트래픽을 늘린다.

또한 Helth Check를 통해 정기적으로 서버를 감시하여 장애가 발생한 서버를 부하 분산 대상에서 제외해 서비스 가용성을 향상한다.

 

 

 

4. 네트워크의 다양한 형태

4-1. 기기의 형태

(1) Physical Appliance

서버 랙에 탑제되는 하드웨어 기기를 의미한다.

성능이 요구되는 환경에서는 상대적으로 유리하다.

 

(2) Virtual Appliance

가상화 기술을 제공하는 소프트웨어에서 동작하는 네트워크 기기를 의미한다.

여러대의 기기를 한 대의 서버에 집약하여 설비 공간 및 자원을 유효하게 활용할 수 있어 비용이 절감된다.

NFV(Network Function Virtualization)의 흐름으로 성능과 요건을 만족한다면 가상 어플라이언스를 사용하는 사례가 점점 늘어나고 있다.

 

 

4-2. 네트워크 형태

(1) LAN (Local Area Network)

가정이나 기업 등 한정된 범위의 네트워크로 브로드밴드 라우터(모뎀)이 제공하는 LAN에 우선 연결되고 이후 WAN으로 연결된다.

기업의 LAN도 기본 구성은 큰 차이가 없으나 성능, 기능이 크게 차이나며 다중화, 고가용성을 위한 기기로 구성된다.

기업내 LAN 단말은 Access Point 혹은 Edge switch(L2)에 먼저 연결되고, 엣지 스위치를 집약하는 Core swtich(L3)를 경유해 인터넷이나 사내 서버에 연결된다.

 

(2) WAN (Wide Area Network)

거리상 멀리 떨어진 범위의 네트워크.

인터넷(internet)과 VPN을 사용한 내부망(closed-area VPN network)로 용도가 나뉜다.

 

(3) 인터넷 (Internet)

일반적으로 접속할 수 있는 공증 WAN을 의미한다.

라우터들의 집합으로 ISP(Internet Service Provider)나 연구 기관, 기업 등이 가진 수많은 라우터가 지역을 넘어 연결되어 패킷을 운반한다.

 

(4) 폐역 VPN망

LAN과 LAN을 연결하는 네트워크를 의미하며, 직접 구축하거나 ISP가 제공하는 서비스를 이용할 수도 있다.

라우터나 방화벽의 거점간 VPN 기능을 이용하여 IPec 프로토콜을 이용해 거점 사이를 peer to peer(1:1)로 연결하고 통신을 암호화한다.

ISP가 제공하는 서비스의 경우 ISP가 제공하는 VPN 통신망에 연결하여 해당 거점을 이용해 정보를 교환한다.

접속 거점 수 또는 사용자가 많은 경우 최저 대역 보증, 회선 백업, IaaS환경 접속, 모바일 기기 원격 접속 등을 지원하기 때문에 채용하게 된다.

 

(5) DMZ (De Militarized Zone)

 

인터넷에 공개하는 서버를 설치한 경우를 의미한다.

기본 조건은 다중화(redundancy)로 어떤 기기가 고장나거나 케이블이 끊어지더라도 경로가 즉시 전환되어 서비스를 계속 제공할 수 있도록 동일한 조율 네트워크 기기를 병렬로 배치한다.

 

 

 

 

 

5. 새로운 네트워크의 형태

 

5-1. SDN (Software Defined Network)

소프트웨어에 의해 관리 및 제어되는 가상적 네트워크, 또는 이를 구성하기 위한 기술을 의미한다.

운영 및 관리 단순화를 위해 데이터 센터 및 ISP에서 사용한다.

 

네트워크 전체를 제어하는 제어 영역과 데이터 영역(전송부)로 구성된다.

 

(1) 오버레이 타입의 경우

스위치 사이에 가상 통로를 만들고 패킷을 전송하는 방식으로, 사용자의 패킷을 한 번 더 다른 프로토콜로 캡슐화하여 터널링하려는 스위치에 미리 설정을 보낸 뒤 이를 이용해 패킷을 전송한다.

 

(2) 홉바이홉 타입의 경우

각 스위치에 경로 정보(flow entry)를 배포하고, 그 정보를 기반으로 패킷을 전송한다.

OpenFlow라는 프로토콜을 사용하며, 사용자 요청에 기반해 경로 정보를 계산하고 대응하는 스위치에 경로 정보를 배포한다. 

 

5-2. CDN (Content Delivery Network)

이미지, 동영상, HTM, CSS 등 웹 콘텐츠로 사용되는 다양한 파일을 대량으로 송신하기 위해 최적화된 인터넷상의 서버 네트워크를 의미하며, 현재 대다수의 웹 어플리케이션에서 이를 활용하고 있다.

오리지널 웹 컨텐츠를 가진 Origin Server와 캐시를 갖는 Edge Sever로 구성되어, 사용자는 물리적으로 거리가 가까운 Edge Server에 접속한다.

Edge Server의 캐시가 만료되거나 없는 경우에만 Origin Server에 접속하며 서버의 거리가 가까워 물리적으로 먼 거리더라도 속도가 향상되며 서버 처리 부하도 분산될 수 있다. (캐시된 데이터를 가져가므로)

 

5-3. IOT (Internet Of Things)

주변의 다양한 것들이 모두 인터넷에 연결된 구조라는 의미로, CoAP(Constrained Application Protocol)과 MQTT(Message Queuing Telenetry Transprot) 프로토콜이 주로 사용된다.

CoAP는 UDP를 사용하며, MQTT는 TCP에서 동작하는 브로커 타입 프로토콜로 publisher, brocker, subscriber라는 요소로 구성되어 있다.

 

5-4. IaaS (Infastructure as a Service)

서버나 네트워크 등의 인프라를 인터넷상에서 구축하는 클라우드 서비스의 일종.

아마존이 제공하는 AWS(Amazone Web Service) 및 Amazon VPC(Virtual Private Cloud)가 대표적이다.

Amazone VPC을 이용하여 AWS상에 프라이빗 클라우드를 만들 수 있다. EC2, Route53, ELB, RDS등 서비스를 조합하여 region, Availabillity Zone을 이용해 다중화할 수 있다.

물리 계층을 의식할 필요가 없다는 큰 장점을 가진다.