본문 바로가기

공부방/네트워크

네트워크

https://velog.io/@majaeh43/%EB%AA%A8%EB%91%90%EC%9D%98-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-1vmql3k2

 

랜 (LAN: Local Area Network)

가정이나 빌딩 안에 있는 사무실 같이 지리적으로 제한된 곳에서 컴퓨터와 프린터를 연결할 수 있는 네트워크

 

왠 (WAN: Wide Area Network)

ISP가 제공하는 서비스를 사용하여 구축된 네트워크

 

ISP (Internet Servcice Provider)

인터넷 서비스 제공자 : KT, SK 브로드밴드, U+

 

DMZ (Demilitarized Zone)

외부에 공개하기 위한 네트워크

 

프로토콜

통신하기 위한 규칙

각각의 계층에는 다양한 프로토콜이 있다.

 

 

OSI 모델과 TCP/IP 모델

OSI 7계층 (Open Standards Interconnection model)

응용계층 (Application Layer)

이메일 & 파일 전송, 웹 사이트 조회 등 애플리케이션에 대한 서비스를 제공한다.

 

표현계층 (Presentation Layer)

문자 코드, 압축, 암호화 등의 데이터를 변환한다.

 

세션 계층 (Session Layer)

세션 체결, 통신 방식을 결정한다.

 

전송 계층 (Transport Layer)

신뢰할 수 있는 통신을 구현한다.

 

네트워크 계층 (network Layer)

다른 네트워크와 통신하기 위한 경로 설정 및 논리 주소를 결정한다.

 

데이터 링크 계층 (Data Link Layer)

네트워크 기기 간의 데이터 전송 및 물리 주소를 결정한다.

 

물리 계층 (Physical Layer)

컴퓨터와 네트워크 장비를 연결하고

컴퓨터와 네트워크 장비간에 전송되는 데이터를 전기 신호로 변환하는 계층

시스템 간의 물리적인 연결과 전기 신호를 변환 및 제어한다.

 

TCP/IP 모델은 4게층이다. (Transmission Control Protocol/Internet Protocol Model)

응용계층

전송계층

인터넷 계층

네트워크 접속 계층

 

 

오늘날은 TCP/IP Updated 모델이 많이 사용된다.

 

물리계층


역할 : 비트열 (0과 1)을 -> 전기신호로 변환

동작: 랜카드 or 내장랜카드 (메인보드에 포함 되어 있음)

 

 

전기 신호는 2개 종류가 존재

- 아날로그 신호

- 디지털 신호

 

 

1. 네트워크의 전송 매체

전송 매체: 데이터가 흐르는 물리적인 선로 : 유선, 무선

유선 : 트위스트 페어 케이블, 광 케이블

무선 : 라디오파, 마이크로파, 적외선

 

트위스트 페어 케이블 (랜케이블)

1. UTP (Unshielded Twist Pair) 케이블 

2. STP (Shielded twist pair) 케이블

 

랜 케이블의 종류

1. 다이렉트 케이블 (컴퓨터와 스위치 연결)

2. 크로스 케이블 (컴퓨터와 컴퓨터 연결)

 

리피터

전기 신호를 정형 증폭하는 기능

 

허브 (리피터 허브)

전기 신호를 정형 증폭하는 기능

컴퓨터 여러대를 서로 연결하는 장치

특정 포트로 부터 데이터를 전달 받으면 전기 신호를 모든 포트로 보내는 단점이 존재 (더미 허브) -> 스위치가 나오게 된 배경

 

 

 

데이터링크 계층 (Datalink Layer)


같은 네트워크 장비 간에 신호를 주고 받는 규칙을 정하는 계층

MAC 주소를 통해 출발지와 목적지를 확인하는 계층이다.

 

이더넷 헤더트레일러를 추가해주는 계층이며, 이더넷 헤더와 트레일러가 추가된 데이터를 프레임이라고 한다.

 

Framing : Framing의 핵심 기능은 데이터를 프레임 단위로 분할하는 것과 프레임에 필요한 정보를 추가하는 것이다.

