[Network] Network Overview

pos++·2024년 5월 3일

Network

목록 보기
1/3
post-thumbnail

2023.11.17, 11.20 TIL

Computer Network의 구성요소

  • Node : Network에 연결된 컴퓨터 등의 기기
  • Link : Node를 연결하는 통로
  • Router : 서로 다른 network간 data 전송
  • Switch : Network 내부의 traffic을 관리, node간 data 전송 조절
  • Network edge: Device들의 집합
  • Access Network : 통신사의 LAN, 통신사의 LTE, 5G
  • Network Core : Router들의 집합

Access Network

사용자가 위치한 지역에서부터 인터넷 서비스 제공자(ISP)의 네트워크까지 연결하는 구간

  • 사용자들이 인터넷에 접속하기 위해 사용하는 device를 인터넷에 연결하는 마지막 구간

서비스의 성능을 좌우

물리적인 케이블 또는 무선으로 구성

ADSL, FTTH, 케이블 모뎀, 무선랜(wifi) 등

Packet Switching : store and forward

Store - packet 하나를 store

R = 100Mbps
-> 전송속도
L = 10Kbits
-> Packet size (packet당 bit수)

Transmission delay (전송지연) = 10000/100000000 = 0.1 msec

d = 2000km
-> 물리적 거리

s = 2* 10^8m/s
-> Packet당 속도

Propagation delay (전파지연) = 2000000/200000000 = 10 msec


Packet Switching : queueing

Router의 queue에서 대기

Packet Loss

packet이 사라져 목적지까지 packet이 도착하지 못함

원인: Router의 memory가 꽉 찬 상태에서 새로운 packet이 도착하면 어쩔 수 없이 버림

Queueing Delay

Packet들이 queue에서 output link로의 전송을 대기함

Throughput

전송률.

Bottleneck Link : Thoughput을 결정

Network Core

여러개의 router와 switch로 구성

이들이 상호 연결되어 data를 전송하고 routing

  • High throughput
  • High availability
  • Fast transmission

Router의 기능

  • Forwarding
    • Packet을 바깥으로 내보내는것
    • Forwarding table
    • Header를 보고 해당되는 output link로 내보낸다
  • Routing
    • 출발지에서 목적지까지의 경로를 결정하는 것

Autonomous System

동일한 routing 정책으로 하나의 관리자에 의해 운영되는 network

계층 구조

Tier 1 : 전세계의 traffic을 처리하는 대규모 network, ISP간에 Peer 계약을 체결
Tier 2 : 지역, 국가 단위 ISP

IP Address

IPv4 : 32bit

CIDR(Classes InterDomain Routing)

  • a.b.c.d/x format
  • Subnet 부분이 임의의 길이 : x가 bit수를 의미 🔁
  • Host part는 9bit

Subnets

Ex: 223.1.1.0/24, 223.1.2.0/24 → 우리 subnet의 주소 대역은 이렇다~ 뒷자리 1~255까지 사용가능

DNS

Hostname을 해당 host의 IP주소로 변환해준다

DNS System은 전세계적으로 분산된 DNS Server들의 집합체

DNS 정보를 관리, DNS query를 처리

사용자의 컴퓨터나 네트워크 장비에서 hostname 입력 → DNS Server에 query를 보내서 IP주소 획득

  • Root DNS Server
  • Top-Level DNS Server
  • Authoritative DNS Server
  • Local DNS Server

습득한 정보는 TTL시간동안 cache에 유지

Protocol

어떤 형태로 정보를 주고받을 것인지에 대한 규약

Computer network에서 정보를 주고받는 방법을 표준화

Protocol을 정의해놓은 문서가 Internet에 존재

  • Message Type
    • request/response
  • Message Syntax
    • Data의 형식, 구조
    • Data type, size
  • Message Semantics
    • Message 내용
    • 각 field의 의미
  • Action Rules
    • 각 message를 받았을 때 어떤 action을 취할 것인지

TCP

Transport Layer

신뢰성 있는 전송을 보장

  • Packet loss 방지
  • Packet 도착 순서 보장
  • Data는 일정한 크기의 segment로 나누어져 전송

연결 지향적

  • 3-way handshake

Congestion Control

