2.컴퓨터 네트워크와 인터넷
2-1) 퍼포먼스 측정
네트워크의 성능을 평가하기 위한 성능 지표
- 지연시간 (Delay)
: 소스로부터 목적지까지의 패킷을 전달하는 데 걸리는 시간
- 손실률 (Packet loss)
: 보낸 패킷 중에 얼마 정도가 분실이 되는지?
- 전송률 (Throughput)
: 단위 시간 동안에 전달될 수 있는 트래픽의 총량
지연시간 (Delay)
- Processing delay : 패킷이 도달했을 때 라우터에서 처리하는 데 필요한 딜레이
- Queueing delay : 이전에 도착한 패킷이 있었다면 큐에 들어가서 대기 해야함
- Transmission delay : 패킷사이즈가 크면 생기는 딜레이. 링크의 전송률에 따라 달라짐
- Propagation delay : 전파 딜레이. 데이터가 날아가는 속도
ㄴ Processing delay는 하드웨어의 발전으로 무시할 수 있을 정도로 작아짐.
ㄴ Propagation delay는 데이터의 첫번째 비트에만 존재하고 그 다음비트는 연달아 이어져서 전송되기 때문에 첫번째 비트 제외하고는 영향을 미치지 않는다고 봐도 무방함.
Transmission delay
- 패킷의 Length(L), 링크의 bandwidth(=링크의 capacity, R)에 따라서 계산이 됨.
- 트랜스미션 딜레이 = L/R
Queueing delay
### 손실률 (Packet loss)
- 주로 중간 라우터에서 패킷 손실이 일어남.
- 라우터는 버퍼가 저장할 수 있는 공간이 정해져 있는데, 이를 넘어서는 데이터가 한꺼번에 도착하면 그 이상의 패킷은 잃어버림.
전송률 (Throughput)
-
순간 Throughput과 평균 Throughput으로 나뉨.
-
순간 Throughput은 가장 피크일 때, 평균 Throughput은 전체 시간을 보고 평균을 내어 계산
-
Throughput을 결정하는 요소는 bottleneck link
bottleneck link : src와 dest 사이에 전송용량이 큰 링크와 작은 링크가 있다면, 전송 용량이 낮은 링크가 전체 path의 용량을 결정함.
컴퓨터 통신이라면 통신 링크가, 컴퓨터 시스템이라면 프로세서나 소프트웨어가 병목이 될 수 있음.
2-2) 프로토콜 스택
: 인터넷 프로토콜의 계층은 어플리케이션(응용), 트랜스포트(전송), 네트워크, 데이터 링크, 피지컬 레이어 5개로 나뉘어짐.
인터넷 프로토콜 5계층
- 응용 계층(Application layer) : 파일을 전송하는 FTP, 메일전송을 위한 SMTP, 웹서비스를 이용하기 위한 HTTP 등이 있다.
- 전송 계층(Transport layer) : 패킷을 목적지까지 안전하게 전달하는 서비스를 제공함. TCP, UDP 등이 있다.
- 네트워크 계층(Network layer) : src에서 부터 dest까지의 길을 찾아주는 기능을 함.
- 링크 계층(Link layer) : 하나의 호스트와 그 다음 호스트 간의 데이터를 전송하는 일을 맡음. hop 사이사이 마다 링크레이어가 데이터를 전달.
- 물리 계층(Physics layer) : 데이터를 전달 할 때 어떤 방식으로 전달 할 것이냐, 비트를 어떤 식으로 전달 할 것이냐를 결정하는 것이다.
ex) 유선 링크면 쌍꼬임인지 동축인지 광섬유인지 등등 각 케이블에서 비트정보를 어떤 식으로 처리할 것인가 하는 것을 알려줌.
OSI(Open System Interconnection) 7 계층
모든 통신 프로토콜은 OSI 7 계층을 따르면 우리 네트워크에 접속이 가능하다. 라는 뜻으로 지정해둔 것.
Open은 개방형을 의미함. 즉 개방해서 모두가 연결 할 수 있는 네트워크라는 뜻. 이 스택을 따라야 한다는 것이 OSI의 내용.
인터넷에 비해서 2가지 레이어(Presentation Layer, Session Layer)가 더 추가되어있다. 인터넷 프로토콜에 이 두 기능이 없는 것이 아니라, 응용계층에 다 포함되어 있다.
- 프레젠테이션 계층(Presentation Layer) : 암호화, 데이터 압축 or 인코딩. 데이터를 어떤 식으로 부호화 할 것이냐를 결정하는 역할.
- 세션 계층(Session Layer) : 트랜스포트 레이어, 연결을 관리해주는 역할을 한다고 생각하면 됨.
계층을 나눈 이유
각 서비스가 모듈화 되어 있기 때문에 각 기술자들은 자신의 모듈만을 잘 개발하고 관리하고 수정하면 됨.
→ 개발속도도 빠르고 안정화할 수 있으며 수정도 효율적으로 할 수 있음.
계층을 나누었을 때의 단점
아래 계층의 상황을 정확하게 알면 효율적인 서비스 구현이 가능하나, 레이어를 정확하게 나누어서 정해진 정보만을 주도록 설계가 되어있기 때문에 효율성을 떨어트리는 측면도 있음.
→ 그래서 현재는 계층의 엄격한 구분을 없앤 프로토콜도 제안이 되고 있음.
ex) 과거 네비게이션은 그저 최단경로만 알려주었는데 이 것이 효율성이 떨어져서 도로상황을 고려한 네비가 나오게 되었음.
Encapsulation