이 과정에서 프레임의 시작과 끝을 나타내는 구분자를 추가하고, 프레임 내의 데이터에 구분자와 같은 값이 들어가면 이를 이스케이프(escape)하는 등의 작업을 수행한다.

 

 

 

1. 이더넷

가장 많이 사용되는 규칙, 허브와 같은 장비에 연결된 컴퓨터와 데이터를 주고 받을때 사용

2. CSMA/CD

이더넷은 여러 컴퓨터가 데이터를 전송해도 충돌이 일어나지 않는 구조 (CSMA /CD : 데이터를 보내는 시점을 늦춤)

CS (Carrier Sense) : 데이터를 보내려고 하는 컴퓨터의 케이블에 신호가 흐르고 있는지 확인

MA (Multiple Access) : 케이블에 데이터가 흐르고 있지 않다면 데이터를 보내도 좋다

CD (Collision Detection): 충돌이 발생하고 있는지를 확인

현재는 효율이 좋지 않아서 CSMA/CD는 사용하지 않음

 

현재는 스위치라는 네트워크 장비를 이용하기 때문에 충돌이 일어나지 않는다.

 

3. MAC 주소

물리주소, 전세계에서 유일한 번호 (48비트 : 제조사 번호 (24비트) + 일련 번호 (24비트))

 

4. 이더넷 헤더

