: 인터넷 통신 서비스를 통해
1) connection oriented service : TCP
(Transmission Control Protocol)
(1)reliable, in-order (byte stream data transfer): 메시지 유실 없이 가는지, 순서를 지키는지
(2)flow control : sender가 정보를 보내는 속도를 일정하게 유지해주는 것
ex. sender가 슈퍼 컴퓨터면 receiver가 소화할 수 없을 정도
(3)congestion control : sender, receiver 사이 속도 차이가 없어도 각자의 네트워크 상황에 맞춰서 소화할 수 있을 정도로 보내주는 것
단점 : 컴퓨팅 리소스, 네트워크 자원 등 비용이 더 든다
2) UDP
(User Data Protocol)
장점 : 자원이 덜 든다
중요한 메시지를 주고 받기 위한 준비 단계
ex. 대화에서 앞에 스몰토크를 하고 본론에 들어가는 듯이
ex. "나 부장님이랑 프로토콜이 안 맞아"ㅋㅋㅋㅋ
서로 다른 개체니까 어떤 식으로 소통할지 미리 이야기해야 대화가 된다
(2)packet switching
: 사용자가 유저가 보내는 메시지를 패킷 단위로 받아서 그때그때 필요한 것을 forwarding하는 것
: 인터넷으로 보내는 것
circuit switching : 1MB를 1kb를 쓸 수 있는 10명이 사용하는 등 정해진 양을 나눠서 사용한다
ex. 전화를 사용하는 동안 계속 말한다
packet switching : 제약이 없음. 그러므로 계속 유지하는 게 아니라 연결이 됐다 안됐다하는 형식으로.
ex. 기사를 읽을 때도 왔다갔다하면서 하나를 읽으니까
packet switching으로 생기는 문제들
: packet이 새로운 라우터로 가서 확인하는 것
새로운 packet을 받으면 검사하고 그 목적지를 확인하고 목적지에 따라서 알맞은 output을 구하는 것
packet을 받으면 process & delay
queue에 붙는다
1)packet 검사 - process delay
2)outgoing edge에 뿜어내야하는데 만약 다른 애들도 나가려고 기다리면 queue에 서서 기다린다 (queueing delay)
proportion delay
나가는 속도보다 들어오는 속도가 빠르면 buffer용으로 queue가 하나 있다
queue에서 기다리면 queueing delay
패킷 크기를 bandwidth 로 나눈 것
(bandwidth가 클수록 속도가 빠른다)
- process delay: packet 들어올 때마다 검사하는 시간 (해결: 더 좋은 라우터 - 성능 좋은 CPU등 ex. 하이패스로 변경)
- queueing delay : 나가려는 애들이 많아서 큐에서 기다릴 때 걸리는 시간 (해결 : 큐의 길이에 따라 다름. 인터넷을 사용하는 양에 따라 큐의 길이가 달라지니까 조절이 불가능. 몰리다보면 packet 유실이 된다. 그러므로 대부분의 유실은 queueing delay에서 일어난다)
- transmission delay: 완전히 파이프에서 빠질 때까지 걸리는 시간 (해결 : bandwidth를 키운다 ex. 케이블의 지름을 넓힌다
ex. 4차선로로 확장)- propagation delay: 다시 router에 닿을 때까지 걸리는 시간
유실이 일어나면 재전송이 필요하다
처음으로 전송한 라우터에서 다시 전송한다. 왜냐하면 각각의 edge에만 관련 데이터를 가지고 있기 때문이다. 중간에 있는 라우터들은 엄청 많은 데이터들을 넘겨주는 단순 작업을 극대화해 가속화하기 때문에.
이런 라우터들을 dumb core라고 한다.