2-3) 네트워크 Security
- 공격 요령을 분석하는 연구
- 어떻게 공격을 막을 것인지에 대한 연구
- 이를 통해 공격을 견딜 수 있는 새로운 네트워크 아키텍쳐를 만드는 것이 연구의 최종목적이다.
Malware
바이러스(virus)와 웜(worm)으로 나누어짐.
Virus는 스스로 옮겨가지 않고 매개체가 있어야함.
Worm은 사용자가 특별한 행동을 하지 않아도 스스로 인터넷 선을 따라서 번져나갈 수 있음.
Spyware - 멀웨어의 일종. 개인정보들을 탈취
Ransomware - 몸값을 나타내는 단어 Ransom을 붙여서 랜섬웨어. 정보를 인질로 돈을 요구함.
Malware 가 하는 일
- Packet Sniffing : 지나가는 패킷을 무단으로 읽어들임. 패스워드 같은 걸 훔칠 수 있다.
- DDoS (Distributed Denial of Service) : 분산된(Distributed) DoS. 여러 대의 컴퓨터들이 동시에 서버를 공격하도록 함. 기존 DoS보다 막기 어렵다.
- Sybil attack : 주소를 바꾸면서 데이터를 보냄. C를 A가 공격하면서 B가 보낸 것처럼 보내는 주소를 B로 해서 보냄.
- Fake WiFi access point (evil twin attack) : 가짜 와이파이 액세스 포인트를 만들어서 개방형 wifi를 찾는 사람들이 이용하면서 개인정보를 attacker에게 넘겨주도록 하는 공격 방식. 합법적인 wifi액세스 포인트의 나쁜(evil) 쌍둥이(twin)라서 evil twin attack라고도 부른다.
2-4) 인터넷의 역사
- 70s~80s – 인터넷이 설계가 되었고, 이더넷이 만들어져서 시험이 되었고, 알파넷에 접속한 노드의 개수도 늘어남.
- 80s – 본격적으로 TCP/IP 개발. 이 전에 사용하던 NCP는 패킷을 목적지까지 안전하게 전달해주는 그런 기능이 없었음.
- 90s – 알파넷을 MILNET과 NSFNET으로 나눔. 군사형 네트워크와 과학자용 네트워크.
그러다가 NSFNET을 상업적 목적으로 사용할 수 있게 개방을 하기로 함. HTML과 HTTP가 만들어짐. 모자이크, 넷스케이프 등등 있다가 이제는 익스플로러, 크롬, 파이어폭스
- 00s – 인터넷에서 굉장히 많은 애플리케이션들이 나타났음. 메신저 or P2P
- 현재 – 소셜 서비스 발달, 액세스 네트워크가 많이 보급 되어있음. 클라우드 서비스 제공 등.