HTTP, FTP, SMTP

UDP

Transport Layer

신뢰성 없음

  • Packet loss 생길 수 있음
  • Packet 도작 순서 보장하지 않음

빠른 속도

비연결형

  • Data 전송에 대한 ACK 받지 않음

영상, 음성 streaming

Checksum

Packet의 정확성을 확인하기 위해 packet의 일부분이나 전체에 대한 계산 결과를 packet에 포함하여 전송

수신자는 동일한 checksum 알고리즘으로 checksum 계산, 도착한 packet의 checksum 값과 비교

Port #

Socket별로 port#를 할당받음

Source port#, Destination port#

Ex: Process3에 대한 port#를 부여해놓음, Source는 이 socket의 destination port#를 알아야 함


연결형 Demultiplexing (TCP)

source IP, source port#, destination IP, destination port# 4가지 값으로 하나의 socket 지정


비연결형 Demultiplexing (UDP)

같은 destination port#면 같은 socket으로


NAT

Network address translation

  • 하나의 공인 IP 주소로 여러개의 내부 device들이 인터넷에 접속
  • Router나 방화벽에서 구현
  • Application port forwarding/DMZ 설정 필요
  • NAT translation table
    • 내 router에 연결된 computer에서 request
    • Router에 packet이 오면 공유기는 NAT 기능을 수행, LAN side address → WAN side address
    • Packet의 source 부분을 바꾸고, port# 할당해서 table에 기록
    • Server에서 보낸 reply router에 도착, LAN side address → WAN side address

HTTP

Client: server에 request - 주로 web browser

Server: client에 response - 주로 web server

TCP/IP 기반, 기본적으로 80 port 사용

특징

  • Connectionless
    • Request와 response 후에 연결 종료, 이후에 다시 연결
  • Stateless
    • 이전 request와 현재 request 간의 상태 정보를 유지하지 않음
    • Client와 server간의 통신이 항상 독립적
  • Request-Response 구조
    • Request, response는 각각 message 형식으로 전송
    • Message → Request line, Request Header, Request Body, …

Request Format

  • Request Line
    • Request method, Request URL, HTTP version
  • Request Header
    • Client-Server 간 부가적인 정보
  • Request Body
    • 실제 request message
    • GET 같이 body가 없는 경우도 있다
  • Ex
    • GET /index.html HTTP/1.1
    • Host: www.example.com
    • User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) → Client
    • Accept: text 어쩌고 → Client가 이런거 받을 수 있다

HTTP Method

  • GET: Server에서 지정된 resource 검색
  • POST: Data를 server로 전송, request body의 유형은 Content-Type Header로 표시
  • HEAD: 실제 resource의 body를 반환하지 않고 HTTP Header 정보만을 반환
  • PUT: 새 resource를 생성하거나 대상 resource의 표현을 request pageload로 replace
  • DELETE: Server의 지정된 resource 삭제

Response Format

  • Status Line
    • HTTP version, Stade code, State message
  • Response Header
    • Client-Server 간 부가적인 정보
  • Response Body
    • 실제 response message
    • GET 같이 body가 없는 경우도 있다
  • Ex
    • HTTP/1.1 200 OK
    • Date: Tue, 30 Mar 2023 10:23:45 GMT
    • Server: Apache/2.4.41 (Unix)
    • <!DOCTYPE html>
    • <html>
    • <head>

Response State Code

  • 200 OK
    • request succeeded, requested object later in this message
  • 301 Moved Permanently
    • requested object moved, new location specified later in this message (in Location: field)
  • 400 Bad Request
    • request msg not understood by server
  • 404 Not Found
    • requested document not found on this server
  • 505 HTTP Version Not Supported

Web Cache (Proxy Server)

Response를 Web Cache가 가지고 있다면 server까지 갈 필요 없음

nc를 활용한 HTTP test

nc -C netapp.cs.kookmin.ac.kr 80  # Linux: -C / Mac: -c
GET /index.html HTTP/1.1
Host: www.kookmin.ac.kr  # 이걸 왜 또 써줘야 하는가: Web Cache는 index.html이 없음. 이게 어느 server에 있는지 모름.
profile
밀린 TIL 업로드 조금씩 정리중...

0개의 댓글