# Network
# 1. Intro
# 네트워크의 구조
- 규모, 업종, 방식, 토폴로지에 의해 분류 가능하다.
- 토폴로지
- Star
- Ring
- Bus
- Mesh
- Tree
- Redundancy : 하나가 fail했을 때 백업하는 구조
# 홈 네트워크
- 인터넷 - ISP - 모델 - 공유기 - 클라이언트(컴퓨터) 로 연결된다.
# 기업용 네트워크
- 인터넷 - ISP - 라우터 - 방화벽 -L3백본 - L2스위치 - 클라이언트
- 인터넷 - ISP - 라우터 -방화벽 - L4 Load Balancer - 서버
# 클라우드 네티워크
- 인터넷 - Route53 - GIW - VPC - ELB - Auto Scaling - Security Group - EC2
# OSI 7 Layer
벤더간 호환을 위한 프로토콜을 기능별로 나누고 계층별로 구분했다.
- Application - HTTP, SMTP. 소프트웨어
- Presentation - 인코딩. 프로그램과 네트워크 데이터 간 변환.
- Session - TCP / IP 연결 유지/중단. ip/port 관리
- Transport - TCP / UDP. 호스트 간의 전송, L4로드 밸런서가 있다.
- Network - 다른 네트워크로 전송. 그러기 위해 라우팅 필요. 크기가 크면 패킷화 시켜준다. IP통신과 라우팅을 한다.
- Data Link - 이더넷, 랜카드. MAC처럼 일련번호. 동일 네트워크로 전송
- Physical - 전송. 디지털 비트 전송. 케이블, 인터페이스, 허브, 리피터 포함.
# TCP/IP
네트워크 프로토콜의 모음. 패킷 통신 방식 IP와 전송 조절의 TCP
- Application : 응용 프로그램간 데이터 교환
- Transport : TCP/UDP
- Network : 패킷 처리, 네트워크 연결
- Network Interface : 물리계층
- Encapsulation :
# 2. Physical Layer
네트워크 장치의 전기적 전송. 통신 장치와 커넥터, 인코딩(bit->signal)
- Copper Cable을 사용한 전화선, UTP, 동축케이블
- Optical Fiber을 이용한 광케이블
# 물리계층 장비
- 허브와 리피터 : 둘다 전기 신호를 증폭시켜주는 장비. 요즘은 잘 안 쓰인다.
- 동작방식
- 브로드캐스팅 - 1:all
- 유니캐스팅 - 1:1
- 멀티캐스팅 - 1:n
- CSMA/CD(carrier sense multiple access/ collision detection)
- carrier sensing : 다른 노드가 사용중인지 확인
- multiple access : 비었으면 전송 시작
- collision detection : 충돌 감지시 정지 후 재시도
- 전송방식
- Simplex : 단방향
- Half Duplex : 무전기 식. 한개씩 양방향 가능.
- Full Duplex : 전화기 식. 동시 양방향 가능
- 케이블
- TP : Twisted Pair. UTP와 STP가 있다. 쉴드 차이.
- 동축 : 선 중앙에 심선. 케이블 티비.
- 광 : 싱글, 멀티 두 타입이 존재.
- 단위
- 100Mbps할때 b는 소문자로 비트를 의미한다. 즉 12.5MBps가 된다.
- 성능
- Bandwidth :주어진 시간대에 이동가능 정보양. 8차선 도로
- Throughput : 단위시간당 전송양. 도로의 자동차 양
- BackPlane : 최대 처리 가능 양
- CPS : 초당 커넥션 연결 수
- CC : 최대 수용가능 커넥션
- TPS : 초등 트랜잭션 연결 수
# UTP 케이블과 Wi-Fi
UTP 케이브
- 568b to 568b : direct
- 568a to 568b : cross
코드배열
- Standard
- Auto MDI-X(Automatic medium dependent interface crossover) : 알아서 direct cross 판단
UTP 카테고리
WiFi
- 인터넷 - ISP - 라우터 - WIPS - AP - 컴퓨터
- WIPS : Wireless IPS
- AP : Access Point. 반경과 동시접속 단말기의 개수를 고려.
# 3. L2 Switch
인접 네트워크 노드끼리 데이터 저송. 물리 계층의 오류 감지 수정. 프로토콜은 이더넷, 장비는 스위치.
두개의 부 계층
- Media Access Control : 물리적. 1계층과 연결
- Logical Link Control : 논리적. Frame을 만들어 3계층과 연결
Framing
- 데이터그램을 캡슐화하여 프레임 단위로 만들고 헤더와 트레일러를 추가
- 헤더는 목적지, 출발지, 내용 같은 메타를 정의
- 트레일러는 비트에러를 감지
회선 제어
ENQ/ACK
- ENQ로 preflight
- ACK로 괜찮다고 함
- Data 송신
- Ack로 완료
- EOT 종료
Polling : 수신자에게 수신 여부를 확인한다.
흐름제어 : 데이터 처리속도차이를 해결하기 위한 제어
- Stop & Wait를 통해 멈췄다 기다렸다를 반복. 손실과 중복에 대한 대처가 되어있다.
- Sliding Window
오류제어 : 손실 탐지 및 재정송
Automatic Repeat Request
Go Back n ARQ
# 스위치
2계층의 대표 장비. MAC주소 기반 통신. 포트별 Collision Domain. Full duplex. 라우팅 기능이 있으면 L3 스위치라고 한다.
# 4. IP Address and Routing
# 네트워크 계층
OSI Layer의 3계층. 패킷 포워딩과 네트워크간 라우팅. IP주소를 이용하여 통신. 대표 장비는 라우터(L3).
Internet Protocol
- 1973 : 라우팅 구현으로 본질적으로 인터넷을 구축함
- TCP/IP 모델의 기원.
- 최신 버전은 IPv6
# IP정의와 구조
구성
헤더 : 목적지 출발지의 IP포함
페이로드 : 데이터
#
# IP 클래스
네트워크와 호스트
- 네트워크는 브로드캐스트
- 호스트는 개별 단말기
- 192.168.1.0~255 에서 192.168.1은 네트워크, 0~255는 호스트
- 브로드캐스트 스위칭으로는 같은 네트워크 안의 호스트끼리 연결
- 라우터로는 다른 네트워크를 연결
클래스
# 라우터
IP주소를 확인하여 네트워크 간 패킷의 경로를 선택하여 전송
- 인터페이스 : 통신용은 UTP, WAN과 WAN도 연결
# 서브넷 마스크
부분망,
- 할당된 네트워크 영역을 서브넷으로 쪼갬.
- 네트워크를 여러개의 작은 네트워크로 구분 = 서브넷 마스킹
디폴트 게이트웨이 : 다른 네트워크로 패킷 전송시 거치는 라우터
Prefix 표기 : 서브넷 마스크를 간단히 표기.
A클래스 255.0.0.0=/8, B클래스:255.255.0.0=/16, C클래스 : 255.255.255.0=/24
네트워크 영역의 비트수를 의미한다. 비트수가 올라갈수록 수가 줄어든다.
주로 LAN 설계시 C클래스(256개)로 많이 나눈다.
# 라우팅
- Static 라우팅 : 기본. 경로를 라우팅 테이블에 목적지 IP주소 & 인터페이스 정보를 설정.
이런식으로 한다고 한다. 참고만 하자.
# ICMP
Internet Control Message Protocol
IP통신은 목적지에 전달을 시키지만 에러 발생시 처리 불가능하다.
ICMP는 에러 상황을 출발지에 전달해준다.
Protocol ID = 1이다. TCP=6, UDP=17.
ICMP Type : 0~254까지 정의 돼 있다.
# DHCP
Dynamic Host Control Protocol
- 동적 호스트 프로토콜 : IP주소를 자동으로 할당
# 5. Dynamic Routing
# 라우팅 프로토콜
정적 : 경로 정보를 라우티에 미리 저장
동적 : 네트워크 상황에 따라 더 빠른 경로로 전송
- EGP
- IGP
# 라우팅 알고리즘
- 목적지까지 최적 경로 계산하고 라우팅 테이블 업데이트
- 동적으로 라우팅 테이블 유지 및 업데이트
- 종류
- Distance Vector : 분산 업데이트. 소규모. Bellman-Ford 알고리즘으로 구한다.
- Link State : 중앙 집중형. 대규모에 적합. 다익스트라 알고리즘으로 구한다.
# EGP
Exterior Gateway Protocol
- BGP(Border Gateway Protocol) : ISP와 ISP간에 연결한다. Distance Vector을 이용한다.
- BGP 구성
# IGP
Interiro Gateway Protocol
# OSPF
Open Shortest Path First
링크 스테이트 라우팅 알고리즘을 사용하는 IGP용 라우팅 프로토콜
홉 카운트의 제한이 없다.
변경된 정보만 전파하여 적은 트래픽 유발
# 6. TCP & NAT
Transport
- End to End 서비스 : connection oriented, reliability, flow control
- TCP, UDP, 소켓을 통한 프로세스별 통신
- 5 tuple : Source IP, Source Port, Dest IP, Dest Port, Protocol
- Port : 전송 계층에서 사용되며 프로세스 구분 단위 0~65535까지 있다.
- 0~1023 : well known.
- 1024~49151 : registered
- 49152~65535 : dynamic
TCP
Transmission Control Protocol
인터넷 구성의 핵심 프로토콜
신뢰성 기반 1:1 통신
connection oriented
에러 발생시 재전송 요청
헤더
UDP
- User Datagram Protocol
- 신뢰성은 낮으나 빠르다.
- 1:n 통신 가능
- 스트리밍에 적합하다,
- connectionless, 재전송불가, 실시간 전송에 적합
# TCP 통신
3way handshake
정상적 종료시 4 way handshake
# 7. Applicaton Service
← Python tips API →