해당 포스팅은 한양대학교 이석복 교수님의 컴퓨터네트워크 강의를 정리한 글입니다.
http://www.kocw.net/home/search/kemView.do?kemId=1169634
1. Network Structure
- network edges : 통상적으로 알고 있는 application과 host를 의미한다.
- network core: router과 networks들의 network를 의미한다.
- access networks, physical media: communication links

1 ) Network Edge
- end systems: application program을 실행한다. (host)
- client/server model: 통상적인 서버를 의미하는 것으로써, 24시간 운영되고, 클라이언트의 요청을 기다리는 것이다.
a) TCP, UDP
TCP service
- 신뢰할 수 있고, 메시지가 유실되지 않으며 순서대로 도착한다.
- flow control: sender가 보내는 속도를 receiver에 맞추어서 알맞게 조절한다.
- congestion control: 정보 소통량을 조절한다.
UDP service
- connection less service
- 정보 전달에 대해서 아무런 책임을 지지 않는다.
- 하지만, 사용하는 이유는 sender가 마음대로 정보를 전달할 수 있는데 realiable이 굳이 필요하지 않은 곳에서 사용한다.
b) Protocol 이란?
- 둘 사이에 암묵적으로 소통하는 방식이다.
- 프로토콜이 맞지 않으면 서로 통신을 할 수 없다. 규약이라고 볼 수 있다.

2 ) Network Core
- 서로 연결되어 있는 routers의 집합이다.
a) Circuit Switching
- 출발지부터 도착지까지 미리 길을 만들어 두는 것이다.
- bandwidth에 따라 사용할 수 있는 유저가 결정이 되어 버린다.
b) Packet Switching
- 유저가 패킷 단위로 받아서 데이터 (패킷)을 포워딩 하는 방식이다.

c) Example
- 예를 들어 1Mbps link에서 갹 유저는 100 kb/s로 데이터를 보낸다고 하면,
- circuit-switching에서는 10명의 유저밖에 수용할 수 없다.
- packet-switching에서는 유저의 제약이 없다.
-> 하지만, 유저가 많은 경우에는 문제가 생길 수 밖에 없지만 현재 인터넷은 packet-switching 을 사용하고 있다.
-> 보통의 네트워크는 데이터 요청 시점이 띄엄띄엄 존재하기에 사실상 한번의 대역폭을 10명의 유저가 한번에 차지하는 경우는 없다.
d) Four sources of packet delay
1. nodal processing
- output link를 결정하는 데 소요되는 시간
- bit error를 체크하는데 소요되는 시간
-> 줄이는 방법은 단순히 라우터를 좋은거 사면 된다.
2. queueing
- transmission을 기다리는 동안에 queue에 대기하는 시간이다.
- router의 혼잡도에 영향을 받는다.
-> 이 delay는 줄일 수 없다. 종합적으로 사람들의 사용 경향에 따라 발생하는 것이기에, 그래서 packet 유실의 대부분은 queueing에서 발생된다.
3. Transmission delay
- R = link bandwidth
- L = packet length
- link에 bit를 보내는 시간은 L/R
- 즉 link에 나가기 전에 발생하는 delay다. (첫 번째 비트부터 마지막 비트까지 나갈때까지 걸리는 시간)
4. Propagation delay
- 링크에 올라와서 다음 라우터 까지 걸리는데 걸리는 시간이다.
- d = physical link의 길이
- s = 빛의 속도
- propagation delay = d/s
- 즉, link의 길이가 길면 오래 걸리고 짧으면 짧게 걸린다.
