[CS]/[컴퓨터네트워크]

컴퓨터 네트워크 기본1 - 컴퓨터네트워크 및 인터넷 역사

broship 2021. 2. 8. 13:53

※kocw에서 제공하는 이석복 교수님의 컴퓨터네트워크 수업을 듣고 필기한 내용입니다.

출처를 따로 밝히지 않는 한 전부 해당 수업에서 제공한 자료들이며 제가 작성한 부분에 있어 틀린 부분이 있을 수도 있다는 점 양해바랍니다.

 


네트워크 구조


네트워크 구조

1) network edge - 사용자 applications and hosts (웹 브라우저 등)

2) network core - 라우터(동그라미에 x표시된것, 데이터를 목적지까지 전달하는 역할)

3) access network, physicla media(와이파이, LTE 등)

 


 

인터넷이 제공하는 통신 서비스


1) TCP - connection-oriented service

1. reliable, in-order byte-stream data transfer: 신뢰성이 있음, 내가 전송한 그대로,순서 그대로 도착지까지 감

2. flow control: 센더가 보낸 데이터를 리시버가 받아드릴 수 있는 속도로 맞추어 줌

3. congestion control: 센더와 리시버 사이의 네트워크 상태에 맞춰서 데이터를 전송해줌

 

특징: 신뢰성을 보장하며 데이터를 전송하는 프로토콜(웹브라우저, ftp등)

 

 

2) UDP - connectionless service(커넥션이 없음)

1. connectionless: 커넥션이 없음

2. unreliable data transfer: 신뢰성이 없음

3. no flow control: 속도 제어를 안해줌

4. no congestion control: 중간 제어를 안해줌

 

특징: TCP와 반대로 아무것도 보장하지 않는 프로토콜, 데이터 전송시 신뢰성이 불필요할 경우 사용함(유선 전화등)

 


프로토콜이란?


TCP: Transmission Control Protocol, 신뢰성을 보장하는 프로토콜

UDP: User Datagram Protocol, 비신뢰성의 프로토콜

 

TCP,UDP처럼 데이터를 송수신하는 통신규약을 프로토콜이라고함

정말 중요한 메세지를 주고받기 전에 준비동작 같은 것이며 서로 같은 프로토콜이여야지 데이터 전송이 가능

 

이 외에도 HTTP 프로토콜등이 있다.

 

 

 


The Network Core


- 라우터들이 상호 연결된 망

 

1) 데이터가 전송되는 2가지 방식

1. Circuit switching

- 출발지에서 부터 목적지까지 가는 길을 미리 정해놓고 그 특정 사용자만을 위해서만 사용하게 만들어 놓은것

- 예전 유선 전화망이 이렇게 사용됨

- circuit: 회로

2. Packet-switching

- 사용자가 보내는 메세지를 패킷 단위로 받아서 그때그때 올바른 방향으로 보내는것

- 인터넷에서 사용하는 방법

- 패킷: 비트의 집합

 

2) Circuit switching VS Packet-switching

Q - 왜 인터넷에서는 패킷 스위칭을 사용할까?

하나의 라우터에 N명의 유저가 연결되어 있고 해당 라우터는 1Mbps(1초당 1메가비트씩 전송)의 속도까지 전송할수 있고 각 유저는 100Kbps의 속도로 데이터를 전송할때

1. 써킷 스위칭은 최대 10명의 데이터를 전송할 수 있음

2. 패킷 스위칭은 제약 없음, 써킷 스위칭보다 많은 유저들이 인터넷을 사용할수 있게 해줌

 

전화상에서는 데이터가 다소 유실되더라도 연결이 끊어져서는 안되지만, 인터넷에서는 기사 한번 클릭하고(요청하고) 기사 보다가 다시 기사 클릭하는식으로 텀이 있음, 그래서 정확히 똑같은 타이밍에 한꺼번에 유저가 몰리지 않는한 많은 유저들의 데이터 전송이 가능함(35명이 한꺼번에 사용한다 하더라도 10명이 동시에 요청을 할 확률은 0.0004 정도 밖에 안됨)

 

 

3) 패킷스위칭에서 생기는 문제점 - delay가 발생함

1. Processing delay: 이 패킷이 문제없는지, 목적지가 어딘지 등을 체크하는데 소요되는 시간

2. Queueing delay: 라우터에서 빠져나가는 속도보다 유저가 들어오는 속도가 더 빠를때 데이터를 버퍼 혹은 큐에 임시 저장하는데, 여기서 큐에 대기하데 걸리는 시간

3. Transmission delay: 큐 제일 앞에 섯을때 패킷 맨 앞의 비트부터 패킷 맨 마지막 비트까지(패킷은 비트의 집합) 뿜어저 나가는데 걸리는 시간, 이때 전송하는 통로(bandwidth)가 크면 클수록 소요되는 시간이 짧아짐(통과한 비트 먼저 전송하는것이 아닌 패킷의 모든 비트가 다 나와야 전송 시작함, 전송은 항상 패킷단위)

4. Propagation delay: 마지막 비트까지 다 나가고 나서 다음 라우터까지 도달하는데 걸리는 시간, 광섬유라 속도는 빛의 속도로 전송되서 일정함, 라우터까지의 길이에 따라 시간이 소요됨

 

해결법?

1. Processing delay: 라우터 성능을 개선한다

2. Queueing delay: 어쩔수 없다 사용자를 줄이면됨

3. Transmission delay: 케이블을 넓힌다

4. Propagation delay: 신의 영역

 

- 데이터 전송할때 전송량이 많아 라우터 안에서 패킷을 잠시 보관하는 장소가 Queue임(FIFO,먼저 들어온게 먼저 나감) 그런데 이 큐가 꽉차면 어쩔수없이 패킷손실이 발생함, 하지만 TCP는 신뢰성을 보장하는 프로토콜이라 이 경우 다시 처음부터 재전송을함(중간의 라우터는 재전송을 하지 않음, 라우터는 최소한의 기능만(dumb core, 단순노동) 가지고 있고 중심 기능은 엣지에만 있음)