3월 1일차
인터넷
인터넷이란, 두가지 관점으로 정의할 수 있다.
- "nuts and bolts" 너츠앤볼츠 관점 : 하드웨어에 관한 정의이다.
너츠앤볼츠의 관점에서 볼 때, 인터넷은 호스트 = 종단 시스템 (가장자리에 있는 애들) , 링크, 패킷스위치 (라우터, 스위치를 말함) 3가지로 이루어짐.
- 서비스 관점 : 애플리케이션에게 서비스를 제공하는 구조에 관한 정의이다.
애플리케이션에 서비스를 제공할 때, 프로그래밍을 통해 소켓이나 아이피를 연결하여 서비스를 제공한다.
이 때, 패킷이란 단위로 나누어 제공하는데 효율성이 높아진다.
프로토콜이란
네트워크에서 프로토콜이란, 네트워크 통신 규약으로 메세지를 보내고 받는 것의 순서나 형식을 정하는 것을 말한다.
예) TCP, IP, HTTP, Wifi ( 802.11 )
3월 4일차
네트워크의 구조는 네트워크 엣지, 엑세스 네트워크, 네트워크 코어로 구성된다.
네트워크 엣지
네트워크 엣지 = 호스트 = 종단시스템 다 같은 말이다.
네트워크에 가장자리에 있는 시스템을 의미함.
예 ) 데스크탑, 서버, 모바일 기기 등이 될 수 있다.
엑세스 네트워크
종단 시스템이 네트워크 코어와 연결하는 커뮤니케이션 링크 부분을 말한다.
엑세스 네트워크는 대역폭(bandwidth)은 얼마나 할 지, 공유로 할지, 독단으로 사용할지가 중요하다.
<유선 엑세스 네트워크>
집에서 네트워크 연결 할 때 사용하는 엑세스 네트워크 종류
- DSL (digital subscriber line) : 전화선을 이용한 엑세스 네트워크 연결 방법으로 한 집이 링크를 독단적( 혼자만이용) 하는 것이 특징이다.
- Cable : 여러 집이 엑세스 네트워크 링크를 공유하여 보낸다. 공유가 가능한 이유는 주파수를 다르게 하여 보내기 때문에 섞이지 않고 보낼 수 있다. ( Frequency division multiplexing )
기업에서 네트워크 연결 할 때 사용하는 엑세스 네트워크 종류
- 이더넷 : 주로 학교, 회사에서 이용한다. 이더넷 스위치를 이용하여 연결.
<무선 엑세스 네트워크>
- LAN (근거리 통신망) : Wifi 이용
- WAN (장거리 통신망) : 4G, LTE, 5G
Transmission Delay
대역폭: 호스트는 데이터를 패킷이란 단위로 쪼개어 보낸다.
패킷의 길이가 L bits라고 하고, 전송률 ( transmission rate ) R 이라 했을 때, 대역폭을 구하는 식은 아래와 같다.
L/R
3월 11일차
네트워크 코어
네트워크 코어란, 복잡하게 얽혀진 라우터들을 말한다.
네트워크의 핵심 기능 2가지
- 라우팅 (routing) : 출발지에서 목적지 까지 경로를 정하는 것
- 포워딩 (forwarding) : 라우터에서 다음 라우터로 패킷을 보내는 것.
두 가지의 차이점 알아 두기!
라우팅 알고리즘(다익스트라 등등)을 이용하여 포워딩 테이블을 만든다.
데이터를 엑세스 링크로 보내는 2가지 방식
- 패킷 스위칭 ( Packet switching ) : 패킷을 쪼개서 보내는 방법 (shared)
- 서킷 스위칭 ( Circuit switching ) : 패킷으로 쪼개지 않고 한번에 보냄. ( dedicated . 링크를 독단적으로 이용 가능할 때 사용 )
패킷 스위칭 ( Packet Switching )
패킷 스위칭의 가장 핵심 원리 : Store - and - forward 방식
스토어앤포워드 방식은 , 저장한 뒤 보낸다는 원리이다. 즉, 총 패킷의 길이가 라우터에 도착해야만 다음 라우더로 보낼 수 있다는 뜻이다. 그렇기 때문에 propagation delay 말고도 transmission delay도 생겨남.
스토어앤포워드 방식이란?
문제 ppt 5쪽 참고
패킷 스위칭 방식에서의 Delay
총 Delay = process delay + queuing delay + tranmission delay + propagation delay 총 4가지를 더해야함.
일반적으로 process delay 와 queuing delay는 매우 짧고, propagation delay가 가장 길다.
- process delay : 어느 링크로 갈지 정하는데 걸리는 시간
- queuing delay : 큐에서 대기 시간
- transmission delay : 총 패킷의 길이가 올라오는데 걸리는 시간
- propagation delay : 링크를 타고 다음 라우터까지 가는데 걸리는 시간
큐잉 딜레이(queuing delay)의 발생 이유 : 도착 비율이 전송 비율보다 클경우 라우터에 있는 버퍼 (큐)에서 대기하게 된다. 그렇지 않으면 발생하지 않음. 네트워크의 혼잡도에 따라 다르다.
패킷 손실 (Packet loss)가 발생하는 이유 : 라우터 안의 버퍼(Queue)가 꽉 찬 경우 더이상 패킷을 저장하지 못하고 유실이 일어난다.
Packet switching을 쓰는 이유 : 공유 방식 링크 (shared)를 사용 할 때에는 여러 호스트가 access link를 함께 이용하게 된다. 이 때, 어떠한 호스트의 메세지가 너무 길면 link를 독점하게 되므로, 다른 호스트는 사용할 수 없어 비효율적이게 된다.
서킷 스위칭 ( Circuit Switching )
대표적 예. 유선전화
독점적으로 자원을 보내는것이 가능하다. (no sharing)
장점 : 어느정도의 성능이 보장된다.
서킷 스위칭의 방법 : FDM 방식 ( 주파수 분할 방식 ) , TDM 방식 ( 시간 분할 방식 )
//사진
패킷 스위칭 vs 서킷 스위칭 어떤걸 선택?
- 패킷 스위칭 : 네트워크를 보다 더 많은 사람이 이용 가능하게 만든다. 간단하고 셋업 과정이 필요 없음. 하지만 패킷을 보낼 때 항상 헤더를 붙여서 보내야함. 또한 공유하기 때문에 혼잡도에 따라 딜레이 발생 가능.
- 서킷 스위칭 : 성능(속도)이 보장된다. 선을 뚫기 까지 셋업 과정이 필요하다.
만약 패킷스위칭이 서킷 스위칭 처럼 성능을 보장받으려면 어떻게 해야 할까? 대역폭을 충분히 보장 받으면 된다. ( 하지만 아직까지 완벽히 해결되진 않은 문제 )
9쪽 문제 참고 관점으로 정의할 수 있다.
인터넷 구조 Internet structure
종단 시스템은 접속 ISP (access ISP) 를 통하여 인터넷과 연결된다.
네트워크 구조는 크게 5가지가 있다.
만약 n개의 각각의 access ISP가 다른 각각의 access ISP와 연결하려면 몇개의 연결이 필요 할 까? n^2개 필요 (비효율적) => 확장성이 떨어진다.
네트워크 구조 1
Global ISP 1개 + access ISP 여러 개인 구조.
14쪽 참고.
이 구조에서는 엑세스 ISP는 고객이되고, Global ISP는 제공자가 된다. 고객은 제공자에게 비용을 지불해야한다.
네트워크 구조 2
Global ISP 여러 개 + access ISP 여러 개인 구조.
15p 참고
=> Global ISP는 서로 연결되어야 하며 경쟁을 하게 된다.
네트워크 구조 2에선 Global ISP끼리는 가까운 경우 다이렉트로 연결(Peering Link) 될수도 있지만, 먼 경우 IXP(Internet exchange point)를 거쳐서 연결될 수 도 있다.
Peering Link로 갈 경우 비용을 지불하지 않아도 되지만, IXP를 거칠 때는 비용을 지불해야 한다 (16p)
3월 15일차
네트워크 구조 3를 알기전에 알아야할 네트워크 구조안의 용어들 2p
- Fault Torlerant (결함 내구성): 네트워크에 장애가 생기면 대처가 가능한 것 ( 다른길로 가면 되기 때문 = > Multi -home)
- Multi-home : Global ISP를 제외한 ISP는 2개 이상의 제공자(본인보다 높은 계층)와 연결 가능한 것
- POP : 상호접속지점 (접속 ISP만 빼고 모두 존재)
(일반적으로 제공자는 상대적 개념이지만 Global ISP는 최상위 계층이므로 그 위에 제공자는 없다)
오늘날의 네트워크 구조는 3가지를 모두 포함한다.
네트워크 구조 3
Regional ISP 여러개 + Global ISP 여러 개 + access ISP 여러 개인 구조.
=> 즉, 네트워크 구조2 + Regional ISP 여러개
Global ISP는 아무에게도 비용을 지불하지 않음 ( 위의 계층이 없음 )
네트워크 구조 4
Regional ISP 여러개 + Global ISP 여러 개 + access ISP 여러 개인 구조 + POP + Multi-home + peering + IXP
=> 즉, 네트워크 구조 3 + POP + Multi-home + peering + IXP
네트워크 구조 5
Regional ISP 여러개 + Global ISP 여러 개 + access ISP 여러 개인 구조 + POP + Multi-home + peering + IXP + content provider network
=> 즉, 네트워크 구조 4 + Content provider network
Content provider network : 대표적 예로 Google . 자체적으로 네트워크를 구성하고 운영함으로써, 서비스에 대한 더 많은 통제권을 가지기 때문에 더 나은 서비스를 제공 할 수 있다. ( Content provider network는 굳이 따지면 regional ISP정도 계층임)
Content provider network는 regional ISP와 다이렉트로 비용 지불없이 Peering 연결이 가능하다.
오늘날의 모습 5쪽 참고
Delay and Loss
패킷 딜레이와 손실이 일어나는 이유 : 도착 비율이 나가는 링크의 양보다 많으면 일어날 수 있다.
버퍼에 남은 공간이 없다면 그 다음 들어오는 패킷은 버려짐.
- 다시 딜레이 종류 정리
- D_proc : 포워딩 테이블을 보고, 아웃풋 링크를 정하는 데 걸리는 딜레이 (일반적으로 msec보다 작음)
- D_queue : 아웃풋링크로 transmission 되기까지 기다리는데 걸리는 시간
- D_trans : L/R
- D_prop : d/s
=> tranmission 딜레이와 propagation 딜레이의 차이점 알기 !
# Queuing Delay
a: 도착 비율
L/R: tranmission 비율 이라 하면,
aL/R ~ 0 : 큐잉 딜레이 적음
aL/R >= 1: 큐잉 딜레이 많음
Traceroute 프로그램
현재부터 목적지로 가는 다음 라우터까지 딜레이를 측정한다. 패킷을 3개씩 보냄!
14p 7,8번 사이의 시간 차이 봐두기
3월 18일차
패킷 손실
- 앞의 링크로 보내기위한 큐는 수용 제한이 있다.
- 꽉찬 큐에 도착하는 패킷은 버려진다. (Packet Loss)
- 손실된 패킷은 송신자 시스템에서 주로 재전송 되나, 드물게 이전 노드 (라우터)나 재전송 되거나 그 외에서 재전송 될 수도 있다.
Troughput
송신자와 수신자 사이의 비트 전송률
instantaneous (즉시) : 현재 포인트에서의 전송률
average (평균) : 기간동안 평균 전송률
- 병목 링크 ( Bottleneck link ) : 종단과 종단 시스템 사이에서 있는 전송률의 제약 링크 (3-4p 병목링크 구하기 참고)
인터넷 프로토콜 스택
- 애플리케이션 계층 : 네트워크 계층 ex) FTP, SMTP, HTTP
- 트랜스포트 (전송 계층) : 애플리케이션 안에있는 프로세스간의 데이터 전송 ex) TCP, UDP
- 네트워크 계층 : 소스부터 목적지까지의 경로 찾는 계층 ex) IP, 라우팅 프로토콜
- 링크 계층 : 가까이 있는 네트워크 요소와의 데이터 전송 ex) 802.111 (WIFI)
- 물리 계층 : 비트
OSI 7계층
- 애플리케이션 계층
- 프레젠테이션 계층 : 데이터 암호화 & 해석
- 세션 계층 : 동기화, 데이터 순서 조정
- 트랜스포트 (전송 계층)
- 네트워크 계층
- 링크 계층
- 물리 계층
Encapsulation 캡슐화
12p 참고
계층을 내려가면서 헤더를 씌우는것을 말한다.
- 라우터 : 3계층까지 존재
- 호스트 : 모든 스택 계층 존재
- 스위치 : 2계층 까지 존재
3월 22일차
네트워크 보안
네트워크 보안 분야를 알기 위해서 알아야 할 것들
- 어떻게 네트워크를 해커들이 공격하는지
- 어떻게 공격에 방어해야 하는지
- 어떻게 하면 공격에 먼역이 있는 구조를 만들 것인지
인터넷은 처음에 보안을 염두에 두지 않고 설계 되었다.
Malware 마웨어
악성 프로그램을 통칭하여 부르는 말.
마웨어가 호스트로 퍼져가는 방법
- virus: 받거나 실행하는 대상에 대하여 자가 복제를 한다. (self - replicating infection) 능동적 느낌
- worm: 스스로 실행하여 수동적으로 받아진 대상에 대하여 자가복제를 한다. 수동적 느낌
Spyware malware : 키보드를 녹화할 수 있고, 방문하거나 업로드한 정보들을 몰래 저장할 수 있다.
감염된 호스트들은 스팸에 이용될 봇넷(Botnet)을 형성 할 수 있다. 또한 디도스 어택(DDos Attack)에 이용됨.
* Botnet : 감염된 호스트들의 모음
DoS ( Denial of Service )
서비스를 못하게한다. 많은 패킷을 한번에 보내서 서비스를 못하게 함.
- 타겟 설정
- 봇넷 형성
- 타겟서버에 대량 패킷 보냄.
Sniffing (스니핑)
킁킁거리다.
패킷을 훔쳐보는 것 => 보통 공유하는 이더넷 또는 와이파이
난잡한 네트워크 인터페이스에서 훔쳐봄
Wireshark 와이어샤크 : 패킷 스니퍼 프로그램.
해결방안 => 데이터 암호화
IP spoofing (스푸핑)
다른 사람이 보낸 척하고 보냄. 소스 주소를 잘못된 주소로 보낸다.
스니핑 보다 좀더 심각한 어택.
인터넷 역사
9쪽부터 참고
3월 25일차
애플리케이션 계층
애플리케이션 계층은 종단시스템에서 필요하다
네트워크 코어에는 애플리케이션 계층이 필요가 없음 (엣지에 필요)
=> 호스트에만 애플리케이션 계층이 있으므로, 빠른 앱 동작을 허용한다.
애플리케이션 계층의 구조 2가지
- Client - server
- Peer - to - peer (P2P)
Client- Sever 클라이언트 서버 구조
- 서버: 호스트를 위해 항상 켜져 있다. 영구적인 IP주소를 가진다.
- 클라이언트: IP를 동적으로 DHCP(Dynamic Host Configuration)에서 부여받는다 ( 즉, 바뀔 수 있음 )
클라이언트-서버 구조에서는 클라이언트 끼리 서로 다이렉트로 통신이 불가능 하다 . 꼭 서버를 거쳐야함.
P2P 구조
서버 필요 없음.
호스트 끼리 다이렉트로 통신 가능.
- self scalability 자가 확장성 : 각각의 peer는 서비스 제공자가 될 수도 있고, 서비스 요구자가 될 수도 있다.
peer들은 간헐적으로 IP주소를 바꾸고 연결한다.
P2P의 단점 : 관리가 복잡함.
프로세스 통신
- 프로세스: 호스트에서 실행중인 프로그램.
- 인터 프로세스 통신 : 같은 호스트 안에서 두개이상의 프로세스들이 서로 통신하는것 (OS에서 배움)
네트워크에선 다른 호스트의 프로세스에서 메세지를 주고받으며 통신.
P2P구조도 서버, 클라이언트 프로세스 가질수 있다.
- 클라이언트 프로세스 : 통신을 시작하는 프로세스
- 서버 프로세스 : 연결을 기다리는 프로세스
소켓
애플리케이션 계층과 전송 계층 사이에 있는 출입구. 여러개일 수 있다.
메세지를 주고 받을 때 소켓을 거쳐야 한다.
프로세스의 주소 찾기
메세지를 받기 위해선 프로세스는 반드시 식별자가 있어야한다.
호스트 기기는 32비트 IP(IPv4)를 가지지만, IP 주소만으로는 어느 프로세스로 보낼 것인지 알 수 없다.
왜냐하면 한 호스트 안에 여러개의 프로세스가 돌아가고 있을 수 있기 때문.
프로세스의 식별자 : IP 주소 + 포트 넘버
HTTP server 포트 넘버 : 80
Mail server 포트 넘버 : 25
애플리케이션 계층이 필요한 전송 서비스 4가지
- 데이터 무결성 ( Data integrity ) : 어떠한 앱(파일, 웹)은 100% 데이터 신뢰적인 전송을 보장받아야 하지만, 어떠한 앱 (오디오) 은 조금의 손실은 견딜 수 있다.
- 타이밍 (Timing) : 어떠한 앱(게임)은 딜레이를 최소한으로 줄여야 한다.
- 전송률 (Throughput) : 어떠한 앱(멀티미디어)은 최소한의 전송률을 보장받아야 하지만, 어떠한 앱( elastic app이라 부름)은 전송률이 낮아도 상관x
- 보안 (Security) : 암호화 등등...
14 - 16쪽의 애플리케이션 계층에 따라 어울리는 전송계층 참고!
Securing TCP
TCP UDP 둘다 암호화를 하지 않는다.
SSL은 애플리케이션 계층에 있음.
SSL을 이용하면 암호화 할 수 있다
3월 29일차
HTTP ( Hypertext transfer protocol )
- IP : 기기에 있는 NIC ( Network Interface Card) 에 있는 고유한 주소. 고유한 주소이지만 기기에 여러개 있 수 있다.
- Port number : 기기안에 있는 프로세스를 가리키는번호
HTTP 는 stateless 프로토콜 : 과거의 클라이언트 요청에 대한 정보를 유지하지 않는다.
# 대부분의 프로토콜은 stateless 임. 왜냐면 state 가 되려면 복잡하고 비용이 많이든다. (과거를 저장해야하고, 과거 저장 내용이 클라이언트와 서버가 일치해야하기 때문에)
- non-persistent HTTP : 연결이 지속적이지 않은 HTTP. 각각의 호스트는 한번의 TCP 연결을 해야하고 전송이 끝나면 닫힌다. 여러개의 데이터를 다운로드하려면 여러개의 연결이 필요. (HTTP 1.0)
응답시간 : 대략 2*RTT + transmission time - persistent HTTP : 지속적인 HTTP. 여러개 데이터에 대해서 한번의 TCP 연결만 있으면 된다. 오버헤드가 적음. (HTTP 1.1)
응답시간 : 대략 RTT
8-9p 응답시간 구하기 참고
HTTP Header
request 또는 response message : 전송계층으로 내려가면서 캡슐화 될 때, 해더가 붙는데, 그 해더에 들어가는 부분. 요청 메세지 인지 응답메세지 인지 아스키코드로 적혀있다.
12p 헤더 형식 꼭 참고!
요청 메세지일 경우 method를 포함해야함. 메소드의 종류
- GET : 정보를 요청할 때 ( 서버에 ) ex) 로그인
- POST : 정보를 서버에 올릴 때 ex) 회원가입
등등이 있음
HTTP/1.0 non-persistent
- GET
- POST
- HEAD : 요청 대상에대한 응답만 빼고 빈껍데기만 달라는 메소드 ( 디버깅 할 때 주로 사용 )
HTTP/1.1 persistent
- GET, POST, HEAD
- PUT : 파일 올릴 때 (동영상 등)
- DELETE : 파일 지울 때
HTTP 응답 status code
- 200 OK : 정상적으로 성공
- 301 Moved Permanently : 요청한 객체가 새로운 곳으로 이동함
- 400 Bad Request : 메세지 요청 형식이 서버가 이해를 못함
- 404 Not Found : 요청한 문서를 찾질 못함
- 505 HTTP version not supported : ex) HTTP 1.1 사용 불가능
Telnet
텔넷으로 80 포트번호로 직접 클라이언트에서 TCP 연결을 보낼 수 있다.
'📗 Computer Science' 카테고리의 다른 글
[2장] 운영체제 - Operating System Concepts 공룡책 (0) | 2021.01.13 |
---|---|
[네트워크] Link Layer - 링크 계층 (0) | 2021.01.07 |
[네트워크] Network Layer - 네트워크 계층 (0) | 2021.01.07 |
[1장] 운영체제 - Operating System Concepts 공룡책 (0) | 2021.01.07 |
[네트워크] TCP 개념 (0) | 2021.01.01 |