본문 바로가기
CS/네트워크

[CS/네트워크] 1장 네트워크 시작하기

by ahj 2022. 4. 1.

물리적 연걸 + OSI 7계층 + 인캡슐레이션(Encapsulation, 패밋이 전송되는 과정)

1.1 네트워크 구성도

이용자 입장 + 제공자 입장으로 나뉜다. 회사 네트워크는 섞이는 경우도 있다.

제공자 입장에서는 접속한 구성원 수, 필요한 네트워크 속도에 따라 여러 상황 고려

1.1.1 홈 네트워크

모뎀, 공유기, 단말 간 물리적 연걸

무선, 유선

1.1.2 데이터 센터 네트워크

다양한 이중화 기술 ⇒ 안정적 서비스

많은 연결 → 높은 통신량

높은 대역폭 ⇒ 2계층 구성(ex. 100 Base-T)

1.2 프로토콜

규정, 규약. 다양한 프로토콜이 존재해왔으나 이더넷(물리적)-TCP/IP(논리적) 기반의 프로토콜로 변경되는 추세

통신 비용 절감을 위해 효율적 프로토콜 정의 사용 ⇒ 2진수 bit

사용하는 앱 레벨에서는 물론 문자 기반 : bit 기반보다 효율은 떨어지나 확장성 ⬆️

HTTP, SMTP가 대표적인 프로토콜

사실 TCP와 IP는 별도 계층에서 동작하는 프로토콜 ⇒ 묶어서 프로토콜 스택이라고 부름 (+UDP, ICMP, ARP, FTP)

TCP/IP 프로토콜 스택 구성

  1. 물리 부분(Ethernet)
  2. 네트워크 계층(Network)
  3. 전송 계층(Transport)
  4. 애플리케이션(Application)

1.3 OSI 7계층과 TCP/IP

1.3.1 OSI 7계층

통신 규약 통합 노력 ⇒ OSI 7

  • 5~7 Layer: Application or Upper Layer ⇒ Application 개발자: Top-Down으로 네트워크 바라봄
    1. Application (Data)
    2. Presentation (Data)
    3. Session (Data)
  • 1~4 Layer: Data Flow or Lower Layer ⇒ Network 엔지니어: Bottom-Up으로 네트워크 인식
    1. Transport (Segments)
    2. Network (Packets)
    3. Data Link (Frames)
    4. Physical (unit : Bits)

1.3.2 TCP/IP 프로토콜 스택

현대 네트워크 대부분은 TCP/IP+Ethernet

이론보다는 실용에 중점을 둔 프로토콜

⇒ OSI 5(Session),6(Presentation),7(Application) Layer를 하나로 묶고, 1(Physical), 2(Data Link)를 하나로 묶어 구분

1.4 OSI 7계층별 이해하기

자세히 다루기 위해 이해할 필요가 있음

1.4.1 1계층(피지컬 계층)

주로 전기 신호 전달에 초점

  • Hub, Repeater — 네트워크 통신을 중재
  • Cable, Connector — 케이블간 연결
  • Tranceiver — 케이블과 랜카드 연결
  • TAP — 전기 신호를 다른 장비로 복제 ⇒ 네트워크 모니터일, 패킷 분석

주소의 개념 X ⇒ 모든 포트(들어온 포트 제외) 같은 전기 신호 전송

1.4.2 2계층(데이터 링크 계층)

전기 신호를 모아 ⇒ (우리가 알아 볼 수 있는)데이터 형태로 처리

전기 신호 전달 < **주소 정보 정의, 정확한 주소로 통신** ⇒ 검사 후 데이터 처리 수행

주로 통신 구분 위한 기능 정의가 이루어지는 계층

에러 탐지(요샌 이더넷이기 때문에 거의 이거만), 재전송 역할

Flow Control : 데이터 던지기 전 받는 사람이 현재 데이터를 받을 수 있는지 확인하는 작업

  • 네트워크 인터페이스 카드(NIC) — MAC 주소 이해동작 방식
    1. 전기 신호 → 데이터
    2. 목적지 MAC, 출발지 MAC 확인
    3. NIC의 MAC 확인
    4. if 목적지 MAC === NIC MAC → 데이터 처리 else 폐기
  • a.k.a Network Card, Lan Card, 물리 네트워크 인터페이스, 이더넷 카드, 네트워크 어댑터
  • 스위치 — MAC 주소 이해 ⇒ 통신해야할 Port 지정, 내보냄vs
  • 1계층 Hub: 한 포트 → 전체 포트 전기 신호 ⇒ 오직 하나의 장비만 데이터 보냄
  • 주소 습득 → Terminal MAC 주소, 연결 Port ⇒ 단말들 통신 때 포트 적절히 필터링, 정확한 포트로 포워딩 ⇒ 불필요한 처리 ⬇️, 네트워크 효율성 ⬆️