이더넷 헤더 (목적지의 MAC 주소 (6바이트), 출발지 MAC 주소(6바이트), 유형(2바이트) 총 14바이트로 구성

유형은 이더넷으로 전송되는 상위 계층 프로토콜의 종류를 나타냄 (프로토콜 종류[IPV4, IPV6]를 식별하는 번호)

 

5. 트레일러

FCS (Frame Check Sequence) : 데이터 전송 도중에 오류가 발생하는지 확인하는 용도

 

6. 스위치

MAC 주소 테이블이 존재 (스위치의 포트번호와 연결되어 있는 컴퓨터의 MAC 주소가 등록되는 데이터베이스)

MAC 주소 필터링 : 스위치에서 MAC 주소를 기준으로 목적지를 선택하는 것

플러딩 (Flooding) :  스위치가 송신 포트 이외의 모든 포트에 데이터를 송신하는 것

스위치는 데이터가 충돌하지 않는 구조

 

7. 통신 방식

전이중 통신 방식 :

    - 데이터의 송수신을 동시에 통신하는 방식

    - 컴퓨터와 컴퓨터 간의 연결 : 크로스 케이블을 이용하기 때문에 전이중 통신을 해도 문제가 없다.

    - 스위치 : 컴퓨터 간의 연결과 같이 스위치도 크로스 케이블 구조로 내부가 구성되어있어서 문제가 없다.

 

반이중 통신 방식 :

    - 회선 하나로 송신과 수신을 번갈아가면서 통신하는 방석

    - 허브 : 허브는 전이중 통신 방식을 사용할 경우충돌이 일어난다.

 

* 충돌 도메인이란?

충돌이 발생할 때 그 영향이 미치는 범위를 말한다.

 

네트워크 계층 (Network Layer)


네트워크 간의 연결

 - IP 주소를 이용해 길을 찾고

 - 라우터에게 데이터를 넘겨 주는 것

 

운영체제의 커널에 소프트웨어적으로 구현되어 있다.

 

1. 라우터

다른 네트워크로 데이터를 전송하려면 라우터라는 네트워크 장비가 필요하다.

라우터는 데이터의 목적지가 정해지면 해당 목적지까지 어떤 경로로 가는것이 좋은지를 알려준다.

 

2. IP 주소 (Internet Protocol)

네트워크를 식별할 수 잇는 주소 (어떤 네트워크의 어떤 컴퓨터인지 구분할 수 있다.)

IP 주소는 ISP에게 받을 수 있다.

IP 버전은 IPv4 (32비트)와 IPv6 (128비트) 가 있다.

 

IP주소에는 공인 IP주소, 사설 IP 주소가 존재

공인 IP주소는 ISP가 제공

인터넷에 직접 연결디는 컴퓨터나 라우터에는 공인 IP 주소를 할당

회사나 가정의 랜에 있는 컴퓨터는 사설 IP 주소를 할당

 

IP는 8비트 단위로 나눠져 있으며, 네트워크 ID와 호스트 ID로 나눠져 있다.

IP는 A 클래스에서 -> E 클래스까지 5개의 클래스로 나눠져 있다.

 

3. 라우팅

목적지 IP 주소까지 어떤 경로로 데이터를 보낼지 결정하는 것

라우팅은 라우터라는 장비가 해준다.

라우터에는 라우팅 테이블이 있어서 경로 정보를 등록하고 관리한다.

라우터는 거리에 관계없이 다른 네트워크로 데이터를 보낼 수 있다.

 

4. IP 패킷

IP 헤더가 추가된 데이터를 의미

 

 

 

IP주소에는 네트워크 주소와 브로드캐스트 주소가 있다.

네트워크 주소 : 전체 네트워크에서 작은 네트워크를 식별하는데 사용

브로드캐스트 주소: 네트워크에 있는 컴퓨터나 장비 모두에게 한번에 데이터를 전송하는데 사용되는 전용 IP 주소이다.

 

5. 서브넷 & 서브넷팅

서브넷팅 : 네트워크를 분할 하는 것

서브넷: 분할된 네트워크를 의미

 

IP 주소를 서브넷팅하면 어디까지가 네트워크 ID고 어디까지가 호스트ID인지 판단하기 어렵다

이를 위해 서브넷 마스크가 존재한다.

서브넷 마스크: 네트워크 ID와 호스트 ID를 식별하기 위한 값

A클래스 255.0.0.0

B클래스 255.255.0.0

C클래스 255.255.255.0

 

프리픽스 표기법 

A클래스 /8

B클래스 /16

C클래스 /24

 

 

6. 라우팅 테이블 등록 방법

수동으로 등록하는 방법 : 소규모 네트워크에 적합

자동으로 등록하는 방법 : 대규모 네트워크에 적합

라우팅 프로토콜 : 라우터 간에 라우팅 정보를 교환하기 위한 프로토콜 (RIP, OSPF, BGP)

 

 

전송 계층 (Transport Layer)


목적지에 신뢰할 수 있는 데이터를 전달하기 위해 필요.

Port 번호를 이용하여 도착지 컴퓨터의 최종 도착지인 프로세스에 까지 데이터가 도달하게 하는 모

운영체제의 커널에 소프트웨어적으로 구현

 

오류를 점검하는 기능이 있다.

오류가 발생하면 데이터 재전송을 요청

 

전송된 데이터의 목적지가 어떤 애플리케이션인지 식별하는 기능도 있음.

 

신뢰성/정확성 : 데이터를 목적지에 문제없이 전달하는 것

효율성 : 데이터를 빠르고 효율적으로 전달하는 것

 

연결형 통신 (TCP): 신뢰할 수 있고 정확한 데이터를 전달하는 통신 (상대편과 확인해 가면서 통신하는 방식)

비연결형 통신 (UDP) : 효율적으로데이터를 전달하는 통신 (상대편을 확인하지 않고 일방적으로 데이터를 전송하는방식 - 동영상, 브로드캐스트 (네트워크 장비에 데이터를 일괄로 보내는 기능))

 

TCP 헤더 : TCP로 전송할 대 붙이는 헤더

세그먼트 : TCP 헤더가 붙은 데이터

 

 

3-way-handshake

데이터를 전송하려면 먼저 연결(connection) 이라는 가상의 독점 통신로를 확보해야 함

3-way-handshake를 통해서 연결을 진행

TCP 헤더의 코드비트 (Flags)

SYN : 연결 요청

ACK:  확인 응답

 

일련 번호, 확인 응답 번호

3-way handshake가 끝나고 실제 데이터를 보내거나 상대방이 받을때는 일련번호와 확인 응답 번호를 사용한다.

일련 번호 (sequence number)

 - TCP는 데이터를 분할해서 보냄

 - 송신 측에서 수신측에 이 데이터가 몇번째 데이터인지 알려주는 역할

확인 응답 번호 (Acknowledgement number)

 - 수신측이 몇번 데이터를 수신했는지 송신측에 알려주는 역할

 

버퍼 크기

송신측에서 세그먼트를 보낼 때마다 확인 응답을 받는 것을 비효율 적이다.

효율성을 높이기 때문에 송신측에서 세그먼트를 연속으로 보내면 수신측에서 버퍼를 이용해서 여러개를 받을 수 있도록 해놓았다.

송신측은 수신측의 버퍼 크기를 알아야 하는데

이는 3-way-handshake를 통해서 확인할 수 있다.

버퍼 크기 (WindowSize )

 - 얼마나 많은 용량의 데이터를 저장해 둘 수 있는지

 

지금까지 연결 확립, 재전송 제어, 윈도우 제어에 대해 살펴보았다.

 

포트 번호

0~1023번 포트는 주요 프로토콜이 사용하도록 예약되어 있음

1025번 이상은 랜덤포트

 

UDP

 

 

응용계층 (Application Layer)


응용 계층은 애플리케이션이 동작하는 계층이라고 볼 수 있다.

 

 

 

예전에는 요청을 보낼때마다 연결했다 끊는 작업을 반복하였다.

HTTP/1.1 버전에서는 keepalive라는 기능이 추가되었고

연결을 한번 수립하면 데이터 교환을 마칠 때까지 유지하고 데이터 교한을 모두 끝내면 연결을 끊는 구조이다.

 

HTTP/1.1 버전은 요청을 보낸 순서대로 응답을 반환하는데 이전 요청을 처리하는 데 시간이 길어지면 다음 요청에 대한 처리가 늦어진다.

 

HTTP/2 : HTTP/1.1 단점 보완, 요청을 보낸 순서대로 응답을 반환하지 않아도 되게 수정

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

온프레미스 vs 클라우드

온프레미스: 사내 또는 데이터센터에 서버를 두고 운영하는 것 

스위치와 라우터는 모두 네트워크 장비이지만, 그들이 수행하는 기능에는 몇 가지 중요한 차이점이 있습니다.

스위치는 OSI 모델의 2계층에서 작동하며, LAN(Local Area Network) 내의 호스트 간 통신을 관리합니다. 스위치는 호스트의 MAC 주소를 읽어서 목적지 호스트로 데이터를 전달합니다. 이를 통해 스위치는 LAN 내에서 전송되는 데이터 패킷의 전송 속도와 대역폭을 향상시키는 역할을 합니다.

라우터는 OSI 모델의 3계층에서 작동하며, 서로 다른 네트워크 간의 통신을 관리합니다. 라우터는 IP 주소를 사용하여 패킷의 출발지와 목적지를 판별하여 적절한 경로를 선택하고 패킷을 전달합니다. 이를 통해 라우터는 여러 네트워크 간의 통신을 가능하게 하고, 서로 다른 서브넷 간의 통신도 지원합니다.

개발자는 스위치와 라우터를 이용하여 네트워크 인프라를 설계하고 구축할 때, 이러한 차이점을 고려하여 네트워크의 효율성과 안정성을 향상시키는 방법을 고민하게 됩니다. 예를 들어, 스위치와 라우터를 결합하여 VLAN(Virtual Local Area Network)을 구성하여 효율적인 네트워크 관리를 할 수 있습니다. 또한, 라우터를 이용하여 여러 서브넷을 구성하여 서로 다른 네트워크 간의 안전한 통신을 가능하게 할 수도 있습니다.

'공부방 > 네트워크' 카테고리의 다른 글

logstash  (0) 2023.05.04
네트워크  (0) 2023.04.13
ipv4와 ipv6의 차이  (0) 2023.01.27
Forward proxy, Reverse proxy, Load Balancing  (0) 2022.06.19