1.4.3 3계층(네트워크 계층)

IP 주소와 같은 논리적인 주소가 정의.

데이터 통신에 이용되는 주소 : 2계층의 MAC주소, 3계층 IP 주소

IP 주소는 사용자 환경에 맞게 변경 사용 가능,(MAC은 제조시 지정) 네트워크 부분 호스트 부분으로 나뉜다. 구분점 3개. 2번째 점 기준으로 네트워크, 호스트 나뉨

3계층 이해 여부로 자신과 원격 네트워크 구분 능력, 경로 지정 능력 소유 확인

  • 라우터 : 3계층에서 정의한 IP 주소를 이해 최적 경로 찾고 패킷 전송

1.4.4 4계층(트랜스포트 계층)

1~3층은 신호, 데이터를 올바른 위치로 실제 신호를 잘 만들어 보내는데 집중하는데 반해 4계층은 해당 데이터들이 정상적으로 잘 보내지도록 확인하는 역할

패킷 네트워크에서 패킷 중간 유실, 순서 바뀌는 문제 발생 가능 → 4계층이 이를 보완

유실시 4계층에서 재전송 요청, 순서 바로 잡기

  • 로드 밸런서, 방화벽
  • 애플리케이션 구분자(포트 번호), 시퀀스(seq), ACK 번호 정보(ack number) → 부하 분산, 보안 정책

1.4.5 5계층(세션 계층)

양 끝단의 응용 프로세스 연결을 돕고 연결 안정 유지, 끊기 등 관리. TCP/IP를 만들고 없애는 책임을 진다. 에러 복구, 재전송 수행

1.4.6 6계층(프레젠테이션 계층)

표현 방식이 다른 앱간, 시스템간 하나의 통일된 구문 형식 변환 기능 수행. 형식상 차이 부담 경감.

MIME 인코딩, 암호화, 압축, 코드 변환.

1.4.7 7계층(애플리케이션 계층)

앱 프로세스 정의, 서비스 수행. UI, 입.출력 담당.

다양한 프로토콜 - FTP, SMTP, HTTP, TELNET

1.5 인캡슐레이션과 디캡슐레이션

상위 — data → 하위 , 물리 계층 → 전기 신호 : 인캡슐레이션- 보내는 과정

→ 네트워크 → 하위 — data → 상위 : 디캡슐레이션 - 받는 과정

대부분 패킷 기반 네트워크: 패킷이라는 작은 단위로 쪼개 보내는 기법. ⇒ 동시 여러 단말 통신

인캡슐레이션

상위 계층이 데이터를 하위계층(데이터 플로 계층)으로 보내면 → 분할 ⇒ 패킷에 데이터를 넣음

4,3,2 계층 정보를 헤더에 bit 단위로 넣는다.

4 헤더 추가, 3으로 보냄 → 3 헤더 추가, 2로 보냄 → 2 헤더 추가 → 전기 신호 변환

꽤나 복잡한 작업. 설명한 바와 같이 데이터 flow 계층에서만해도 3개의 헤더 정보 추가

디캡슐레이션

자신에 대응되는 계층에서 적은 헤더 확인 후 올려 보내는 과정

  • 인캡슐레이션(송신 상위→하위), 디캡슐레이션(수신 하위 → 상위)을 통해 데이터 전송
  • 각 계층(2,3,4)끼리 헤더를 이용, 송수신간 논리적 통신 과정

상위부터 하나씩 패킷 형태로 인캡슐레이션 → 랜 카드 전기 신호 전달 → 하나씩 데이터 변환 상위로 디캡슐레이션

헤더에 반드시 포함 되어야 할 것

  1. 현재 계층 정의 정보3계층(IP) - 출발지, 도착지
  2. 2계층(MAC) - 출발지, 도착지
  3. 4계층(TCP) - seq, ack number
  4. 상위 프로토콜 지시자디캡슐 할 때 상위 프로토콜 정보가 없다면 어디로 보낼지 구분할 수 없으므로 인캡슐 할 때 꼭 상위 프로토콜 지시자를 넣어줘야 한다.4계층 - 포트번호(1, 2, 6...) → 7계층인 앱 계층에서 프로토콜 종류2계층 - 이더 타입(0x0800, 0x0806 ...)
  5. 3계층 - 프로토콜 번호(TCP 20, TCP 22 ... )
  6. 각 계층은 자신보다 한 계층 위의 정보가 적힌 지시자를 가짐
  7. 상위 계층으로 갈 수록 프로토콜 종류가 많아진다.

MSS & MTU

댓글